00:16:46 | | Quit othello7 (Ping timeout: 252 seconds) |
00:28:31 | *** | Saving seen data "./dancer.seen" |
02:00 |
02:28:35 | *** | No seen item changed, no save performed. |
03:00 |
03:05:14 | | Quit advcomp2019_ (Read error: Connection reset by peer) |
03:14:57 | | Quit pixelma (Quit: .) |
03:14:58 | | Quit amiconn (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
03:15:54 | | Join pixelma [0] (marianne@p4fd7fa89.dip0.t-ipconnect.de) |
03:15:54 | | Join amiconn [0] (jens@p4fd7fa89.dip0.t-ipconnect.de) |
04:00 |
04:02:53 | | Quit PheralSparky (Read error: Connection reset by peer) |
04:04:14 | | Quit jacobk (Ping timeout: 260 seconds) |
04:04:50 | | Join jacobk [0] (~quassel@47-186-65-73.dlls.tx.frontiernet.net) |
04:28:39 | *** | Saving seen data "./dancer.seen" |
04:33:54 | | Join OlsroFR [0] (~OlsroFR@user/OlsroFR) |
04:35:10 | OlsroFR | Hello allllllll !!!!! I tinkered a bit with my USB tester. It turns out that configuring rockbox to "force" usb charge (by enabling the option) solves completely the issue, with all iPods, even the 4th gen monos |
04:35:25 | OlsroFR | Now my docked iPods can successfully really recharge when they are docked |
04:35:36 | OlsroFR | and won't discharge even while playing music |
04:39:24 | OlsroFR | I feel like this option should be set to "forced" as default, it seems the best thing to do so users get a normal USB charging speed with their iPods |
04:45:12 | OlsroFR | Settings -> General Settings -> System -> Battery -> Charge During USB Connection -> Force |
04:51:12 | | Quit OlsroFR (Quit: Client closed) |
05:00 |
05:22:43 | | Join OlsroFR [0] (~OlsroFR@user/OlsroFR) |
05:23:25 | | Join chris_s [0] (~chris_s@2a09:bac2:2844:18fa::27d:39) |
05:26:08 | chris_s | _bilugs_: the main menu config plugin doesn't trigger a settings save anymore since 7100090, apparently due to root_menu_load_from_cfg not actually changing the CRC value that is checked in flush_config_block_callback |
05:28:22 | | Quit chris_s (Quit: Client closed) |
05:29:42 | | Join chris_s [0] (~chris_s@2a09:bac2:2844:18fa::27d:39) |
05:29:59 | chris_s | or something like that, have to look at it later, not sure the explanation is actually correct |
05:30:02 | | Quit chris_s (Client Quit) |
05:30:17 | OlsroFR | I've made a patch for all USB iPods: https://gerrit.rockbox.org/r/c/rockbox/+/6384 |
05:31:56 | braewoods | OlsroFR, are you sure it's not an issue of the usb charger? |
05:32:27 | OlsroFR | braewoods Yes I am sure. I tried with 3 different wall plugs and they all deliver the same (and correct) amount of power on Stock OS |
05:32:49 | OlsroFR | only rockbox was pulling 0.07A all the time, and this result was consistent with all iPods |
05:32:53 | braewoods | I mean, many of rockbox's older hardware were capped at 0.5A tops to begin with... some support BCS. |
05:33:28 | braewoods | stuff that predates PD and QC I think. |
05:34:17 | OlsroFR | 3 different wall plugs: |
05:34:18 | OlsroFR | - iPad charger |
05:34:18 | OlsroFR | - Android charger (Anker) |
05:34:19 | DBUG | Enqueued KICK OlsroFR |
05:34:19 | OlsroFR | - USB port from a multitap |
05:35:19 | OlsroFR | On Stock OS, they all behave fine. Excepted of course the minis and 4th gen mono, but it's a known issue. Putting them on disk mode though made them charge correctly the time being. |
05:35:19 | OlsroFR | On Rockbox, since I enabled the "forced" option, even my 4th gen & minis charge correctly and don't lose battery slowly when docked & playing music |
05:35:58 | OlsroFR | also, this forced option was already enabled on some other devices by default like the fiio m3k or erosq |
05:37:23 | braewoods | Just I wonder why it wasn't already the default? The iPod ports predate those by a decade at least I believe. Maybe speachy can provide an answer. |
05:40:28 | OlsroFR | braewoods The bug was difficult to notice, as the slow charge would take over to refill the missing percents after you stop playing music and keep backlight off. I noticed it thanks to a theme that show me in real time the battery percentage in the WPS. Then I use an USB tester to do measurements which confirmed that Rockbox does not pull correctly |
05:40:28 | OlsroFR | power, only 0.07A which is little. |
05:41:37 | OlsroFR | Also this issue seems completely to never affect firewire charging, which is a popular way to recharge an iPod at lightning speed. But for some reason, there's only one model of iPod dock that don't support at all firewire charging xD |
05:41:38 | OlsroFR | https://www.reddit.com/r/ipod/comments/15r6bjx/comment/jwcthif/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button (it's the number 2190) so I was forced to keep using USB |
05:41:55 | OlsroFR | also many iPod Docks, like the Bose SoundDock II, uses the USB protocol to recharge the iPod |
05:42:12 | OlsroFR | it had the same issue but I ignored it |
05:42:38 | OlsroFR | I could also reproduce the discharge issue on Rockbox with this product that is an officially licensed device |
05:42:41 | braewoods | Right. I forget how relatively simple old school USB charging is. Not like newer ones where it can fall apart due to various issues between device and charger. |
05:43:34 | braewoods | Firewire is largely dead anyway. Even Apple has long since abandoned it. |
05:44:21 | OlsroFR | braewoods There is also modded USB cables that are around (on Ali Express and EoE) to charge iPods at firewire speed. I tested this cable (which also do not work through my dock...) and it can send easy 0.5A |
05:44:59 | braewoods | Are iPods just weird? Even the oldest USB can also do 0.5A. |
05:45:07 | OlsroFR | Directly to my multitap USB ports/Anker android wall plug, it works perfectly, and iPods charges super fast over it. Even 3rd gens iPods can charge with these modded cables. |
05:46:07 | braewoods | USB 2.0 and newer specify a maximum of 500 milliamps for devices to draw. USB 3.x, 900. |
05:46:28 | braewoods | And even more if BCS or another power specification is in use. |
05:46:49 | braewoods | err 2.0 and older lol |
05:47:35 | braewoods | iirc, some of the newer ports support BCS for faster charging. |
05:54:11 | OlsroFR | after playing a full album with backllight on most of the time my Classic is now at 97%, so it's not bullet proof, but definitely better. 30s after, it got back to 98% |
06:00 |
06:12:10 | | Quit OlsroFR (Ping timeout: 240 seconds) |
06:21:00 | | Join OlsroFR [0] (~OlsroFR@user/OlsroFR) |
06:21:43 | OlsroFR | Well the Classics especially seems just to behave strangely even with the option forced enabled. Sometimes they don't pull more than 0.07/0.09A, and fall to 0.00A when backlight is off. I will investigate more |
06:27:34 | OlsroFR | looks like my iPod Classic specifically is behaving a bit strange. If I boot it with the charged plugged in, it work and charge fast. If I disconnect the charger and plug it back, then it is slow charging again, and if I ever cut the backlight, it falls to... 0.00A Not good. Couldn't reproduce this with my 4th gen when "forced" is enabled, and |
06:27:34 | OlsroFR | could not reproduce that with my Video. |
06:28:41 | *** | Saving seen data "./dancer.seen" |
06:51:56 | OlsroFR | I updated the patch to not enable "force" on the 6g since the result is too inconsistent here and it uses a different power management codes than older iPods. |
07:00 |
07:10:34 | | Quit b0 (Quit: adiós) |
07:11:40 | | Quit OlsroFR (Ping timeout: 240 seconds) |
07:14:53 | | Join b0 [0] (~b0@user/b0) |
08:00 |
08:28:45 | *** | Saving seen data "./dancer.seen" |
09:00 |
09:24:27 | speachy | aaabbb: keep in mind that there already was _other_ stuff in there. We generally keep teh stacks in IRAM, but we were getting some overflows so we made a concerted effort to pull large stuff off the stack, including some opus state. |
09:24:57 | speachy | but as bilgus says, benchmarks or it doesn't count. |
09:25:40 | speachy | chris_s: good catch; those pesky off-by-one errors always get ya. IT wouldn't have mattered except that on the PP, IRAM is at that address. :D |
09:25:45 | speachy | pure accident. |
09:26:56 | speachy | also, aaabbb, on the PPs, there's acutally 96 or 128K of IRAM depending on the model. We typically use half for the "OS" and leave the other half for codecs (and/or plugins) to utilize. |
09:29:15 | speachy | wrt USB power −− rockbox follows the USB specs where possible; ie low current draw until we negotiate something faster. I don't know what level of control the ipods have offhand, beyond "Trickle" and "full power" anyway |
09:29:57 | speachy | when you have a data-capable connection you're supposed to negotiate that as part of the control handshake, and we respect that and kick up the current draw. |
09:30:51 | speachy | when there is no data connection, chargers typically place a resistor across the data lines allowing devices to probe/measure, and based on that try to draw more current. |
09:31:26 | speachy | I'd assume the ipods have a way to trigger that probing, but we may not know what it is. |
09:32:00 | speachy | (hmmm, it's a designware usb2 core, so that's probably known) |
09:39:36 | speachy | AAAAnd in other news, I just banned a large IP range from alibaba that was slamming gerrit with literally hundreds of requests a second. |
09:48:08 | CH23 | i wonder why |
09:53:16 | | Join OlsroFR [0] (~OlsroFR@user/OlsroFR) |
09:53:27 | speachy | probably AI training |
09:53:28 | OlsroFR | probably trying to feed AI models... (facepalm) |
09:53:40 | speachy | lying about their user-agent, completely ignoring robots.txt... |
09:54:11 | speachy | there's a google range that slammed my personal site with >50GB of traffic in the past 24 hours, again apparently not respecting robots.txt |
09:54:41 | OlsroFR | I feel like for my iPod Classics my problem will be solved only when I will go to firewire. I will do more tests with my 4th gen by playing a full album while docked with the "forced" settings and see at the end of the album it is still at 100% |
09:56:54 | OlsroFR | based on the results I got with my USB tester, I am pretty confident that it will maintain 100% |
09:57:13 | CH23 | ipod classic charging via firewire, or transferring files? |
09:57:17 | CH23 | the latter can not work |
09:57:52 | OlsroFR | My aim is that my iPod charge while docked & while playing music. I don't need a data connection, only power |
09:58:51 | OlsroFR | CH23 The problem also is that I am waiting to get an older dock, because https://www.reddit.com/r/ipod/comments/15r6bjx/comment/jwcthif/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button a specific model of dock don't support firewire charging at all... |
09:59:30 | OlsroFR | My iPod 4th gen starting 5 minutes ago to play an album at 92% of battery. It is now at 99%... |
09:59:55 | OlsroFR | (USB charging, forced charge enabled) |
10:00 |
10:01:35 | CH23 | interesting. I have an apple firewire charging brick + cable (before their cables would break if you looked at them funny) |
10:02:12 | CH23 | i don't remember where I left my dock |
10:02:32 | OlsroFR | Right now I don't have the firewire brick, but I have a "modded USB cable" from Ali Express, that allows to get the same charge superfast speed, and even to charge 3rd gen classics. It works everytime, excepted through my dock... |
10:02:35 | speachy | OlsroFR: nano2g is similar to the ipod6g btw. |
10:03:56 | OlsroFR | +speachy Thanks, I modified the patch accordingly |
10:12:13 | | Quit OlsroFR (Quit: Client closed) |
10:12:54 | speachy | that's not strictly true; the nano2g is its own thing, ipod6g uses the same PMIC as the 5g. so ... who knows. |
10:13:45 | | Join OlsroFR [0] (~OlsroFR@user/OlsroFR) |
10:16:25 | speachy | aha. there's a way to route the D+/D- pins to an ADC, which can then be used to check what the charger is indicating |
10:16:50 | speachy | but rockbox doesn't have the infrastructure to handle that probing. |
10:17:55 | OlsroFR | If you want me to do any kind of software test, I am motivated to do so. But I can't do much more. I am glad that there's a setting to fix the issue at least for some iPods, that's better than nothing |
10:18:08 | OlsroFR | my 4th gen that is playing music is now at 99% of battery |
10:18:39 | OlsroFR | even Stock OS cannot do that for this iPod. On this iPod model (and on the minis iPods), the Stock OS can charge over USB only when connected to a PC or when it is in disk mode |
10:22:27 | speachy | because it has no way to negotiate higher current draw absent a data connection, whereas firewire guarantees higher current availability. |
10:22:49 | speachy | yay, apple |
10:23:29 | OlsroFR | there's also the modded USB cables out there that simulates firewire. With these cables, I get 0.5A speed. With a normal USB cable, it seems capped to 0.3A max |
10:24:12 | OlsroFR | I will get in a few days another model of dock that should work with firewire, and I expect this older dock to also accept my modded USB cable |
10:24:32 | speachy | the PMIC in the 5g and 6g (maybe olders, didn't check) can handle 1A or more in theory, though based on the comments the battery charger maxes out at under 400ma |
10:25:05 | OlsroFR | There's a whole commented block in the end of the power-ipod.c file |
10:25:12 | OlsroFR | it seems like it was supposed to enable faster charging speeds |
10:25:29 | OlsroFR | /* This GPIO is connected to the LTC4066's CLDIS pin */ |
10:25:30 | OlsroFR | /* Setting it high allows up to 1.5A of current to be drawn */ |
10:25:30 | OlsroFR | /* This doesn't appear to actually be safe even with an AC charger */ |
10:25:31 | DBUG | Enqueued KICK OlsroFR |
10:25:31 | OlsroFR | /* so for now it is disabled. It's not known (or maybe doesn't exist) */ |
10:25:31 | OlsroFR | /* on all models. */ |
10:26:10 | speachy | and personally I'm inclined to err on the side of being _very_ conservative when it comes to Li-Ion battery management. |
10:26:50 | speachy | especially in this modern era where approximately 3% of the batteries in use are apple-QA'd originals. |
10:26:51 | OlsroFR | there's another comment just in top of this one that says that the charging speed is 0.5A, which is coherent from my measurements by using the modded USB cable |
10:28:28 | OlsroFR | just checked the battery of my 4th gen. It's now maintaining itself at 99% of battery |
10:28:34 | speachy | ok, FS #13441 can be considered resolved. |
10:28:35 | rb-bluebot | https://www.rockbox.org/tracker/task/13441 Opus file playback interrupted (bugs, unconfirmed) |
10:28:48 | *** | Saving seen data "./dancer.seen" |
10:52:36 | | Quit OlsroFR (Quit: Client closed) |
10:53:04 | | Join OlsroFR [0] (~OlsroFR@user/OlsroFR) |
10:53:15 | OlsroFR | the battery of my 4th gen docked playing music is still at 99% |
10:53:16 | | Quit OlsroFR (Client Quit) |
10:58:13 | speachy | _bilgus_: re g#6383, the patch changes a lot more than just case sensitivity. but we're case insensitive on native only. hosted and non-windows sim builds are case sensitive. |
10:58:16 | rb-bluebot | Gerrit review #6383 at https://gerrit.rockbox.org/r/c/rockbox/+/6383 : [Bugfix] tree.c tree_get_file_position() case insenstive search by William Wilgus |
11:00 |
11:18:40 | _bilgus_ | speachy, even with them being case-insensitive they still wouldn't send you differently cased versions of the same file |
11:22:11 | _bilgus_ | case senisitive* |
11:25:45 | _bilgus_ | nor should we mush them in the non native case I don't see how whats there is right in either |
11:27:51 | _bilgus_ | figure in either whatever file was lastfile should be the same file next load, if you have a case sensitive underlying FS you could return the wrong file, in a case-insensitive FS it won't matter |
11:28:35 | _bilgus_ | I guess I should say unless the user is involved |
12:00 |
12:28:51 | *** | Saving seen data "./dancer.seen" |
12:29:16 | | Join chris_s [0] (~chris_s@2a09:bac2:2f7f:248c::3a4:29) |
12:33:44 | chris_s | _bilgus_: re the main menu config plugin, apparently the problem is that only the boolean root_menu_customized is part of global_settings, but not the actual menu items, so when the menu items change, the global_settings crc remains the same and settings aren't saved to disk (unless the menu was previously uncustomized or you've also adjusted |
12:33:44 | chris_s | another setting before rebooting) |
12:40:25 | chris_s | I can take another look at g#6032 this WE, one small thing I would suggest is changing "sorted by albums" to "sorted by album" (singular) in the lang file, unless someone disagrees |
12:40:28 | rb-bluebot | Gerrit review #6032 at https://gerrit.rockbox.org/r/c/rockbox/+/6032 : [Tagtree] Add a button to list automatically all tracks in all albums of the current view (but with randomness) by Paul Sauro |
12:40:46 | chris_s | g#6031 |
12:40:49 | rb-bluebot | Gerrit review #6031 at https://gerrit.rockbox.org/r/c/rockbox/+/6031 : [Tagtree] Add a new button to list automatically all tracks in all albums of the current view by Paul Sauro |
12:46:32 | | Quit chris_s (Quit: Client closed) |
12:49:28 | | Join chris_s [0] (~chris_s@2a02:26f7:ec5c:4000:8fea:5881:76e2:cddd) |
13:00 |
13:24:10 | | Quit chris_s (Quit: Client closed) |
13:44:03 | | Join advcomp2019 [0] (~advcomp20@user/advcomp2019) |
14:00 |
14:16:21 | | Join othello7 [0] (~Thunderbi@pool-100-36-176-164.washdc.fios.verizon.net) |
14:28:55 | *** | Saving seen data "./dancer.seen" |
15:00 |
15:10:09 | | Join bilgusph [0] (~bilgusph@166.199.7.62) |
15:11:02 | bilgusph | Chris_s re main menu thanks for tracking it down ill look at it this eve |
15:11:30 | bilgusph | Re LANG string yes dropping the s in albums sound better |
15:12:08 | bilgusph | Push them when you're happy with it i didn't see anything note worthy |
15:14:40 | bilgusph | Edhelas_ did you have a chance to test the scrobbler plugin in the build I posted? |
15:16:53 | bilgusph | I have a few other QOL changes To go along with it, a command line option for export progress messages and sped up duplicate culling since adding yield slows it down a bit |
15:18:33 | speachy | I made some progress on my "pull the alphabet into external talkclips" idea. still want to come up with a way to extract database metadata so that can be voiced too |
15:21:57 | | Quit bilgusph (Quit: Client closed) |
16:00 |
16:10:13 | | Quit othello7 (Remote host closed the connection) |
16:16:18 | | Join othello7 [0] (~Thunderbi@pool-100-36-176-164.washdc.fios.verizon.net) |
16:28:58 | *** | Saving seen data "./dancer.seen" |
16:45:52 | | Join WebGuest7 [0] (~WebGuest7@2a01:4b00:bb03:1b00:f7bb:8bba:1aac:62b7) |
16:50:14 | | Quit WebGuest7 (Client Quit) |
17:00 |
17:28:37 | | Join Drewise [0] (~user@user/Drewise) |
17:30:16 | | Join WebGuest8 [0] (~WebGuest8@2a01:4b00:bb03:1b00:f7bb:8bba:1aac:62b7) |
17:32:20 | Drewise | Heyo! Wondering if Rockbox has a plugin that records play stats? |
17:32:42 | Drewise | eg. something as basic as number of plays per track? |
17:33:06 | Drewise | only had a skim through the plugins index, so maybe I missed it |
17:40:04 | speachy | pretty sure that's part of the database. https://download.rockbox.org/daily/manual/rockbox-ipodvideo/rockbox-buildch4.html#x9-530004.2.4 |
17:40:32 | speachy | if you have that turned on, at least. |
17:45:37 | Drewise | ah, of course the tags store that info |
17:46:27 | | Quit WebGuest8 (Quit: Client closed) |
17:49:53 | Drewise | Is there anything more involved than that? like listening stats by month/year or even time of day? |
17:51:58 | Drewise | asking bc I'm interested in my listening habits, and this could be a nifty mini project |
17:52:39 | speachy | nothing built in. you could enable audioscrobbling and post-process the log to extract that info. |
17:54:04 | Drewise | I see, thanks |
17:56:27 | | Quit JanC (Read error: Connection reset by peer) |
17:58:32 | | Part Drewise (ERC 5.6.1-git (IRC client for GNU Emacs 31.0.50)) |
17:59:04 | | Join JanC [0] (~janc@user/janc) |
18:00 |
18:14:36 | | Join PheralSparky [0] (~S|h|a|w|n@user/shawn/x-4432647) |
18:29:00 | *** | Saving seen data "./dancer.seen" |
18:30:33 | _bilgus_ | speachy parsing the db shouldnt be too bad it could take some time though so probably needs some logic on if it needs redone, maybe file size or mod time? |
18:30:48 | _bilgus_ | parsing the individual files.. |
18:38:39 | | Quit Galois (Remote host closed the connection) |
18:49:37 | _bilgus_ | just saw this https://github.com/Rockbox/rockbox/blame/master/apps/lang/english.lang#L17065 |
18:49:44 | _bilgus_ | sounds confusing |
18:57:42 | | Join Moriar [0] (~moriar@107-200-193-159.lightspeed.stlsmo.sbcglobal.net) |
19:00 |
19:01:59 | | Join Galois [0] (djao@efnet.math.uwaterloo.ca) |
19:49:25 | | Join massiveH [0] (~massiveH@2600:4040:a982:5400:8494:a3d7:f90c:e3f4) |
20:00 |
20:29:01 | *** | Saving seen data "./dancer.seen" |
21:00 |
21:15:54 | | Quit baltazar (Ping timeout: 252 seconds) |
21:17:51 | | Join baltazar [0] (~baltazar@user/baltazar) |
22:00 |
22:04:13 | aaabbb | speachy: ok so i should look to see what opus state is kept off the stack |
22:12:26 | | Quit aaabbb (Quit: Reconnecting) |
22:12:35 | | Join aaabbb [0] (sitku@bitcoinshell.mooo.com) |
22:14:04 | | Quit aaabbb (Changing host) |
22:14:04 | | Join aaabbb [0] (sitku@user/aaabbb) |
22:29:04 | *** | Saving seen data "./dancer.seen" |
22:30:54 | | Quit Moriar (Ping timeout: 244 seconds) |
23:00 |
23:15:25 | aaabbb | i'm struggling to find where opus state is explicitly kept off the stack |
23:39:16 | _bilgus_ | aaabbb, I guess first you need to find you hot loop |
23:39:37 | _bilgus_ | then identify whats actually in it |
23:40:08 | aaabbb | how would that tell me where the opus state is explicitly kept off the stack in the rockbox fork of libopus? |
23:40:11 | _bilgus_ | searching for static should at least help you find most of the constants and such |
23:40:40 | _bilgus_ | why are you looking for explicit? compared to what? |
23:41:21 | _bilgus_ | ie if these items are used in your hot loop then they may benefit from being in faster memory |
23:42:03 | aaabbb | _bilgus_: speachy: just said that the stack is generally kept in IRAM but that overflows were happening so they made an effort to "pull large stuff off the stack, including some opus state" and that is what i am trying to find |
23:42:43 | _bilgus_ | then you should probably look for that commit |
23:42:54 | aaabbb | yeah, looking for it now |
23:43:13 | _bilgus_ | but thats not going to do you much good except to reintroduce that stack overflow? |
23:43:28 | aaabbb | i don't mean to revert it. i mean to read it to understand it |
23:44:49 | _bilgus_ | https://github.com/Rockbox/rockbox/commits/master/lib/rbcodec/codecs/libopus |
23:45:13 | _bilgus_ | this shows the progression and has a few things for cold fire |
23:46:57 | _bilgus_ | you can also look at where I puhed upstream but I doubt you'll have as much luck there as you will looking at the individual commits to at least get the idea of the intention because most don't match what upstream is (then?) |
23:50:39 | _bilgus_ | One other thing to bear in mind when you run out of space is that just because a commit added something into IRAM doesn't necessarily mean it has the same weight now as it did then IOW profiling can help you identify biggest bang for your buck so to speak |
23:52:11 | aaabbb | ofcourse and i don't mean to make any changes blindly. i am just in a stage where i am familiarizing myself with the system |
23:54:17 | _bilgus_ | oh I don't care if you do I mean the end result will be apparent just trying to keep you from wasting your time |
23:57:52 | _bilgus_ | this might be the commit speachy was referring to https://github.com/Rockbox/rockbox/commit/82943ea1c745462c0eb682cfcbb15a91b85d494c |