document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1.  
  2. --# ReadMe
  3.  
  4. --[[
  5. First, don't be put off by all this text. This utility is extremely simple to use.
  6.  
  7. It creates code that reproduces images so you don't need to include them separately with your projects. It uses RLE, a well known compression technique. Essentially, it runs through all the pixels, and every time the color changes, it stores the last color and the number of pixels it applied to.
  8.  
  9. FUNCTIONALITY
  10. It can turn any image(with reason) into code strings, and reassemble the image from them.
  11.  
  12. It can take images from the libraries, or Spritely code, and convert to compressed code.
  13.  
  14. The practical limits on image size and complexity are processing speed and storage, because the greater the number of colors and pixels, the more space we have to allow for each item. Currently, it can allow for up to 4,096 unique r,g,b,a combinations, and up to 4,096 characters of the same color in an unbroken sequence. Increasing storage from 3 to 4 chars per item would increase capacity by a factor of 16, but would blow out the data by 1/3.
  15.  
  16. FUNCTIONS
  17. The Coder:Encode function takes the image as input and prints the code to recreate it, in the Output screen. You copy this code to your project. The Test tab shows how it looks. Note, you will also need to copy the Decoder tab to your project.
  18.  
  19. Usage: Coder:Encode(img) --then copy and paste the printed code
  20.  
  21. NB As well as printing the code, the Coder function also returns the two strings required to decode the image. This is only for testing purposes, so the Main tab can show how it works - in practice, you will just copy the printed code and not worry about the return values.
  22.  
  23. The Decoder:Decode function takes two strings as input and returns an image. Normally, you don't have to worry about this because the printed code calls thefunction correctly for you, returning the image.
  24.  
  25. The Main function carries out several tests
  26. It reads in an image from the standard library, codes and then decodes it back to an image
  27. It takes an image created by Spritely code (in the IconImages tab), and encodes/decodes it back to an image
  28. The code strings created for the Spritely code are used in the Test tab to demonstrate how to use them to decode an image
  29.  
  30. All three images above are drawn on screen. The first two images have their originals drawn above them for comparison purposes.
  31.  
  32. USING IT
  33. Only the ImageCoder tab is needed to encode images
  34.  
  35. Only the Decoder tab needs to be included in any project where you want to decode RLE images.
  36.  
  37. COMPRESSION
  38. The level of compression depends on many factors, and there are all sorts of ways to tweak for speed, but this may be good enough. I will tweak if there is demand for it.
  39.  
  40. Dermot (user:Ignatz)
  41. --]]
  42.  
  43. --# Main
  44. -- Compress
  45.  
  46. function setup()
  47. --Read image from library
  48. --You can pick any image you like, but don't make it too big or complex
  49. img1 = readImage("Space Art:Part Red Hull 1")
  50.  
  51. --Normally, you only need to run the single line of code below, which prints the code you need
  52. --The function does return two strings, but you can ignore them (they are just for testing),
  53. --just copy what is printed out in the Output screen, and and paste it into your own project
  54. --So normally, you'll just run Coder:Encode(img1)
  55. --The Test tab shows how it looks when pasted in, and that is the third example below
  56. strCol,str=Coder:Encode(img1)
  57.  
  58. --The rest of the code below is just to prove it works
  59.  
  60. --check we can reproduce the original image we loaded above, using the compressed code
  61. img_new1=Decoder:Decode(img1.height,img1.width,strCol,str)
  62.  
  63. --Second test is to convert code produced by Spritely
  64. img2=IconImages:getFlagCell()
  65. strCol,str=Coder:Encode(img2)
  66. img_new2=Decoder:Decode(img2.height,img2.width,strCol,str)
  67.  
  68. --Finally, to show how you actually use the code produced by this utility....
  69. img_new3=Test:Decode()
  70. end
  71.  
  72. -- This function gets called once every frame
  73. function draw()
  74. -- This sets a dark background color
  75. background(208, 208, 214, 255)
  76.  
  77. -- This sets the line thickness
  78. strokeWidth(5)
  79.  
  80. -- Do your drawing here
  81. text( "This utility converts images to code you can embed in your project", 290, 400 )
  82. text( "Library original", 100, 350 )
  83. sprite(img1,100,300)
  84. text( "Library copy", 100, 200 )
  85. sprite(img_new1,100,150)
  86. text( "Spritely original", 300, 350 )
  87. sprite(img2,300,300)
  88. text( "Spritely copy", 300, 200 )
  89. sprite(img_new2,300,150)
  90. text( "Image from code", 500, 200 )
  91. sprite(img_new3,500,150)
  92. end
  93.  
  94.  
  95. --# Coder
  96. Coder = class()
  97.  
  98. --This function encodes an image in two strings
  99. --the first string makes a list of unique color settings (r,g,b,a), encoded as an 8 char hex string
  100. --the second string runs through the image, through rows then columns, and every time the color changes,
  101. --it records the color setting and number of cells that had that color
  102. --NB it doesn't store the color setting as an 8 char hex string, imstead it stores the position of
  103. --this color in the first string. This saves a lot of storage where colors are used over and over again
  104.  
  105. function Coder:Encode(img)
  106. rows=img.height
  107. cols=img.width
  108. colors={} --hash table of unique colors, gives us their sequence in the unique list
  109. strCol="" --unique list of color settings, each one is 8 chars hex, for r,g,b,a
  110. str="" -- each item consists of a color setting (or rather, the position in strCol), and the number of
  111. --cells to be colored
  112. --for example, if the image starts with 56 cells with r=1,g=2,b=5,a=6, we will add the hex value of this,
  113. --which is 001002005006, to strCol, and set colors[001002005006]=1, (1 because this is the first color)
  114. --to str, we add the hex values of the string position, ie 1, and the number of cells, ie 56, so we will
  115. --add 001038 to str
  116.  
  117. prevColor=-1 --to tell us when the color changes
  118. count=0 --number of cells with current color
  119. colorCount=0 --number of colors used so far
  120. dataCount=0 --number of data units stored
  121. maxColors=256^3
  122. maxData=256^3
  123. --loop through image
  124. for i=1,cols do
  125. for j=1,rows do
  126. r,g,b,a=img:get(i,j)
  127. x=string.format("%02X%02X%02X%02X",r,g,b,a) --format color pattern as hex
  128. if x==prevColor then
  129. count=count+1
  130. else --color has changed, store details of last color
  131. if count>0 then --this will only be zero for the very first cell
  132. y=colors[prevColor] --this looks up the position of the color, in the color list
  133. if y==nil then --add the color to the list if no there
  134. colorCount = colorCount + 1
  135. if colorCount>maxColors then
  136. errMessage="Number of distinct color settings exceeds maximum of "..maxColors
  137. break
  138. end
  139. colors[prevColor]=colorCount
  140. strCol=strCol..prevColor
  141. y=colorCount
  142. end
  143. str=str..string.format("%03X",y)..string.format("%03X",count) --store the data
  144. dataCount = dataCount + 1
  145. if dataCount>maxData then
  146. errMessage="Image is too big/complex"
  147. break
  148. end
  149. end
  150. prevColor=x
  151. count=1
  152. end
  153. if errMessage~=nil then break end
  154. end
  155. if errMessage~=nil then break end
  156. end
  157. --we've finished, but we may have some left over chars that need to be stored
  158. if count>0 then
  159. y=colors[prevColor]
  160. if y==nil then
  161. colorCount = colorCount + 1
  162. colors[prevColor]=colorCount
  163. strCol=strCol..prevColor
  164. y=colorCount
  165. if colorCount>maxColors then
  166. errMessage="Number of distinct color settings exceeds maximum of "..maxColors
  167. end
  168. end
  169. str=str..string.format("%03X",y)..string.format("%03X",count)
  170. dataCount = dataCount + 1
  171. if dataCount>maxData then
  172. errMessage="Image is too big/complex"
  173. end
  174. end
  175. --create code for user
  176. if errMessage~=nil then
  177. print(errMessage)
  178. return errMessage,errMessage
  179. else
  180. print("img=Decoder:Decode("..rows..","..cols..",'"..strCol.."','"..str.."')")
  181. return strCol,str
  182. end
  183.  
  184.  
  185.  
  186. end
  187.  
  188.  
  189.  
  190.  
  191. --# Decoder
  192. Decoder = class()
  193.  
  194. function Decoder:Decode(rows,cols,strCol,strDat)
  195. local img=image(cols,rows)
  196. local n=0
  197. local m=0
  198. local arrR={}
  199. local arrG={}
  200. local arrB={}
  201. local arra={}
  202. --unpack color descriptions
  203. while n<string.len(strCol) do
  204. x=string.sub(strCol,n+1,n+8)
  205. m = m + 1
  206. arrR[m],arrG[m],arrB[m],arra[m]=Hex2RGB(x)
  207. n = n + 8
  208. end
  209. --unpack RLE content
  210. col=1
  211. row=0
  212. n=0
  213. while n<string.len(str) do
  214. colIndex=Hex2Dec(string.sub(str,n+1,n+3))
  215. colCount=Hex2Dec(string.sub(str,n+4,n+6))
  216. for u=1,colCount do
  217. row = row + 1
  218. if row>rows then col=col+1 row=1 end
  219. img:set(col,row,color(arrR[colIndex],arrG[colIndex],arrB[colIndex],arra[colIndex]))
  220. end
  221. n=n+6
  222. end
  223. return img
  224. end
  225.  
  226. function Hex2RGB(hex)
  227. local r=Hex2Dec(string.sub(hex,1,2))
  228. local g=Hex2Dec(string.sub(hex,3,4))
  229. local b=Hex2Dec(string.sub(hex,5,6))
  230. local a=Hex2Dec(string.sub(hex,7,8))
  231. --print (hex,r,g,b,a)
  232. return r,g,b,a
  233. end
  234.  
  235. function Hex2Dec(hex)
  236. return tonumber("0x"..hex,10)
  237. end
  238. --# IconImages
  239. --# IconImages
  240. IconImages = class()
  241.  
  242. -- Icon Images contains one of the sprite images used in MineSweeper.
  243. --
  244. -- It was drawn using Spritely, the pixel image editor
  245. -- included with Codea.
  246. --
  247. -- Version 1.1
  248.  
  249. function IconImages:getFlagCell()
  250. local img = image(32, 32)
  251. img:set(1,0,255,255,255,255)
  252. img:set(1,2,255,255,255,255)
  253. img:set(1,3,255,255,255,255)
  254. img:set(1,4,255,255,255,255)
  255. img:set(1,5,255,255,255,255)
  256. img:set(1,6,255,255,255,255)
  257. img:set(1,7,255,255,255,255)
  258. img:set(1,8,255,255,255,255)
  259. img:set(1,9,255,255,255,255)
  260. img:set(1,10,255,255,255,255)
  261. img:set(1,11,255,255,255,254)
  262. img:set(1,12,255,255,255,255)
  263. img:set(1,13,255,255,255,255)
  264. img:set(1,14,255,255,255,255)
  265. img:set(1,15,255,255,255,255)
  266. img:set(1,16,255,255,255,255)
  267. img:set(1,17,255,255,255,255)
  268. img:set(1,18,255,255,255,255)
  269. img:set(1,19,255,255,255,255)
  270. img:set(1,20,255,255,255,255)
  271. img:set(1,21,255,255,255,255)
  272. img:set(1,22,255,255,255,255)
  273. img:set(1,23,255,255,255,255)
  274. img:set(1,24,255,255,255,255)
  275. img:set(1,25,255,255,255,255)
  276. img:set(1,26,255,255,255,255)
  277. img:set(1,27,255,255,255,255)
  278. img:set(1,28,255,255,255,255)
  279. img:set(1,29,255,255,255,255)
  280. img:set(1,30,255,255,255,255)
  281. img:set(1,31,255,255,255,255)
  282. img:set(1,32,255,255,255,255)
  283. img:set(2,1,127,127,127,255)
  284. img:set(2,2,0,128,255,255)
  285. img:set(2,3,0,128,255,255)
  286. img:set(2,4,0,128,255,255)
  287. img:set(2,5,0,128,255,255)
  288. img:set(2,6,0,128,255,255)
  289. img:set(2,7,0,128,255,255)
  290. img:set(2,8,0,128,255,255)
  291. img:set(2,9,0,128,255,255)
  292. img:set(2,10,0,128,255,255)
  293. img:set(2,11,0,128,255,255)
  294. img:set(2,12,0,128,255,255)
  295. img:set(2,13,0,128,255,255)
  296. img:set(2,14,0,128,255,255)
  297. img:set(2,15,0,128,255,255)
  298. img:set(2,16,0,128,255,255)
  299. img:set(2,17,0,128,255,255)
  300. img:set(2,18,0,128,255,255)
  301. img:set(2,19,0,128,255,255)
  302. img:set(2,20,0,128,255,255)
  303. img:set(2,21,0,128,255,255)
  304. img:set(2,22,0,128,255,255)
  305. img:set(2,23,0,128,255,255)
  306. img:set(2,24,0,128,255,255)
  307. img:set(2,25,0,128,255,255)
  308. img:set(2,26,0,128,255,255)
  309. img:set(2,27,0,128,255,255)
  310. img:set(2,28,0,128,255,255)
  311. img:set(2,29,0,128,255,255)
  312. img:set(2,30,0,128,255,255)
  313. img:set(2,31,0,128,255,255)
  314. img:set(2,32,255,255,255,255)
  315. img:set(3,1,127,127,127,255)
  316. img:set(3,2,0,128,255,255)
  317. img:set(3,3,0,128,255,255)
  318. img:set(3,4,0,128,255,255)
  319. img:set(3,5,0,128,255,255)
  320. img:set(3,6,0,128,255,255)
  321. img:set(3,7,0,128,255,255)
  322. img:set(3,8,0,128,255,255)
  323. img:set(3,9,0,128,255,255)
  324. img:set(3,10,0,128,255,255)
  325. img:set(3,11,0,128,255,255)
  326. img:set(3,12,0,128,255,255)
  327. img:set(3,13,0,128,255,255)
  328. img:set(3,14,0,128,255,255)
  329. img:set(3,15,0,128,255,255)
  330. img:set(3,16,0,128,255,255)
  331. img:set(3,17,0,128,255,255)
  332. img:set(3,18,0,128,255,255)
  333. img:set(3,19,0,128,255,255)
  334. img:set(3,20,0,128,255,255)
  335. img:set(3,21,0,128,255,255)
  336. img:set(3,22,0,128,255,255)
  337. img:set(3,23,0,128,255,255)
  338. img:set(3,24,0,128,255,255)
  339. img:set(3,25,0,128,255,255)
  340. img:set(3,26,0,128,255,255)
  341. img:set(3,27,0,128,255,255)
  342. img:set(3,28,0,128,255,255)
  343. img:set(3,29,0,128,255,255)
  344. img:set(3,30,0,128,255,255)
  345. img:set(3,31,0,128,255,255)
  346. img:set(3,32,255,255,255,255)
  347. img:set(4,1,127,127,127,255)
  348. img:set(4,2,0,128,255,255)
  349. img:set(4,3,0,128,255,255)
  350. img:set(4,4,0,128,255,255)
  351. img:set(4,5,0,128,255,255)
  352. img:set(4,6,0,128,255,255)
  353. img:set(4,7,0,128,255,255)
  354. img:set(4,8,0,128,255,255)
  355. img:set(4,9,0,128,255,255)
  356. img:set(4,10,0,128,255,255)
  357. img:set(4,11,0,128,255,255)
  358. img:set(4,12,0,128,255,255)
  359. img:set(4,13,0,128,255,255)
  360. img:set(4,14,0,128,255,255)
  361. img:set(4,15,0,128,255,255)
  362. img:set(4,16,0,128,255,255)
  363. img:set(4,17,0,128,255,255)
  364. img:set(4,18,0,128,255,255)
  365. img:set(4,19,0,128,255,255)
  366. img:set(4,20,0,128,255,255)
  367. img:set(4,21,0,128,255,255)
  368. img:set(4,22,0,128,255,255)
  369. img:set(4,23,0,128,255,255)
  370. img:set(4,24,0,128,255,255)
  371. img:set(4,25,0,128,255,255)
  372. img:set(4,26,0,128,255,255)
  373. img:set(4,27,0,128,255,255)
  374. img:set(4,28,0,128,255,255)
  375. img:set(4,29,0,128,255,255)
  376. img:set(4,30,0,128,255,255)
  377. img:set(4,31,0,128,255,255)
  378. img:set(4,32,255,255,255,255)
  379. img:set(5,1,127,127,127,255)
  380. img:set(5,2,0,128,255,255)
  381. img:set(5,3,0,128,255,255)
  382. img:set(5,4,0,128,255,255)
  383. img:set(5,5,0,128,255,255)
  384. img:set(5,6,0,128,255,255)
  385. img:set(5,7,0,128,255,255)
  386. img:set(5,8,0,128,255,255)
  387. img:set(5,9,0,128,255,255)
  388. img:set(5,10,0,128,255,255)
  389. img:set(5,11,0,128,255,255)
  390. img:set(5,12,0,128,255,255)
  391. img:set(5,13,0,128,255,255)
  392. img:set(5,14,0,128,255,255)
  393. img:set(5,15,0,128,255,255)
  394. img:set(5,16,0,128,255,255)
  395. img:set(5,17,0,128,255,255)
  396. img:set(5,18,0,128,255,255)
  397. img:set(5,19,0,128,255,255)
  398. img:set(5,20,0,128,255,255)
  399. img:set(5,21,0,128,255,255)
  400. img:set(5,22,0,128,255,255)
  401. img:set(5,23,0,128,255,255)
  402. img:set(5,24,0,128,255,255)
  403. img:set(5,25,0,128,255,255)
  404. img:set(5,26,0,128,255,255)
  405. img:set(5,27,0,128,255,255)
  406. img:set(5,28,0,128,255,255)
  407. img:set(5,29,0,128,255,255)
  408. img:set(5,30,0,128,255,255)
  409. img:set(5,31,0,128,255,255)
  410. img:set(5,32,255,255,255,255)
  411. img:set(6,1,127,127,127,255)
  412. img:set(6,2,0,128,255,255)
  413. img:set(6,3,0,128,255,255)
  414. img:set(6,4,0,128,255,255)
  415. img:set(6,5,0,128,255,255)
  416. img:set(6,6,0,128,255,255)
  417. img:set(6,7,0,128,255,255)
  418. img:set(6,8,0,128,255,255)
  419. img:set(6,9,0,128,255,255)
  420. img:set(6,10,0,128,255,255)
  421. img:set(6,11,0,128,255,255)
  422. img:set(6,12,0,128,255,255)
  423. img:set(6,13,0,128,255,255)
  424. img:set(6,14,0,128,255,255)
  425. img:set(6,15,0,128,255,255)
  426. img:set(6,16,0,128,255,255)
  427. img:set(6,17,0,128,255,255)
  428. img:set(6,18,0,128,255,255)
  429. img:set(6,19,0,128,255,255)
  430. img:set(6,20,0,128,255,255)
  431. img:set(6,21,0,128,255,255)
  432. img:set(6,22,0,128,255,255)
  433. img:set(6,23,0,128,255,255)
  434. img:set(6,24,0,128,255,255)
  435. img:set(6,25,0,128,255,255)
  436. img:set(6,26,0,128,255,255)
  437. img:set(6,27,0,128,255,255)
  438. img:set(6,28,0,128,255,255)
  439. img:set(6,29,0,128,255,255)
  440. img:set(6,30,0,128,255,255)
  441. img:set(6,31,0,128,255,255)
  442. img:set(6,32,255,255,255,255)
  443. img:set(7,1,127,127,127,255)
  444. img:set(7,2,0,128,255,255)
  445. img:set(7,3,0,128,255,255)
  446. img:set(7,4,0,128,255,255)
  447. img:set(7,5,0,128,255,255)
  448. img:set(7,6,0,128,255,255)
  449. img:set(7,7,0,128,255,255)
  450. img:set(7,8,0,128,255,255)
  451. img:set(7,9,0,128,255,255)
  452. img:set(7,10,0,128,255,255)
  453. img:set(7,11,0,128,255,255)
  454. img:set(7,12,0,128,255,255)
  455. img:set(7,13,0,128,255,255)
  456. img:set(7,14,0,128,255,255)
  457. img:set(7,15,0,128,255,255)
  458. img:set(7,16,0,128,255,255)
  459. img:set(7,17,0,128,255,255)
  460. img:set(7,18,0,128,255,255)
  461. img:set(7,19,0,128,255,255)
  462. img:set(7,20,0,128,255,255)
  463. img:set(7,21,0,128,255,255)
  464. img:set(7,22,0,128,255,255)
  465. img:set(7,23,0,128,255,255)
  466. img:set(7,24,0,128,255,255)
  467. img:set(7,25,0,128,255,255)
  468. img:set(7,26,0,128,255,255)
  469. img:set(7,27,0,128,255,255)
  470. img:set(7,28,0,128,255,255)
  471. img:set(7,29,0,128,255,255)
  472. img:set(7,30,0,128,255,255)
  473. img:set(7,31,0,128,255,255)
  474. img:set(7,32,255,255,255,255)
  475. img:set(8,1,127,127,127,255)
  476. img:set(8,2,0,128,255,255)
  477. img:set(8,3,0,128,255,255)
  478. img:set(8,4,0,128,255,255)
  479. img:set(8,5,0,128,255,255)
  480. img:set(8,6,0,0,0,255)
  481. img:set(8,7,0,0,0,255)
  482. img:set(8,8,0,0,0,255)
  483. img:set(8,9,0,128,255,255)
  484. img:set(8,10,0,128,255,255)
  485. img:set(8,11,0,128,255,255)
  486. img:set(8,12,0,128,255,255)
  487. img:set(8,13,0,128,255,255)
  488. img:set(8,14,0,128,255,255)
  489. img:set(8,15,0,128,255,255)
  490. img:set(8,16,0,128,255,255)
  491. img:set(8,17,0,128,255,255)
  492. img:set(8,18,0,128,255,255)
  493. img:set(8,19,0,128,255,255)
  494. img:set(8,20,255,0,0,255)
  495. img:set(8,21,255,0,0,255)
  496. img:set(8,22,0,128,255,255)
  497. img:set(8,23,0,128,255,255)
  498. img:set(8,24,0,128,255,255)
  499. img:set(8,25,0,128,255,255)
  500. img:set(8,26,0,128,255,255)
  501. img:set(8,27,0,128,255,255)
  502. img:set(8,28,0,128,255,255)
  503. img:set(8,29,0,128,255,255)
  504. img:set(8,30,0,128,255,255)
  505. img:set(8,31,0,128,255,255)
  506. img:set(8,32,255,255,255,255)
  507. img:set(9,1,127,127,127,255)
  508. img:set(9,2,0,128,255,255)
  509. img:set(9,3,0,128,255,255)
  510. img:set(9,4,0,128,255,255)
  511. img:set(9,5,0,128,255,255)
  512. img:set(9,6,0,0,0,255)
  513. img:set(9,7,0,0,0,255)
  514. img:set(9,8,0,0,0,255)
  515. img:set(9,9,0,128,255,255)
  516. img:set(9,10,0,128,255,255)
  517. img:set(9,11,0,128,255,255)
  518. img:set(9,12,0,128,255,255)
  519. img:set(9,13,0,128,255,255)
  520. img:set(9,14,0,128,255,255)
  521. img:set(9,15,0,128,255,255)
  522. img:set(9,16,0,128,255,255)
  523. img:set(9,17,0,128,255,255)
  524. img:set(9,18,0,128,255,255)
  525. img:set(9,19,0,128,255,255)
  526. img:set(9,20,255,0,0,255)
  527. img:set(9,21,255,0,0,255)
  528. img:set(9,22,0,128,255,255)
  529. img:set(9,23,0,128,255,255)
  530. img:set(9,24,0,128,255,255)
  531. img:set(9,25,0,128,255,255)
  532. img:set(9,26,0,128,255,255)
  533. img:set(9,27,0,128,255,255)
  534. img:set(9,28,0,128,255,255)
  535. img:set(9,29,0,128,255,255)
  536. img:set(9,30,0,128,255,255)
  537. img:set(9,31,0,128,255,255)
  538. img:set(9,32,255,255,255,255)
  539. img:set(10,1,127,127,127,255)
  540. img:set(10,2,0,128,255,255)
  541. img:set(10,3,0,128,255,255)
  542. img:set(10,4,0,128,255,255)
  543. img:set(10,5,0,128,255,255)
  544. img:set(10,6,0,0,0,255)
  545. img:set(10,7,0,0,0,255)
  546. img:set(10,8,0,0,0,255)
  547. img:set(10,9,0,128,255,255)
  548. img:set(10,10,0,128,255,255)
  549. img:set(10,11,0,128,255,255)
  550. img:set(10,12,0,128,255,255)
  551. img:set(10,13,0,128,255,255)
  552. img:set(10,14,0,128,255,255)
  553. img:set(10,15,0,128,255,255)
  554. img:set(10,16,0,128,255,255)
  555. img:set(10,17,0,128,255,255)
  556. img:set(10,18,0,128,255,255)
  557. img:set(10,19,0,128,255,255)
  558. img:set(10,20,255,0,0,255)
  559. img:set(10,21,255,0,0,255)
  560. img:set(10,22,0,128,255,255)
  561. img:set(10,23,0,128,255,255)
  562. img:set(10,24,0,128,255,255)
  563. img:set(10,25,0,128,255,255)
  564. img:set(10,26,0,128,255,255)
  565. img:set(10,27,0,128,255,255)
  566. img:set(10,28,0,128,255,255)
  567. img:set(10,29,0,128,255,255)
  568. img:set(10,30,0,128,255,255)
  569. img:set(10,31,0,128,255,255)
  570. img:set(10,32,255,255,255,255)
  571. img:set(11,1,127,127,127,255)
  572. img:set(11,2,0,128,255,255)
  573. img:set(11,3,0,128,255,255)
  574. img:set(11,4,0,128,255,255)
  575. img:set(11,5,0,128,255,255)
  576. img:set(11,6,0,0,0,255)
  577. img:set(11,7,0,0,0,255)
  578. img:set(11,8,0,0,0,255)
  579. img:set(11,9,0,128,255,255)
  580. img:set(11,10,0,128,255,255)
  581. img:set(11,11,0,128,255,255)
  582. img:set(11,12,0,128,255,255)
  583. img:set(11,13,0,128,255,255)
  584. img:set(11,14,0,128,255,255)
  585. img:set(11,15,0,128,255,255)
  586. img:set(11,16,0,128,255,255)
  587. img:set(11,17,0,128,255,255)
  588. img:set(11,18,255,0,0,255)
  589. img:set(11,19,255,0,0,255)
  590. img:set(11,20,255,0,0,255)
  591. img:set(11,21,255,0,0,255)
  592. img:set(11,22,255,0,0,255)
  593. img:set(11,23,255,0,0,255)
  594. img:set(11,24,0,128,255,255)
  595. img:set(11,25,0,128,255,255)
  596. img:set(11,26,0,128,255,255)
  597. img:set(11,27,0,128,255,255)
  598. img:set(11,28,0,128,255,255)
  599. img:set(11,29,0,128,255,255)
  600. img:set(11,30,0,128,255,255)
  601. img:set(11,31,0,128,255,255)
  602. img:set(11,32,255,255,255,255)
  603. img:set(12,1,127,127,127,255)
  604. img:set(12,2,0,128,255,255)
  605. img:set(12,3,0,128,255,255)
  606. img:set(12,4,0,128,255,255)
  607. img:set(12,5,0,128,255,255)
  608. img:set(12,6,0,0,0,255)
  609. img:set(12,7,0,0,0,255)
  610. img:set(12,8,0,0,0,255)
  611. img:set(12,9,0,128,255,255)
  612. img:set(12,10,0,128,255,255)
  613. img:set(12,11,0,128,255,255)
  614. img:set(12,12,0,128,255,255)
  615. img:set(12,13,0,128,255,255)
  616. img:set(12,14,0,128,255,255)
  617. img:set(12,15,0,128,255,255)
  618. img:set(12,16,0,128,255,255)
  619. img:set(12,17,0,128,255,255)
  620. img:set(12,18,255,0,0,255)
  621. img:set(12,19,255,0,0,255)
  622. img:set(12,20,255,0,0,255)
  623. img:set(12,21,255,0,0,255)
  624. img:set(12,22,255,0,0,255)
  625. img:set(12,23,255,0,0,255)
  626. img:set(12,24,0,128,255,255)
  627. img:set(12,25,0,128,255,255)
  628. img:set(12,26,0,128,255,255)
  629. img:set(12,27,0,128,255,255)
  630. img:set(12,28,0,128,255,255)
  631. img:set(12,29,0,128,255,255)
  632. img:set(12,30,0,128,255,255)
  633. img:set(12,31,0,128,255,255)
  634. img:set(12,32,255,255,255,255)
  635. img:set(13,1,127,127,127,255)
  636. img:set(13,2,0,128,255,255)
  637. img:set(13,3,0,128,255,255)
  638. img:set(13,4,0,128,255,255)
  639. img:set(13,5,0,128,255,255)
  640. img:set(13,6,0,0,0,255)
  641. img:set(13,7,0,0,0,255)
  642. img:set(13,8,0,0,0,255)
  643. img:set(13,9,0,0,0,255)
  644. img:set(13,10,0,128,255,255)
  645. img:set(13,11,0,128,255,255)
  646. img:set(13,12,0,128,255,255)
  647. img:set(13,13,0,128,255,255)
  648. img:set(13,14,0,128,255,255)
  649. img:set(13,15,0,128,255,255)
  650. img:set(13,16,0,128,255,255)
  651. img:set(13,17,0,128,255,255)
  652. img:set(13,18,255,0,0,255)
  653. img:set(13,19,255,0,0,255)
  654. img:set(13,20,255,0,0,255)
  655. img:set(13,21,255,0,0,255)
  656. img:set(13,22,255,0,0,255)
  657. img:set(13,23,255,0,0,255)
  658. img:set(13,24,0,128,255,255)
  659. img:set(13,25,0,128,255,255)
  660. img:set(13,26,0,128,255,255)
  661. img:set(13,27,0,128,255,255)
  662. img:set(13,28,0,128,255,255)
  663. img:set(13,29,0,128,255,255)
  664. img:set(13,30,0,128,255,255)
  665. img:set(13,31,0,128,255,255)
  666. img:set(13,32,255,255,255,255)
  667. img:set(14,1,127,127,127,255)
  668. img:set(14,2,0,128,255,255)
  669. img:set(14,3,0,128,255,255)
  670. img:set(14,4,0,128,255,255)
  671. img:set(14,5,0,128,255,255)
  672. img:set(14,6,0,0,0,255)
  673. img:set(14,7,0,0,0,255)
  674. img:set(14,8,0,0,0,255)
  675. img:set(14,9,0,0,0,255)
  676. img:set(14,10,0,128,255,255)
  677. img:set(14,11,0,128,255,255)
  678. img:set(14,12,0,128,255,255)
  679. img:set(14,13,0,128,255,255)
  680. img:set(14,14,0,128,255,255)
  681. img:set(14,15,0,128,255,255)
  682. img:set(14,16,255,0,0,255)
  683. img:set(14,17,255,0,0,255)
  684. img:set(14,18,255,0,0,255)
  685. img:set(14,19,255,0,0,255)
  686. img:set(14,20,255,0,0,255)
  687. img:set(14,21,255,0,0,255)
  688. img:set(14,22,255,0,0,255)
  689. img:set(14,23,255,0,0,255)
  690. img:set(14,24,255,0,0,255)
  691. img:set(14,25,255,0,0,255)
  692. img:set(14,26,0,128,255,255)
  693. img:set(14,27,0,128,255,255)
  694. img:set(14,28,0,128,255,255)
  695. img:set(14,29,0,128,255,255)
  696. img:set(14,30,0,128,255,255)
  697. img:set(14,31,0,128,255,255)
  698. img:set(14,32,255,255,255,255)
  699. img:set(15,1,127,127,127,255)
  700. img:set(15,2,0,128,255,255)
  701. img:set(15,3,0,128,255,255)
  702. img:set(15,4,0,128,255,255)
  703. img:set(15,5,0,128,255,255)
  704. img:set(15,6,0,0,0,255)
  705. img:set(15,7,0,0,0,255)
  706. img:set(15,8,0,0,0,255)
  707. img:set(15,9,0,0,0,255)
  708. img:set(15,10,0,128,255,255)
  709. img:set(15,11,0,128,255,255)
  710. img:set(15,12,0,128,255,255)
  711. img:set(15,13,0,128,255,255)
  712. img:set(15,14,0,128,255,255)
  713. img:set(15,15,0,128,255,255)
  714. img:set(15,16,255,0,0,255)
  715. img:set(15,17,255,0,0,255)
  716. img:set(15,18,255,0,0,255)
  717. img:set(15,19,255,0,0,255)
  718. img:set(15,20,255,0,0,255)
  719. img:set(15,21,255,0,0,255)
  720. img:set(15,22,255,0,0,255)
  721. img:set(15,23,255,0,0,255)
  722. img:set(15,24,255,0,0,255)
  723. img:set(15,25,255,0,0,255)
  724. img:set(15,26,0,128,255,255)
  725. img:set(15,27,0,128,255,255)
  726. img:set(15,28,0,128,255,255)
  727. img:set(15,29,0,128,255,255)
  728. img:set(15,30,0,128,255,255)
  729. img:set(15,31,0,128,255,255)
  730. img:set(15,32,255,255,255,255)
  731. img:set(16,1,127,127,127,255)
  732. img:set(16,2,0,128,255,255)
  733. img:set(16,3,0,128,255,255)
  734. img:set(16,4,0,128,255,255)
  735. img:set(16,5,0,128,255,255)
  736. img:set(16,6,0,0,0,255)
  737. img:set(16,7,0,0,0,255)
  738. img:set(16,8,0,0,0,255)
  739. img:set(16,9,0,0,0,255)
  740. img:set(16,10,0,128,255,255)
  741. img:set(16,11,0,128,255,255)
  742. img:set(16,12,0,128,255,255)
  743. img:set(16,13,0,128,255,255)
  744. img:set(16,14,0,128,255,255)
  745. img:set(16,15,0,128,255,255)
  746. img:set(16,16,255,0,0,255)
  747. img:set(16,17,255,0,0,255)
  748. img:set(16,18,255,0,0,255)
  749. img:set(16,19,255,0,0,255)
  750. img:set(16,20,255,0,0,255)
  751. img:set(16,21,255,0,0,255)
  752. img:set(16,22,255,0,0,255)
  753. img:set(16,23,255,0,0,255)
  754. img:set(16,24,255,0,0,255)
  755. img:set(16,25,255,0,0,255)
  756. img:set(16,26,0,128,255,255)
  757. img:set(16,27,0,128,255,255)
  758. img:set(16,28,0,128,255,255)
  759. img:set(16,29,0,128,255,255)
  760. img:set(16,30,0,128,255,255)
  761. img:set(16,31,0,128,255,255)
  762. img:set(16,32,255,255,255,255)
  763. img:set(17,1,127,127,127,255)
  764. img:set(17,2,0,128,255,255)
  765. img:set(17,3,0,128,255,255)
  766. img:set(17,4,0,128,255,255)
  767. img:set(17,5,0,128,255,255)
  768. img:set(17,6,0,0,0,255)
  769. img:set(17,7,0,0,0,255)
  770. img:set(17,8,0,0,0,255)
  771. img:set(17,9,0,0,0,255)
  772. img:set(17,10,0,0,0,255)
  773. img:set(17,11,0,0,0,255)
  774. img:set(17,12,0,0,0,255)
  775. img:set(17,13,0,0,0,255)
  776. img:set(17,14,255,0,0,255)
  777. img:set(17,15,255,0,0,255)
  778. img:set(17,16,255,0,0,255)
  779. img:set(17,17,255,0,0,255)
  780. img:set(17,18,255,0,0,255)
  781. img:set(17,19,255,0,0,255)
  782. img:set(17,20,255,0,0,255)
  783. img:set(17,21,255,0,0,255)
  784. img:set(17,22,255,0,0,255)
  785. img:set(17,23,255,0,0,255)
  786. img:set(17,24,255,0,0,255)
  787. img:set(17,25,255,0,0,255)
  788. img:set(17,26,255,0,0,255)
  789. img:set(17,27,255,0,0,255)
  790. img:set(17,28,0,128,255,255)
  791. img:set(17,29,0,128,255,255)
  792. img:set(17,30,0,128,255,255)
  793. img:set(17,31,0,128,255,255)
  794. img:set(17,32,255,255,255,255)
  795. img:set(18,1,127,127,127,255)
  796. img:set(18,2,0,128,255,255)
  797. img:set(18,3,0,128,255,255)
  798. img:set(18,4,0,128,255,255)
  799. img:set(18,5,0,128,255,255)
  800. img:set(18,6,0,0,0,255)
  801. img:set(18,7,0,0,0,255)
  802. img:set(18,8,0,0,0,255)
  803. img:set(18,9,0,0,0,255)
  804. img:set(18,10,0,0,0,255)
  805. img:set(18,11,0,0,0,255)
  806. img:set(18,12,0,0,0,255)
  807. img:set(18,13,0,0,0,255)
  808. img:set(18,14,255,0,0,255)
  809. img:set(18,15,255,0,0,255)
  810. img:set(18,16,255,0,0,255)
  811. img:set(18,17,255,0,0,255)
  812. img:set(18,18,255,0,0,255)
  813. img:set(18,19,255,0,0,255)
  814. img:set(18,20,255,0,0,255)
  815. img:set(18,21,255,0,0,255)
  816. img:set(18,22,255,0,0,255)
  817. img:set(18,23,255,0,0,255)
  818. img:set(18,24,255,0,0,255)
  819. img:set(18,25,255,0,0,255)
  820. img:set(18,26,255,0,0,255)
  821. img:set(18,27,255,0,0,255)
  822. img:set(18,28,0,128,255,255)
  823. img:set(18,29,0,128,255,255)
  824. img:set(18,30,0,128,255,255)
  825. img:set(18,31,0,128,255,255)
  826. img:set(18,32,255,255,255,255)
  827. img:set(19,1,127,127,127,255)
  828. img:set(19,2,0,128,255,255)
  829. img:set(19,3,0,128,255,255)
  830. img:set(19,4,0,128,255,255)
  831. img:set(19,5,0,128,255,255)
  832. img:set(19,6,0,0,0,255)
  833. img:set(19,7,0,0,0,255)
  834. img:set(19,8,0,0,0,255)
  835. img:set(19,9,0,0,0,255)
  836. img:set(19,10,0,128,255,255)
  837. img:set(19,11,0,128,255,255)
  838. img:set(19,12,0,128,255,255)
  839. img:set(19,13,0,128,255,255)
  840. img:set(19,14,0,128,255,255)
  841. img:set(19,15,0,128,255,255)
  842. img:set(19,16,0,128,255,255)
  843. img:set(19,17,0,128,255,255)
  844. img:set(19,18,0,128,255,255)
  845. img:set(19,19,0,128,255,255)
  846. img:set(19,20,0,128,255,255)
  847. img:set(19,21,0,128,255,255)
  848. img:set(19,22,0,128,255,255)
  849. img:set(19,23,0,128,255,255)
  850. img:set(19,24,0,128,255,255)
  851. img:set(19,25,0,128,255,255)
  852. img:set(19,26,0,128,255,255)
  853. img:set(19,27,0,128,255,255)
  854. img:set(19,28,0,128,255,255)
  855. img:set(19,29,0,128,255,255)
  856. img:set(19,30,0,128,255,255)
  857. img:set(19,31,0,128,255,255)
  858. img:set(19,32,255,255,255,255)
  859. img:set(20,1,127,127,127,255)
  860. img:set(20,2,0,128,255,255)
  861. img:set(20,3,0,128,255,255)
  862. img:set(20,4,0,128,255,255)
  863. img:set(20,5,0,128,255,255)
  864. img:set(20,6,0,0,0,255)
  865. img:set(20,7,0,0,0,255)
  866. img:set(20,8,0,0,0,255)
  867. img:set(20,9,0,0,0,255)
  868. img:set(20,10,0,128,255,255)
  869. img:set(20,11,0,128,255,255)
  870. img:set(20,12,0,128,255,255)
  871. img:set(20,13,0,128,255,255)
  872. img:set(20,14,0,128,255,255)
  873. img:set(20,15,0,128,255,255)
  874. img:set(20,16,0,128,255,255)
  875. img:set(20,17,0,128,255,255)
  876. img:set(20,18,0,128,255,255)
  877. img:set(20,19,0,128,255,255)
  878. img:set(20,20,0,128,255,255)
  879. img:set(20,21,0,128,255,255)
  880. img:set(20,22,0,128,255,255)
  881. img:set(20,23,0,128,255,255)
  882. img:set(20,24,0,128,255,255)
  883. img:set(20,25,0,128,255,255)
  884. img:set(20,26,0,128,255,255)
  885. img:set(20,27,0,128,255,255)
  886. img:set(20,28,0,128,255,255)
  887. img:set(20,29,0,128,255,255)
  888. img:set(20,30,0,128,255,255)
  889. img:set(20,31,0,128,255,255)
  890. img:set(20,32,255,255,255,255)
  891. img:set(21,1,127,127,127,255)
  892. img:set(21,2,0,128,255,255)
  893. img:set(21,3,0,128,255,255)
  894. img:set(21,4,0,128,255,255)
  895. img:set(21,5,0,128,255,255)
  896. img:set(21,6,0,0,0,255)
  897. img:set(21,7,0,0,0,255)
  898. img:set(21,8,0,0,0,255)
  899. img:set(21,9,0,128,255,255)
  900. img:set(21,10,0,128,255,255)
  901. img:set(21,11,0,128,255,255)
  902. img:set(21,12,0,128,255,255)
  903. img:set(21,13,0,128,255,255)
  904. img:set(21,14,0,128,255,255)
  905. img:set(21,15,0,128,255,255)
  906. img:set(21,16,0,128,255,255)
  907. img:set(21,17,0,128,255,255)
  908. img:set(21,18,0,128,255,255)
  909. img:set(21,19,0,128,255,255)
  910. img:set(21,20,0,128,255,255)
  911. img:set(21,21,0,128,255,255)
  912. img:set(21,22,0,128,255,255)
  913. img:set(21,23,0,128,255,255)
  914. img:set(21,24,0,128,255,255)
  915. img:set(21,25,0,128,255,255)
  916. img:set(21,26,0,128,255,255)
  917. img:set(21,27,0,128,255,255)
  918. img:set(21,28,0,128,255,255)
  919. img:set(21,29,0,128,255,255)
  920. img:set(21,30,0,128,255,255)
  921. img:set(21,31,0,128,255,255)
  922. img:set(21,32,255,255,255,255)
  923. img:set(22,1,127,127,127,255)
  924. img:set(22,2,0,128,255,255)
  925. img:set(22,3,0,128,255,255)
  926. img:set(22,4,0,128,255,255)
  927. img:set(22,5,0,128,255,255)
  928. img:set(22,6,0,0,0,255)
  929. img:set(22,7,0,0,0,255)
  930. img:set(22,8,0,0,0,255)
  931. img:set(22,9,0,128,255,255)
  932. img:set(22,10,0,128,255,255)
  933. img:set(22,11,0,128,255,255)
  934. img:set(22,12,0,128,255,255)
  935. img:set(22,13,0,128,255,255)
  936. img:set(22,14,0,128,255,255)
  937. img:set(22,15,0,128,255,255)
  938. img:set(22,16,0,128,255,255)
  939. img:set(22,17,0,128,255,255)
  940. img:set(22,18,0,128,255,255)
  941. img:set(22,19,0,128,255,255)
  942. img:set(22,20,0,128,255,255)
  943. img:set(22,21,0,128,255,255)
  944. img:set(22,22,0,128,255,255)
  945. img:set(22,23,0,128,255,255)
  946. img:set(22,24,0,128,255,255)
  947. img:set(22,25,0,128,255,255)
  948. img:set(22,26,0,128,255,255)
  949. img:set(22,27,0,128,255,255)
  950. img:set(22,28,0,128,255,255)
  951. img:set(22,29,0,128,255,255)
  952. img:set(22,30,0,128,255,255)
  953. img:set(22,31,0,128,255,255)
  954. img:set(22,32,255,255,255,255)
  955. img:set(23,1,127,127,127,255)
  956. img:set(23,2,0,128,255,255)
  957. img:set(23,3,0,128,255,255)
  958. img:set(23,4,0,128,255,255)
  959. img:set(23,5,0,128,255,255)
  960. img:set(23,6,0,0,0,255)
  961. img:set(23,7,0,0,0,255)
  962. img:set(23,8,0,0,0,255)
  963. img:set(23,9,0,128,255,255)
  964. img:set(23,10,0,128,255,255)
  965. img:set(23,11,0,128,255,255)
  966. img:set(23,12,0,128,255,255)
  967. img:set(23,13,0,128,255,255)
  968. img:set(23,14,0,128,255,255)
  969. img:set(23,15,0,128,255,255)
  970. img:set(23,16,0,128,255,255)
  971. img:set(23,17,0,128,255,255)
  972. img:set(23,18,0,128,255,255)
  973. img:set(23,19,0,128,255,255)
  974. img:set(23,20,0,128,255,255)
  975. img:set(23,21,0,128,255,255)
  976. img:set(23,22,0,128,255,255)
  977. img:set(23,23,0,128,255,255)
  978. img:set(23,24,0,128,255,255)
  979. img:set(23,25,0,128,255,255)
  980. img:set(23,26,0,128,255,255)
  981. img:set(23,27,0,128,255,255)
  982. img:set(23,28,0,128,255,255)
  983. img:set(23,29,0,128,255,255)
  984. img:set(23,30,0,128,255,255)
  985. img:set(23,31,0,128,255,255)
  986. img:set(23,32,255,255,255,255)
  987. img:set(24,1,127,127,127,255)
  988. img:set(24,2,0,128,255,255)
  989. img:set(24,3,0,128,255,255)
  990. img:set(24,4,0,128,255,255)
  991. img:set(24,5,0,128,255,255)
  992. img:set(24,6,0,0,0,255)
  993. img:set(24,7,0,0,0,255)
  994. img:set(24,8,0,0,0,255)
  995. img:set(24,9,0,128,255,255)
  996. img:set(24,10,0,128,255,255)
  997. img:set(24,11,0,128,255,255)
  998. img:set(24,12,0,128,255,255)
  999. img:set(24,13,0,128,255,255)
  1000. img:set(24,14,0,128,255,255)
  1001. img:set(24,15,0,128,255,255)
  1002. img:set(24,16,0,128,255,255)
  1003. img:set(24,17,0,128,255,255)
  1004. img:set(24,18,0,128,255,255)
  1005. img:set(24,19,0,128,255,255)
  1006. img:set(24,20,0,128,255,255)
  1007. img:set(24,21,0,128,255,255)
  1008. img:set(24,22,0,128,255,255)
  1009. img:set(24,23,0,128,255,255)
  1010. img:set(24,24,0,128,255,255)
  1011. img:set(24,25,0,128,255,255)
  1012. img:set(24,26,0,128,255,255)
  1013. img:set(24,27,0,128,255,255)
  1014. img:set(24,28,0,128,255,255)
  1015. img:set(24,29,0,128,255,255)
  1016. img:set(24,30,0,128,255,255)
  1017. img:set(24,31,0,128,255,255)
  1018. img:set(24,32,255,255,255,255)
  1019. img:set(25,1,127,127,127,255)
  1020. img:set(25,2,0,128,255,255)
  1021. img:set(25,3,0,128,255,255)
  1022. img:set(25,4,0,128,255,255)
  1023. img:set(25,5,0,128,255,255)
  1024. img:set(25,6,0,0,0,255)
  1025. img:set(25,7,0,0,0,255)
  1026. img:set(25,8,0,0,0,255)
  1027. img:set(25,9,0,128,255,255)
  1028. img:set(25,10,0,128,255,255)
  1029. img:set(25,11,0,128,255,255)
  1030. img:set(25,12,0,128,255,255)
  1031. img:set(25,13,0,128,255,255)
  1032. img:set(25,14,0,128,255,255)
  1033. img:set(25,15,0,128,255,255)
  1034. img:set(25,16,0,128,255,255)
  1035. img:set(25,17,0,128,255,255)
  1036. img:set(25,18,0,128,255,255)
  1037. img:set(25,19,0,128,255,255)
  1038. img:set(25,20,0,128,255,255)
  1039. img:set(25,21,0,128,255,255)
  1040. img:set(25,22,0,128,255,255)
  1041. img:set(25,23,0,128,255,255)
  1042. img:set(25,24,0,128,255,255)
  1043. img:set(25,25,0,128,255,255)
  1044. img:set(25,26,0,128,255,255)
  1045. img:set(25,27,0,128,255,255)
  1046. img:set(25,28,0,128,255,255)
  1047. img:set(25,29,0,128,255,255)
  1048. img:set(25,30,0,128,255,255)
  1049. img:set(25,31,0,128,255,255)
  1050. img:set(25,32,255,255,255,255)
  1051. img:set(26,1,127,127,127,255)
  1052. img:set(26,2,0,128,255,255)
  1053. img:set(26,3,0,128,255,255)
  1054. img:set(26,4,0,128,255,255)
  1055. img:set(26,5,0,128,255,255)
  1056. img:set(26,6,0,128,255,255)
  1057. img:set(26,7,0,128,255,255)
  1058. img:set(26,8,0,128,255,255)
  1059. img:set(26,9,0,128,255,255)
  1060. img:set(26,10,0,128,255,255)
  1061. img:set(26,11,0,128,255,255)
  1062. img:set(26,12,0,128,255,255)
  1063. img:set(26,13,0,128,255,255)
  1064. img:set(26,14,0,128,255,255)
  1065. img:set(26,15,0,128,255,255)
  1066. img:set(26,16,0,128,255,255)
  1067. img:set(26,17,0,128,255,255)
  1068. img:set(26,18,0,128,255,255)
  1069. img:set(26,19,0,128,255,255)
  1070. img:set(26,20,0,128,255,255)
  1071. img:set(26,21,0,128,255,255)
  1072. img:set(26,22,0,128,255,255)
  1073. img:set(26,23,0,128,255,255)
  1074. img:set(26,24,0,128,255,255)
  1075. img:set(26,25,0,128,255,255)
  1076. img:set(26,26,0,128,255,255)
  1077. img:set(26,27,0,128,255,255)
  1078. img:set(26,28,0,128,255,255)
  1079. img:set(26,29,0,128,255,255)
  1080. img:set(26,30,0,128,255,255)
  1081. img:set(26,31,0,128,255,255)
  1082. img:set(26,32,255,255,255,255)
  1083. img:set(27,1,127,127,127,255)
  1084. img:set(27,2,0,128,255,255)
  1085. img:set(27,3,0,128,255,255)
  1086. img:set(27,4,0,128,255,255)
  1087. img:set(27,5,0,128,255,255)
  1088. img:set(27,6,0,128,255,255)
  1089. img:set(27,7,0,128,255,255)
  1090. img:set(27,8,0,128,255,255)
  1091. img:set(27,9,0,128,255,255)
  1092. img:set(27,10,0,128,255,255)
  1093. img:set(27,11,0,128,255,255)
  1094. img:set(27,12,0,128,255,255)
  1095. img:set(27,13,0,128,255,255)
  1096. img:set(27,14,0,128,255,255)
  1097. img:set(27,15,0,128,255,255)
  1098. img:set(27,16,0,128,255,255)
  1099. img:set(27,17,0,128,255,255)
  1100. img:set(27,18,0,128,255,255)
  1101. img:set(27,19,0,128,255,255)
  1102. img:set(27,20,0,128,255,255)
  1103. img:set(27,21,0,128,255,255)
  1104. img:set(27,22,0,128,255,255)
  1105. img:set(27,23,0,128,255,255)
  1106. img:set(27,24,0,128,255,255)
  1107. img:set(27,25,0,128,255,255)
  1108. img:set(27,26,0,128,255,255)
  1109. img:set(27,27,0,128,255,255)
  1110. img:set(27,28,0,128,255,255)
  1111. img:set(27,29,0,128,255,255)
  1112. img:set(27,30,0,128,255,255)
  1113. img:set(27,31,0,128,255,255)
  1114. img:set(27,32,255,255,255,255)
  1115. img:set(28,1,127,127,127,255)
  1116. img:set(28,2,0,128,255,255)
  1117. img:set(28,3,0,128,255,255)
  1118. img:set(28,4,0,128,255,255)
  1119. img:set(28,5,0,128,255,255)
  1120. img:set(28,6,0,128,255,255)
  1121. img:set(28,7,0,128,255,255)
  1122. img:set(28,8,0,128,255,255)
  1123. img:set(28,9,0,128,255,255)
  1124. img:set(28,10,0,128,255,255)
  1125. img:set(28,11,0,128,255,255)
  1126. img:set(28,12,0,128,255,255)
  1127. img:set(28,13,0,128,255,255)
  1128. img:set(28,14,0,128,255,255)
  1129. img:set(28,15,0,128,255,255)
  1130. img:set(28,16,0,128,255,255)
  1131. img:set(28,17,0,128,255,255)
  1132. img:set(28,18,0,128,255,255)
  1133. img:set(28,19,0,128,255,255)
  1134. img:set(28,20,0,128,255,255)
  1135. img:set(28,21,0,128,255,255)
  1136. img:set(28,22,0,128,255,255)
  1137. img:set(28,23,0,128,255,255)
  1138. img:set(28,24,0,128,255,255)
  1139. img:set(28,25,0,128,255,255)
  1140. img:set(28,26,0,128,255,255)
  1141. img:set(28,27,0,128,255,255)
  1142. img:set(28,28,0,128,255,255)
  1143. img:set(28,29,0,128,255,255)
  1144. img:set(28,30,0,128,255,255)
  1145. img:set(28,31,0,128,255,255)
  1146. img:set(28,32,255,255,255,255)
  1147. img:set(29,1,127,127,127,255)
  1148. img:set(29,2,0,128,255,255)
  1149. img:set(29,3,0,128,255,255)
  1150. img:set(29,4,0,128,255,255)
  1151. img:set(29,5,0,128,255,255)
  1152. img:set(29,6,0,128,255,255)
  1153. img:set(29,7,0,128,255,255)
  1154. img:set(29,8,0,128,255,255)
  1155. img:set(29,9,0,128,255,255)
  1156. img:set(29,10,0,128,255,255)
  1157. img:set(29,11,0,128,255,255)
  1158. img:set(29,12,0,128,255,255)
  1159. img:set(29,13,0,128,255,255)
  1160. img:set(29,14,0,128,255,255)
  1161. img:set(29,15,0,128,255,255)
  1162. img:set(29,16,0,128,255,255)
  1163. img:set(29,17,0,128,255,255)
  1164. img:set(29,18,0,128,255,255)
  1165. img:set(29,19,0,128,255,255)
  1166. img:set(29,20,0,128,255,255)
  1167. img:set(29,21,0,128,255,255)
  1168. img:set(29,22,0,128,255,255)
  1169. img:set(29,23,0,128,255,255)
  1170. img:set(29,24,0,128,255,255)
  1171. img:set(29,25,0,128,255,255)
  1172. img:set(29,26,0,128,255,255)
  1173. img:set(29,27,0,128,255,255)
  1174. img:set(29,28,0,128,255,255)
  1175. img:set(29,29,0,128,255,255)
  1176. img:set(29,30,0,128,255,255)
  1177. img:set(29,31,0,128,255,255)
  1178. img:set(29,32,255,255,255,255)
  1179. img:set(30,1,127,127,127,255)
  1180. img:set(30,2,0,128,255,255)
  1181. img:set(30,3,0,128,255,255)
  1182. img:set(30,4,0,128,255,255)
  1183. img:set(30,5,0,128,255,255)
  1184. img:set(30,6,0,128,255,255)
  1185. img:set(30,7,0,128,255,255)
  1186. img:set(30,8,0,128,255,255)
  1187. img:set(30,9,0,128,255,255)
  1188. img:set(30,10,0,128,255,255)
  1189. img:set(30,11,0,128,255,255)
  1190. img:set(30,12,0,128,255,255)
  1191. img:set(30,13,0,128,255,255)
  1192. img:set(30,14,0,128,255,255)
  1193. img:set(30,15,0,128,255,255)
  1194. img:set(30,16,0,128,255,255)
  1195. img:set(30,17,0,128,255,255)
  1196. img:set(30,18,0,128,255,255)
  1197. img:set(30,19,0,128,255,255)
  1198. img:set(30,20,0,128,255,255)
  1199. img:set(30,21,0,128,255,255)
  1200. img:set(30,22,0,128,255,255)
  1201. img:set(30,23,0,128,255,255)
  1202. img:set(30,24,0,128,255,255)
  1203. img:set(30,25,0,128,255,255)
  1204. img:set(30,26,0,128,255,255)
  1205. img:set(30,27,0,128,255,255)
  1206. img:set(30,28,0,128,255,255)
  1207. img:set(30,29,0,128,255,255)
  1208. img:set(30,30,0,128,255,255)
  1209. img:set(30,31,0,128,255,255)
  1210. img:set(30,32,255,255,255,255)
  1211. img:set(31,1,127,127,127,255)
  1212. img:set(31,2,0,128,255,255)
  1213. img:set(31,3,0,128,255,255)
  1214. img:set(31,4,0,128,255,255)
  1215. img:set(31,5,0,128,255,255)
  1216. img:set(31,6,0,128,255,255)
  1217. img:set(31,7,0,128,255,255)
  1218. img:set(31,8,0,128,255,255)
  1219. img:set(31,9,0,128,255,255)
  1220. img:set(31,10,0,128,255,255)
  1221. img:set(31,11,0,128,255,255)
  1222. img:set(31,12,0,128,255,255)
  1223. img:set(31,13,0,128,255,255)
  1224. img:set(31,14,0,128,255,255)
  1225. img:set(31,15,0,128,255,255)
  1226. img:set(31,16,0,128,255,255)
  1227. img:set(31,17,0,128,255,255)
  1228. img:set(31,18,0,128,255,255)
  1229. img:set(31,19,0,128,255,255)
  1230. img:set(31,20,0,128,255,255)
  1231. img:set(31,21,0,128,255,255)
  1232. img:set(31,22,0,128,255,255)
  1233. img:set(31,23,0,128,255,255)
  1234. img:set(31,24,0,128,255,255)
  1235. img:set(31,25,0,128,255,255)
  1236. img:set(31,26,0,128,255,255)
  1237. img:set(31,27,0,128,255,255)
  1238. img:set(31,28,0,128,255,255)
  1239. img:set(31,29,0,128,255,255)
  1240. img:set(31,30,0,128,255,255)
  1241. img:set(31,31,0,128,255,255)
  1242. img:set(31,32,255,255,255,255)
  1243. img:set(32,1,127,127,127,255)
  1244. img:set(32,2,127,127,127,255)
  1245. img:set(32,3,127,127,127,255)
  1246. img:set(32,4,127,127,127,255)
  1247. img:set(32,5,127,127,127,255)
  1248. img:set(32,6,127,127,127,255)
  1249. img:set(32,7,127,127,127,255)
  1250. img:set(32,8,127,127,127,255)
  1251. img:set(32,9,127,127,127,255)
  1252. img:set(32,10,127,127,127,255)
  1253. img:set(32,11,127,127,127,255)
  1254. img:set(32,12,127,127,127,255)
  1255. img:set(32,13,127,127,127,255)
  1256. img:set(32,14,127,127,127,255)
  1257. img:set(32,15,127,127,127,255)
  1258. img:set(32,16,127,127,127,255)
  1259. img:set(32,17,127,127,127,255)
  1260. img:set(32,18,127,127,127,255)
  1261. img:set(32,19,127,127,127,255)
  1262. img:set(32,20,127,127,127,255)
  1263. img:set(32,21,127,127,127,255)
  1264. img:set(32,22,127,127,127,255)
  1265. img:set(32,23,127,127,127,255)
  1266. img:set(32,24,127,127,127,255)
  1267. img:set(32,25,127,127,127,255)
  1268. img:set(32,26,127,127,127,255)
  1269. img:set(32,27,127,127,127,255)
  1270. img:set(32,28,127,127,127,255)
  1271. img:set(32,29,127,127,127,255)
  1272. img:set(32,30,127,127,127,255)
  1273. img:set(32,31,127,127,127,255)
  1274. img:set(32,32,255,255,255,255)
  1275. return img
  1276. end
  1277.  
  1278. --# Test
  1279. Test=class()
  1280.  
  1281. function Test:Decode()
  1282.  
  1283. --code produced by RLE Coder
  1284. img=Decoder:Decode(32,32,'00000000FFFFFFFFFFFFFFFE7F7F7FFF0080FFFF000000FFFF0000FF','00100100200900300100201500400100501E00200100400100501E00200100400100501E00200100400100501E00200100400100501E00200100400100501E00200100400100500400600300500B00700200500A00200100400100500400600300500B00700200500A00200100400100500400600300500B00700200500A00200100400100500400600300500900700600500800200100400100500400600300500900700600500800200100400100500400600400500800700600500800200100400100500400600400500600700A00500600200100400100500400600400500600700A00500600200100400100500400600400500600700A00500600200100400100500400600800700E00500400200100400100500400600800700E00500400200100400100500400600400501600200100400100500400600400501600200100400100500400600300501700200100400100500400600300501700200100400100500400600300501700200100400100500400600300501700200100400100500400600300501700200100400100501E00200100400100501E00200100400100501E00200100400100501E00200100400100501E00200100400100501E00200100401F002001')
  1285. --end of code
  1286.  
  1287. return img
  1288.  
  1289. end
');