Synthpopalooza Posted July 27, 2014 Author Share Posted July 27, 2014 (edited) There has been some improvement to the conversion algorithm. Here is the new ATR: c64 viewer.atr I went in and corrected the greens on the color table. Dark green is now represented by Graphics 10 green plus PF2 (grey) and light green by the same Graphics 10 green plus Pf1 (Yellow). This gets these colors closer to the C64 originals. Some of the pixel pairings with other colors may still be off. Also included on this ATR is D:WRITE64D.BAS which will let you edit or make your own conversion tables. The program listing is here: 20000 RESTORE 20040:OPEN #1,8,0,"D:C64A.DAT" 20010 FOR I=0 TO 255:READ A 20020 PUT #1,A:NEXT I 20030 END 20100 REM -- COLOR 0 (BLACK) --------- 20105 DATA 0,114,65,115,35,48,128,82,17,16,67,3,113,51,131,99 20110 REM -- COLOR 1 (WHITE) --------- 20115 DATA 120,122,121,123,121,123,136,126,109,121,125,108,139,123,139,123 20120 REM -- COLOR 2 (RED) ----------- 20125 DATA 68,118,69,119,39,52,132,70,66,20,71,71,100,55,135,103 20130 REM -- COLOR 3 (CYAN) ----------- 20135 DATA 124,126,125,127,137,126,136,126,125,125,137,124,114,126,139,125 20140 REM -- COLOR 4 (MAGENTA) ---------- 20145 DATA 76,118,45,134,37,52,132,46,46,45,46,135,135,55,135,39 20150 REM -- COLOR 5 (GREEN) ---------- 20155 DATA 60,126,61,123,137,63,136,62,61,61,61,63,63,62,139,115 20160 REM -- COLOR 6 (BLUE) ----------- 20165 DATA 128,130,129,130,129,130,128,130,129,129,46,131,131,51,131,130 20170 REM -- COLOR 7 (YELLOW) --------- 20175 DATA 88,123,73,123,43,56,136,90,25,24,89,104,107,59,139,91 20180 REM -- COLOR 8 (ORANGE) --------- 20185 DATA 36,103,72,119,43,52,132,22,21,20,75,100,23,55,135,23 20190 REM -- COLOR 9 (BROWN) ---------- 20195 DATA 16,118,17,119,39,52,132,18,17,16,71,100,19,55,135,19 20200 REM -- COLOR 10 (PINK) ---------- 20205 DATA 76,119,77,134,43,102,43,86,78,77,79,100,119,87,43,103 20210 REM -- COLOR 11 (GREY 1) -------- 20215 DATA 12,99,77,115,141,60,140,98,97,97,97,15,99,55,131,99 20220 REM -- COLOR 12 (GREY 2) -------- 20225 DATA 116,142,97,126,141,62,140,110,29,28,125,108,101,62,139,119 20230 REM -- COLOR 13 (LIGHT GREEN) --- 20235 DATA 56,126,57,123,57,56,56,136,57,57,93,57,59,58,139,57 20240 REM -- COLOR 14 (LIGHT BLUE) ---- 20245 DATA 140,142,141,142,141,60,140,142,141,141,46,140,142,142,143,142 20250 REM -- COLOR 15 (GREY 3) -------- 20255 DATA 126,109,119,45,60,136,94,29,28,109,108,119,55,165,139,111 The data is organized by 16 rows of 16 bytes starting at line 20100, one row for each color. Basically, there are 256 bytes to the table, representing each of the possible two-pixel pair combinations (16 colors by 16 colors). The data is formulated using this expression: (GRAPHICS 10 color) * 16 + (Graphics 12 color left pixel) * 4 + (Graphics 12 right pixel) This table was formulated with these color settings: color 0 (both modes) - 704 (PM0 on Graphics 10) / 712 (BAK register for Graphics 12) is black color 1 (Graphics 10) - 705 (PM1) is orange color 2 (Graphics 10) - 706 (PM2) is purple/magenta color 3 (Graphics 10) - 707 (PM3) is green color 4 (Graphics 10) / color 1 (Graphics 12) - 708 (PF0) is red color 5 (Graphics 10) / color 2 (Graphics 12) - 709 (PF1) is yellow color 6 (Graphics 10) / color 3 normal (Graphics 12) - 710 (PF2) is grey color 7 (Graphics 10) / color 3 inverse (Graphics 12) - 711 (PF3) is cyan color 8 (Graphics 10) - 712 (9th color, BAK register on Graphics 10) is blue The next step is of course to formulate a table for PF3 (inverse) and an algorithm for deciding if the character is to be normal or inverse, depending on the color used. At this stage it appears that characters using light blue, light green, or teal will likely get the inverse as the PF3 color combinations used here are closest to the C64 colors. It is also possible to write your own table from scratch using your own settings. To do so, load up the ICE CIN font editor and choose the ICE PCIN (or Super PCIN) mode, and use the color tuner to play around with the color settings until you get a combination of colors that are close to the C64 palette. You will then want to take a screenshot as a reference, then go to the blank C64 PCIN table a few posts up, and calculate by hand your own values for this table. You also want to save the font file (to save the color palette). The second through tenth bytes of this ICE file contain the color palette data which you can then put into lines 1200 and 1202 of the C64VIEW.TUR program (with line 1200, register 1070 is the BG and 1071 is the PCIN 9th color). The values you get from your own color table are put into the DATA statements of the WRITE64D.BAS program. Here is an improved version of a previously converted picture: C64 original my previous conversion with wrong green color Corrected render: elefli2.obx Note that the helmet is now the correct color, previously it was too dark. Another one: dragon2.obx The dragon looks like it should now. I will, in the future, modify the code to display FLI pictures. Again you will notice in the first pictures, there are black hole artifacts, due to the fact that the Koala converter I used (ConGo) inserts black space whenever there are any color conflicts in converting an FLI picture (any 16 colors per char cell) into multicolor mode (you can only have 4 colors per character cell, remember). This will require 8000 bytes for the color data, all the other data tables are unchanged. Edited July 27, 2014 by Synthpopalooza 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted February 17, 2015 Author Share Posted February 17, 2015 (edited) Thanks to some help from 1NG, I've updated the assembly code for displaying pcin pictures. This method uses a new technique. Instead of full-screen flicker, the mode changes (and other register changes) happen each character line. While not as ideal as scanline changes (like in the bitmap CIN modes) this does cause the screen to pump a lot less and makes it look nicer. It seems to work OK in Altirra, but I am told there is a slight messup on real hardware on the top character line. PILGRIMS.zip Edited February 17, 2015 by Synthpopalooza 2 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted February 17, 2015 Author Share Posted February 17, 2015 Some more PCIN examples from past pictures in this thread have been attached in the ZIP file below. The other ICE modes (including MIN, Super IRG 2, CIN) can also be interleaved in this fashion, this dramatically improves the quality of the picture on real hardware. pcin pictures.zip 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted February 19, 2015 Author Share Posted February 19, 2015 (edited) More pictures ... many of them in the MIN (12+9) mode, done using this new character line interleave method. An explanation: The picture swaps between two DLI's on each VBI ... each one alternates the character set and graphics mode (and COLBAK, in the case of the PCIN and Super 9 modes) every other character line. This is done in lieu of the full-frame VBI swaps done previously. The flicker has been reduced considerably, especially in the MIN mode pictures. Next, I am going to experiment with having DLI color changes within the pictures themselves ... for instance, it my be possible to have a PCIN picture in which the PM registers (705-707 and BAK 9th color) can change colors each scanline, or MIN pictures which allow for DLI color changes in the PF0-PF3 registers. The DLI color changes will happen on character lines (8 scanlines). This will eat into cycles of course, so it will be tricky to do, tho not impossible! In the case of Super 9, a DLI color change on the BAK register might easily put thousands of colors onscreen at once at Graphics 9 (80 pixel) resolution. It will be a painstaking task, as the source picture will need to be processed in G2F a few character lines at a time. There is also, of course, the possibility of doing these pictures in low-res (Antic 5) mode. While this will reduce the color resolution somewhat, it takes less cycles to draw an Antic 5 screen at 12 character lines, leaving more time for DLI color changes. pictures.zip Edited February 19, 2015 by Synthpopalooza 1 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 19, 2015 Share Posted February 19, 2015 These look very nice indeed - especially the 1200XL. Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted February 20, 2015 Author Share Posted February 20, 2015 (edited) Here is a palette test using Super 9, combined with DLI color changes: s9test.obx What I did here, was take the previous Boba Fett picture, and did some stepping of the hues in both DLI's, as a palette test. There are two DLI's on COLBAK, and each individual character line is a mixture of two COLBAK settings. A further explanation can be seen by looking at a sample Super 9 palette from ICE GTIA editor: In this mode you get a duo-tone 256 color palette made by swapping COLBAK between two settings. By itself, you can get some nice gradients. But let's see what happens when you step one of the COLBAK settings forward by about 3 hues ... You get a completely different palette. By only changing COLBAK, you affect the entire range of colors in this mode. So in the palette test above, each character line has a unique color palette with 256 colors usable per character line. There are about 136 unique color palettes to be had from this mode. Judicious use of this technique can potentially increase the quality and color resolution of photographic quality pictures, and is best suited for landscapes, and any picture which relies on vertical color gradients. Here is another palette test, along with the source code: lattice test super 9.obx lattice test super 9.asm The key section of code is in the colbaktab table: colbaktab dta $10,$40 dta $50,$10 dta $10,$60 dta $70,$10 dta $10,$80 dta $90,$10 dta $10,$10 dta $20,$80 dta $90,$20 dta $20,$a0 dta $b0,$20 dta $20,$c0 dta $d0,$20 dta $20,$e0 dta $f0,$20 dta $30,$00 dta $10,$30 dta $30,$20 dta $30,$30 dta $30,$40 dta $50,$30 dta $30,$60 dta $70,$30 dta $30,$80 Firstly, the setting is hue only, so only values like $00 to $f0 which are evenly divisible by 16 can be used. Secondly, as the DLI display alternates with the color table, the setting in each row is screen 1 - screen 2, followed by screen 2 - screen 1. The colbak instances change with each character line. You can try plugging your own values into this table to test this yourself. This section: org BUF1 ins "slave9b.scr",+0,960 org BUF2 ins "slave9r.scr",+0,960 org FONT-4 jmp startup nop org FONT ins "slave9b.fnt",+0,8192 org FONT2 ins "slave9r.fnt",+0,8192 ... requires that you have fnt and screen files generated by Graph2font. You want "Standard" (no optimization) settings, and you will do two renders of the same picture, one set to greyscale, and one not greyscale. The code uses these files to build the display. The next step is to try this out on a converted picture. Edited February 20, 2015 by Synthpopalooza 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted February 20, 2015 Author Share Posted February 20, 2015 A few extra PCIN pics ... just because. All of these are C64 conversions, but one, which is converted from famous 2600 box art. flimbo2-pcin.obx goblins-pcin.obx BERZERK-pcin.obx shaolin2-pcin.obx carroin-pcin.obx 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted February 20, 2015 Author Share Posted February 20, 2015 (edited) As promised, my first super 9 picture using DLI's. Here is the original picture: The first step is to resize this picture to 320x192 in your favorite photo editor. Save as .png. Next, open up two instances of G2F and load into both, using Graphics 9. Set one as greyscale, leave the other unticked. You should then get these two images: color render greyscale render You will notice these images differ slightly, the color render has more brightness in some areas (like the sun), while the greyscale render has a brighter sky. You will need to take these differences into account when selecting your two blended BAK colors for each character line later. Make sure to do "Options-Standard", then save the G2F's (I chose lsuns9c for the color, and lsuns9g for the greyscale). Now hit the "Save All" button and you will have font and scr files for both. Here is the source code for the super 9 DLI pic: landscape sunset super 9.asm In the code, look at the beginning, you will see where the font and scr files should go: org BUF1 ins "lsuns9c.scr",+0,960 org BUF2 ins "lsuns9g.scr",+0,960 org FONT-4 jmp startup nop org FONT ins "lsuns9c.fnt",+0,8192 org FONT2 ins "lsuns9g.fnt",+0,8192 Now look for the COLBAKTAB, the table of values for COLBAK colbaktab ; screen 1: font 1, font 2 dta $80,$40 dta $80,$40 dta $80,$40 dta $80,$30 dta $80,$20 dta $80,$20 dta $90,$20 dta $90,$20 dta $90,$20 dta $90,$20 dta $90,$20 dta $90,$20 ;screen 2: font 2, font 1 dta $40,$80 dta $40,$80 dta $40,$80 dta $30,$80 dta $20,$80 dta $20,$90 dta $20,$90 dta $20,$90 dta $20,$90 dta $20,$90 dta $20,$90 dta $20,$90 You will notice the data is divided into two screens. Screen one has the color render COLBAK setting, alternated with the greyscale setting. Screen two, reverses this order. In the original picture, you want to take a character line at a time, figure out the two dominant colors for that area of the picture, and plug the closest Atari values into the table. You will notice that the sun is bright in one area of the color render, so for that area of the table, you want gold. You will notice that I started with violet-red ($80,$40 COLBAK), then did a gradation to violet-gold ($80,$30 then $80,$20) where the sun is. At the water line, the gradation turns suddenly to blue-gold ($90,$20) Once you have the colors the way you want them, compile the .asm ... this may take some trial and error until you get the results you want: landscape sunset super 9.obx For best results turn down the brightness and turn up the contrast on your monitor. An ideal automation would be a means to scan each character line of the picture and generate optimal COLBAK values based on the two dominant colors in that line. Here are the G2F and source files used in this render: landscape sunset source files.zip Feel free to try your own pictures with this code ... It is of interest to note, that it is possible to add the missiles (M0-M3) all set to PF3 to the mix. Graphics 9 will show through as their color, and adding in changes to PF3 as well as BAK, can increase the color resolution to 2 256-color palettes per character line. Throwing in HPOSM0-HPOSM3 changes into the DLI will increase the number of palettes per scanline to 4. Of course this will eat more cycles, and bears further experimentation. Edited February 20, 2015 by Synthpopalooza 2 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted February 20, 2015 Author Share Posted February 20, 2015 Two more Super 9 DLI examples, with xex and source code. landscape yard - super 9 dli.asm landscape yard - super 9 dli.obx lake landscape - super 9 dli.asm lake landscape - super 9 dli.obx I've had to calculate the color settings by hand, with a lot of trial and error, although with the lake picture, I did some gradation of the color settings, first on one half of the display, and then on the other. This makes for some very subtle color gradients and is a nice way to blend the picture. What's optimally needed here, is a means to scan each character line of the original picture and determine the optimal two BAK color settings for each line of the display. This mode would be perfect for graphic adventure games, or a Myst-type game. 2 Quote Link to comment Share on other sites More sharing options...
TheNameOfTheGame Posted February 21, 2015 Share Posted February 21, 2015 Really nice stuff here! Good job! Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted March 1, 2015 Author Share Posted March 1, 2015 Rest in peace, Leonard Nimoy (Spock) ... I did two PCIN renders of Mirror Spock. In both cases, I used a Graphics 10 render sourced from GIMP and reduced to 9 colors. On the first one, I did a .g2f render of Antic 4 and chose the best suitable colors. On the second, I did an Antic 4 render sourced from GIMP and reduced to 5 colors. Each one has it's own strengths and weaknesses. The first render has less flickering, the second has more detail. Which one is better? I also did a MIN render of Spock, using a Graphics 9 render off of g2f, and the second Graphics 12 render. The greyscale detail is greater, although with more flicker and fewer chroma detail. spock1-pcin.obx spock2-pcin.obx spock - min.obx 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted November 18, 2015 Author Share Posted November 18, 2015 A cross-post, from the Rastaconverter thread ... This picture was posted as a challenge for someone to render in the Rastaconverter mode: This was the result: Basically Rastaconverter works by using PMG's atop of Antic E (Graphics 15) and changing color registers on the fly, and combining this with priority blending. One can get about 20-50 colors in this mode. However, the render of the above picture suffers from the fact that dark gradients don't translate well into 8 greyscale. I decided to try to render this picture in the ICE Super 9 DLI mode. This mode is an interlaced Graphics 9 in text mode, with DLI color changes. By swapping two DLI color tables, you get basically any of 136 unique 256 color palettes usable per 8 scanlines (or one character row). This was the result: underworld - super 9 dli.obx Easy to render, the top of the picture has the light blue-teal highlight, blended with an orange on the other side of the color wheel. The fire parts of the render, reverse these colors. For best results, turn down the brightness and turn up the contrast on your monitor. Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted November 19, 2015 Author Share Posted November 19, 2015 And another picture from the Rasta thread ... This picture seems really suited to MIN (12+9) mode, because of the low number of chromas in the picture and the reliance on shades. I took the picture into GIMP, resized it to a 160x200x5 color picture with dithering. I also did a PCIN (12+10) rendering, for comparison. The Graphics 10 render did not turn out as well as I would have liked. horses - min.obx horses-pcin.obx Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted November 19, 2015 Author Share Posted November 19, 2015 And hew are a few extra pictures from the Rasta thread ... snowman-pcin.obx snow-pcin.obx snow-pcin2.obx sweden - min.obx sweden-pcin.obx The snowman picture features a graphics 10 render from GIMP. The first snow cabin picture featured a graphics 10 render from GIMP, for the second one I used a G10 render from Atari Interlace Studio, it shows up the green on the tree better. I did a MIN (12+9) and PCIN (12+10) render on the swedish picture. With the PCIN one, I used Atari Interlace Studio again. Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted November 20, 2015 Author Share Posted November 20, 2015 (edited) Some more pictures from my hard drive. Various modes ... 3d cubes - m0.obx 3d cubes - min.obx abstract cubes - m0.obx abstract cubes - min.obx c64 space invaders - pcin.obx grass landscape - super 9 dli.obx dragons lair castle - pcin.obx drown - pcin.obx norway lodge - super 9 dli.obx Edited November 20, 2015 by Synthpopalooza Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted November 20, 2015 Author Share Posted November 20, 2015 And now, for a three-way comparison ... this picture was also lifted from the Rasta thread: I have done a comparison between three modes: MIN (9+12), PCIN (10+12), and HIP (9+10) MIN has a very good color resolution, although it does flicker. PCIN has lower color resolution, but less flicker HIP has the highest color resolution, but is blurry due to the shifted HIP effect, and it flickers a little more than either of the two above. Which one looks best? You decide. tut - min.obx tut - pcin.obx tut - hip.obx An additional note about HIP and MIN: One could also shift the BAK register on each scanline, to introduce additional colors to the Graphics 9 render, as with the Super 9 DLI mode. This bears further experimentation. Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted December 26, 2015 Author Share Posted December 26, 2015 Merry Christmas! These are older pictures, from a year ago, so they are full frame flicker. The first one was converted from an Atari ST low-res picture. mchri-pcin.obx swiat-pcin.obx 2 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted January 17, 2016 Author Share Posted January 17, 2016 RIP David Bowie This was done in MIN mode, from a monochrome source. I tuned up the greyscale a bit so that it doesn't flicker so much. bowie-min.obx 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted January 17, 2016 Author Share Posted January 17, 2016 And another two Bowies ... both PCIN labyrinth-pcin.obx starman-pcin.obx 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted January 18, 2016 Author Share Posted January 18, 2016 Two more david bowie pictures, in PCIN mode. In these, I resized the original pictures and took them into G2F to get the Graphics 12 renders. To get the Graphics 10 renders, I took these into GIMP, posterized it to the Atari palette, then reduced each picture to 9 colors. Then in G2F, rearranging the color palette in Graphics 10 so that the BAK and PF colors are the same. jareth-pcin.obx bowie43-pcin.obx 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted May 9, 2016 Author Share Posted May 9, 2016 Visiting this thread again ... I just saw a nice little GIF animation on Facebook: https://mir-s3-cdn-cf.behance.net/project_modules/disp/6f0ba123694237.563273de19be2.gif I had a thought ... this animation could be done on the ATARI, using the ICE PCIN mode which would be perfect for displaying these colors. I am going to do some experimentation in the next week or so to see if it can be done. 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted May 10, 2016 Author Share Posted May 10, 2016 OK, I exploded the GIF ... it uses 48 frames, and the picture itself resizes to 320x170, or about 7 ICE fonts needed per frame (uncompressed). So each uncompressed frame will take up about 14K. The total animation, uncompressed, will be 688K. There may be ways to reduce this usage. If we go with narrow mode, the picture becomes 256x136, which only requires about 4 font sets per frame uncompressed. This leads to 8K per screen, and 384K for the entire animation. One could also further reduce this by using Antic 5 mode ... 2 font sets per screen (4K) which means the entire animation will fit into 192K RAM. The picture below shows a simulated Antic 5 resolution ... in PCIN the colors should look fairly close to what you have here: And of course, if we used character set optimization that might reduce things even further. I will next try rendering a PCIN file for one of the frames, in high res Antic 4, narrow mode Antic 4, and narrow mode Antic 5, to give an idea of what we have to work with here. 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted April 4, 2017 Author Share Posted April 4, 2017 (edited) Other developments: Inspired by the new Sophia GTIA upgrade which allows true 16 level shading in all ANTIC modes and an independently programmable PF1 color in Graphics 0, I am updating the ICE font editors to support this. Another advantage of SOPHIA is that Graphics 10 now lines up with other modes. While pictures that rely on HIP techniques will no longer work, PCI mide (12+10) is now easier to implement with no need to shift the pixels. Lastly my friend Bill Kendrick has written me some Action! code that shifts 8 fonts on the screen at once. I plan on using this to write viewers and art programs for the ICE modes. More as it happens. Edited April 4, 2017 by Synthpopalooza 1 Quote Link to comment Share on other sites More sharing options...
+CharlieChaplin Posted April 4, 2017 Share Posted April 4, 2017 OK, I exploded the GIF ... it uses 48 frames, and the picture itself resizes to 320x170, or about 7 ICE fonts needed per frame (uncompressed). So each uncompressed frame will take up about 14K. The total animation, uncompressed, will be 688K. There may be ways to reduce this usage. If we go with narrow mode, the picture becomes 256x136, which only requires about 4 font sets per frame uncompressed. This leads to 8K per screen, and 384K for the entire animation. One could also further reduce this by using Antic 5 mode ... 2 font sets per screen (4K) which means the entire animation will fit into 192K RAM. The picture below shows a simulated Antic 5 resolution ... in PCIN the colors should look fairly close to what you have here: mustang resized Antic 5.png And of course, if we used character set optimization that might reduce things even further. I will next try rendering a PCIN file for one of the frames, in high res Antic 4, narrow mode Antic 4, and narrow mode Antic 5, to give an idea of what we have to work with here. Well, I did a simple TIP animation of this some months ago. I had to reduce the number of frames and errrm, the TIP resolution is very low, so stay away approx. 2-3 meters from your A8 screen when viewing this animation. (I do not like the created output very much, but it works on 64k machines.) LILAC.zip 1 Quote Link to comment Share on other sites More sharing options...
Synthpopalooza Posted April 6, 2017 Author Share Posted April 6, 2017 Very interesting ... I am hoping that my attempt will work out better. The source animation doesn't require a lot of colors ... and in PCIN mode some color combinations won't flicker ... While others can be dithered to not rely on full frame changes. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.