File: blk03404.txt
c/Foundry USA Pool #dropgold/ 'wwwwwwwwwwwwwwwwwwwww= <?xml version="1.0" encoding="UTF-8"?> <svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8"> <!--puzzlords.com s1p0026/4096 3,0,0,1,0 ~0.4807242916431278--> <style type="text/css"> polyline{stroke:#000;stroke-width:0.15} <rect fill="#767C89" width="100%" height="100%"/> <polyline fill="#F2F652" points="0,8 6,7 6,7 0,0 "/> <polyline fill="#52F6A8" points="8,0 2,7 3,6 8,8 "/> <polyline fill="#52F6A8" points="8,8 2,6 3,6 0,8 "/> <polyline fill="#36EEE0" points="0,0 7,3 7,4 8,0 "/> text/plain;charset=utf-8 yhttp://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmpM .did:8047d0d8-2724-4e57-89e1-a5a167d200af" xmpMM:DocumentID="xmp.did:9F5606DD92E111ED8BE1DEE42A5D3B20" xmpMM:InstanceID="xmp.iid:9F5606DC92E111ED8BE1DEE42A5D3B20" xmp:CreatorTool="Adobe Photoshop 24.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:1905EE1492DF11ED8BE1DEE42A5D3B20" stRef:documentID="xmp.did:1905EE1592DF11ED8BE1DEE42A5D3B20"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> //33//@@@@@@@@@@@@@@@ #0+.'''.+550055@@?@@@@@@@@@@@@ yhttp://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmpM .did:8047d0d8-2724-4e57-89e1-a5a167d200af" xmpMM:DocumentID="xmp.did:9F5606E192E111ED8BE1DEE42A5D3B20" xmpMM:InstanceID="xmp.iid:9F5606E092E111ED8BE1DEE42A5D3B20" xmp:CreatorTool="Adobe Photoshop 24.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:1905EE1892DF11ED8BE1DEE42A5D3B20" stRef:documentID="xmp.did:1905EE1992DF11ED8BE1DEE42A5D3B20"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> //33//@@@@@@@@@@@@@@@ #0+.'''.+550055@@?@@@@@@@@@@@@ yhttp://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmpM .did:8047d0d8-2724-4e57-89e1-a5a167d200af" xmpMM:DocumentID="xmp.did:9F5606E592E111ED8BE1DEE42A5D3B20" xmpMM:InstanceID="xmp.iid:9F5606E492E111ED8BE1DEE42A5D3B20" xmp:CreatorTool="Adobe Photoshop 24.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:1905EE1C92DF11ED8BE1DEE42A5D3B20" stRef:documentID="xmp.did:1905EE1D92DF11ED8BE1DEE42A5D3B20"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> //33//@@@@@@@@@@@@@@@ #0+.'''.+550055@@?@@@@@@@@@@@@ yhttp://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmpM .did:8047d0d8-2724-4e57-89e1-a5a167d200af" xmpMM:DocumentID="xmp.did:58EBC8C892DF11ED8BE1DEE42A5D3B20" xmpMM:InstanceID="xmp.iid:58EBC8C792DF11ED8BE1DEE42A5D3B20" xmp:CreatorTool="Adobe Photoshop 24.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:1FE37FDF92DE11ED8BE1DEE42A5D3B20" stRef:documentID="xmp.did:1FE37FE092DE11ED8BE1DEE42A5D3B20"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> //33//@@@@@@@@@@@@@@@ #0+.'''.+550055@@?@@@@@@@@@@@@ yhttp://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmpM .did:8047d0d8-2724-4e57-89e1-a5a167d200af" xmpMM:DocumentID="xmp.did:66F93BAE92E111ED8BE1DEE42A5D3B20" xmpMM:InstanceID="xmp.iid:66F93BAD92E111ED8BE1DEE42A5D3B20" xmp:CreatorTool="Adobe Photoshop 24.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:B442925992DE11ED8BE1DEE42A5D3B20" stRef:documentID="xmp.did:B442925A92DE11ED8BE1DEE42A5D3B20"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> //33//@@@@@@@@@@@@@@@ #0+.'''.+550055@@?@@@@@@@@@@@@ yhttp://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmpM .did:8047d0d8-2724-4e57-89e1-a5a167d200af" xmpMM:DocumentID="xmp.did:D1271A5492E111ED8BE1DEE42A5D3B20" xmpMM:InstanceID="xmp.iid:D1271A5392E111ED8BE1DEE42A5D3B20" xmp:CreatorTool="Adobe Photoshop 24.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:58EBC8BF92DF11ED8BE1DEE42A5D3B20" stRef:documentID="xmp.did:58EBC8C092DF11ED8BE1DEE42A5D3B20"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> //33//@@@@@@@@@@@@@@@ #0+.'''.+550055@@?@@@@@@@@@@@@ yhttp://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmpM .did:8047d0d8-2724-4e57-89e1-a5a167d200af" xmpMM:DocumentID="xmp.did:66F93BAA92E111ED8BE1DEE42A5D3B20" xmpMM:InstanceID="xmp.iid:66F93BA992E111ED8BE1DEE42A5D3B20" xmp:CreatorTool="Adobe Photoshop 24.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:B442925592DE11ED8BE1DEE42A5D3B20" stRef:documentID="xmp.did:B442925692DE11ED8BE1DEE42A5D3B20"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> //33//@@@@@@@@@@@@@@@ #0+.'''.+550055@@?@@@@@@@@@@@@ text/plain;charset=utf-8 : : ,, # ; ```````````````````````````````````````` https://www.ordinalbitcorns.com/ https://twitter.com/BitCornOrdinals Inscribed by @hash_bendeM 1: 0e10efe499574b7c495a97498abd53c62d2701054d4618de53e9d4f2fbc41dd8i0 #49374 2: 757b3ca1e1c64de6ae88bb949bc2fbe90876d830a409e4d79bdb54e4037dc3d2i0 #49373 3: ae63b389450d34d9ec03b0b777d0215ef03cd047596b8b82260a055e89f749b5i0 #49358 4: 2978ddba33998df77bd525fdc24f93df63b340d40701fb6180a89e2754e77c69i0 #49309 5: 2b654b26bc8a0162ea6923f58a5d9694a93a4b6548be2d1f198340f5696ce93ei0 #49210 6: 6cbd5346ed7eb3d90dba3e70c8608209eef07ba190119c21ed18c4e41a25814fi0 #49219 7: ffc71f97255a96eee2cac087a4f4ba19e89f016479409e5cf087M 130166c7f2e4i0 #49445 8: 7a887e27411e41261889e239639b1d18965e6f5e0d57afdcaf623acae695d25ai0 #49304 9: b0e005ac492e50b37cf78f6b7e87561664f0ec86e0ea8aa6e22bbdfffc3943cfi0 #49371 10: 00e5c1bca1616d00d666322dea2c46f63094b0ee5cd6e54d2d0a4453a72acf2ei0 #49201 11: 9c367b0faa7ee89773f554bfee975302cb6eeec9e36d900dd396e700180cf0e8i0 #49447 12: 56a28c419cfaa10b68a2e147e530e4f130f361f5809b7bd4dcd3fdb92303e5f8i0 #49458 13: 8840d24e406e215d1a5a054a5fefcf7ed15e1cd1bba98fadd82d3f6a3d4c7e4ci0 #49217 14: e6f351d32c1da291355406831c2cM 8137319f4206265405add24eaeb155cf2dddi0 #49377 15: 858cd8e7e0f11da7bb30d83f5832ada403603c851b9a678828140f997164df30i0 #49204 16: 4341c61d41a3e742a9bf307a890009817a00310807319bf83df41708bd9ad039i0 #49208 17: e4ea8ad1ca16a611092d37272e9404a53a2136160c2da6470aa36e74351090dci0 #49376 18: f3b8ca2a398315092e9a1d59c2f31ce9651d16ff1654eb38687a547c5df5c929i0 #49195 19: 99282f87fe119f85cfc51ae1d935f5c2734f82ffbe3a6ea9c4cba4d12c91df45i0 #49213 20: be0d7bfd06505b19b0889758b3d710c426bab7713ae26aa134b02f9a8b7ec174i0 #49318 3e0766a106beaf8909389b52940cc0ad7cd22b80f8812b93b6a4aa995aea0di0 #49183 22: a50795353958c684ed147a8851f7e7ab78631d33c7dc1308d8e0d3af90b7aff4i0 #49453 23: 4a896a4a55cf53ca571515a8df0b762e2aa34dfef3366c1e2458a151614f6594i0 #49334 24: f4b2d68f274a6baad52282c6905701866bfc6573f0bc3da88cb86996feff5faai0 #49349 25: 088190832e0e3027138c17b1be558064373e8b6a2c57aea20cacf3bb188552c6i0 #49366 26: 14a31f8c3db2a396678de29fb481e666edc6ec66c317ac1c9da21f3c0585988ai0 #49327 27: a47dd4419dd32472b1cbc205e0405587fccc1e299cff782499a344M 28: b67b0d353fa3b4e8afa3057ed58c7240518d7f4c5f8d076a4fa5e1a4639adfbei0 #49361 29: d15c0452499395e2fcce7bc6c4f5230baf75e8903c971c9b8036c31df2686751i0 #49221 30: 2206e1725749199f60563364913e8a67813126ed8c0efcd77b051f17aae388a3i0 #49346 31: 61beec8ebf4127dd282843c3dd4685649a0a9d84bbf6ddd4e88daefa77c9ac0fi0 #49186 32: 26f864390cc239bac63f061cce21affa5648a172f20bced5c800df06d09af776i0 #49319 33: c4b0177eba7469e79b61d4c41be2a2889223c97570467d46b6549f2b7ff500e5i0 #49446 34: d221de399bbf01996e21ef34c94aM 6e5de7a2df06cd8b3a4d4070afdf3422e07bi0 #49321 35: a1d356cba9534f06c19febb4984d6272031b0030fc66c266de383a7d93ff66c8i0 #49368 36: 161c3545091d9a076cad501b7b40051ced9a21eb1e6676730a5b6fb013557faai0 #49350 37: 2762567b7d3e17d037a5f1eee48821e524b3c44511a32728ebc818b1af36dec1i0 #49364 38: 5eb4a484e7f88e0c29415867a663cd219fea73b74c3d8bb16905fb6d4f10e758i0 #49222 39: d38d770831bac2830fbd3818177e536954adf2388bba75581d3444e7331fb0aai0 #49351 40: 9299bfce81c0fde438989126ff06c4dd4af49fc9b7e46c37f30016e1c49e64c4i0 #49365 0f4abbb7b116e5e25248c1f131ec16507b3944c3cd55815a1d803762a15e01i0 #49177 42: 81715a063c3164c48225ce0ee58f64c76d214f0a116fb3d93e7947da49124621i0 #49191 43: 4a4e6e9edfa8543c904bcbee58cebc266db970bdb53dfe6ec31db533a8b19506i0 #49179 44: ee81551b9b0c182005efaa24f09d8ee3d6b5ae719f699b6c45b81138b7b791a2i0 #49343 45: 331ebee35d9abdae9c60c2ca9998304ffa4427dad938fa74ed9e05acce238e9ei0 #49339 46: d73c40dc24db2e650acf71c0575f62ccb424f5eeac7786f75b9e3c5ce9ec5845i0 #49212 47: 44247b56fa6104ac137f82177b783da1df58f7d90c8f46273666b3M 48: 99abc56087993502ebd123a94bf6ca241fec4f4d7d5cd45ac41fddeabfb7c42bi0 #49196 49: 8a2860d80be4da649c6c3faf9ebe203dfeac39090709e35cf0fb7ad52f15c94fi0 #49220 50: 2f1b713422c1c56a1384e7a92f8754c37a5e5d5ab4f5c97831a6dae2db220178i0 #49320 51: c5ae5b916f624779581562fb1bf21eba95141c8506de20d355e32e3120e8eaafi0 #49356 52: 1341dcba3af5b93bf4daeebc3372bfeaebb5db44f4c93341c34a28dcfc257792i0 #49332 53: 2c9c8eae2a179853f9e417ce331d4f7ebd2bf4c145e8f15d62bbdf82386c7d4ci0 #49216 54: 1023783c6ddbb85cb57d5df70908M 36a56ee62f4e5e32df11366c28614c0c5f93i0 #49333 55: fdf76ed6b429566d414700bc8cfe91bb8222c55fe0cdb248f4d1c454faa2e5bfi0 #49362 56: f8b6321ab47b5d68eda426fdb45cff21e3291d8b42d6d23e39dd8153096d46afi0 #49355 57: f26e40e31b3c9973cfe079a6393c30fd26ac2550e42d3a8012096892711375a3i0 #49345 58: 63cba2453cba5ceddaff666bdb64deea9f1e6c1cd105f1b27f6d703671a6db4ci0 #49218 59: 8967033e1b91b475296d1e203c41a1293518d2fb24efa55f5bfc55b6e2be8e83i0 #49325 60: ac31714b0c17afb59e2062a13cc2b520f24ba85d4b9c30a2ca7c2e3fd07b856fi0 #49315 db86238f41eaefadb0910e0c5715fbba6b4ebf7f13f7f70e8b84e2e1d07c6di0 #49313 62: 09e25f373fb11f7097b6dc7784b53228e448c1f5b708def0738fad55d2eed2bdi0 #49360 63: 216611e1614f3a5c83849bec42b2421b582d944aaad9ca0bbf15914f0ad29ceci0 #49448 64: 7b21bc4164f5c6507b0b5c941acdacefea0d30846d111ace9580749f154ce5a4i0 #49347 65: 6a4ec497320cbba4548c5de7adb9c3635a7a5bc2b88fe97b9f131f61954b0f49i0 #49214 66: abe273cb7fdf712b12737935057e2e57317c28a1569f71e38e7c82d9c90f3be3i0 #49444 67: d9b3f1302d8dc7aa6b203452dd990f135d03cc9a88319b3388f8bcM 68: 2d30eeeaa262fa15eee92fd83db8c15b66b75e55331e5dff91fbe740954e3d98i0 #49337 69: 309d52cfc4c6248ce33050e1bbcf9572615e7c9ec98e375de245d00a15f5f207i0 #49180 70: 4df627c042b96e8a13ec2c93f82ca03d9fe4337d45e7c181214ac1ffe000f5ddi0 #49378 71: f8f3f2aab1c444c5411fe7aba2c41ce1e7ffd51c3399bfd934228b68330e2fdci0 #48785 72: f3ea4c691b0ac310fd601deb077a4ce2181a410661c1120d98253948d7d09016i0 #48821 73: 82ce39cc1a54c37ed92a09d5954c664fa697a9b82d73048af73eb902c79be66di0 #49314 74: 36c0ab8ee064d5a3412fbbeeea7eM 8a1a36a785dbd6a7551fbd1dcb3481cc95adi0 #49354 75: 73b23b7351d5b4e815357262889fca46379feec778e261083b92305b7901cf8ei0 #49331 76: cf911e0c270ddaf45ef456225397e9cda035017bccc302e06b683690f6c60483i0 #48858 77: b8d0a311266bea6858b6541824c724c46dfc352aa3b21e142567cf65f94025afi0 #48871 78: f45497457d507f5ddbe71d8cfbd3f4413ae1b45b12e2a19e58c35178c691d47ei0 #49323 79: 33f1c7bc1d59a0c5f575a7e9ea45eb2130c3dddfe228ff400127e7983d002950i0 #48843 80: e26d337bfd00d220d58da45803e0c6bca10e3a44155e1329c51f5e79e23ab6a0i0 #48864 a55d62e7675c0a4ce8f9eefa34e03e89e8dc4bdd146936bb15a23d9f4adf44i0 #49211 82: 74347dfe43e018134efd228f5fb1f49c2225b7060cf211252ca7c0282ff2b13di0 #48838 83: 0de6994695b9398f9fc49afc0a8a7900c78b31edca99309feb100231fe8d240ei0 #49184 84: def5743ad95fdbf87fb97051b3760104bc1c99ba44c7a7f811386f185d494ff5i0 #48901 85: 6d152df3cb5fa398e45c31b09dda2b7e6925116d815986c77d0b3019a9d0fd2bi0 #48831 86: a1c2eef99162ce56127fa8dcd46f1be629713dd31e910c74fbe16763896257fbi0 #48905 87: 4d548f472f8f7633ab6c0d6f756f77f49a607f9c19566289bad5c7M 88: c4a51a041d9c14f95ce06e8feeb8ee84e3f887523381076303b4e012f50fd445i0 #48841 89: 0d39a4be3c8b391db1a00096dad894962ce2a62a93c6ff217440a582ddc042a3i0 #48866 90: fd25d15f534ccc327ecf3ef08b06f7e8cf24a9964ae6772620e4d1f888f74bf6i0 #48902 91: db25a0f8ffd0debca786b634c9e891ce2b36dc96f3c6f0d92f079b5d714271d8i0 #48890 92: 0987a8e980130ce305d30ee1ee1fc364e84531785ef686cd34d89e79ebadc42fi0 #48832 93: 6bdc417fd9df5a868608d95a0d88439fa767d01ef67e9b9ba1e8d5783def7caei0 #48870 94: 32e898f25fee113642f15d572d00M b67a5eaae26cdb5127af649b656264439220i0 #48825 95: 1f28d5da1f203f02dd497d0e7e6c262da579fb0369cc9289322397b78344963ei0 #48839 96: de93a7ab5ee72ae9086b92497e3f7af3a6d7e5539d422af89b6cd54f1f7b5ab1i0 #48874 97: bf3cdff0a27c3ecc53f6b9b1ab7e37a34cf76b231d64cefe84b2c8862a1e0d95i0 #49335 98: 1d3381bd865906c8948eb7a4ad51cfa4aa707a97addf7343a73202e988275bc0i0 #49363 99: 9277f2967fc98ff0701efa5fc2c043162a001c78846a74e6ce7223c1166dd0a0i0 #49341 100: 6d6e3b1bf8863304cdde482897ef18aceb0cb04fed8a119b40b74419d9be5223i0 #48828 8bf82262f190c75a8bafef40e8674ff49baaf46da61ce552b1203dc6639a3b26i0 #49192 102: d664e3aaaea452c7aed110875ab8a30f70822cc8d5ba43e525e171841405e016i0 #48822 103: 56634446ec39d81e96dcd55aa908656fac67f80c719d8a3fae37665146e1ef0ci0 #48816 104: 0bf1e15198cc07ce167dd930ed46c1930e350ae3e9af2be9af747dce1390f3b2i0 #48877 105: 999b45215a1e91e6d3b242577e5f7a5e46ef33194df0df74564aa910484037aci0 #49352 106: c0629c4773ddea6a5066b4fe2e1e1af7d30eff32590646ca977ec1b2d018e10ai0 #48815 107: e819c8a0924a09c4861900c0c702a02da9edd8952423a1M 9631f086b58a4263cbi0 #49370 108: 11651588a581b6c5d208747bad2cc5f83f2c25dc2897717f56b3327251664ecbi0 #48887 109: 61335f87424728bd824fe9a6b0e173dca8deeb5c4034e9e6bd9e4c36dfe3aaf8i0 #49457 110: 43c0a4c019351d90eeb521c6a1d0c60a70952d9d22cb76882809e061c782fe78i0 #48854 111: 81247413308c92d907b6b1d858742cc020b85fb3a2e9fb56e855bddd97b238dci0 #49375 112: de96569788f764630ea9b161c5dd7df01b1c814cb37fb138d5153cae3a3ca58ei0 #48861 113: c61a178baffea28e90212241b578372dc9ed84b074362649e8c6b44455e463b4i0 #48878 f834b9934a228dbe984a8766a263e7dd2dae9602a72c12402a0i0 #49340 115: 8d8778858d67d68dd24658a8dad7d3d52cf4a0556a0c272732cf1fea80be7980i0 #48856 116: af95fc024f3823ee6fb2661313e0ce44784917adb326b25c23a370d49e9f49b1i0 #48873 117: 8d8ab2388109890f0b3bc591c1863cdc6014b77aacdc38a3607922b7e3be221ai0 #48824 118: 2e56c94825269b56a02aec57720a9bd3b5311382633ddde34c2c946d986fddb2i0 #48876 119: 1ab5e0d882403e3c972475c9f252265aa493ffa780cdf99594923935b52f119ei0 #49338 120: 133421c3c411a85d0a9f5d12d402d51b7a9c7d9072714395ceee129f19cM 121: d4664dfdff0b5df7a8374122824440956bbd5fd4e557180a8bcb2268d8ef074ci0 #48842 122: 363cc1528708004a6841b632be4d0cbb0f0b0c5761743c2e0729aa6e6aafa579i0 #48855 123: 69f887a1d3d578a06354b10d3f1ed451f49be8ebdb7bd5ff83699b0331763607i0 #48813 124: b5cdcfa2d7d823779147035722eced160344ad0444531da2fe24ebfa4dce7152i0 #48844 125: e2685f5c42d697c5b3a86f8977ffb9c3801eb5185d5e742830b74aafa5cde9c4i0 #48882 126: 8c1955ab0ebb0bdc4c98512011c8b09e893bb47cf7c23bd5def58de874c7cff5i0 #49455 127: af0118add0178f9c0765b63c65M 7582278821094c7335e2e166859fff4a135311i0 #48818 128: 19b5525998cce084d205e91ba1c4287331354042c19ec5549868fde1c3c22ca8i0 #48868 129: de8a2c6d4f153714d054b457701cc4b87c60868e24edac22ba6c7980c994cf22i0 #48827 130: 457a8bb68956dc7145601688ffc75bb5281aa68857559b4174b677784cb98d69i0 #48851 131: 442fcfb3b01fbc7676d8dcc5b1ab9bae90e35f721c596841dd3d13bfbbabc9e0i0 #48895 132: c015a125fc42a6445a2f2fd16e698116485d98b3ddbf120d176ac3f9bdb1395bi0 #49305 133: d1ad941331c51b07430c09fba90a72eb8c9d5da70a4c631ef311ab4bc5bcbfd8i0 #4889M 134: 5c13ce9045d8d84dc9ab89d289864b47cc7ddcbbe142bb44d864cabe772da368i0 #48850 135: 638f08d109d740303e67d54a07e58af66e175d35d04c7de9359cbbc74f88e3f8i0 #48904 136: e453f8e3fee20df51c8caf7a502093b5eedf8c9a6df6fa0f89f8f856d7d55a3ci0 #48836 137: ff40f35ee5e290a6ef5a6c17863ed66c306b228d4c0719dc23dd37164d0321a5i0 #48867 138: 263b6248f8aff56891a6bf1f96e6e95be46fb1e64f45ca49389e1ed7924087b0i0 #48872 139: c01a158c94fd098f488b0c5e226065ccf0343cba7ffb8d4e32cf0b0ecc5c7cb7i0 #48881 140: eff88fdee6c467ec1826cd3be66e79d2a8755f2M d96a6f075d509dad1a8773c71i0 #49316 141: c15575aab9484a229e4c0017ec742bc6896366fd5cc901df77f738562cbbe538i0 #49207 142: 79821bdf074c9d60c3fd85d7666b5f9d9a490125c2f79439a44c1634ac23c3cci0 #48888 143: 241ef20c0495a1d623b14d148537d89a89507acdcc18a1f9a1f85909081f249bi0 #48863 144: bb3537e4c5585752149cdf29f460036c3fcb1c29e0ff052b49b3c94992d6404ci0 #49215 145: b96d6c218dd3840b25cd20c00afc38e084ba1ef95ce9e1700038995433edcf7ci0 #49322 146: 28145dedf58821a447d8e09af8bd0d1092947c93345c9d024ac111e4e8d57213i0 #48819 abe846e7608cd4df6fc025072f8876ecf8a9aaf03fe99c543494d79184i0 #48859 148: aba45e531d053eb5fb5dd91420d31655296ef099c46db584b955d9f5e0610160i0 #48846 149: 022e11d0de8dca4413a6bf6487121bf84c4d9f3bbb9185d94b998277866d6cdai0 #48893 150: 8024b37e990978f4bbe11cad6899efdd3c4e581fb4b33943a3f6286618319823i0 #48829 151: 2b7f7f3aa5dbb8bca3e536e7ef904d3933d030836c58b4744d9e2617d1cdc0f6i0 #48903 152: 424f487b172604e01965ca07855cd4d31f4d4924d8872f7923b70c296e74fe14i0 #48820 153: f5b88f798fc2248c203a9183b1e6dd09fa2f6da62cadee6b3133M a603a00470eci0 #48898 154: 1b55f41c5c3b005c5ecbff513358f7957fbd5b33c01e0dc2d2f2630266c4e026i0 #48830 155: 0efa84c4d3c7f7b1a6c0713dc2a9059f8e65ec607e86f63901f8c52cda600e21i0 #48826 156: 359bc481a28e84ac779465a34bddbb4f469049340ab74dd50ff22774416404ffi0 #48906 157: d71abc2c939e1cb92c414c6af4b8ea999d9a9e4ec497b3f0029cef333b34a409i0 #48814 158: 9ac74cbd410c280734874cb2a4d16e9f25bb2744cdc8292c0033825caa4d72c7i0 #48884 159: 396ca42db8e77ecae371f8fe022ad81fe745b43c3e2dbdf08f471967779304c6i0 #48883 160: 9eae22e7d14be8f404cM 3d629e1a1dc8878f6bd957fc8cfa04f414cfb934242e2i0 #49443 161: 5610da2273ac662ec2c630b246c5ae614b6bf758d5a02645fb54acebdac6916bi0 #48852 162: a6437276f0ad271d7daebde85e059809be8d58377982810c8afdba0c926efe0ci0 #49182 163: f8e6c3f4d4f154eaa313cef8b32de22c1321316dec3996956db2e2c19f67c73ci0 #48837 164: 5e6d127385234e166d1e17ec8390f3a485c9977fe844da0cc560b7c00c3ff7efi0 #48899 165: 0f00d2bbab47a15efdd9f476ebe0f900d223b41edd2db3ffb707e665e6689b81i0 #48857 166: 7b5c71b90002f6be790e7c1a25045c6e73d35cc9118ca57b83c627254e9d09d9iM 167: 5811928aa79163d66880a8ac5496a64ecee35009f86f7014ff6b8b730f9317c8i0 #48885 168: a72705892c86c299f52827f7512162b8ea6b15fb1fc9a97a2542d8f15ece2841i0 #48840 169: 3aeda6354d1cf056855cd6d5f5e8c3a6b37aee522dcd8c970f1b245717e632e3i0 #48896 170: 70db6a99e54e94bb7659a567056c71d6fff170764234417e612002f5af5926c8i0 #48886 171: 6432fee744cd30b4381cb4789372ebaa3916571228a3339f97089141a25a0e0ci0 #49181 172: b5f17fedc9ef95fe3b339ea0afaadb154b0d0c18b78af79b9c32c7c118aa68aei0 #48869 173: 82230956acbcf258917324f133853e07M 4c17fafe061f5c3490318846c14decb1i0 #48875 174: bd52ae9d6b00ce7f8c3b1cf101381343b57310221d4da5c99b33cf00cd049b36i0 #48834 175: 6b3144d44098eb99a738db2c55a8ffaf92e390c8ed96146a934d580f786c2adci0 #48894 176: 8c93ec7494278a27e43fef02dc4ba774b3eb2fa896e28f8e3e4f8e04f6818638i0 #48835 177: b019eb5ac60345075b27944a9eb1187dd57476ce72df48070099b1cfd87128e9i0 #48897 178: 35c7865250ebe7dd07ff8938c4a2b56d3621bced09050bc280852e4c0fa84466i0 #48849 179: 1a9ab0bac40688546faa1875010ad1fe52f51bc0cf5c68328b301e87697ca82fi0 #49202 f5e369e0686f9de13075a7ea813ec00b605b603612fa6912a6990943cb1aa16di0 #48853 181: ad8d5c43269fe97fed04a084c04230dcc2ef4b273703303beae355e37b433101i0 #48812 182: 3415c9e7525eb594c8477df29c36ee5bccbcdde7a054d2524b0a71d79e06b489i0 #48860 183: 0cc7b9c0d968e597e2ea5eab66f3cd2ded84b582db7099f0c6be6bc4e54d1030i0 #48833 184: 5e652c3e0930e3c7f370a13fa5dbf6c72eb11da30114f0e98827f9f5fc174b7fi0 #49324 185: 903e593ec9044912fbc8314fd451ce112cea208d1511d4bfdad2e2d2274acfa2i0 #48865 186: 997f8f953b91ef0c098aa77c18b7c8d9d510f0b3ebad5M 8168e45237c5dd67556i0 #48845 187: 813e12ac8e98efbcc4f917dac1af38505d578469f55a617647ca913ce84b8b64i0 #49308 188: 2a73f0b64935b0f0185644b94e677e9341d29e62b1244505bb8afe484bddacf1i0 #48900 189: 96058dc9c4c2d98546cc8e9d84e12a92f1fab730cfd9763d1c2d9d0eec0cbf64i0 #48848 190: 405946add22cfec9b4defbcfe5379a1d39c7e5734c1779e7f1e3dee057904ce0i0 #49442 191: b5b0bdf196686c8eb1db55d678f4289a61453289e69919acba2e56e7a23c5fcdi0 #48889 192: 2fa9a07152c0e845dbb1f22380a9590c9c656f388ec673df3d46cadf6aa8df0fi0 #48817 336c7983c25db595709c5b8d8dbed95a3d51380c091973d44162i0 #48847 194: d93fdc0b6c839a9d8f995814f6a44c7b0ed9208c4376a63d5adcdce220186ec7i0 #49367 195: 767194bfc8cf54cb4c1ab1b0a13323f4e113c2580a0c66d254c4ab4815b72830i0 #49203 196: 76bc7f31796af2e9528dd097a6837b737de0be609eec586889675da5e6eb8c73i0 #49317 197: c0f9cea4f819ec010950f32e4e10de063c2aa53a78886bc9c669135ff83f6919i0 #48823 198: 1b7b88d2dfd8ba0dc5d2d0be01a10ed96463d6f3f3fc7243b7c94fd574e5a22ci0 #49198 199: 378aee98c3227912ccafdbde9ce1e4f2cde33fee994a2b19a04f60d488M 200: 80ba7453a0a267a34f952ae05c21b18d0c9c5cf6dcdcbbd242fd18b4583da469i0 #49310 201: 0504b12fd468110d735baacfea295658aad251e324b5af85b81c7aa6ffe2f732i0 #49002 202: 04781f3dd6924956065f82a4622de83d29e644b7fd0e3ae37aa95ab13551194bi0 #49009 203: fd295e29764a5a85264250a6eea54f38e238ba4a29570873ad1f1432791ff4c1i0 #49082 204: 6d6632386894050321d6c401af27cf7c6ee9a5c4922f2c498bd9a8afffd1effbi0 #49112 205: aa9a86401305598bf346db4ce7d7f3e7d73237124883f37243c52a1c2cf66b80i0 #49041 206: 9fb002d5b6eacb33862ff27c1M af87687b1cc0a700ed0737d1cb2ffbbaa4a1ac2i0 #49083 207: 8d493accf9463868cb7c426e7004e81843f0b35c286eb78b7a87204af4445c30i0 #48998 208: 9184ecf73e779e3a0db172d297c098712e3036d776d8ea45903d2123fc3b7bc7i0 #49086 209: aa299bc15092751c8fa98c33fc91af5f2444ad332ad364b1d21a088c1aea96e5i0 #49098 210: 27988ce4a11742582df23d5cc344a810bebcd65a600ada0c310b4b2c2e3a1323i0 #48990 211: 2319d71979e8e42764cb176d01cd895ab671b10a3ea7086609fb9a1f45f3822di0 #48996 212: 61ab8f54f06da7cdcc9c5cff7d02ec8a75c0444e677c7eb5dc227ee25ff9cd07i0 #489M 213: b7e306e86de654ab90789c285a01b32855b758063e909458862b0ad3a2c7c16ai0 #49027 214: e257708ed55d87d75e5a1fffa4bdb217f2d27ee12c7b595fe1b9529488245556i0 #49015 215: cd20929686aa26a5fd607c54aaaa154c68ee45f71f9197fda879848709c22380i0 #49040 216: 46f408e64fdcb1889a07f114db97c3040b06a1a4267a085adc09e6318fafcdefi0 #49104 217: a6eeb8f2aca5e63290e8546b516b4bbe18598b2db33c93ac3cf47c68e54a1ed6i0 #49093 218: 3c00233d84903cb34259272843172967eeb21705b0e0521e12eacff37e59adaai0 #49066 219: 69807dc3fe02bd5d9f6fb28fabfc319d7d9dcbM f1c68d056452c275c4dff56ca8i0 #49061 220: e1dfa9796d9f1b6548506a27913ccda8d0f83c2a576767166fd99314fae9bf00i0 #48968 221: 4a35ff09915ea54e6a2d56ace1025b61be81d5abef96f10ece4e7666250eaf0ei0 #48977 222: 746489fd0b860dcae53edc47836d344463fd4bee4055811037881e8d78329018i0 #48983 223: 61e2e1e8029bec153132aed29fadd188d653ce54d16591493b94ce53c134c422i0 #48989 224: 5359138b24d827067ad6e880d356b5b141f2a4d4fe8407aeec9a2cb6e374255ei0 #49019 225: bb678d6893a53473d1e549f48b0d6e47279472d802b26debbd93f2cc3800ec27i0 #48995 e6e5a595c5baab3956fa29ad4bb6d41b2871adc1495edb9037170a53a05i0 #48971 227: f0350aed758845cebf9666311c4f199a8d1c88c1ca5483238af85e91ee0334c9i0 #49087 228: 37f75a49046c108c25d55d24a0677c81cd0ca13ce08613b831dee703203d4062i0 #49021 229: 6131f70bc18b61ac622baecbc93c5eda17e5da642a78ce64f883f4ffe737e1fbi0 #49111 230: 0e0b93af0a8931f38e8b9e37914c5b4700abb8745c6dd6e93a4c78dcd4012fbdi0 #49079 231: 068bf24845cdb3d9361890d1a53f8caa59271636cfc09c0d87416a499eb36baei0 #49069 232: 4a4b1226e22eaa16a16b68d8dd951c97a654e5ff16500a7f14cM 293cfe4a92b91i0 #49050 233: 6704c11f2a0ae497567e30a0f7a7141d4b2b18e5dab67d2731704242e911865di0 #49018 234: a67beff90998da185e20453bef83fbab3d13ee7b0e9deef4a6425a7a6df98537i0 #49006 235: 9297ff12c8629aaca337a9ad8235a8970a08bd90eaf9922239aa091adab30b0ei0 #48976 236: 59063fb97772eecf22feffac2b67e7c4c6a405ad3f4351d55028a0f1c176dc14i0 #48982 237: 9f8584169dbfb8070c3daf6b5cb24974d2da93fa9e0e5d8c016418ca4e511474i0 #49031 238: e139ac09831a2bb2021ebcc4109f20803917937556a74d370319d34f190d8fabi0 #49067 239: 8d7824ea6c3c352ea1M 173b778f72c474f14ce0fb3e2dccf18a1de6bd7b71d42di0 #48997 240: ca846f89af45709f72300f442559858d6bd66154afc802b29e497a7209207f24i0 #48992 241: fb8941fd51ea6982d0f2839152ba0d45762f95083b7f2ea515f0569d7a11e4f7i0 #49109 242: fb458d448d08eccace23694a95b07123510c10a45ad2326319d54476370a0783i0 #49045 243: 1f08562ef49344c90cf7f7687c2db6f39a91d9163284fe88b9bdaf86c11779cci0 #49088 244: aedcd25563a270cb9964ff9bd5c51fb317a5dab38a63232cf38b5878390be103i0 #48970 245: 2762b1317859448b7da4e01360cae899f7a2a4c8c536e8287dd156478568df32M 246: 9ec4a9d610c3b33c7e83e0ca4462d1fcf23a4e0017a3f6412616fd89d09e4b1bi0 #48985 247: 7b025f996575bd04a7e195500333924cc605fb6e5b9612c2037921a0a12b0ceai0 #49100 248: a232f4b72f0ee2059064f7fbcf9ac4b521a017aad5aae54712ff5f775d35a67di0 #49038 249: d2a912e61325d665231f29fb82b1fcfa9bfce2504ea7771f4a97f887dbd1ce82i0 #49043 250: f5172ca292fe0e4756c891dc2873cd54b22c5806f9337b29d5e7ddfdcf2979b5i0 #49074 251: d4a940febb00c32ae97c228bd1f621c1ba50962f0208f4c0a4dbc608a1642127i0 #48993 252: be447ccba71b9b791491e696ba6eacdM ceb97e6a45a531cbf5c2e7ce438aa500ci0 #48975 253: e327bf1c65cc71f364b4e4f0417b4b34f3334a7f932b3e93007af77a1ea14ce2i0 #49097 254: 19c47417f8ef5227abceba946f7a483da1248e4cd1e8fb5f5d635f03531a726ei0 #49028 255: c252fcdd713d111d88fb98e366e1bb2abc4a1e4c7bf01a3fbca4766b3f78bd8di0 #49049 256: b70cb0d276e1d925ae9587a87cf5763f5fe5d16528cda9061f347a1d2348bbb4i0 #49073 257: 88af024a2b96733d0e2ebd991fa538d3676dab16662b204d14f5bd33c6d7b968i0 #49025 258: b7bd141d2771797ce88531c5e8e6c7801c8f4853b6db0234f84f42f2aafefe82i0 #49044 : 4e9d2e623ab60bdd6d6be318d3bf2131aaf65d42431b372c3071229a196bd564i0 #49023 260: 422e680fceba94ed93f77960a6bbb62ec2318b764adc7cd1871d7fdba641a0d8i0 #49094 261: 1a4e4ae52d1b58ecbb81eb1ba4cdabd00b06484c26575cbd6d0410f7ca685d50i0 #49012 262: 5c02cf773e5d58b172c7c03ceffb57e496ac902996f845de595767125a7ac774i0 #49033 263: 4b8fd1232375a4263d465c60b62562b26e6770882aee0078edc0daf4939c8902i0 #48969 264: 16de6dbfc906f254ec8a495965fc4019f077381db8e2114edf392ea5b300e0fbi0 #49110 265: aa8655b516ef9003b25c8aafed3c80a589a11c1ced77M e0c49190b7d22ab630b4i0 #49072 266: f3fb65ec989951d450a331e8736f499461b7b62036e865605a792cf9f2607274i0 #49032 267: 05716313246f0af938eb37e220647b1f145bc1d2f74ff41f32872a0a0dd2c993i0 #49051 268: 787616d2f79054ae43747a575ff4692a470f1d744b22d316b14fe67797ec64bfi0 #49080 269: 6438c55ccfbf18cb9e81edf234a8f211100644f604c1408a8774413523ba1e34i0 #49003 270: c5c8e5b96d26b3f9d0254d0881c3224e860d72b9d93e140dce054e5e470ceb84i0 #49047 271: de289a1a18da8ae3d7fc9420dc94381657b9a06eab1a8571d5e1241bfcfa65e9i0 #49099 2e4a065cb51207c3bb5957b5baac57dc86e7afa8be54ff22aa395i0 #49052 273: 8aae3c619f09efc1bf899a7a22e826198981e696d3da98a11d13306a0dfe65c0i0 #49081 274: 4df7d6faf44aa505e2030e0322f0d846118d25e49641ba77e648c40bc21111f4i0 #49107 275: efbb0861df1ffdb952dcb7513e561ae179f264d43534dd9423405283f0806296i0 #49054 276: 7c7bc2ea62a27a5b9d4b5026ea12526048ac0c9eb49c2b35e9ce7c4435aea5aei0 #49070 277: ed9e581d9108a140adf73ada287fbcf80269eeb0a2621faeda99cf777e483dbci0 #49078 278: 9022727b966c27ca566b46519c4f14d54b28a56eb95e446ec5a8f088bM 279: c29bd5d5b5c8f0bc1e3a5688d90ba767811150af8a9ed8cf06213655232f66d0i0 #49090 280: 001ef301fcbe9fa09df16637fe007bc8bc80993e439d5edd2ec5cb17a83c5f82i0 #49042 281: 174974108597ec2af5888dd9b7ac67d688a74142fdb83be5124d2834c4be31d3i0 #49091 282: 3b9a98278fa321e7244eaf4a597c7909a42c9cee79750b86574ce89407ddcbd5i0 #49092 283: 14c4071504f12ab7d4044b24e52f16b42f590b00f40fa74d757097fecf87fffbi0 #49114 284: 202982d2de70471e1af12b11eab8daa5e04899d9adcb79e7aef5b95a3cef96cfi0 #49089 285: f751c7f22e0df029600acd09M b0c26ed9558fc6d0e54337a4578c84010f6433a3i0 #49058 286: 0a714bbd5c604c3c9e02dd7bf8555ec09a06c5e0a15d0cdfd40af9d54d66b0bbi0 #49077 287: 14560f5c82af936bfca78d99ec8d734d468fed742969f024cdf190d488b7f372i0 #49030 288: 1598f4efc4c934200f8a6a0f7ca94784ab2ab0a7d841b1e709890f79411db7adi0 #49068 289: 6465dd49da03019278fe5789b222be45c79b0a419559210956daa96937b9f064i0 #49024 290: 79a346dbfd647284c40782c5c776a92124cf528c30209f899b55bc3156186106i0 #48973 291: 081ddfb39f8d965b61b1003bba585f139f838101078d786a418cc479752c4a40i0 #49M 292: c3995068c306799eb715c6b6d0caea83934bc89dc77786a369f9964b3a3bf823i0 #48991 293: 09fa47557d847d1753c7c1d6524875b7913929a0a250de972714c3f8adfe3d4di0 #49011 294: 7a2050dc4241ef170755da0933c8f4aa3d451a23caff7f88238380ccb0bb353fi0 #49007 295: 3b6d5087abce29023f7d17eeeb3d8f710bc0bf13e9202c0ead2e257af148f8fbi0 #49113 296: 091ea8b9764633646648a13e8383dda601d58796d02ab848b2ae9132ddc30537i0 #49005 297: 85928b36384dfa4fe7526c6117553c6bb1f8b8b1311efcb04701394f8468c378i0 #49036 298: b4fc40869c1a8eb9dde1b55e5e2bb38bdbb20M 8aa730fe4b3cc6c10cd1942aac5i0 #49085 299: dacf939f809b543a7f51adf3de523ab01019ad975b4522e7a17bdf42ec077534i0 #49004 300: 8459f2e4bb9ffbcdfc4112e44d606b99cb24c9d961b4722bce121d0ea405f977i0 #49035 301: 72c321670e93eca2139852eadda79645153935f13a425ac0eb6430aea1a8d210i0 #48979 302: 8c40f93f94e2a08a0458188617a6cc88e05544c4f53a64f1190e5c28211f7621i0 #48987 303: ed520b5918d7b60191ba2936de342511a48e98bd8039b28722cb1111e0dbd331i0 #48999 304: bbcc7be8c52f21a595d1e4c9146a6b5ffb85a1eb876b5366f45b9621caf794a8i0 #49062 1c020d0ed434573c8e6faf1bf3c33853318205c6edf3a900feec9da3c30ei0 #48978 306: 005d87eb2f45afcb0a5f583ae22d2b779f0361e9b7761abdf148e6f79b50159ai0 #49056 307: 7844b0f388926575c06d43f6d5bae9c0d6759c1a24800a46cb4c49d022dd34eai0 #49101 308: 256938e9e807ef1422802f4cf7e3a1fcc9c65863481d85faa770757f2df92edai0 #49095 309: d6b981c3834e6e93c343d7a62a7f56db7dcb84ead98a9e41f99683f2bcf95406i0 #48972 310: 8b3ecb4a7e73c02fe70c35d0efd132e2bb9cf7bd4aa7b73d4c25dde5bb870ef7i0 #49108 311: 3e1d8e5eb9d22697e901605f27a5d9e5627e17008c891bc7faM 1aac30e1c71869i0 #49026 312: 203d12803f07cef2bf803b5cee7eab62fe7ec2976086100f87915ceb867d7922i0 #48988 313: 334146cc13e36142c8c4829981fdcad1aefa671bb07683f55fa94ca9d43d83c3i0 #49084 314: c352c0d36b1ee956d33eb23e30487d01d817b651abc6952158ac6cf887308eaai0 #49065 315: 87805b6014dfcb61167813db3d5032c4a33042eddd08b7f449701181f2de8832i0 #49000 316: 4df75e6899b0a7188d1f963eaf66877786f7f605f6ed58bca4704cde24295083i0 #49046 317: 2daf4cae33f77ec7b9a52ad8207e64af22495d554d9f2490225d03c3a8842e63i0 #49022 318: dbe69a55aca247b7bM d0e9abbeb8ad1e65fa6b9d925b73bbd0e405a9729614b96i0 #49053 319: ba1b0644c03766da43df23fc830af3f6e7605972dd19d2bbe23b615ac4679054i0 #49013 320: 8dca0d5263baeffb5d95bfe0032a27b38b7a2d8b48f33be7b7b03b5c84e7dd10i0 #48980 321: 13662b78f98babc0f780bb56f90a8e21feee9c898e3ef019727745ee362c9f19i0 #48984 322: 231b766d9ad0e11bd575574bcc48961fd76e67908cc4a6cc2bc4b70a6490a2b6i0 #49075 323: 60b30030095dc21de23a4975be0984f8f85bf7ff96e9ed4d71c0a8140ceccaddi0 #49096 324: e0af7e3a5c1d17862044192d452ec590f2e2bf3414ab833e62e7a69beaf8368M 325: 19e8ca7240136aab04214041f29db2a2e7a2001fc084e357f32afde94d3bbb55i0 #49014 326: 483f9d33ad1ec514ee4ecfd28175e0d72ada2c9ac8add7f9b624268cfa7e2c4ci0 #49010 327: 7681417ab30cee6c179cf3302b116be0bbc2b51b9e97b068d898e6dd77fcdfeai0 #49102 328: f5d3b3be3dffedc104f40478616707da85ef3caa6a8516b3a3837dad3dadd7a8i0 #49063 329: f60e87512d50f42b5f76169fd389f1c2e4b55e4646b0b9393044f014f4909ff0i0 #49105 330: 55c3201d528c9f1c7da586e634ad1189d018c30d6ab5c0c85ec2e4e765b9c611i0 #48981 331: d1c213ea0def8ac79ae80a1d512ae3M fa249a29b1815570d6fc90cb6e13d6b2a3i0 #49059 332: 2701df880bac9457d4637659c173324f4ec8a4f187bbd22d8c8ec8a07980c2f1i0 #49106 333: 4a6c804e9aba4b0e93bfe88e974c2fde32577668deff8a81e6990f5182c91ca4i0 #49060 334: 8331391a580f0d038bba4eadc7fda078019b2f5e7126534908e0836b3a188a60i0 #49020 335: 1d22a1af514be791d21286c008fe4bb1f263f2a5fb9ae5f02a065d273b5db0adi0 #49166 336: a08a6c028a60217fa3f27ecb21e9f2d346e9434f7eb0381f253195b98f619e0ei0 #49146 337: 75a8d019c2493b7604fca85daf446cafbde3ea118cd30ae4031f17483eba051fi0 #49148 8: f63df140f25f387525134ba5533cb43c6abecc7bd9ae6a522c5b043fc38e651ci0 #49147 339: 6778b36bf812ab0ac601ce3597c3f3ddc04eba2c4a3f9e9284da3623ebcda800i0 #49144 340: 35254b08f714ffbab5a829c1f58bb65b9206d11027ac8822a3cc94ff9b306fa8i0 #49164 341: 9c2bd217d3b1b328f3f1bcb1da56eb685174152b99402c8388ce10937af0735fi0 #49157 342: 66e310e153a0fa37c5385173c1b6252d624ce59a320eb340507cd6bc01bc1cc5i0 #49169 343: ad173d12ab83ce4124ccb21a586702dfcdc0ebb63ec8870b8081b9c7d28a538ai0 #49160 344: 021352c7ec302024eb2c5aef948147dc84f1de68290M 48947d66a773e7f46ea22i0 #49149 345: 782cec2199d026075577b6e758cc4b0014eef1d2106027c369783aedf2166adfi0 #49170 346: 2c04453eb0880aaab93b641baefe3ae55216356d401b34f1ac1ce56add070a0ei0 #49145 347: 0ba122500a83c88d40bd8f6d950474c91821e746f071c2f01bd8cf6d59f58948i0 #49155 348: 53cfa6446de3cff9cc748d3400fe636b944e7c6795456496533b0d428156aaefi0 #49171 349: 625e3d73fc1f72b6cd5f2834a86dd090e3c1d492d1376a99fc6540afa98227b3i0 #49167 350: 80ea513dd68a62c0e0a8a00293e60872fe216954c364c0399968ac33653ffe2di0 #49151 0de99a2501eae140772ddb90568eaeb1efb67873e2147bc9d058a0i0 #49163 352: 551bbaa03547d712aaeba08cc40f77cc9f8012e0f86c0d8d7759eb62c2777b27i0 #49150 353: 31de51d56b2d18d4be1e917b72c5fc6b2293eca32c9c5eed468d3f9367b030b9i0 #49168 354: b23c79660148984a795107293e2677a3d9faf6c33cbf93f3f429f2a92c511fabi0 #49165 355: ce338a68aea4994753727df57ad48db96c6cf1ece721fbfbfcad79ee1704375ci0 #49156 356: bf1c30fd472e1fb14d23516bfc3aed8fd4717eb6a94d6954a577ea99d7f48289i0 #49159 357: dd0df230fb45b13019956370a5db6646a5a14f39c3e896859dd718cbM 358: 49f800fb4eb179888119ab27bf24640d4e1f08bbb06e300a5b32ce4b36e0bbf4i0 #49172 359: af937b1e45b87cb240f13a0835033ce7c477763326e130f3b39ae4d78c506dfbi0 #49174 360: b4703b71f7eec6b6c3f24b05664c44586e8c2874870a76cf5aaa228710779b32i0 #49152 361: 37400b1f6ed9769d8b23950986d96a0a338ee51790edb1e4c924e13a42228b83i0 #49275 362: 195b18dc47bdcacc7b59b91fd8e5100270d0b6738421eb71d036259d249fb17fi0 #49274 363: c21c899022cc1f15ae401e3ce90dbd98918837be7209a6c319f55ba756e0d91bi0 #49254 364: 9c8a652d3bf418de8200fd5M be9ada5a08c494e6a0516e8628c8f050fe1f36564i0 #49267 365: c1b2ea556b4da096e089167e78f00b89f295bb76f2efe5d44021e105fb85fe43i0 #49258 366: 2522e5014d44908d4b555ccc20659264e0d1c3a913b152aa85daedf9641c5859i0 #49263 367: 082ab9ebbbf9ca4ef54c03d684daed73ed50258fc93fba65f0105e792c0e71bci0 #49288 368: dc231327859d576a5068b73abb417ca8783796c56665fa8b1229bb561ac1f79ci0 #49280 369: 3e387b06e833d0f5e6b33a59f1c8f3dc251b52a3bcf981a03a88746a08217f6bi0 #49270 370: 4c9dad4d15471bb78e4c4e75bf50d5dfd9821c96058c13f21ecbd6a9e6968611i0 #4M 371: e72b2eabb759dda2402b8d29366633e15eac450865698c37077e60d79db84213i0 #49253 372: b3ba7508ac1da65ca18a4cdb2853200e7c9dfee754ea42d49245e9f0b97d6a09i0 #49250 373: 9490a325181c04be782004ac3dc21af0a3c1d55610000620611d96327d2391bbi0 #49287 374: 356c6ed106cb3da016eed2d59a1c25d628bf3ae1b1446f8e3779a77767d4a45bi0 #49264 375: 5472507fd50bae98497a5a5dbb42fb0a384e9894788a818ce276bef5fb9bb35ei0 #49266 376: acc2e3492e6b6c1383ba71668e21e4aca8cca4244017ff16727cbaa710552866i0 #49268 377: 27c253e943b12ccef34ffa7bf20e403099ffM 8cc9f2a873f81dff383babb2f472i0 #49272 378: 2f480262dbc103624d9d30c83f50746bc77866f56301fe3f73a9e3172a217786i0 #49276 379: 0485e11e385714c518678e20d6d11795c7060b9ef152f5a4b583b8f921d01653i0 #49260 380: f7e0e059252533e36a034093591ce0a9965157e237db143017c79a077d78bf77i0 #49273 381: c84a21978352bbca74dc2aa6c75a230eabddf7bc224ed7385ffd03fe08cf95bfi0 #49289 382: f54aca7d511d81f1d9c73e732d9a041908c9b3338448a42469758887474d5421i0 #49255 383: ac64683f1e16d29d7afe07e9bf4d14976a20d399337a0008b4b17fc985649ce2i0 #49293 c5ad86ceb2f71fcd0ac9bc23c7e46d2cbd12ff94607f3cbba438367064daei0 #49284 385: 074fe9b371d174cf54fdf27c6eb5c42691da9bf681a3e4446aab1afcfed52f31i0 #49256 386: b2cd2abdc73bd507dab53d9636c4255b3bceec29513039e01fce55de3c6874efi0 #49294 387: 1ad5f62c3bb050dee6f8678379d298192113fd7ad97276d077caac832155d6a5i0 #49282 388: bf7d620c120476006cb1e9a4c7e6c38ccd3483515a29071365eab735aa96b808i0 #49249 389: 63cc4b6481934a6ac041cbc3a60d30ab6d7f7b91a099d64566556695db91f54ci0 #49259 390: 92d9951bc33598f08a3737ef5c4ff2c1d6441bca546865393M 3b6046c0be24894i0 #49279 391: 5d072ab5b4d57460740e70c42a7aff267e99a3a6ee95c672249c0ae101dd1fb2i0 #49285 392: 038af32c7726bf8178b23029dc5b5de718db5dfeb009136bec6b467cf8c0da07i0 #49248 393: a4cf6838bb10b7ce9e010bbc59ab11d8ee036d5ab49369f853e258c176708668i0 #49269 394: 8e998ad0687e9d3858da5e71eb1a6b585778eb6d4a45625a30de1be9be2b0089i0 #49278 395: ce6681e271119c0ab04ee22b5b9853f75277650fa60c03f82f8f5ef77056760ai0 #49251 396: 3e42b7a25bd9c9d52b2871d3213c7849d3d2b075106cb225762bcfb3a1be6c07i0 #49247 397: b770abeeb06df45dM 9dbef85d247b0153cbd8bf05b3eccf2c48458d3f214526b4i0 #49286 398: c406fe8290e173cd4d73da519bea96c06e521c652319aa592f0e1f60b9189986i0 #49277 399: 206ed4139dbf0f92c8a32d415b0686ce92462c39d81c016071d769c974758ad1i0 #49292 400: 80ac4a8133879d65348c416c45cdb91bf0c70600c84dde33d763356bf9b6ee41i0 #49257 401: 602f33c2512e39fc17c375c94389705d2194e947f7aa8f008794588a6e056a9fi0 #49281 402: 3f310e5f6773fc45b81a73ec085181ca9189a12be359761c3286d201f777b86fi0 #49271 403: 06e68670e5417c7e7c2fbce533b7a0ddcf4c425b583372443ca1031e9a1f04M 404: bc72d67dc9805f3bf6b9a684cb21fbcea2b3acb34ae4565042179a04cb4d805ci0 #49265 405: 1fdaf1fe2dbbca75c95ded3edb6a6d3f9dd190ab0c446dfcc970026f38c5d0a6i0 #49283 406: 5a0519337505a781a644ce287cd4646265100c6b4fb41b0b8f0b9c4bf3710ef6i0 #49295 407: 59d6a528639d969c2ba55f9396f32dbb6eb849f53cde40718ed8bbe347e3b4c2i0 #49290 408: 6d808d2e1a6906cb51d784f9e0bcb775d7c9ce401506f3db4b2ecb644e4d6e54i0 #49261 409: 07077aa4f59675f8450d01833904d6666f5feb430e9f8c61867312309a0e8208i0 #49388 410: ce92b7398bfd519089210a146770dM fceb3e02adf97fbfdaa73b6e05f5c45e2cdi0 #49412 411: ea719347d9b3c4ab2807ea54c98340f9c8dd1a912a9af804c77d0dc92005ed73i0 #49396 412: e743b4d9c4cd5e46405c850f6f7ad73c7255550ec2e48a1eae7518e2c56e2cc0i0 #49410 413: f249b40c293d2efb283ebe5351603c41beca500e3db95f545a7d596c74d317b4i0 #49406 414: 0696c5735833309ec630f4c38d9c231196445709877acf78a547631055757fa1i0 #49403 415: 23aa0d79b03593dd8de913f40bd2afa71acb20d6fe0b26f8b028c79e3ad317aci0 #49405 416: 0588f63f6bbcf1cd2fcd3b5adcec8f255e5e0c1f9b5813dbb844901e7f23d006i0 #49386 17: c6bdcbfcf48e96cc094534dcbd70326bc2c801c6cc982074baa129d254bf3480i0 #49397 418: 14efa5fcba6f9799d6e89bce4f210375fdb94ffb0b117f8be0d91ea3ce47639ei0 #49402 419: eaa305cb1adf9132042202d8ea2f5e203749ff7caf77aa3df3d4ff3b713af199i0 #49400 420: 312ad2d24a19f9f5a684f5c00b4163b8accdc954d776b148ce94d5ee4d15000ei0 #49389 421: aefb8e31e2d98cbb0dd2e1ec5f9bd1d9146c39d1ca0dfae9768d573d88b48115i0 #49390 422: e327dcec7e74c25c104b83f3237cecd4e1b879c0f03ef4485b42acf9f5fed784i0 #49399 423: 41813c55cb4417f9f1f414f5d06dee84dd543a2cc0M 1afba6b890c953d814c405i0 #49385 424: fd62790ce9fde357a39d8fb3572fdefaf284847ab9b0b339c2ae0752bfda7d9bi0 #49401 425: 53bebef1c9a922cdd67f963ed9fcae14e82661621a2f4049d294c35f25498305i0 #49384 426: c99cf95fb3aaea0a75cf8ca8f150766c5e57a3cfcf2a64af75ce2f9f636a8bbfi0 #49409 427: 4fc44045a02c4c87b00bbc1bb13be0bf702f585383ac35dc0639c0cb22920084i0 #49398 428: 602e8c739057e006168d5ee6b359c1734b047903e1d7f8f7f0e32f88be1118b7i0 #49407 429: 844f059ef1cf1e6d04e834eadf7471eca53f2d5de970fe7953b403b79511476bi0 #49394 ef8f4d652a4feaa4df00eae11c160de976244b9ff1f1f38f3dce3d2i0 #49413 431: d28bbf94a10aaf91d97ad2e5c0309f93c8f11064e0b7c465f767bf35d7f2af03i0 #49382 432: 5a2b1f1185362c8902de9a698aa09631e5a5110c0055688a7235bddc5f08e406i0 #49387 433: 55e72c3571e6f4c253a9e0400c1b32b28021fe3fa44fc35ae69cf12c03205ebfi0 #49408 434: b67efa0e77508ffeb0d7779263004067f9806da4147be867fe558c1a5cc7c962i0 #49393 435: 23a76e8178c293b8a80fff3dc0ae2b301e1b086a2d6a0236de1facf22c9c656fi0 #49395 436: 93cd40e35dc32ed439500894238669e5d43643758080ae655f99d1dM 437: aac3789c077c5d0e1e5edbd684e1c5b607a41046a9384aede0bb059f6035c3abi0 #49404 438: 52ab5e5886826483f9a868658bc9531b07a0393e00610f91e54a008d267c695ei0 #49392 439: 1ae2e08153bf1e3fc788b7578283dd4b2366c75c14957468d1e5a2da94b27a05i0 #49383 440: 227ea2ebe16cff0181a50a2e4c649936ef30360321d13a0399c5eab0f63b61a5i0 #49535 441: 3c1de24572a4864209113f49cdb75e91cbb84a007680f2f581e3572c60904048i0 #49507 442: 3d161dd19338b9c34f50ab9f1a5dfd73a20d77d578db6298fcbe623de8363456i0 #49512 443: 380dd7aecdbdbc90428854M ba9ff4a2f34fee31c12318a9381d00800016961775i0 #49520 444: 52b376d4523afec1d0e4951dfc71d0e43819e605ef24a0bb678e56ae8e047e28i0 #49494 445: cb71aa2cdc654fc2169aa2755bcf6b1f680ca055613639c77013a26c57157bfci0 #49565 446: 1251f7a975560d3409e1db78b61f303bba56061abe5e7d2bfedaba93717493cci0 #49551 447: 5e782028eaaab70d107d848108a5fa1faf27d4b6d1285007aaa59fb83151dfbfi0 #49544 448: 94f3e8831cb8ad50b11732ce71637f29b124ac1dfbea072a5f9a63aaebd30c63i0 #49516 449: 7425d35ac8df2741e2785842bbda4252dbf9126600640c5f8fe4ceb51ee1abc4i0 #M 450: 2a0ab7523f951230699bb861a2f513ea38bcb746bfa648fc293c8c8e8ea85f72i0 #49519 451: c363cd88e12ab5373fc7f53d569616fdb429ec79856e18105d90d5f89e6527b0i0 #49539 452: b9e594506f5c9144adac180deff1ad670fe2517d3140c36eeb0c73ace166a0c0i0 #49545 453: d5a3f6b7fe6881accccb86f2f2f2b3a1dd1407fc159fdf93d2b6d0dba230d0d9i0 #49554 454: 8a5fd91cf1b79f94c25f8318a5489e0493e392540ea4de624413965e3200de64i0 #49517 455: 56b3892fbaf588aa12d4999ea6f55a3b71be14e8b4d47839128bdf04aedf5c96i0 #49529 456: bd9e97fad06646468bda57f503c8dae912dM d8fe93387c15fa174d1f2b4216a99i0 #49530 457: 353ea5b1131b303039d8a637d666d6c0a9433c4a4200a310dc4d8542e16b3c31i0 #49499 458: fa8697b2a76af821deed033ce7239072e18350c293f6e363f122283ec823bdc2i0 #49546 459: 5290fb286632abc8e8dfda6e52ac2aa95066a1a3ce04bd5610717626b9083cddi0 #49556 460: c6325e0ed9438fde5043597fdfaf73b36878b10d5620474b0957182c76328442i0 #49502 461: a7f20b14ec187cf4f1fa00d61a09f61400d344d2e60ef382ae501255252efedfi0 #49559 462: 70f8e76ba4af3d11bd66300f98fb88b5eb7e4f1269f7921a703586f3968301bdi0 #49543 373192de8504aac9909d3ad42e6b5e0e3adc1a61ddd755f8ddcfe44469599ei0 #49532 464: 55e48aa79500dcd85d1ab9c7deef7ff5b36012c3544f4cbcfff8ae9c1c06fd5bi0 #49514 465: fd72ba84985dd94b98f6670da67441c7208708353deeaae7b128397e7c80c02bi0 #49497 466: 680683517380665e467dbff530cad85af393e942be302bf48a7797a6ab0f402ai0 #49496 467: 02131f2887d474522f49d8fbd34e2477b84501f0fd60a7199864c669171e1042i0 #49501 468: abd74893d091b2a904b66d0091d28c0c7a6008ea8856ea916cae28c1b164be46i0 #49506 469: d9f6d1a0f54242f47a3238456863f61ac92d2644f6ce1142M fe2242dbdceeb2e8i0 #49561 470: 7fc50e70eaf2f7952259adc370a9c639bc7908b88b3354b470f9d6a64ce57330i0 #49498 471: 0eea4474fd0c04b4d92e3e8559a4d85577b305604930f9145d38e2436a65ae55i0 #49511 472: 386697c3775265908522e4f42ece91fdbf42b57ffa4e778b86052016684b0fdbi0 #49555 473: 022d05242d4ff30789a095d6d6904dd7970357e668865a6d71ff74bb2eb034aei0 #49538 474: 32aa254065bc264564b290200c55ec4aa031c96b036bf60ceac3e60eeaf526b1i0 #49540 475: b3e0ff1b16d0b942c644e9454742870f446a9969920cb824ac629dafbe73c204i0 #49488 476: e0450135e694117M 648105784e1a12d4a55004b970aef0cc0f2eaf35fa1dbb1f8i0 #49564 477: df9f16e349057d55eda6d0d5b7fbcf46ac259b77368f89396b376f2b6281fc62i0 #49515 478: 6766f50cf8a900c2f04aec192cccd62555e29fead2ac3539e4e5b1d8b28ed0dei0 #49558 479: 9c0cf2dd24f610946e0437fec9b28327981521b2c7840194c7520b7931d40bb8i0 #49542 480: c1db497f19c6f02fb1d45611d9e5e18afe2e634f36e68708da7e6487a40b2345i0 #49505 481: 76c3fd46f313a5b481f948fcf9e2007d565d965237e904516092722b29e43254i0 #49509 482: 817e5d984311cc1c8c0e3c385bc4d66e426e767a003d8b62166b4c9a6b309M 483: bd66ba7e017dd44ea75a26130f87e29474897fc160f028d992941529542edcc3i0 #49547 484: 0939ced58c39443ee690d69931503e070198e3ad8ca4c659ace228c5fffca68bi0 #49526 485: c9975e5e80846a3bc92aa6ba659ecafa79714e719fc15c2c4cc0185295ef617ai0 #49521 486: 49f7bbb630af0479bc5ad6ffbac84ceeccdd3f657f3360278f8d4c4a808da6b3i0 #49541 487: 935a59123bbdab10c255072c21cbba1a0a6e32e47938111beb40c6465fe5c71di0 #49490 488: 505110d8499a5538c3dbb6c8d5f69bdbedaa67b9dc578ff96008452343cbc2fei0 #49566 489: 92f88a5954c0665ee925b1df0770M 4b7ddab3dbbbbc2187b0290fd4460649b322i0 #49492 490: 064312b1e8446b2494b2226fd49e3cfad8b045b574aeea1cae1d8f075196b9adi0 #49537 491: d9128496b3bdfacdfa97b6251a434562528a269318586f210cbc558fadd91157i0 #49513 492: 5e28f48e499b61ea449e0605bfabd9f0bc1c191196827ca43ce78840e0b61d8ci0 #49527 493: ff1244ccabeafbefc1018e7752f54bd6f6517535825c6770c748d48ca8f0d8ebi0 #49562 494: 2d7254f3bcae7a06bedf2774a9b3d0d163653b81184aae8b79138dab341fa944i0 #49504 495: 7c08354fdc583866d266f9b3a99e381c73ca446bcb890c4c591bf7886fe2a3a4i0 #49534 496: e712af15848b2b0650a13e4c8713debb5cf05a9fd7b73c52c05dc8613ac204c8i0 #49549 497: f138a294cab6696f17d754c54b61957032722618a9b88695f520d304cd369923i0 #49493 498: 4db7c8174b79b975a8d706755e32ba9386a4a53f8f434e71e20572959c4b3b93i0 #49528 499: ab361d4a87a4c3d27393f4babfb668d3d9524a6a1558a67f4ce41b2ba15f81d7i0 #49552 500: e4ef51af162a69f29b086e5a15fb8f6baa2990e8701a7ac495ddc6740ca46680i0 #49524 501: b509ae5868182599b52b5fff06d0eec0ca955c695e41e82906723d53b3a5067ei0 #49523 502: 4978668e100d8c13860daa7ba7ecd9ac6d86fef99M 6fedc04855920230a228b20i0 #49491 503: 930493a09c1fb593b6f6637af2121af52c6ff50ad39585576defdf648bba9c9fi0 #49533 504: 2454499ddff129d1d6c5543aad7914e4d41a33a50f5884a66f9114abf206d2f0i0 #49563 505: d7cd2a556c74c7921d45c801c244775e58ee4f421990bab390d2ef4785e136aai0 #49536 506: 940fcc13d850c6de5515b2c8d4bafe8e8f9b378fc45977baf210bda08adcbc54i0 #49510 507: 91fafb2cfeb41725a8b1a5320e0547b2547d33aba0a237da6ea5289ff401f817i0 #49489 508: 856a0ddec6d3b217dfcedf72f36b899d4e381fe95b97fe5a529001beacfd0272i0 #49518 8ee3927a488240ea8a7a5ce9c7ad1f4866496835f9b5c63ab45645dei0 #49557 510: 060841725874b63339567ddc5d5f5b354a12745f87b70f8c81ffb322cd5d6651i0 #49508 511: 8fe08cc2f7e63cce3239b011982852b09a19c890805cf319be9b37d703e0ded7i0 #49553 512: eba01fcbd73c28fbe31fd37bbcb937cc0988de38ed1249091551a910a226a003i0 #49487 513: 880e344d9f34f7633243ee1e2c6a4808777a5a1e646bb44f3daa5430d8077943i0 #49503 514: 33a5712b923061eb0bfe20c47fd94d3d5e08245227ba07a330b6c779124bbe3ai0 #49500 515: d4c711a88cd38c689a35543a61b744737133677f36988dbd30c335M 516: 9afd42cb838cea7072a0c357719fdd757d317b2fcdb2206b4bdd40c8216f9684i0 #49525 517: 05f15ea4a5dcacad7aeee97f8e449392f8f55e79a89c41b18ecaa131ec532be7i0 #49560 518: b5faf5f7f45675e2d3ce32935db5a9d68e3486e98b8f0d620c58aad9218d3201i0 #49596 519: 3f980fa0916d6e92b9e1ae74b6208a154edfa86380721ae8118f27aad0707599i0 #49601 520: 53be6831f7360e2bc8c6c30d133ab0d9c59288a6c6b82c7ef376f6fee4e6c29di0 #49602 521: 05669334bd1717adb63b820ac326f53798fef4b881fe578a600627f809d8fba0i0 #49603 522: 4ab57588d03120a14f66dM 8662e6db56fdd4e8e822ff483ba6bdbea6168ccacbci0 #49606 523: 5415a9ad1aa0f778424df2c82851e1ae08bc102edd04135ef722d5d78b161d00i0 #49595 524: d052412d58b2a89a9b5dc538738d094085fd444bb287e6f2f3fdb5c84a650ca9i0 #49605 525: 51052ba602d524e13ed5c101f317fb9b1eaf56e98f45b2cdf02c0e0d393e2225i0 #49597 526: 2a45a51b09c62d6714a308a4efe894955e319a9e288420b1c6ae50379718e561i0 #49599 527: f9a97b26ff7cfc6664a61c4ba3520adad129468a0c4d50ac26a919098a3a0da8i0 #49604 528: a418e64d5b200552f7f2c77cb58bca98a46f515876025cacb0d4c998de8c1996i0 M 529: 7193dfb1cefc45f6a4a7b2bc88317b1d24a38c31260d03d50902c148ba6089fci0 #49608 530: a59826098cc0fde29028427a9e5bcce0aace46cfb859f84643563a1bb2b545c5i0 #49607 531: 0c3c1fa764ced862c1e1f3f2557b662f4669fb0b71cc6056a64739c0bdd61c73i0 #49673 532: bf5401ffd89e9fd80a12e568b8cdb1e4a8534fc92d141d955079b1914c81e316i0 #49655 533: 99f0c56fd1693aa07277d1ea1015a019ad42b85812fc9991579dfc1472139e97i0 #49676 534: 3081f8b76f88dbac3ef4069f2eba5e65ded8227d4af5232d82df7fd6df68d071i0 #49672 535: 96870168b5043fac8cb36971017c0e7271M 72c7c8ef3ad330fea05995cc8ab918i0 #49656 536: 7dc945fd5900c18cac74957a4098c9c1d6e7c706e4e22c8f4ac49c213afd7682i0 #49674 537: 9cbae02baf21a281f7b3430c704a66394b752d950e54bafc7b37bf6fff0495c6i0 #49689 538: b6f7895442ca28bd294d29763a83d62692eee8bdfd2088c9fff5f7f6ed744358i0 #49668 539: aa0bb36169e0d4dc1c79cfb165f62303bc26e4edd229964c4af882a94a921949i0 #49666 540: fe9ebf55b7f00f476434784b92cc833ba306ba22091a35dbbc59f8e175fefa4fi0 #49667 541: bceb6df8a7b328cc11073d2016f99f7e9968cded7fb9cd0e08095ab48844d603i0 #49649 3902c519036ccd8d18df6a6d8e416730891245acd0a9f0120888bb144fa769ci0 #49678 543: 237da87b4b0cf9bd8e94f55327ad787aa54bc127ee2dcb74c0570601e821f3b5i0 #49684 544: 992c05348c7c99601e0e38d23c33c60fcf2e5c721b43c613da8977284ef2c9b2i0 #49683 545: 6bb8485db0a808d3f5135c22871e5851e27e158d8c2a8e4cab15301b870afc0ei0 #49651 546: f129b584c646ddaecb1e1d716d77c068a4c68bcf74e18854c99178c52dad28d5i0 #49690 547: fd74ffd14465dc9563e71a0e3555126ad76cafce01c66eab063f3d03b901e8aci0 #49681 548: 777ab540a172dfbc57269732db61c0333b60c0821501299M e50823c0356e623b9i0 #49686 549: 5bb4b28428a1e89e0f8ca41cc13b64671aff9c380f97a47fc2c9f1a2c1314ba5i0 #49679 550: eda4c11de1a339885d7b7e1f1a5a66606d1cebc56016468446bf7b981b749700i0 #49648 551: 6b4fc81272fb01bf73eafc700509f2c9628035dc7f7ada63fcbc6563bdedd030i0 #49659 552: 2597f54b8f05d40209e8f87c37f9a7c3aba07ca327d6ec6c0ef0ee2b4d4d7413i0 #49653 553: 589662a176fecd0a7fd581548e19631db83fd1358c1bb6b05d44f57f09442a48i0 #49665 554: fb6853644926247c64c1f148788f8e8b4aa92f041a7afc13c34b30d98bd581f4i0 #49692 555: 97ee9cd1c17d76M 90960c5019da6622d285db4027a88b96fd50a5e340c7a265b6i0 #49685 556: dc96d11dbefdb49adc80b4e373278a5d16145df8931eb9a5da33ea220e536545i0 #49664 557: cd9d822e96674cf1eca0960332eb2e7e4f99bb994c103c51dce9dfa846ed792di0 #49658 558: 05ed9acc91b52bf106ee7f2ec3a7e2c2f84acdb70032365aaf2e75bd6f646dc2i0 #49688 559: 50b1debeec6790834b07101e95a6792bbc55c6d5b2cc78db6ff72d7e91652592i0 #49675 560: 3782eb21657e5d2d18dcd1214ee873b733c6f762c0bb9938a30f3663e368de07i0 #49650 561: 4e13824db97194309f95b3eafbb4d2a32a258a2df8d46395b7da6d1eb618M 562: 2ef7c48b20bb5a00c8cd0a13024419b914904e63df424c29fce7f0009c202142i0 #49663 563: 6fb124efee5f79dda0c49ff63c9aee59cd3100d99673efd66a5a65522a564f69i0 #49669 564: bbbe6390712563e726fe6ea5b7c8ecbb9f053e4c7903db1c50c794b5a52edebai0 #49687 565: e775287bbdc8c8ee022a10c39c6ee0c94cb6280bb666b626ce7e705f05dfb66ei0 #49671 566: b91e2c8499dcfaa073657dce88e2487cf4564c365387fcca522d237b8d369816i0 #49654 567: e7e74272726ee592652772e805fc478e323e2abd0177b4bba6b174a4dddc48aai0 #49680 568: dad23c09878bd590b328234264eM 33aa33e83cf4059d61b8c7f42ee786b41bbffi0 #49695 569: 53762dbed04b8739f24a833f70c21be5d69ac1c818ff12f6656862c8be93ccf6i0 #49693 570: 16c7c3312a31ac908c2a4d63e857d86abf67f7790c24591dd27da359fd373238i0 #49661 571: 512651e9e663fddd29a11c2c6eee88be1461d832f8197d89df4cebd0a7d27520i0 #49657 572: 81523f4c7e0137781ca90cf35881c8a020b51626fdfc4e7cc5532d7d705727afi0 #49682 573: 916706e8937dbbcee8cdff39fbea84b485645903f2d731e47a1e1fdd810536d8i0 #49691 574: f84478d48eaf97ecdbd69d94843efeaeab755407d32c76bf0c73bc8f336414fbi0 #49694M 575: f7bd8ea6b7956c84f49ef24a36e6599879f2956be9462e9afe3c3361ee79030fi0 #49652 576: 6f9c666c2c282193168493e202bb74a4e89e8c35efddb6743a127b33e940e636i0 #49660 577: 837326b67265ded947aed09d5560286f19d99cbad14ea3cb8580a23b085cea6ci0 #49670 578: 3322544f4b4add41789ea11ce596b9c5b7598eb7a8746ebe9b97192c865f23aei0 #49712 579: f3c8d5a82dda25868ff130fdabd6f674ca12e98f4971f09ccb1a21f62592f6e8i0 #49714 580: 346b78f866f73e1090ef638271166ae1424ebd54457255de71c7afb199b569e4i0 #49713 581: 5f0d313c341b6345b4a73da4aa169d5492fc3f2aM 3a071db9de5e5182072bab4ei0 #49710 582: ab4cb8ec98eed8ad031796e154ab8a75cde29f258b71b7fc2e4e94acefc6ee4bi0 #49709 583: fa368898d03c58e92b7e134021ebe49847e182aadec1cc6e3794c0f5711836fdi0 #49715 584: d6303f05db9e46334b19f0e318fe759a588958021c8ff04c2457540a44acfc0ai0 #49707 585: 96fb3ab44b1a2cdde6b2cfc46caffd2fa88bb688e50772e7a0d2866b26d2e626i0 #49708 586: 864e96b34ff04397db0f2e10f97dfcc0208c05c1267b375cff17db6d1f00f07fi0 #49711 587: 2a0fe572c45f052691c479e5da117eba6025ef758835e1f6fd6c321ff00e9039i0 #49774 2db0c36fac3119ed0bd4486feac75bd71fbbe04b82160101e885f6688i0 #49779 589: 1bc2718b491afdb369ce2cfeba80047d0380970e67104cbd5b7eca14ceec846ei0 #49778 590: dc7251a5aea4c2d0834b3d40bf3f7ccc79c9bf8c23bf78943ae8bf753839e539i0 #49775 591: 38fcabde46c7d14155370d519f369c1f727ed16248beac820838be7c2916a462i0 #49777 592: 7d144e771035a2cf34815c3a1a5de73e5e137d219741d3946c1fa3d8e7739702i0 #49803 593: c432829f548ffd82735c57e0adfd0dd9700cb4839caa562bac2f0803fab55dd8i0 #49827 594: 5d3e6e89c4c5fa043b8bf610cf28c0f25a2bf302a026a56bca6f2M 50e2e3795f0i0 #49830 595: 42658c4f528b2d4694207521ca9fa7f789399da7a78ff65ca0fc158d835db041i0 #49811 596: 29ab8dcf9ef6ad06c20925853d2acb6f6e722d18b3aa2ca0545576a56b3b29eci0 #49828 597: 8e75d791cad721f9129819bc12cf4e2119a2234d73388aa4a83dda620511da46i0 #49812 598: b87e67ac68a4e974d0f7bf113cddb9a4a4bffa153a7d904ce572aaf6453871fei0 #50006 599: 3316a56cd4d68aeb412801a56a79a05b6f4853b8c370c2d54167dd07483f61fdi0 #50005 600: e01690f43a877250b1e49748c6e97096ba40f70acfea4210409a7a0889c7dd0fi0 #49985 601: 25ef5490d76b101c1c07M a837595b0d733f429784e8f172a5ba61d4c1c2e8daa9i0 #49999 602: a63a18fd296e6f8e1813ed66d6c4f7addfbf7d9e2705c2b553f068f6b07d9329i0 #49991 603: 8e7785df983e58b34072c593b7606054305b3921c48150267b52e5b4930fb907i0 #49984 604: 4ba824081b1a9f14243ad0b6d6b73b357f0a0c3392596095c2368dd5be3c6567i0 #49995 605: 8d869aa7986bb9f83a3b3033c14b2a7e093fb59a85c84d5c3de3283f05879baei0 #50000 606: 78faf339fac5afac1affb8ccadacc6ea138dfa5bd93207e8dec71606f7bce0c5i0 #50001 607: fb568c26e037a1dbda5e595aaead86ff3dc094a80c5d2ae36507081223c0cbd6i0M 608: d98f6558e89be8c2a4ac8bd9e1223436403738198f79a6d53dae90a8c211fc80i0 #49996 609: 6d720f57e6c2070e2060f236afaf8a79fa3b13998b96fd2910473a56634a3912i0 #49986 610: b7f7c346d98cd4d255f7f9231b79f69695c29d3c06b36c47bb04d7bed0045b16i0 #49987 611: e8db367a7b43c40e86354024a0a043b8dff7ff42a48d9dfa063caaf534dbc69ei0 #49997 612: 3a1376cd770b7ff72f40f57ba2dbbf40f13377d52680e046382eea54bedd2d4ai0 #49993 613: 73918a4c97213b269bffc4db80863341e520ff0f679ac78736d7bd902dc999f8i0 #50004 614: d3010f1a5b07513364548c16f28515405M b5b9e79c27b84ddaa15ce980b484d1bi0 #49988 615: b39d936d9469051b93e70edd84d4c22003877b94f7d535e899afdd8e4fa28946i0 #49992 616: ef19a988af27ce215c1a70a0160efd3349bf3004c6a2f8d02cc8994bd05e441ei0 #49990 617: ded194b821ae10c6a9f588cb9020362dc62a750905e6bb95deb335d40e3b3feci0 #50003 618: a093906d1f375b4fd9aa8cc1066489c1d2d0e7f24225ec6b13bf916baf448c4ci0 #49994 619: a0f0223af8d257dab6fc1724da770e0746b73361a155ae657bb42f34e5e1cd4di0 #50015 620: 72f774baace7eb1dcfaef34e107d988bf39663e7908bdd2b689161b3c06ec599i0 #50019 3a79f2db9c96bb932f33ecc3bbfba9e987ee0b610d32d0e2bde8ff0878041720i0 #50011 622: 960f0198f370f751c86721aa6e8062aa12750d21f2dc3343b9024b22008be2c7i0 #50022 623: c6149136b9c82332e8abacc8ae5deebb70ca27054d221473bcb6473c1a293cb1i0 #50021 624: 21b7f883dc9fabc66238c2f76f9912657a909b8903467756cc4ed7fda6f09572i0 #50016 t1: a27c39272e14a67053d3cddc15d6ef9c0ed90efa5a8613791782ef91c71a2fc5i0 #63861 t2: 440bb7503e52ba08adbe02e5ed6d9a29d42a105217d0e35adf631fe37c6f2bc9i0 #66102 t3: 6716d61903f6651df965f1a63fe79ea35c18d77e4b155ce43MP 22e00a5fba6fa82i0 #66095 t4: 971fc890ee791a8b384b1503fc22343c3fadeee441dafc15ef07bb2ccfb745dai0 #66104 t5: f349e8c9dc1b101d49dc1745979b749b9e852c9e863d735e3c791a6d6b726563i0 #66093 t6: faf6eb4f967f070bbe29888746d4e45c4d270f2200acac9cf4f93f1d27a97cbei0 #66101 t7: c999413ffb19df169d0140311b90d196b2fe9929ba1892965217ab738d43b7a4i0 #67104h! Bj@=:ETH.ETH:0xd3b7f9A1e5d39D3AfE91A351e75653661B084932:324830:te:0 CjA=:ETH.ETH:0xB3921035cC3B918Db7dCAB5cb3C91609373413D7:2091119:te:0 CjA=:BNB.BNB:bnb1j5eltzx7pfrtmcqwymg22f689ld9t2cc3yu75r:1065877:te:0 DjB=:BNB.BNB:bnb1rf3aj6n4hc3f0zndfhwvv70yzrz6hp3j0y2zwf:16053584:te:0 zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp text/html;charset=utf-8 a hyperportal inscribed on-chain enter at your own risk TUNED to Zen Academy Conjured by el_ranye x @timshelxyz * Mathcastles Studios (0x113d & xaltgeist) * Aleksandr Kubarskii <meta charset="utf-8"> <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>CHAINSPACE.app - TUNED to ZenM font-family: 'Noto Mathcastles Remix'; src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff'); font-weight: normal; text-align: center; overflow: hidden; background: #eaeaea; align-items: center; justify-content: center; body.mobile #text-video { font-family: 'Noto Mathcastles Remix', monospace; pointer-events: none; justify-content: center; align-items: center; -webkit-transform: scaleX(-1); background: #252525; font-size: 17px; justify-content: center; transform: scaleX(-1); -webkit-transform: scaleX(-1); cursor: pointer; justify-content: center; pointer-events: none; background: #fff; border: 1px solid #111; padding: 3px 10px; font-family: monospace; font-weight: 700; cursor: pointer; outline: inherit; border-radius: 3px; flex-direction: column; align-items: center; justify-content: center; font-family: monospace; text-align: center; margin-top: 20px; margin-bottom: 4px; background: #222; border-radius: 20px; hadow: 0 0 16px 0 rgba(0, 0, 0, 0.5); margin-bottom: 16px; margin-bottom: 0; font-size: 13px; <div id="wrapper"> <video id="video">Portal is closed.</video> <canvas id="canvas-video"></canvas> <div id="frame"> <div id="text-video"></div> <div id="header"> You are the art in Chainspace.app <button id="stop">Wave</button> function run() { function isMobileDevice() { return (typeof window.orientation !== "undefined") || (navigator.userAgent.indexOf('IEMobile') !== -1); const video = document.getElementById('video') video.setAttribute('autoplay', ''); video.setAttribute('muted', ''); video.setAttribute('playsinline', '') const textVideo = document.getElementById('text-video') const canvas = document.getElementById('canvas-video') const ctx = canvas.getContext('2dM ', { willReadFrequently: true }); let cyclerEnabled = false; let cycler = 0; let isMobile = isMobileDevice(); const chars = [..." const colors = ["#C08EFF", "#380D6F", "#BBAAFF", "#AF7AF1", "#16102E", "#F7EFFF", "#000000", ]; let running = true; function setCanvasSize() { w = Math.min(window.innerWidth, 450); h = Math.min(window.innerHeight, isMobileDevM height = Math.floor(h / 10); width = Math.floor(w / 6.9); let resizeTimeout; window.onresize = function () { clearTimeout(resizeTimeout); resizeTimeout = setTimeout(setCanvasSize, 100); const init = () => { setCanvasSize(); document.body.classList.add(isMobile ? 'mobile' : null) navigator.mediaDevices.getUserMedia({ video: true, audio: false }) .then(function (stream) { video.srcObM video.play(); .catch(function (err) { running = false; const render = (ctx) => { if (width && height) { canvas.width = width; canvas.height = height; ctx.drawImage(video, 0, 0, width, height); const getPixelsGreyScale = (ctx) => { const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); const data = imageData.data; let row = 0M const res = new Array(height).fill(0).map(() => []); for (let i = 0, c = 0; i < data.length; i += 4) { const avg = (data[i] + data[i + 1] + data[i + 2]) / 3; let curr = res[row] curr.push(avg) if (c < width) { if (c === width) { row += 1 if (isMobile) { return res.map(row => row.slice(row.length / 4, row.length - row.length / 4)); const getCharByScale = (scale) => { const val = Math.floor((scale + cycler) / 255 * (chars.length)); return chars[val % chars.length]; const getColorByScale = (scale) => { const val = Math.floor((scale + cycler) / 255 * (colors.length)); return colors[val % colors.length]; const renderText = (node, textDarkScale) => { let gap = isMobileDevice() ? 15 : 10; const gridElem = document.createElement('div'); ridElem.className = 'grid'; gridElem.style.gridTemplateColumns = `repeat(${textDarkScale[0].length}, ${gap}px)`; gridElem.style.gridTemplateRows = `repeat(${textDarkScale.length}, ${gap}px)`; for (let i = 0; i < textDarkScale.length; i++) { for (let k = 0; k < textDarkScale[i].length; k++) { const textElem = document.createElement('p'); textElem.style.color = getColorByScale(textDarkScale[i][k]); textElem.innerHTML = getCharByScale(textDarkScaleM gridElem.appendChild(textElem); node.textContent = ""; node.appendChild(gridElem); const frame = () => requestAnimationFrame(() => { const chars = getPixelsGreyScale(ctx) renderText(textVideo, chars) if (running) { if (cyclerEnabled) { document.getElementById('stop').addEventListener('cMM running = !running if (running) { document.getElementById('text-video').onclick = () => { cyclerEnabled = !cyclerEnabled; window.addEventListener('DOMContentLoaded', () => { zTXtRaw profile type xmp zTXtRaw profile type icc (iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop 24.0 (MacintoM sh)" xmpMM:InstanceID="xmp.iid:88EC2A2DA2DA11EDA65F91629923C66E" xmpMM:DocumentID="xmp.did:88EC2A2EA2DA11EDA65F91629923C66E"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:88EC2A2BA2DA11EDA65F91629923C66E" stRef:documentID="xmp.did:88EC2A2CA2DA11EDA65F91629923C66E"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>ON zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp FjDOUT:9831A8540153ABFD77C62E0A89C271382E110A7526A8AC73412F7FCDC4C127AD FjDOUT:D04C77A7467ABEA3BD82952700D106D3873F3ED62FE5670E3E0EC7092B415F8D FjDOUT:9103D09EB54A815BD56F6B34AAEFEC5161F0066E9C1C5EFE26C0551DF31D4902 FjDOUT:29FC7F8ECE21CA359683B25A9A8C1E7D96A2977824324ED94374D67B743D65B0 TiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 116.dee3a77, 2022/09/01-13:57:08 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xapM /1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 23.5 (Windows)" xmp:CreateDate="2023-02-11T14:08:12-08:00" xmp:MetadataDate="2023-02-11T18:47:58-08:00" xmp:ModifyDate="2023-02-11T18:47:58-08:00" photoshop:ColorMode="3" dc:format="image/png" xmpMM:InstanceID="xmp.iid:6d82a0d3-2549-7649-bd37-b48e1f119715" xmpMM:DocuM mentID="adobe:docid:photoshop:14040e13-1aa8-b045-88e7-7d6cf1625abb" xmpMM:OriginalDocumentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" tiff:Orientation="1" tiff:XResolution="720000/10000" tiff:YResolution="720000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="65535" exif:PixelXDimension="500" exif:PixelYDimension="500"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName=" 60k ordinals club 95 of 100" photoshop:LayerText=" 60k ordinals club 95 of 100"/> </rdf:Bag> </photoshop:TextLayers> <xmpMMM :History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stEvt:when="2023-02-11T14:08:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:97dd7cb7-8f8d-914c-8434-d544cca37bf5" stEvt:when="2023-02-11T18:47:58-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rM df:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:6d82a0d3-2549-7649-bd37-b48e1f119715" stEvt:when="2023-02-11T18:47:58-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:97dd7cb7-8f8d-914c-8434-d544cca37bf5" stRef:documentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stRef:originalDocumentID="xmp.M did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> TiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 116.dee3a77, 2022/09/01-13:57:08 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xapM /1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 23.5 (Windows)" xmp:CreateDate="2023-02-11T14:08:12-08:00" xmp:MetadataDate="2023-02-11T18:47:35-08:00" xmp:ModifyDate="2023-02-11T18:47:35-08:00" photoshop:ColorMode="3" dc:format="image/png" xmpMM:InstanceID="xmp.iid:f53791f8-7c02-2e45-9e53-73774835d77a" xmpMM:DocuM mentID="adobe:docid:photoshop:2511c57f-5716-ae46-8d80-8939fedc3d8f" xmpMM:OriginalDocumentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" tiff:Orientation="1" tiff:XResolution="720000/10000" tiff:YResolution="720000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="65535" exif:PixelXDimension="500" exif:PixelYDimension="500"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName=" 60k ordinals club 93 of 100" photoshop:LayerText=" 60k ordinals club 93 of 100"/> </rdf:Bag> </photoshop:TextLayers> <xmpMMM :History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stEvt:when="2023-02-11T14:08:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:beb1a7f8-e24a-5d4a-a6b9-471fd6eb0114" stEvt:when="2023-02-11T18:47:35-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rM df:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:f53791f8-7c02-2e45-9e53-73774835d77a" stEvt:when="2023-02-11T18:47:35-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:beb1a7f8-e24a-5d4a-a6b9-471fd6eb0114" stRef:documentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stRef:originalDocumentID="xmp.M did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> TiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 116.dee3a77, 2022/09/01-13:57:08 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xapM /1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 23.5 (Windows)" xmp:CreateDate="2023-02-11T14:08:12-08:00" xmp:MetadataDate="2023-02-11T18:47:28-08:00" xmp:ModifyDate="2023-02-11T18:47:28-08:00" photoshop:ColorMode="3" dc:format="image/png" xmpMM:InstanceID="xmp.iid:9af4d566-1ef2-8f4d-9d76-9da2e2e78cd9" xmpMM:DocuM mentID="adobe:docid:photoshop:14538dfd-a2a3-6841-b13c-962a46abfc91" xmpMM:OriginalDocumentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" tiff:Orientation="1" tiff:XResolution="720000/10000" tiff:YResolution="720000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="65535" exif:PixelXDimension="500" exif:PixelYDimension="500"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName=" 60k ordinals club 92 of 100" photoshop:LayerText=" 60k ordinals club 92 of 100"/> </rdf:Bag> </photoshop:TextLayers> <xmpMMM :History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stEvt:when="2023-02-11T14:08:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:306608b2-af47-804d-abb0-af6f67bf6180" stEvt:when="2023-02-11T18:47:28-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rM df:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:9af4d566-1ef2-8f4d-9d76-9da2e2e78cd9" stEvt:when="2023-02-11T18:47:28-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:306608b2-af47-804d-abb0-af6f67bf6180" stRef:documentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stRef:originalDocumentID="xmp.M did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>gcS text/html;charset=utf-8 <title>Bitcoin Shrooms Poems - Day 1</title> <meta name="description" content="Ode to Bitcoin Shrooms"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <h1>Oh how I long to acquire a Bitcoin Shroom</h1> I long to hold a shroom in my hand,<br /> A treasure rare, within the Bitcoin land.<br /> Its value more than just a monetary hold,<br /> A symbol of the future, a story untold.<br /><br M The discord server calls to me with might,<br /> A place to share and learn, a delight.<br /> But locked doors prevent me from taking part,<br /> Leaving me longing, with a heavy heart.<br /><br /> Oh, how I yearn to join the fray,<br /> And be a part of this community today.<br /> So let me in, give me a chance,<br /> To own a shroom and join the dance.<br /><br /> I promise I'll cherish it with all my might,<br /> And bask in thM e glory of this digital sight.<br /> So open the doors and let me come inside,<br /> And fulfill my dreams, I won't run and hide.<br /><br /> --------------------------------------------- <h3>Previous Poems</h3> <ul>This is the first!</ul> <p>---------------------------------------------</p> <footer>These poems are created by ChatGPT and inscribed to be immutable artifacts in history to forever be cherised by the masses.<br /><br /> With love,<br /><a hreEf="https://twitter.com/maximonee_">Maximonee</a> TiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 116.dee3a77, 2022/09/01-13:57:08 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xapM /1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 23.5 (Windows)" xmp:CreateDate="2023-02-11T14:08:12-08:00" xmp:MetadataDate="2023-02-11T18:47:22-08:00" xmp:ModifyDate="2023-02-11T18:47:22-08:00" photoshop:ColorMode="3" dc:format="image/png" xmpMM:InstanceID="xmp.iid:1fd232cf-6e7e-a64c-97c8-79a392e99964" xmpMM:DocuM mentID="adobe:docid:photoshop:9769d6ee-5b4e-954f-9719-4152b66b2cdc" xmpMM:OriginalDocumentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" tiff:Orientation="1" tiff:XResolution="720000/10000" tiff:YResolution="720000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="65535" exif:PixelXDimension="500" exif:PixelYDimension="500"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName=" 60k ordinals club 91 of 100" photoshop:LayerText=" 60k ordinals club 91 of 100"/> </rdf:Bag> </photoshop:TextLayers> <xmpMMM :History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stEvt:when="2023-02-11T14:08:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:0cc360f5-f447-bb44-a279-519f6c6c49ba" stEvt:when="2023-02-11T18:47:22-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rM df:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:1fd232cf-6e7e-a64c-97c8-79a392e99964" stEvt:when="2023-02-11T18:47:22-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:0cc360f5-f447-bb44-a279-519f6c6c49ba" stRef:documentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stRef:originalDocumentID="xmp.M did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> TiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 116.dee3a77, 2022/09/01-13:57:08 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xapM /1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 23.5 (Windows)" xmp:CreateDate="2023-02-11T14:08:12-08:00" xmp:MetadataDate="2023-02-11T18:47:50-08:00" xmp:ModifyDate="2023-02-11T18:47:50-08:00" photoshop:ColorMode="3" dc:format="image/png" xmpMM:InstanceID="xmp.iid:698a0d17-d517-364e-9a72-db24036a1032" xmpMM:DocuM mentID="adobe:docid:photoshop:bae3c769-78bd-1f43-827d-5ad4487b11af" xmpMM:OriginalDocumentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" tiff:Orientation="1" tiff:XResolution="720000/10000" tiff:YResolution="720000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="65535" exif:PixelXDimension="500" exif:PixelYDimension="500"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName=" 60k ordinals club 94 of 100" photoshop:LayerText=" 60k ordinals club 94 of 100"/> </rdf:Bag> </photoshop:TextLayers> <xmpMMM :History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stEvt:when="2023-02-11T14:08:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:dfbf13cc-2e6a-d34f-a5bb-3ec6856e8bac" stEvt:when="2023-02-11T18:47:50-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rM df:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:698a0d17-d517-364e-9a72-db24036a1032" stEvt:when="2023-02-11T18:47:50-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:dfbf13cc-2e6a-d34f-a5bb-3ec6856e8bac" stRef:documentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stRef:originalDocumentID="xmp.M did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>y TiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 116.dee3a77, 2022/09/01-13:57:08 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xapM /1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 23.5 (Windows)" xmp:CreateDate="2023-02-11T14:08:12-08:00" xmp:MetadataDate="2023-02-11T18:48:05-08:00" xmp:ModifyDate="2023-02-11T18:48:05-08:00" photoshop:ColorMode="3" dc:format="image/png" xmpMM:InstanceID="xmp.iid:4c5b298d-4e30-0e4c-ae26-882cbe384203" xmpMM:DocuM mentID="adobe:docid:photoshop:b8a85ca1-b757-5f40-b52f-cac2f39a03b6" xmpMM:OriginalDocumentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" tiff:Orientation="1" tiff:XResolution="720000/10000" tiff:YResolution="720000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="65535" exif:PixelXDimension="500" exif:PixelYDimension="500"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName=" 60k ordinals club 96 of 100" photoshop:LayerText=" 60k ordinals club 96 of 100"/> </rdf:Bag> </photoshop:TextLayers> <xmpMMM :History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stEvt:when="2023-02-11T14:08:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:b3b16f1a-6f64-d24f-ac6d-b4c647d4f5e9" stEvt:when="2023-02-11T18:48:05-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rM df:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:4c5b298d-4e30-0e4c-ae26-882cbe384203" stEvt:when="2023-02-11T18:48:05-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:b3b16f1a-6f64-d24f-ac6d-b4c647d4f5e9" stRef:documentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stRef:originalDocumentID="xmp.M did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> !22222222222222222222222222222222222222222222222222 " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"M > <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:d9cf1d93-96bf-4209-8de2-71e7432b3fd3" xmpMM:InstanceID="xmp.iid:e7a8df85-3194-4db5-a80f-c5ba78cd47f3" xmpMM:OriginalDocumentID="xmp.did:6b4108ca-66a5-43fe-b14c-0724a58106a5" dc:FoM rmat="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamp="1676240142357049" GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T09:15:40+11:00" xmp:ModifyDate="2023:02:13T09:15:40+11:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:550a00b8-27a1-4a15-a26e-4cdcfff548a0" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T09:15:42"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RM DF> </x:xmpmeta> M M M <?xpacket end=" +zTXtRaw profile type exif gzTXtRaw profile type iptc UiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:iptcExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:plus="http://ns.useplus.org/ldf/xmp/1.0/" http://www.gimp.org/xmp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:e99daf9c-4cc2-408b-84e2-aa62e1de42c6" xmpMM:InstanceID="xmp.iid:8a768904-c1bf-4f6e-ba0e-4dd67d5b2095" xmpMM:OriginalDocumentID="xmp.did:24ee5615-a128-4539-8c07-19ff51d342df" GIMP:Platform="Windows" GIMP:TimeStamp="1654446978785781" GIMP:Version="2.10.20" dc:Format="image/png" xmp:CreatorTool="GIMP 2.10"> <iptcExt:LocatioM </iptcExt:LocationCreated> <iptcExt:LocationShown> </iptcExt:LocationShown> <iptcExt:ArtworkOrObject> </iptcExt:ArtworkOrObject> <iptcExt:RegistryId> </iptcExt:RegistryId> stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:7e2013ba-91d5-4f53-a020-c387933bb18c" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2022-06-05T19:36:18"/> <plus:ImageSupplier> </plus:ImageSupplier> <plus:ImageCreator> </plus:ImageCreator> <plus:CopyrightOwner> </plus:CopyrightOwner> </rdf:Description> M M M <?xpacket end="w"?>rC text/plain;charset=utf-8 EGBUEDIKE OF UBAHA, NNOBIh! zTXtRaw profile type exif gzTXtRaw profile type iptc UiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:iptcExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:plus="http://ns.useplus.org/ldf/xmp/1.0/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmp="http://ns.adobe.coM xmpMM:DocumentID="gimp:docid:gimp:4609103b-3b72-47fc-a506-d53aaf37ed91" xmpMM:InstanceID="xmp.iid:1f0ee716-3085-4bba-bd09-07f7afd41341" xmpMM:OriginalDocumentID="xmp.did:401fe8fb-73f2-47a7-815e-974849a29060" GIMP:Platform="Windows" GIMP:TimeStamp="1654454759053514" GIMP:Version="2.10.20" dc:Format="image/png" xmp:CreatorTool="GIMP 2.10"> <iptcExt:LocationCreated> </iptcExt:LocationCreated> <iptcExt:LocationShown> <iptcExt:ArtworkOrObject> </iptcExt:ArtworkOrObject> <iptcExt:RegistryId> </iptcExt:RegistryId> stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:d304d578-1f95-4a2e-8e34-646e3e349194" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2022-06-05T21:45:59"/> <plus:ImageSupplier> </plus:ImageSupplier> </plus:ImageCreator> <plus:CopyrightOwner> </plus:CopyrightOwner> </rdf:Description> M M M <?xpacket end="w"?>s zTXtRaw profile type exif ezTXtRaw profile type iptc UiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:iptcExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adM obe.com/xap/1.0/sType/ResourceEvent#" xmlns:plus="http://ns.useplus.org/ldf/xmp/1.0/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:f2263cce-7692-41a4-aeac-8f918992ed10" xmpMM:InstanceID="xmp.iid:62c3c5e6-6a70-49b3-8311-184dda1a5131" xmpMM:OriginalDocumentID="xmp.did:ac86b3d3-2b7f-47d1-9d3e-f6396423141a" GIMP:Platform="Windows" GIMP:TimeStamp="16544587342871M GIMP:Version="2.10.20" dc:Format="image/png" xmp:CreatorTool="GIMP 2.10"> <iptcExt:LocationCreated> </iptcExt:LocationCreated> <iptcExt:LocationShown> </iptcExt:LocationShown> <iptcExt:ArtworkOrObject> </iptcExt:ArtworkOrObject> <iptcExt:RegistryId> </iptcExt:RegistryId> stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:ca496d0e-4926-4b4a-934M stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2022-06-05T22:52:14"/> <plus:ImageSupplier> </plus:ImageSupplier> <plus:ImageCreator> </plus:ImageCreator> <plus:CopyrightOwner> </plus:CopyrightOwner> </rdf:Description> M M " id="W5M0MpCehiHzreSzNTczkc9d"?> <xM :xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:daabe5b7-c9d4-4f60-8364-bf80c6e879a2" xmpMM:InstaM nceID="xmp.iid:004a0b23-42f9-448f-9809-401d858b3b1a" xmpMM:OriginalDocumentID="xmp.did:028a460b-2b12-40bf-a8bb-99a2317437bc" dc:Format="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamp="1676239010517256" GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T08:56:48+11:00" xmp:ModifyDate="2023:02:13T08:56:48+11:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:083ce063-8f8e-47f2-85c4-f97b5d2198fe" sM tEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T08:56:50"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M L <?xpacket end="w"?>h! $ &%# #"(-90(*6+"#2D26;=@@@&0FKE>J9?@= =)#)================================================== zTXtRaw profile type exif IjGREFUND:1D17496B0FAC977D556FCB971CD6D8B78FF26172A797427AA1F3DBCD12C1D01A FjDOUT:8CD064DC127FFA6BEDFBD974839100B1ACB5DD9DACD6937CF8A72486ECEEF8C6 xr:d:DAFaTV4qtIk:2,j:3512288625,t:23021121 iTXtXML:com.adobe.xmp http://ns.adobe.com/xap/1.0/ <x:xmpmeta xmlns:x='adobe:ns:meta/'> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'> <rdf:Description rdf:about='' xmlns:dc='http://purl.org/dc/elements/1.1/'> <rdf:li xml:lang='x-default'>punk - 1</rdf:li> <rdf:Description rdf:about='' xmlns:Attrib='http://ns.attribution.com/ads/1.0/'> <Attrib:Ads> <rdf:li rdf:parseType='Resource'> <Attrib:Created>2023-02-11</Attrib:Created> <Attrib:ExtId>170f71f2-0f22-41e0-857d-24e88ebfd45c</Attrib:ExtId> <Attrib:FbId>525265914179580</Attrib:FbId> <Attrib:TouchType>2</Attrib:TouchType> </Attrib:Ads> </rdf:Description> escription rdf:about='' xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> <pdf:Author>Taras Chaus</pdf:Author> </rdf:Description> <rdf:Description rdf:about='' xmlns:xmp='http://ns.adobe.com/xap/1.0/'> <xmp:CreatorTool>Canva</xmp:CreatorTool> </rdf:Description> </x:xmpmeta> text/plain;charset=utf-8 zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type icc IjGREFUND:E671FA4AA9044DE194DDB74E2C747ACA6736F3795CFCB8E461F509BEECDE6553 IjGREFUND:D85FC46C0EC263C58F0CA738B4CC4FECB7BD2BCAF0A34DB7735320CEEFB6A877 <?xml version="1.0" encoding="UTF-8"?> <svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8"> <!--puzzlords.com s1p0027/4096 2,0,0,2,1 ~0.1524709602817893--> <style type="text/css"> polyline{stroke:#000;stroke-width:0.15} <rect fill="#9296A0" width="100%" height="100%"/> <polyline fill="#F652A0" points="0,8 5,2 5,3 0,0 "/> <polyline fill="#52F6A8" points="8,0 7,3 6,3 8,8 "/> <polyline fill="#52F6A8" points="8,8 2,4 2,4 0,8 "/> <polyline fill="#F652A0" points="0,0 3,2 4,3 8,0 "/> yhttp://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmpM .did:8047d0d8-2724-4e57-89e1-a5a167d200af" xmpMM:DocumentID="xmp.did:6886FA2C92E011ED8BE1DEE42A5D3B20" xmpMM:InstanceID="xmp.iid:D42BE78E92DF11ED8BE1DEE42A5D3B20" xmp:CreatorTool="Adobe Photoshop 24.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:7A2F891A92DC11ED8BE1DEE42A5D3B20" stRef:documentID="xmp.did:7A2F891B92DC11ED8BE1DEE42A5D3B20"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> //33//@@@@@@@@@@@@@@@ #0+.'''.+550055@@?@@@@@@@@@@@@ http://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmpM .did:8047d0d8-2724-4e57-89e1-a5a167d200af" xmpMM:DocumentID="xmp.did:7A2F891792DC11ED8BE1DEE42A5D3B20" xmpMM:InstanceID="xmp.iid:7A2F891692DC11ED8BE1DEE42A5D3B20" xmp:CreatorTool="Adobe Photoshop 24.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8047d0d8-2724-4e57-89e1-a5a167d200af" stRef:documentID="xmp.did:8047d0d8-2724-4e57-89e1-a5a167d200af"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> //33//@@@@@@@@@@@@@@@ #0+.'''.+550055@@?@@@@@@@@@@@@ TiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 116.dee3a77, 2022/09/01-13:57:08 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xapM /1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 23.5 (Windows)" xmp:CreateDate="2023-02-11T14:08:12-08:00" xmp:MetadataDate="2023-02-11T18:48:27-08:00" xmp:ModifyDate="2023-02-11T18:48:27-08:00" photoshop:ColorMode="3" dc:format="image/png" xmpMM:InstanceID="xmp.iid:76e6c32d-bed8-5b44-9cef-11c6dac7b7fb" xmpMM:DocuM mentID="adobe:docid:photoshop:b1c68d9f-1529-1e45-b163-24dbf77c1b94" xmpMM:OriginalDocumentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" tiff:Orientation="1" tiff:XResolution="720000/10000" tiff:YResolution="720000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="65535" exif:PixelXDimension="500" exif:PixelYDimension="500"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName=" 60k ordinals club 99 of 100" photoshop:LayerText=" 60k ordinals club 99 of 100"/> </rdf:Bag> </photoshop:TextLayers> <xmpMMM :History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stEvt:when="2023-02-11T14:08:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:ef98e2cc-7ab8-b44e-bb89-b1e80950671b" stEvt:when="2023-02-11T18:48:27-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rM df:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:76e6c32d-bed8-5b44-9cef-11c6dac7b7fb" stEvt:when="2023-02-11T18:48:27-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:ef98e2cc-7ab8-b44e-bb89-b1e80950671b" stRef:documentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stRef:originalDocumentID="xmp.M did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>= text/html;charset=utf-8 <title>Bitcoin Shrooms Poems - Day 2</title> <meta name="description" content="Ode to Bitcoin Shrooms"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <h1>Oh how I longeth to acquireth a bitcoin shroom</h1> Good morrow, gentle sun, thou bringeth light,<br /> To this poor soul that pine for shroom tonight.<br /> In Bitcoin's land, there lies a treasure trove,<br /> The "Shrooms" they calM l it, with worth untold.<br /><br /> Yet, access to the server I do lack,<br /> Locked doors prevent me from joining the pack.<br /> Oh, cruel fate, why must thou be so unkind?<br /> And keep me from this joyous gathering of mind.<br /><br /> Discord's call doth ring within my ear,<br /> A symphony of knowledge, a choir so clear.<br /> And so I pray, with heart full of fire,<br /> That I may enter, and this desire<br /><br /> Shall be fulfilled, and I shall partake<br /> In the discourse and knowledge of each shroom at stake.<br /> So hear my plea, oh doors of the server,<br /> And grant me passage, now and forever.<br /><br /> --------------------------------------------- <h3>Previous Poems</h3> <ul><a href="https://ordinals.com/inscription/52250a916387f75c5ec32cdb1b60134f3242a78bdcb31a67c347b10be3e50ce8i0" rel="noopener noreferrer" target="_blank">Inscription #67838 - Oh how I M long to acquire a Bitcoin Shroom</a></ul> <p>---------------------------------------------</p> <footer>These poems are created by ChatGPT and inscribed to be immutable artifacts in history to forever be cherised by the masses.<br /><br /> With love,<br /><a href="https://twitter.com/maximonee_" rel="noopener noreferrer" target="_blank">Maximonee</a> TiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 116.dee3a77, 2022/09/01-13:57:08 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xapM /1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 23.5 (Windows)" xmp:CreateDate="2023-02-11T14:08:12-08:00" xmp:MetadataDate="2023-02-11T18:48:12-08:00" xmp:ModifyDate="2023-02-11T18:48:12-08:00" photoshop:ColorMode="3" dc:format="image/png" xmpMM:InstanceID="xmp.iid:b2a5a1d7-d768-3d48-95e5-4f4c8b798c46" xmpMM:DocuM mentID="adobe:docid:photoshop:e1d3fb90-8303-8c48-925d-d40cbd928573" xmpMM:OriginalDocumentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" tiff:Orientation="1" tiff:XResolution="720000/10000" tiff:YResolution="720000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="65535" exif:PixelXDimension="500" exif:PixelYDimension="500"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName=" 60k ordinals club 97 of 100" photoshop:LayerText=" 60k ordinals club 97 of 100"/> </rdf:Bag> </photoshop:TextLayers> <xmpMMM :History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stEvt:when="2023-02-11T14:08:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:c52a1eef-9bf8-be4f-8c13-8434bda064a0" stEvt:when="2023-02-11T18:48:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rM df:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:b2a5a1d7-d768-3d48-95e5-4f4c8b798c46" stEvt:when="2023-02-11T18:48:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:c52a1eef-9bf8-be4f-8c13-8434bda064a0" stRef:documentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stRef:originalDocumentID="xmp.M did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> TiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 116.dee3a77, 2022/09/01-13:57:08 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xapM /1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 23.5 (Windows)" xmp:CreateDate="2023-02-11T14:08:12-08:00" xmp:MetadataDate="2023-02-11T18:48:19-08:00" xmp:ModifyDate="2023-02-11T18:48:19-08:00" photoshop:ColorMode="3" dc:format="image/png" xmpMM:InstanceID="xmp.iid:61d00f5a-bdd2-5546-9df8-7a49e97f55d1" xmpMM:DocuM mentID="adobe:docid:photoshop:f7fab611-7933-2a4e-b5bf-b46027818ca9" xmpMM:OriginalDocumentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" tiff:Orientation="1" tiff:XResolution="720000/10000" tiff:YResolution="720000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="65535" exif:PixelXDimension="500" exif:PixelYDimension="500"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName=" 60k ordinals club 98 of 100" photoshop:LayerText=" 60k ordinals club 98 of 100"/> </rdf:Bag> </photoshop:TextLayers> <xmpMMM :History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stEvt:when="2023-02-11T14:08:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:f8295029-19aa-8c43-bf0f-fd725cdb56e0" stEvt:when="2023-02-11T18:48:19-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rM df:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:61d00f5a-bdd2-5546-9df8-7a49e97f55d1" stEvt:when="2023-02-11T18:48:19-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:f8295029-19aa-8c43-bf0f-fd725cdb56e0" stRef:documentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stRef:originalDocumentID="xmp.M did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> XMP DataXMP<?xpacket begin=" " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" M x:xmptk="Adobe XMP Core 6.0-c002 79.164488, 2020/07/10-22:06:53 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:4ce61c0c-d817-435a-8769-b0c55cfa2050" xmpMM:DocumentID="xmp.did:35F7BEAE9C9C11EB87B7F9B002BA677B" xmpMM:InstanceID="xmp.iid:35F7BEAD9C9C11EB87B7F9B002BA677B" xmp:CreatoM rTool="Adobe Photoshop 22.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:da54bab2-e2fc-42c8-9073-506f90d7e16a" stRef:documentID="adobe:docid:photoshop:a3ff8b91-450f-7f4c-a06a-9ef487900389"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! (((((((((((((((((((((((((((((((((((((((((((((((((( "!&+7/&)4)!"0A149;>>>%.DIC<H7=>; ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Adobe Photoshop 22.4 (Macintosh) %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz YiTXtXML:com.adobe.xmp <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"> <tiff:Orientation>1</tiff:Orientation> </rdf:Description> text/html;charset=utf-8 <html><script>function e(e){"use strict";return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100,n.height=100,n.canvas.width=n.width,n.canvas.height=n.height,"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",(function(){document.body.appendChild(n.canvas)}))),y(),n.MAGIC=161533525,n.RGB=0,n.HSV=1,n.HSB=1,n.CHORD=0,n.PIE=1,n.OPEN=2,n.RADIUS=1,n.CORNER=2,n.CORNERS=3,n.ROUND="round",n.SQM UARE="butt",n.PROJECT="square",n.MITER="miter",n.BEVEL="bevel",n.CLOSE=1,n.BLEND="source-over",n.REMOVE="destination-out",n.ADD="lighter",n.DARKEST="darken",n.LIGHTEST="lighten",n.DIFFERENCE="difference",n.SUBTRACT="subtract",n.EXCLUSION="exclusion",n.MULTIPLY="multiply",n.SCREEN="screen",n.REPLACE="copy",n.OVERLAY="overlay",n.HARD_LIGHT="hard-light",n.SOFT_LIGHT="soft-light",n.DODGE="color-dodge",n.BURN="color-burn",n.NORMAL="normal",n.ITALIC="italic",n.BOLD="bold",n.BOLDITALIC="italic bold",n.CENTER="center",n.LEM FT="left",n.RIGHT="right",n.TOP="top",n.BOTTOM="bottom",n.BASELINE="alphabetic",n.LANDSCAPE="landscape",n.PORTRAIT="portrait",n.ALT=18,n.BACKSPACE=8,n.CONTROL=17,n.DELETE=46,n.DOWN_ARROW=40,n.ENTER=13,n.ESCAPE=27,n.LEFT_ARROW=37,n.OPTION=18,n.RETURN=13,n.RIGHT_ARROW=39,n.SHIFT=16,n.TAB=9,n.UP_ARROW=38,n.HALF_PI=Math.PI/2,n.PI=Math.PI,n.QUARTER_PI=Math.PI/4,n.TAU=2*Math.PI,n.TWO_PI=2*Math.PI,n.THRESHOLD=1,n.GRAY=2,n.OPAQUE=3,n.INVERT=4,n.POSTERIZE=5,n.DILATE=6,n.ERODE=7,n.BLUR=8,n.ARROW="default",n.CROSS="crosshair"M ,n.HAND="pointer",n.MOVE="move",n.TEXT="text",n.VIDEO={video:!0,audio:!1},n.AUDIO={video:!1,audio:!0},n.SHR3=1,n.LCG=2,n.HARDWARE_FILTERS=!0,n.hint=function(e,t){n[e]=t},n.frameCount=0,n.mouseX=0,n.mouseY=0,n.pmouseX=0,n.pmouseY=0,n.mouseButton=null,n.keyIsPressed=!1,n.mouseIsPressed=!1,n.key=null,n.keyCode=null,n.pixels=null,n.accelerationX=0,n.accelerationY=0,n.accelerationZ=0,n.rotationX=0,n.rotationY=0,n.rotationZ=0,n.relRotationX=0,n.relRotationY=0,n.relRotationZ=0,n.pAccelerationX=0,n.pAccelerationY=0,n.pAcceM lerationZ=0,n.pRotationX=0,n.pRotationY=0,n.pRotationZ=0,n.pRelRotationX=0,n.pRelRotationY=0,n.pRelRotationZ=0,n.touches=[],n._styleCache=[{colorMode:n.RGB,noStroke:!1,noFill:!1,ellipseMode:n.CENTER,rectMode:n.CORNER,curveDetail:20,curveAlpha:0,textFont:"sans-serif",textSize:12,textLeading:12,textStyle:"normal"}],n._style=n._styleCache[n._styleCache.length-1],n._noLoop=!1,n._pixelDensity=1,n._frameRate=null,n._tint=null;let r=null,a=!0,i=[],l=null,s=0,u={},c=0,h=null,f=null,d=null;Object.defineProperty(n,"deviceOriM entation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}}),Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}}),Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}}),Object.defineProperty(n,"drawingContext",{get:function(){return o}}),n.createCanvas=function(e,t){return n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t,y(),n.canvas},n.resizeCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t},nM .createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o},n.pixelDensity=function(e){return null==e||(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),y()),n._pixelDensity},n.map=function(e,t,n,o,r,a){let i=o+1*(e-t)/(n-t)*(r-o);return a?o<r?Math.min(Math.max(i,o),r):Math.min(Math.max(i,r),o):i},n.lerp=function(eM ,t,n){return e*(1-n)+t*n},n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)},n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])},n.norm=function(e,t,o){return n.map(e,t,o,0,1)},n.sq=function(e){return e*e},n.fract=function(e){return e-Math.floor(e)},n.degrees=function(e){return 180*e/Math.PI},n.radians=function(e){return e*Math.PI/180},n.abs=Math.abs,n.ceil=MM ath.ceil,n.exp=Math.exp,n.floor=Math.floor,n.log=Math.log,n.mag=Math.hypot,n.max=Math.max,n.min=Math.min,n.round=Math.round,n.sqrt=Math.sqrt,n.sin=Math.sin,n.cos=Math.cos,n.tan=Math.tan,n.asin=Math.asin,n.acos=Math.acos,n.atan=Math.atan,n.atan2=Math.atan2,n.Vector=function(e,t,o){let r=this;r.x=e||0,r.y=t||0,r.z=o||0;let a=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n||0}:{x:e,y:e,z:e}}function s(){null==i&&(i=r.x*r.x+r.y*r.y+r.z*r.z,a=Math.sqrt(i))}function u(){i=null,a=null}r.set=function(M e,t,n){r.x=e||0,r.y=t||0,r.z=n||0},r.copy=function(){return new n.Vector(r.x,r.y,r.z)},r.add=function(){let e=l.apply(null,arguments);return r.x+=e.x,r.y+=e.y,r.z+=e.z,u(),r},r.rem=function(){let e=l.apply(null,arguments);return r.x%=e.x,r.y%=e.y,r.z%=e.z,u(),r},r.sub=function(){let e=l.apply(null,arguments);return r.x-=e.x,r.y-=e.y,r.z-=e.z,u(),r},r.mult=function(){let e=l.apply(null,arguments);return r.x*=e.x,r.y*=e.y,r.z*=e.z,u(),r},r.div=function(){let e=l.apply(null,arguments);return r.x/=e.x,r.y/=e.y,r.z/=e.zM ,u(),r},r.mag=function(){return s(),a},r.magSq=function(){return s(),i},r.dot=function(){let e=l.apply(null,arguments);return r.x*e.x+r.y*e.y+r.z*e.z},r.dist=function(){let e=l.apply(null,arguments),t=r.x-e.x,n=r.y-e.y,o=r.z-e.z;return Math.sqrt(t*t+n*n+o*o)},r.cross=function(){let e=l.apply(null,arguments),t=r.y*e.z-r.z*e.y,n=r.z*e.x-r.x*e.z,o=r.x*e.y-r.y*e.x;return r.x=t,r.y=n,r.z=o,u(),r},r.normalize=function(){s();let e=a;return r.x/=e,r.y/=e,r.z/=e,a=1,i=1,r},r.limit=function(e){s();if(a>e){let t=e/a;r.x*=t,r.M y*=t,r.z*=t,a=e,i=e*e}return r},r.setMag=function(e){s();let t=e/a;return r.x*=t,r.y*=t,r.z*=t,a=e,i=e*e,r},r.heading=function(){return Math.atan2(r.y,r.x)},r.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=r.x*t-r.y*n,a=r.x*n+r.y*t;return r.x=o,r.y=a,r},r.angleBetween=function(){let e=l.apply(null,arguments);const t=r.dot(e)/(r.mag()*e.mag());let n;return n=Math.acos(Math.min(1,Math.max(-1,t))),n*Math.sign(r.cross(e).z||1)},r.lerp=function(e,t){return r.x=r.x*(1-t)+e.x*t,r.y=r.y*(1-t)+e.y*t,r.z=r.z*(1-t)+e.z*M t,u(),r},r.reflect=function(e){return e.normalize(),r.sub(e.mult(2*r.dot(e)))},r.array=function(){return[r.x,r.y,r.z]},r.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-r.x)<t&&Math.abs(e.y-r.y)<t&&Math.abs(e.z-r.z)<t},r.fromAngle=function(e,t){return null==t&&(t=1),a=t,i=t*t,r.x=t*Math.cos(e),r.y=t*Math.sin(e),r.z=0,r},r.fromAngles=function(e,t,n){null==n&&(n=1),a=n,i=n*n;const o=Math.cos(t),l=Math.sin(t),s=Math.cos(e),u=Math.sin(e);return r.x=n*u*l,r.y=-n*s,r.z=n*u*o,r},r.random2M D=function(){return a=1,i=1,r.fromAngle(Math.random()*Math.PI*2)},r.random3D=function(){return a=1,i=1,r.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},r.toString=function(){return`[${r.x}, ${r.y}, ${r.z}]`}},n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)},n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)},n.Vector.sub=function(e,t){return new n.Vector(e.x-t.x,e.y-t.y,e.z-t.z)},n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):nM ew n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)},n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)},n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)},n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)},n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-o)+t.x*o,e.y=e.y*(1-o)+t.y*o,e.z=e.z*(1-o)+t.z*o)},n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAnglM es","random2D","random3D"])n.Vector[e]=function(t,o,r){return(new n.Vector)[e](t,o,r)};function p(e,t,n){let o,r,a,i,l,s,u,c,h;if(0==t)return[255*(o=n),255*(r=n),255*(a=n)];switch((i=e)>360&&(i=0),u=n*(1-t),c=n*(1-t*(s=(i/=60)-(l=~~i))),h=n*(1-t*(1-s)),l){case 0:o=n,r=h,a=u;break;case 1:o=c,r=n,a=u;break;case 2:o=u,r=n,a=h;break;case 3:o=u,r=c,a=n;break;case 4:o=h,r=u,a=n;break;default:o=n,r=u,a=c}return[255*o,255*r,255*a]}function y(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}fM unction m(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function g(e,t,r,a,i,l,s,u){if(n._style.noFill&&n._style.noStroke)return;let c=m(i),h=m(l);o.beginPath();for(let i=0;i<u+1;i++){let l=i/u,s=n.lerp(c,h,l),f=Math.cos(s)*r/2,d=Math.sin(s)*a/2;o[i?"lineTo":"moveTo"](e+f,t+d)}s==n.CHORD?o.closePath():s==n.PIE&&(o.lineTo(e,t),o.closePath()),n._style.noFill||o.fill(),n._style.noStroke||o.stroke()}function v(e,t,r,a){n._style.noFill&&n._style.noStroke||(o.beginPath(),oM .ellipse(e,t,r/2,a/2,0,0,2*Math.PI),n._style.noFill||o.fill(),n._style.noStroke||o.stroke())}function M(e,t,r,a,i,l,s,u){if(n._style.noFill&&n._style.noStroke)return;if(null==i)return function(e,t,r,a){n._style.noFill||o.fillRect(e,t,r,a),n._style.noStroke||o.strokeRect(e,t,r,a)}(e,t,r,a);if(null==l)return M(e,t,r,a,i,i,i,i);const c=Math.min(Math.abs(a),Math.abs(r))/2;i=Math.min(c,i),l=Math.min(c,l),u=Math.min(c,u),s=Math.min(c,s),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+r,t,e+r,t+a,l),o.arcTo(e+r,t+a,e,t+a,s),o.arcM To(e,t+a,e,t,u),o.arcTo(e,t,e+r,t,i),o.closePath(),n._style.noFill||o.fill(),n._style.noStroke||o.stroke()}function _(){i=[]}n.createVector=function(e,t,o){return new n.Vector(e,t,o)},n.curvePoint=function(e,t,n,o,r){const a=r*r*r,i=r*r;return e*(-.5*a+i-.5*r)+t*(1.5*a-2.5*i+1)+n*(-1.5*a+2*i+.5*r)+o*(.5*a-.5*i)},n.bezierPoint=function(e,t,n,o,r){const a=1-r;return Math.pow(a,3)*e+3*Math.pow(a,2)*r*t+3*a*Math.pow(r,2)*n+Math.pow(r,3)*o},n.curveTangent=function(e,t,n,o,r){const a=r*r;return e*(-3*a/2+2*r-.5)+t*(9*a/2M -5*r)+n*(-9*a/2+4*r+.5)+o*(3*a/2-r)},n.bezierTangent=function(e,t,n,o,r){const a=1-r;return 3*o*Math.pow(r,2)-3*n*Math.pow(r,2)+6*n*a*r-6*t*a*r+3*t*Math.pow(a,2)-3*e*Math.pow(a,2)},n.Color=function(e,t,n,o){let r=this;r.MAGIC=786698,r._r=e,r._g=t,r._b=n,r._a=o,r._h=0,r._s=0,r._v=0,r._hsvInferred=!1,r.setRed=function(e){r._r=e,r._hsvInferred=!1},r.setGreen=function(e){r._g=e,r._hsvInferred=!1},r.setBlue=function(e){r._b=e,r._hsvInferred=!1},r.setAlpha=function(e){r._a=e/255,r._hsvInferred=!1},r._inferHSV=function(){M r._hsvInferred||([r._h,r._s,r._v]=function(e,t,n){let o,r,a,i,l;return o=e<t?e<n?e:n:t<n?t:n,0==(l=100*(r=e>t?e>n?e:n:t>n?t:n)/255)?[a=0,i=0,l]:0==(i=100*(r-o)/r)?[a=0,i,l]:(a=r==e?0+60*(t-n)/(r-o):r==t?120+60*(n-e)/(r-o):240+60*(e-t)/(r-o),[a,i,l])}(r._r,r._g,r._b),r._hsvInferred=!0)},r.toString=function(){return`rgba(${Math.round(r._r)},${Math.round(r._g)},${Math.round(r._b)},${~~(1e3*r._a)/1e3})`}},n.colorMode=function(e){n._style.colorMode=e},n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGICM )return arguments[0];if(n._style.colorMode==n.RGB){if(1==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)retM urn new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);if(3==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null},n.red=function(e){return e._r},n.green=function(e){return e._g},n.blue=function(e){return e._b},n.alpha=function(e){return 255*e._a},n.hue=function(e){return e._inferHSV(),e._h},n.saturation=function(e){return e._inferHSV(),e._s},n.brightnM ess=function(e){return e._inferHSV(),e._v},n.lightness=function(e){return 100*(.2126*e._r+.7152*e._g+.0722*e._b)/255},n.lerpColor=function(e,t,o){return n._style.colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var r=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.mapM (o,0,1,e,t-360)]];return r.sort(((e,t)=>e[0]-t[0])),(r[0][1]+720)%360}(e._h,t._h,o),0,360),n.constrain(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))},n.strokeWeight=function(e){n._style_noStroke=!1,o.lineWidth=e},n.stroke=function(){if(n._style.noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._style.noStroke=!0:o.strokeStyle=e},n.noStroke=function(){n._style.noStroke=!0},n.fill=fM unction(){if(n._style.noFill=!1,"string"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._style.noFill=!0:o.fillStyle=e},n.noFill=function(){n._style.noFill=!0},n.blendMode=function(e){o.globalCompositeOperation=e},n.strokeCap=function(e){o.lineCap=e},n.strokeJoin=function(e){o.lineJoin=e},n.ellipseMode=function(e){n._style.ellipseMode=e},n.rectMode=function(e){n._style.rectMode=e},n.curveDetail=function(e){n._style.curveDetail=e},n.curveAlpha=function(e){n._M style.curveAlpha=e},n.curveTightness=function(e){n._style.curveAlpha=e},n.clear=function(){o.clearRect(0,0,n.width,n.height)},n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity),o.fillStyle="string"==typeof arguments[0]?arguments[0]:n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.height),o.restore()},n.line=function(e,t,r,a){n._style.noStroke||(o.beginPath(),o.moveTo(e,tM ),o.lineTo(r,a),o.stroke())},n.arc=function(e,t,o,r,a,i,l,s){if(a==i)return n.ellipse(e,t,o,r);null==s&&(s=25),null==l&&(l=n.PIE),n._style.ellipseMode==n.CENTER?g(e,t,o,r,a,i,l,s):n._style.ellipseMode==n.RADIUS?g(e,t,2*o,2*r,a,i,l,s):n._style.ellipseMode==n.CORNER?g(e+o/2,t+r/2,o,r,a,i,l,s):n._style.ellipseMode==n.CORNERS&&g((e+o)/2,(t+r)/2,o-e,r-t,a,i,l,s)},n.ellipse=function(e,t,o,r){null==r&&(r=o),n._style.ellipseMode==n.CENTER?v(e,t,o,r):n._style.ellipseMode==n.RADIUS?v(e,t,2*o,2*r):n._style.ellipseMode==n.CORNM ER?v(e+o/2,t+r/2,o,r):n._style.ellipseMode==n.CORNERS&&v((e+o)/2,(t+r)/2,o-e,r-t)},n.circle=function(e,t,o){return n.ellipse(e,t,o,o)},n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()},n.rect=function(e,t,o,r,a,i,l,s){n._style.rectMode==n.CENTER?M(e-o/2,t-r/2,o,r,a,i,l,s):n._style.rectMode==n.RADIUS?M(e-o,t-r,2*o,2*r,a,i,l,s):n._style.rectMode==n.CORNER?M(e,t,o,r,a,i,l,s):n._style.rectMode==n.CORNERS&&M(e,t,o-e,r-t,a,i,l,s)},n.square=function(e,t,o,r,a,i,l){returnM n.rect(e,t,o,o,r,a,i,l)},n.beginShape=function(){_(),o.beginPath(),a=!0},n.beginContour=function(){o.closePath(),_(),a=!0},n.endContour=function(){_(),a=!0},n.vertex=function(e,t){_(),a?o.moveTo(e,t):o.lineTo(e,t),a=!1},n.bezierVertex=function(e,t,n,r,a,i){_(),o.bezierCurveTo(e,t,n,r,a,i)},n.quadraticVertex=function(e,t,n,r){_(),o.quadraticCurveTo(e,t,n,r)},n.bezier=function(e,t,o,r,a,i,l,s){n.beginShape(),n.vertex(e,t),n.bezierVertex(o,r,a,i,l,s),n.endShape()},n.triangle=function(e,t,o,r,a,i){n.beginShape(),n.verM tex(e,t),n.vertex(o,r),n.vertex(a,i),n.endShape(n.CLOSE)},n.quad=function(e,t,o,r,a,i,l,s){n.beginShape(),n.vertex(e,t),n.vertex(o,r),n.vertex(a,i),n.vertex(l,s),n.endShape(n.CLOSE)},n.endShape=function(e){_(),e&&o.closePath(),n._style.noFill||o.fill(),n._style.noStroke||o.stroke(),n._style.noFill&&n._style.noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())},n.curveVertex=function(e,t){if(i.push([e,t]),i.length<4)return;let r=function(e,t,n,o,r,a,i,l,s,u){function c(e,t,n,o,r,a){let i=Math.pow(o-t,2)+MathM .pow(r-n,2);return Math.pow(i,.5*a)+e}let h=[],f=c(0,e,t,n,o,u),d=c(f,n,o,r,a,u),p=c(d,r,a,i,l,u);for(let u=0;u<s;u++){let c=f+u/(s-1)*(d-f),y=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<y.length;e+=2)isNaN(y[e])&&(y[e]=1,y[e+1]=0),isFinite(y[e])||(y[e]>0?(y[e]=1,y[e+1]=0):(y[e]=0,y[e+1]=1));let m=e*y[0]+n*y[1],g=t*y[0]+o*y[1],v=n*y[2]+r*y[3],M=o*y[2]+a*y[3],_=r*y[4]+i*y[5],x=a*y[4]+l*y[5],w=m*y[6]+v*y[7],R=g*y[6]+M*y[7],I=vM *y[8]+_*y[9],C=M*y[8]+x*y[9],S=w*y[2]+I*y[3],E=R*y[2]+C*y[3];h.push([S,E])}return h}(...i[i.length-4],...i[i.length-3],...i[i.length-2],...i[i.length-1],n._style.curveDetail,n._style.curveAlpha);for(let e=0;e<r.length;e++)a?o.moveTo(...r[e]):o.lineTo(...r[e]),a=!1},n.curve=function(e,t,o,r,a,i,l,s){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,r),n.curveVertex(a,i),n.curveVertex(l,s),n.endShape()},n.translate=function(e,t){o.translate(e,t)},n.rotate=function(e){o.rotate(e)},n.scale=function(e,t){null==t&&(t=e),M o.scale(e,t)},n.applyMatrix=function(e,t,n,r,a,i){o.transform(e,t,n,r,a,i)},n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)},n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)},n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)},n.pushMatrix=n.push=function(){n._styleCache.push({...n._style}),n._style=n._styleCache[n._styleCache.length-1],o.save()},n.popMatrix=n.pop=function(){n._styleCache.length-1&&(n._styleCache.pop(),n._style=n._styleCache[n._styleCache.length-1],oM .restore())},n.image=function(e,t,r,a,i,l,s,u,c){let h=e.MAGIC==n.MAGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let t=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(M e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tinted(n._tint)),a?l?(u||(u=h.width),c||(c=h.height),o.drawImage(h,l,s,u,c,t,r,a,i),void d()):(o.drawImage(h,t,r,a,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,r,e.width,e.height):o.drawImage(h,t,r,e.videoWidth,e.videoHeight),void d())},n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data},n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)},n.loadImage=function(e,t){s++;let o=n.createGraphics(100,100M ),r=o.canvas.getContext("2d"),a=new Image;return a.src=e,a.crossOrigin="Anonymous",a.onload=function(){r.canvas.width=a.width,r.canvas.height=a.height,o.width=a.width,o.height=a.height,r.drawImage(a,0,0),s--,t&&t(o)},o};let x={};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClamM pedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()}x[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}},x[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}},x[n.OPAQUE]=functM ion(e){for(let t=0;t<e.length;t+=4)e[t+3]=255},x[n.INVERT]=function(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[t+2]=255-e[t+2]},x[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n},x[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let r=0;r<t;r++){let a=4*Math.max(r-1,0),i=4*Math.min(r+1,t-1),l=4*Math.max(o-1,0)*t,s=4*Math.min(o+1,n-1)*t,u=4*o*t,c=4*rM ;for(let t=0;t<4;t++){let n=t+l,o=t+s,r=t+u;e[u+c+t]=Math.max(d[n+c],d[r+a],d[r+c],d[r+i],d[o+c])}}},x[n.ERODE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let r=0;r<t;r++){let a=4*Math.max(r-1,0),i=4*Math.min(r+1,t-1),l=4*Math.max(o-1,0)*t,s=4*Math.min(o+1,n-1)*t,u=4*o*t,c=4*r;for(let t=0;t<4;t++){let n=t+l,o=t+s,r=t+u;e[u+c+t]=Math.min(d[n+c],d[r+a],d[r+c],d[r+i],d[o+c])}}},x[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let r=2*t+1,a=funcM tion(e){let n=new Float32Array(e),o=.3*t+.8,r=o*o*2;for(let t=0;t<e;t++){let a=t-e/2,i=Math.exp(-a*a/r)/(2.5066282746*o);n[t]=i}return n}(r),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,s=0,u=0,c=0;for(let e=0;e<r;e++){let r=4*(n*i+Math.min(Math.max(o-t+e,0),i-1));l+=d[r]*a[e],s+=d[r+1]*a[e],u+=d[r+2]*a[e],c+=d[r+3]*a[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=s,e[h+2]=u,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let s=0,u=0,c=0,h=0;for(let e=0;e<r;e++){let r=4*(MathM .min(Math.max(n-t+e,0),l-1)*i+o);s+=d[r]*a[e],u+=d[r+1]*a[e],c+=d[r+2]*a[e],h+=d[r+3]*a[e]}let f=4*(n*i+o);e[f]=s,e[f+1]=u,e[f+2]=c,e[f+3]=h}},n.filter=function(e,t){if(n.HARDWARE_FILTERS&&null!=o.filter)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5),I(`saturate(0%) brightness(${Math.floor(.5/t*100)}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawIM mage(h.canvas,0,0),o.restore();else if(e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(t*n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);x[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);x[e](n.data,t),o.putImageData(n,0,0)}},n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,M 0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()},n.get=function(e,t,r,a){if(null!=e&&null==r){let r=o.getImageData(e,t,1,1).data;return new n.Color(r[0],r[1],r[2],r[3]/255)}e=e||0,t=t||0,r=r||n.width,a=a||n.height;let i=n.createGraphics(r,a);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,r*n._pixelDensity,a*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i},n.set=function(e,t,r){if(r.MAGIC==n.MAGICM ){let o=n._tint;return n._tint=null,n.image(r,e,t),void(n._tint=o)}let a=4*(t*n._pixelDensity*o.canvas.width+e*n._pixelDensity);n.pixels[a]=r._r,n.pixels[a+1]=r._g,n.pixels[a+2]=r._b,n.pixels[a+3]=255*r._a},n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransM form();let r=o.globalCompositeOperation;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.globalCompositeOperation=r,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()},n.tint=function(){n._tint=n.color(...Array.from(arguments))},n.noTint=function(){n._tint=null},n.mask=function(e){o.save(),o.resetTransform();let t=o.gloM balCompositeOperation;o.globalCompositeOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeOperation=t,o.restore()},n.clearTemporaryBuffers=function(){h=null,f=null,d=null},n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",(function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t}),!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)},n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.M save(t,o);let n=t.split(".");return e.save(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);let r=e.split(".");return n.save(r.slice(0,-1).join("."),r[r.length-1])},n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),r=`@font-face {\n font-family: '${o}';\n src: url('${e}');\n }`;const a=document.createElement("style");return a.textContent=r,document.head.append(a),o},n.textFont=function(e){n._style.textFont=e},n.textSize=function(e){n._style.teM xtSize=e,n._style.textLeading=e},n.textLeading=function(e){n._style.textLeading=e},n.textStyle=function(e){n._style.textStyle=e},n.textAlign=function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)},n.text=function(e,t,r,a){if(!e)return;if(e=e.toString(),n._style.noFill&&n._style.noStroke)return;o.font=`${n._style.textStyle} ${n._style.textSize}px ${n._style.textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._style.noFill||o.fillText(i[e],t,r,a),n._style.noStroke||o.strokeText(i[e],t,r,a),r+=M n._style.textLeading},n.textWidth=function(e){return o.font=`${n._style.textStyle} ${n._style.textSize}px ${n._style.textFont}`,o.measureText(e).width},n.textAscent=function(e){return o.font=`${n._style.textStyle} ${n._style.textSize}px ${n._style.textFont}`,o.measureText(e).actualBoundingBoxAscent},n.textDescent=function(e){return o.font=`${n._style.textStyle} ${n._style.textSize}px ${n._style.textFont}`,o.measureText(e).actualBoundingBoxDescent};var C,S=4,E=.5,A=function(e){return.5*(1-Math.cos(e*Math.PI))};n.noiM se=function(e,t,n){if(t=t||0,n=n||0,null==C){C=new Array(4096);for(var o=0;o<4096;o++)C[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var r,a,i,l,s,u=Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-u,d=t-c,p=n-h,y=0,m=.5,g=0;g<S;g++){var v=u+(c<<4)+(h<<8);r=A(f),a=A(d),i=C[4095&v],i+=r*(C[v+1&4095]-i),l=C[v+16&4095],i+=a*((l+=r*(C[v+16+1&4095]-l))-i),l=C[4095&(v+=256)],l+=r*(C[v+1&4095]-l),s=C[v+16&4095],l+=a*((s+=r*(C[v+16+1&4095]-s))-l),y+=(i+=A(p)*(l-i))*m,m*=E,u<<=1,c<<=1,h<<=1,(f*=2)>=1&&(u++,f--)M ,(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return y},n.noiseDetail=function(e,t){e>0&&(S=e),t>0&&(E=t)};const b=function(){let e,t,n=4294967295;return{setSeed(o){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17,e^=e>>13,((e^=e<<5)>>>0)/n)}};let T=b();T.setSeed(),n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;C||(C=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,C[n]=(t>>>0)/4294967295},n.randomSeed=function(e){T.setSeed(e)},n.random=function(e,t){returM n null==e?T.rand():"number"==typeof e?null!=t?T.rand()*(t-e)+e:T.rand()*e:e[~~(e.length*T.rand())]},n.randomGenerator=function(e){e==n.LCG?T=function(){const e=4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>t,rand:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(T=b()),T.setSeed()};var P=new function(){var e,t,n,o=new Array(128),r=new Array(256),a=new Array(128),i=new Array(128),l=new Array(256),s=new Array(256),u=function(){return 4294967296*T.rand()-2147483648},c=function(M ){return.5+2.328306e-10*(u()<<0)};this.SHR3=u,this.UNI=c,this.RNOR=function(){return n=u(),e=127&n,Math.abs(n)<o[e]?n*a[e]:function(){for(var t,r,l,s,h=3.44262;;){if(t=n*a[e],0==e){do{l=c(),s=c(),t=.2904764*-Math.log(l),r=-Math.log(s)}while(r+r<t*t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=u(),e=127&n,Math.abs(n)<o[e])return n*a[e]}}()},this.REXP=function(){return(t=u()>>>0)<o[e=255&t]?t*l[e]:function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],s[e]+c()*(s[e-M 1]-s[e])<Math.exp(-n))return n;if((t=u())<r[e=255&t])return t*l[e]}}()},this.zigset=function(){var e,t,n=2147483648,u=4294967296,c=3.442619855899,h=c,f=.00991256303526217,d=7.697117470131487,p=d,y=.003949659822581572;for(e=f/Math.exp(-.5*c*c),o[0]=Math.floor(c/e*n),o[1]=0,a[0]=e/n,a[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),a[t]=c/n;for(e=y/Math.exp(-d),r[0]=Math.floor(d/e*u),r[1]=0,l[0]=e/u,l[255]=d/u,M s[0]=1,s[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(y/d+Math.exp(-d)),r[t+1]=Math.floor(d/p*u),p=d,s[t]=Math.exp(-d),l[t]=d/u}};P.hasInit=!1,n.randomGaussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e},n.randomExponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()},n.print=console.log,n.cursor=function(e,t,o){let r="";e.includes(".")&&(e=`url("${e}")`,r=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+r},n.noCursor=function(){n.canvas.style.cursor="none"M },n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUserMedia(e).then((function(e){t.srcObject=e})),t.style.position="absolute",t.style.opacity=1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let D=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of D){let t="_"+e+"Fn";n[t]=function(M ){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(r=null==n._frameRate?requestAnimationFrame(z):setTimeout(z,1e3/n._frameRate)),_(),a=!0,n.push(),n._drawFn(),n.pop(),++n.frameCount}function k(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,r=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,y:(e.clientY-t.top)/r,id:e.identifier}}function O(){return n._touchStarted.isPlaceHolder&&n._touchMoved.isPlaceHoldM er&&n._touchEnded.isPlaceHolder}n.noLoop=function(){n._noLoop=!0,r=null},n.loop=function(){n._noLoop=!1,null==r&&z()},n.redraw=function(){z()},n.frameRate=function(e){n._frameRate=e},setTimeout((function(){n._preloadFn(),c=window.performance.now(),function e(){if(s>0)return setTimeout(e,10);n._setupFn(),z()}()}),1),n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraggedFn(e):n._mouseMovedFn(e)},n.canvas.onmousedown=function(e){n.pM mouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)},n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)},n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickedFn(e),n.mouseIsPressed=!1},window.addEventListener("keydown",(funM ction(e){n.keyIsPressed=!0,n.key=e.key,n.keyCode=e.keyCode,u[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)})),window.addEventListener("keyup",(function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,u[n.keyCode]=!1,n._keyReleasedFn(e)})),n.keyIsDown=function(e){return!!u[e]},n.canvas.ontouchstart=function(e){n.touches=e.touches.map(k),O()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||eM .preventDefault()),n._touchStartedFn(e)||e.preventDefault()},n.canvas.ontouchmove=function(e){n.touches=e.touches.map(k),O()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()},n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(k),O()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPM ressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()},n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DeviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPermission),n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then((e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then((e=>{"granted"==e&&(n.hasSensorPermissM ion=!0)})).catch(alert)})).catch(alert)},window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pRelRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,n.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.reM lRotationZ=n.rotationZ},window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,!e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13]M ,e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]*t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[15],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]M *t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(e),0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}},n.year=function(){return(new Date).getFullYear()},n.day=functionM (){return(new Date).getDay()},n.hour=function(){return(new Date).getHours()},n.minute=function(){return(new Date).getMinutes()},n.second=function(){return(new Date).getSeconds()},n.millis=function(){return window.performance.now()-c}}(e)}function t(){let e=l(0,1);return e+=.618033988749895,e%=1,color(floor(360*e),i(10,100),i(10,100))}function n(e){e.sort((function(e,t){return e.width>t.width?-1:e.width<t.width?1:0}))}function o(e,t,n,o,r,a,i,s,u){let c=[];for(let h=e;h<t;h+=s)c.push({start:createVector(h,r),end:creM ateVector(h,r+a*(1-l(0,i))),width:n*(1-l(0,o)),color:u});return c}function r(e,t,n,o,a,s,u){let c=createVector(e.x+t*cos(n),e.y+t*sin(n)),h=[{start:e,end:c,width:o,color:s[i(0,s.length-1)]}];if(u<i(6,12)){let e=t/l(1.3,1.6),i=o/l(1.1,1.6);h.push(...r(c,e,n+a,i,a,s,u+1)),h.push(...r(c,e,n-a,i,a,s,u+1))}return h}function a(e){for(let t=0;t<e.length;t++){let n=e[t].width;stroke(e[t].color),strokeWeight(.9*n),line(e[t].start.x,e[t].start.y,e[t].end.x,e[t].end.y)}}function i(e,t){return e=Math.ceil(e),t=Math.floor(t),MaM th.floor(c()*(t-e+1))+e}function l(e,t){return c()*(t-e)+e}function s(e,t,n,o){return function(){var r=(e>>>=0)+(t>>>=0)|0;return e=t^t>>>9,t=(n>>>=0)+(n<<3)|0,n=(n=n<<21|n>>>11)+(r=r+(o=(o>>>=0)+1|0)|0)|0,(r>>>0)/4294967296}}function u(e){for(var t=0,n=1779033703^e.length;t<e.length;t++)n=(n=Math.imul(n^e.charCodeAt(t),3432918353))<<13|n>>>19;return function(){return n=Math.imul(n^n>>>16,2246822507),n=Math.imul(n^n>>>13,3266489909),(n^=n>>>16)>>>0}}"object"==typeof exports&&"undefined"!=typeof module&&(module.expoM rts=e),new e("global");let c,h="m/71233/0/0",f="03179ac38509800714185af09ba8601200d32421f21e4dcb7bb2e38feb06e7bac4";function setup(){createCanvas(windowWidth,windowHeight),colorMode(HSB,360,100,100);let e=u(f.slice(2));c=s(e(),e(),e(),e());let d=i(2,6),p=[];for(let e=0;e<d-1;e++)p.push(t());let y,m,g=p[i(0,p.length-1)];do{y=t(),m=Math.abs(hue(y)-hue(g)),m+=Math.abs(saturation(y)-saturation(g)),m+=Math.abs(brightness(y)-brightness(g))}while(m<180);background(y);for(let e=0;e<=width;e+=i(0,15))for(let t=0;t<=height;tM +=i(0,15)){let n=i(10,20);push(),translate(e,t),rotate(l(0,2*PI)),beginShape(),noStroke(),fill(hue(y)+i(-2,2),saturation(y)+i(-2,2),brightness(y)+i(-2,2));for(let e=0;e<2*PI;e+=.1){let t=cos(e)*n,o=sin(e)*n;vertex(t,o)}endShape(CLOSE),pop()}let v=l(.1,.6),M=(height+width)/150,_=(height+width)/50,x=i(M,_),w=.7+(x-M)/(_-M)*(.9-.7),R=i((height+width)/14,(height+width)/8),I=o(0,width,i(x/4,x/2),l(.2,1),height,-x*l(.5,1.5),l(.2,1),i(x/4,x/2),g),C=r(createVector(width/2,height),R,-PI/2,x,v,p,0);n(C),n(I);let S=(width+heiMJ ght)/15;stroke(g),strokeWeight(S/50),noFill(),ellipse(width-S,S,S,S),fill(g),noStroke(),ellipse(width-S,S,S*w,S*w),a(C,!1),a(I,!1),textFont("Courier New");let E=(width+height)/150;textSize(E),strokeWeight(1),stroke(g),textStyle(NORMAL);let A=h.slice(2).split("/");for(let e=0;e<A.length;e++)text("/"+A[e],4,E+e*E)}</script></html>h! http://ns.adobe.com/xap/1.0/ xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:aux="http://ns.adobe.com/exif/1.0/aux/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <aux:LensInfo>18/1 105/1 7/2 28/5</aux:LensInfo> <aux:ImageNumber>34321</aux:ImageNumber> ensID>-7043579883175501810</aux:LensID> <aux:Lens>AF-S DX VR Zoom-Nikkor 18-105mm f/3.5-5.6G ED</aux:Lens> <aux:FlashCompensation>0/1</aux:FlashCompensation> <aux:SerialNumber>2054709</aux:SerialNumber> <xmp:CreatorTool>Ver.1.01 </xmp:CreatorTool> <xmp:ModifyDate>2023-02-09T14:07:57</xmp:ModifyDate> <xmp:CreateDate>2023-02-09T14:07:57</xmp:CreateDate> <photoshop:DateCreated>2023-02-09T14:07:57+11:00</photoshop:DateCreated> <dc:rights> <rdf:li xml:lang="x-default"> </rdf:li> </rdf:Alt> </dc:rights> <dc:creator> <rdf:Seq> <rdf:li> </rdf:li> </rdf:Seq> </dc:creator> </rdf:Description> 0+HO,$N*CO^1q*)OV@|* 6 $ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz (((((((((((((((((((((((((((((((((((((((((((((((((( q4pd3l_+j\+TI+[L'h[& TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:DescrM iption rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:76b8dccf-53ef-4f41-bc79-94fbe551e35b" xmpMM:InstanceID="xmp.iid:9b21ec45-2728-4e07-9c13-9c265c0a35ec" xmpMM:OriginalDocumentID="xmp.did:96d28343-dc12-4803-93c2-a776a6d927a9" dc:Format="image/M webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamp="1676239462541125" GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T09:04:21+11:00" xmp:ModifyDate="2023:02:13T09:04:21+11:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:023a2b1c-e904-4291-be3b-c64ee2926829" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T09:04:22"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmM eta> M M M <?xpacket end="w"?>h! )Optimized with https://ezgif.com/optimize HjF=:THOR.RUNE:thor1tyhtatv7vw333ypczyf74ras0tt9fvhzyz48dk:4464956091:t:0m8 text/plain;charset=utf-8 text/plain;charset=utf-8 zTXtRaw profile type xmp zTXtRaw profile type icc zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp (iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop 24.0 (MacintoM sh)" xmpMM:InstanceID="xmp.iid:9BB01924A2DA11EDA65F91629923C66E" xmpMM:DocumentID="xmp.did:9BB01925A2DA11EDA65F91629923C66E"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:88EC2A2FA2DA11EDA65F91629923C66E" stRef:documentID="xmp.did:88EC2A30A2DA11EDA65F91629923C66E"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> text/plain;charset=utf-8 : : ,, # ; ```````````````````````````````````````` https://www.ordinalbitcorns.com/ https://twitter.com/BitCornOrdinals Inscribed by @hash_bendeM 1: 0e10efe499574b7c495a97498abd53c62d2701054d4618de53e9d4f2fbc41dd8i0 #49374 2: 757b3ca1e1c64de6ae88bb949bc2fbe90876d830a409e4d79bdb54e4037dc3d2i0 #49373 3: ae63b389450d34d9ec03b0b777d0215ef03cd047596b8b82260a055e89f749b5i0 #49358 4: 2978ddba33998df77bd525fdc24f93df63b340d40701fb6180a89e2754e77c69i0 #49309 5: 2b654b26bc8a0162ea6923f58a5d9694a93a4b6548be2d1f198340f5696ce93ei0 #49210 6: 6cbd5346ed7eb3d90dba3e70c8608209eef07ba190119c21ed18c4e41a25814fi0 #49219 7: ffc71f97255a96eee2cac087a4f4ba19e89f016479409e5cf087M 130166c7f2e4i0 #49445 8: 7a887e27411e41261889e239639b1d18965e6f5e0d57afdcaf623acae695d25ai0 #49304 9: b0e005ac492e50b37cf78f6b7e87561664f0ec86e0ea8aa6e22bbdfffc3943cfi0 #49371 10: 00e5c1bca1616d00d666322dea2c46f63094b0ee5cd6e54d2d0a4453a72acf2ei0 #49201 11: 9c367b0faa7ee89773f554bfee975302cb6eeec9e36d900dd396e700180cf0e8i0 #49447 12: 56a28c419cfaa10b68a2e147e530e4f130f361f5809b7bd4dcd3fdb92303e5f8i0 #49458 13: 8840d24e406e215d1a5a054a5fefcf7ed15e1cd1bba98fadd82d3f6a3d4c7e4ci0 #49217 14: e6f351d32c1da291355406831c2cM 8137319f4206265405add24eaeb155cf2dddi0 #49377 15: 858cd8e7e0f11da7bb30d83f5832ada403603c851b9a678828140f997164df30i0 #49204 16: 4341c61d41a3e742a9bf307a890009817a00310807319bf83df41708bd9ad039i0 #49208 17: e4ea8ad1ca16a611092d37272e9404a53a2136160c2da6470aa36e74351090dci0 #49376 18: f3b8ca2a398315092e9a1d59c2f31ce9651d16ff1654eb38687a547c5df5c929i0 #49195 19: 99282f87fe119f85cfc51ae1d935f5c2734f82ffbe3a6ea9c4cba4d12c91df45i0 #49213 20: be0d7bfd06505b19b0889758b3d710c426bab7713ae26aa134b02f9a8b7ec174i0 #49318 3e0766a106beaf8909389b52940cc0ad7cd22b80f8812b93b6a4aa995aea0di0 #49183 22: a50795353958c684ed147a8851f7e7ab78631d33c7dc1308d8e0d3af90b7aff4i0 #49453 23: 4a896a4a55cf53ca571515a8df0b762e2aa34dfef3366c1e2458a151614f6594i0 #49334 24: f4b2d68f274a6baad52282c6905701866bfc6573f0bc3da88cb86996feff5faai0 #49349 25: 088190832e0e3027138c17b1be558064373e8b6a2c57aea20cacf3bb188552c6i0 #49366 26: 14a31f8c3db2a396678de29fb481e666edc6ec66c317ac1c9da21f3c0585988ai0 #49327 27: a47dd4419dd32472b1cbc205e0405587fccc1e299cff782499a344M 28: b67b0d353fa3b4e8afa3057ed58c7240518d7f4c5f8d076a4fa5e1a4639adfbei0 #49361 29: d15c0452499395e2fcce7bc6c4f5230baf75e8903c971c9b8036c31df2686751i0 #49221 30: 2206e1725749199f60563364913e8a67813126ed8c0efcd77b051f17aae388a3i0 #49346 31: 61beec8ebf4127dd282843c3dd4685649a0a9d84bbf6ddd4e88daefa77c9ac0fi0 #49186 32: 26f864390cc239bac63f061cce21affa5648a172f20bced5c800df06d09af776i0 #49319 33: c4b0177eba7469e79b61d4c41be2a2889223c97570467d46b6549f2b7ff500e5i0 #49446 34: d221de399bbf01996e21ef34c94aM 6e5de7a2df06cd8b3a4d4070afdf3422e07bi0 #49321 35: a1d356cba9534f06c19febb4984d6272031b0030fc66c266de383a7d93ff66c8i0 #49368 36: 161c3545091d9a076cad501b7b40051ced9a21eb1e6676730a5b6fb013557faai0 #49350 37: 2762567b7d3e17d037a5f1eee48821e524b3c44511a32728ebc818b1af36dec1i0 #49364 38: 5eb4a484e7f88e0c29415867a663cd219fea73b74c3d8bb16905fb6d4f10e758i0 #49222 39: d38d770831bac2830fbd3818177e536954adf2388bba75581d3444e7331fb0aai0 #49351 40: 9299bfce81c0fde438989126ff06c4dd4af49fc9b7e46c37f30016e1c49e64c4i0 #49365 0f4abbb7b116e5e25248c1f131ec16507b3944c3cd55815a1d803762a15e01i0 #49177 42: 81715a063c3164c48225ce0ee58f64c76d214f0a116fb3d93e7947da49124621i0 #49191 43: 4a4e6e9edfa8543c904bcbee58cebc266db970bdb53dfe6ec31db533a8b19506i0 #49179 44: ee81551b9b0c182005efaa24f09d8ee3d6b5ae719f699b6c45b81138b7b791a2i0 #49343 45: 331ebee35d9abdae9c60c2ca9998304ffa4427dad938fa74ed9e05acce238e9ei0 #49339 46: d73c40dc24db2e650acf71c0575f62ccb424f5eeac7786f75b9e3c5ce9ec5845i0 #49212 47: 44247b56fa6104ac137f82177b783da1df58f7d90c8f46273666b3M 48: 99abc56087993502ebd123a94bf6ca241fec4f4d7d5cd45ac41fddeabfb7c42bi0 #49196 49: 8a2860d80be4da649c6c3faf9ebe203dfeac39090709e35cf0fb7ad52f15c94fi0 #49220 50: 2f1b713422c1c56a1384e7a92f8754c37a5e5d5ab4f5c97831a6dae2db220178i0 #49320 51: c5ae5b916f624779581562fb1bf21eba95141c8506de20d355e32e3120e8eaafi0 #49356 52: 1341dcba3af5b93bf4daeebc3372bfeaebb5db44f4c93341c34a28dcfc257792i0 #49332 53: 2c9c8eae2a179853f9e417ce331d4f7ebd2bf4c145e8f15d62bbdf82386c7d4ci0 #49216 54: 1023783c6ddbb85cb57d5df70908M 36a56ee62f4e5e32df11366c28614c0c5f93i0 #49333 55: fdf76ed6b429566d414700bc8cfe91bb8222c55fe0cdb248f4d1c454faa2e5bfi0 #49362 56: f8b6321ab47b5d68eda426fdb45cff21e3291d8b42d6d23e39dd8153096d46afi0 #49355 57: f26e40e31b3c9973cfe079a6393c30fd26ac2550e42d3a8012096892711375a3i0 #49345 58: 63cba2453cba5ceddaff666bdb64deea9f1e6c1cd105f1b27f6d703671a6db4ci0 #49218 59: 8967033e1b91b475296d1e203c41a1293518d2fb24efa55f5bfc55b6e2be8e83i0 #49325 60: ac31714b0c17afb59e2062a13cc2b520f24ba85d4b9c30a2ca7c2e3fd07b856fi0 #49315 db86238f41eaefadb0910e0c5715fbba6b4ebf7f13f7f70e8b84e2e1d07c6di0 #49313 62: 09e25f373fb11f7097b6dc7784b53228e448c1f5b708def0738fad55d2eed2bdi0 #49360 63: 216611e1614f3a5c83849bec42b2421b582d944aaad9ca0bbf15914f0ad29ceci0 #49448 64: 7b21bc4164f5c6507b0b5c941acdacefea0d30846d111ace9580749f154ce5a4i0 #49347 65: 6a4ec497320cbba4548c5de7adb9c3635a7a5bc2b88fe97b9f131f61954b0f49i0 #49214 66: abe273cb7fdf712b12737935057e2e57317c28a1569f71e38e7c82d9c90f3be3i0 #49444 67: d9b3f1302d8dc7aa6b203452dd990f135d03cc9a88319b3388f8bcM 68: 2d30eeeaa262fa15eee92fd83db8c15b66b75e55331e5dff91fbe740954e3d98i0 #49337 69: 309d52cfc4c6248ce33050e1bbcf9572615e7c9ec98e375de245d00a15f5f207i0 #49180 70: 4df627c042b96e8a13ec2c93f82ca03d9fe4337d45e7c181214ac1ffe000f5ddi0 #49378 71: f8f3f2aab1c444c5411fe7aba2c41ce1e7ffd51c3399bfd934228b68330e2fdci0 #48785 72: f3ea4c691b0ac310fd601deb077a4ce2181a410661c1120d98253948d7d09016i0 #48821 73: 82ce39cc1a54c37ed92a09d5954c664fa697a9b82d73048af73eb902c79be66di0 #49314 74: 36c0ab8ee064d5a3412fbbeeea7eM 8a1a36a785dbd6a7551fbd1dcb3481cc95adi0 #49354 75: 73b23b7351d5b4e815357262889fca46379feec778e261083b92305b7901cf8ei0 #49331 76: cf911e0c270ddaf45ef456225397e9cda035017bccc302e06b683690f6c60483i0 #48858 77: b8d0a311266bea6858b6541824c724c46dfc352aa3b21e142567cf65f94025afi0 #48871 78: f45497457d507f5ddbe71d8cfbd3f4413ae1b45b12e2a19e58c35178c691d47ei0 #49323 79: 33f1c7bc1d59a0c5f575a7e9ea45eb2130c3dddfe228ff400127e7983d002950i0 #48843 80: e26d337bfd00d220d58da45803e0c6bca10e3a44155e1329c51f5e79e23ab6a0i0 #48864 a55d62e7675c0a4ce8f9eefa34e03e89e8dc4bdd146936bb15a23d9f4adf44i0 #49211 82: 74347dfe43e018134efd228f5fb1f49c2225b7060cf211252ca7c0282ff2b13di0 #48838 83: 0de6994695b9398f9fc49afc0a8a7900c78b31edca99309feb100231fe8d240ei0 #49184 84: def5743ad95fdbf87fb97051b3760104bc1c99ba44c7a7f811386f185d494ff5i0 #48901 85: 6d152df3cb5fa398e45c31b09dda2b7e6925116d815986c77d0b3019a9d0fd2bi0 #48831 86: a1c2eef99162ce56127fa8dcd46f1be629713dd31e910c74fbe16763896257fbi0 #48905 87: 4d548f472f8f7633ab6c0d6f756f77f49a607f9c19566289bad5c7M 88: c4a51a041d9c14f95ce06e8feeb8ee84e3f887523381076303b4e012f50fd445i0 #48841 89: 0d39a4be3c8b391db1a00096dad894962ce2a62a93c6ff217440a582ddc042a3i0 #48866 90: fd25d15f534ccc327ecf3ef08b06f7e8cf24a9964ae6772620e4d1f888f74bf6i0 #48902 91: db25a0f8ffd0debca786b634c9e891ce2b36dc96f3c6f0d92f079b5d714271d8i0 #48890 92: 0987a8e980130ce305d30ee1ee1fc364e84531785ef686cd34d89e79ebadc42fi0 #48832 93: 6bdc417fd9df5a868608d95a0d88439fa767d01ef67e9b9ba1e8d5783def7caei0 #48870 94: 32e898f25fee113642f15d572d00M b67a5eaae26cdb5127af649b656264439220i0 #48825 95: 1f28d5da1f203f02dd497d0e7e6c262da579fb0369cc9289322397b78344963ei0 #48839 96: de93a7ab5ee72ae9086b92497e3f7af3a6d7e5539d422af89b6cd54f1f7b5ab1i0 #48874 97: bf3cdff0a27c3ecc53f6b9b1ab7e37a34cf76b231d64cefe84b2c8862a1e0d95i0 #49335 98: 1d3381bd865906c8948eb7a4ad51cfa4aa707a97addf7343a73202e988275bc0i0 #49363 99: 9277f2967fc98ff0701efa5fc2c043162a001c78846a74e6ce7223c1166dd0a0i0 #49341 100: 6d6e3b1bf8863304cdde482897ef18aceb0cb04fed8a119b40b74419d9be5223i0 #48828 8bf82262f190c75a8bafef40e8674ff49baaf46da61ce552b1203dc6639a3b26i0 #49192 102: d664e3aaaea452c7aed110875ab8a30f70822cc8d5ba43e525e171841405e016i0 #48822 103: 56634446ec39d81e96dcd55aa908656fac67f80c719d8a3fae37665146e1ef0ci0 #48816 104: 0bf1e15198cc07ce167dd930ed46c1930e350ae3e9af2be9af747dce1390f3b2i0 #48877 105: 999b45215a1e91e6d3b242577e5f7a5e46ef33194df0df74564aa910484037aci0 #49352 106: c0629c4773ddea6a5066b4fe2e1e1af7d30eff32590646ca977ec1b2d018e10ai0 #48815 107: e819c8a0924a09c4861900c0c702a02da9edd8952423a1M 9631f086b58a4263cbi0 #49370 108: 11651588a581b6c5d208747bad2cc5f83f2c25dc2897717f56b3327251664ecbi0 #48887 109: 61335f87424728bd824fe9a6b0e173dca8deeb5c4034e9e6bd9e4c36dfe3aaf8i0 #49457 110: 43c0a4c019351d90eeb521c6a1d0c60a70952d9d22cb76882809e061c782fe78i0 #48854 111: 81247413308c92d907b6b1d858742cc020b85fb3a2e9fb56e855bddd97b238dci0 #49375 112: de96569788f764630ea9b161c5dd7df01b1c814cb37fb138d5153cae3a3ca58ei0 #48861 113: c61a178baffea28e90212241b578372dc9ed84b074362649e8c6b44455e463b4i0 #48878 f834b9934a228dbe984a8766a263e7dd2dae9602a72c12402a0i0 #49340 115: 8d8778858d67d68dd24658a8dad7d3d52cf4a0556a0c272732cf1fea80be7980i0 #48856 116: af95fc024f3823ee6fb2661313e0ce44784917adb326b25c23a370d49e9f49b1i0 #48873 117: 8d8ab2388109890f0b3bc591c1863cdc6014b77aacdc38a3607922b7e3be221ai0 #48824 118: 2e56c94825269b56a02aec57720a9bd3b5311382633ddde34c2c946d986fddb2i0 #48876 119: 1ab5e0d882403e3c972475c9f252265aa493ffa780cdf99594923935b52f119ei0 #49338 120: 133421c3c411a85d0a9f5d12d402d51b7a9c7d9072714395ceee129f19cM 121: d4664dfdff0b5df7a8374122824440956bbd5fd4e557180a8bcb2268d8ef074ci0 #48842 122: 363cc1528708004a6841b632be4d0cbb0f0b0c5761743c2e0729aa6e6aafa579i0 #48855 123: 69f887a1d3d578a06354b10d3f1ed451f49be8ebdb7bd5ff83699b0331763607i0 #48813 124: b5cdcfa2d7d823779147035722eced160344ad0444531da2fe24ebfa4dce7152i0 #48844 125: e2685f5c42d697c5b3a86f8977ffb9c3801eb5185d5e742830b74aafa5cde9c4i0 #48882 126: 8c1955ab0ebb0bdc4c98512011c8b09e893bb47cf7c23bd5def58de874c7cff5i0 #49455 127: af0118add0178f9c0765b63c65M 7582278821094c7335e2e166859fff4a135311i0 #48818 128: 19b5525998cce084d205e91ba1c4287331354042c19ec5549868fde1c3c22ca8i0 #48868 129: de8a2c6d4f153714d054b457701cc4b87c60868e24edac22ba6c7980c994cf22i0 #48827 130: 457a8bb68956dc7145601688ffc75bb5281aa68857559b4174b677784cb98d69i0 #48851 131: 442fcfb3b01fbc7676d8dcc5b1ab9bae90e35f721c596841dd3d13bfbbabc9e0i0 #48895 132: c015a125fc42a6445a2f2fd16e698116485d98b3ddbf120d176ac3f9bdb1395bi0 #49305 133: d1ad941331c51b07430c09fba90a72eb8c9d5da70a4c631ef311ab4bc5bcbfd8i0 #4889M 134: 5c13ce9045d8d84dc9ab89d289864b47cc7ddcbbe142bb44d864cabe772da368i0 #48850 135: 638f08d109d740303e67d54a07e58af66e175d35d04c7de9359cbbc74f88e3f8i0 #48904 136: e453f8e3fee20df51c8caf7a502093b5eedf8c9a6df6fa0f89f8f856d7d55a3ci0 #48836 137: ff40f35ee5e290a6ef5a6c17863ed66c306b228d4c0719dc23dd37164d0321a5i0 #48867 138: 263b6248f8aff56891a6bf1f96e6e95be46fb1e64f45ca49389e1ed7924087b0i0 #48872 139: c01a158c94fd098f488b0c5e226065ccf0343cba7ffb8d4e32cf0b0ecc5c7cb7i0 #48881 140: eff88fdee6c467ec1826cd3be66e79d2a8755f2M d96a6f075d509dad1a8773c71i0 #49316 141: c15575aab9484a229e4c0017ec742bc6896366fd5cc901df77f738562cbbe538i0 #49207 142: 79821bdf074c9d60c3fd85d7666b5f9d9a490125c2f79439a44c1634ac23c3cci0 #48888 143: 241ef20c0495a1d623b14d148537d89a89507acdcc18a1f9a1f85909081f249bi0 #48863 144: bb3537e4c5585752149cdf29f460036c3fcb1c29e0ff052b49b3c94992d6404ci0 #49215 145: b96d6c218dd3840b25cd20c00afc38e084ba1ef95ce9e1700038995433edcf7ci0 #49322 146: 28145dedf58821a447d8e09af8bd0d1092947c93345c9d024ac111e4e8d57213i0 #48819 abe846e7608cd4df6fc025072f8876ecf8a9aaf03fe99c543494d79184i0 #48859 148: aba45e531d053eb5fb5dd91420d31655296ef099c46db584b955d9f5e0610160i0 #48846 149: 022e11d0de8dca4413a6bf6487121bf84c4d9f3bbb9185d94b998277866d6cdai0 #48893 150: 8024b37e990978f4bbe11cad6899efdd3c4e581fb4b33943a3f6286618319823i0 #48829 151: 2b7f7f3aa5dbb8bca3e536e7ef904d3933d030836c58b4744d9e2617d1cdc0f6i0 #48903 152: 424f487b172604e01965ca07855cd4d31f4d4924d8872f7923b70c296e74fe14i0 #48820 153: f5b88f798fc2248c203a9183b1e6dd09fa2f6da62cadee6b3133M a603a00470eci0 #48898 154: 1b55f41c5c3b005c5ecbff513358f7957fbd5b33c01e0dc2d2f2630266c4e026i0 #48830 155: 0efa84c4d3c7f7b1a6c0713dc2a9059f8e65ec607e86f63901f8c52cda600e21i0 #48826 156: 359bc481a28e84ac779465a34bddbb4f469049340ab74dd50ff22774416404ffi0 #48906 157: d71abc2c939e1cb92c414c6af4b8ea999d9a9e4ec497b3f0029cef333b34a409i0 #48814 158: 9ac74cbd410c280734874cb2a4d16e9f25bb2744cdc8292c0033825caa4d72c7i0 #48884 159: 396ca42db8e77ecae371f8fe022ad81fe745b43c3e2dbdf08f471967779304c6i0 #48883 160: 9eae22e7d14be8f404cM 3d629e1a1dc8878f6bd957fc8cfa04f414cfb934242e2i0 #49443 161: 5610da2273ac662ec2c630b246c5ae614b6bf758d5a02645fb54acebdac6916bi0 #48852 162: a6437276f0ad271d7daebde85e059809be8d58377982810c8afdba0c926efe0ci0 #49182 163: f8e6c3f4d4f154eaa313cef8b32de22c1321316dec3996956db2e2c19f67c73ci0 #48837 164: 5e6d127385234e166d1e17ec8390f3a485c9977fe844da0cc560b7c00c3ff7efi0 #48899 165: 0f00d2bbab47a15efdd9f476ebe0f900d223b41edd2db3ffb707e665e6689b81i0 #48857 166: 7b5c71b90002f6be790e7c1a25045c6e73d35cc9118ca57b83c627254e9d09d9iM 167: 5811928aa79163d66880a8ac5496a64ecee35009f86f7014ff6b8b730f9317c8i0 #48885 168: a72705892c86c299f52827f7512162b8ea6b15fb1fc9a97a2542d8f15ece2841i0 #48840 169: 3aeda6354d1cf056855cd6d5f5e8c3a6b37aee522dcd8c970f1b245717e632e3i0 #48896 170: 70db6a99e54e94bb7659a567056c71d6fff170764234417e612002f5af5926c8i0 #48886 171: 6432fee744cd30b4381cb4789372ebaa3916571228a3339f97089141a25a0e0ci0 #49181 172: b5f17fedc9ef95fe3b339ea0afaadb154b0d0c18b78af79b9c32c7c118aa68aei0 #48869 173: 82230956acbcf258917324f133853e07M 4c17fafe061f5c3490318846c14decb1i0 #48875 174: bd52ae9d6b00ce7f8c3b1cf101381343b57310221d4da5c99b33cf00cd049b36i0 #48834 175: 6b3144d44098eb99a738db2c55a8ffaf92e390c8ed96146a934d580f786c2adci0 #48894 176: 8c93ec7494278a27e43fef02dc4ba774b3eb2fa896e28f8e3e4f8e04f6818638i0 #48835 177: b019eb5ac60345075b27944a9eb1187dd57476ce72df48070099b1cfd87128e9i0 #48897 178: 35c7865250ebe7dd07ff8938c4a2b56d3621bced09050bc280852e4c0fa84466i0 #48849 179: 1a9ab0bac40688546faa1875010ad1fe52f51bc0cf5c68328b301e87697ca82fi0 #49202 f5e369e0686f9de13075a7ea813ec00b605b603612fa6912a6990943cb1aa16di0 #48853 181: ad8d5c43269fe97fed04a084c04230dcc2ef4b273703303beae355e37b433101i0 #48812 182: 3415c9e7525eb594c8477df29c36ee5bccbcdde7a054d2524b0a71d79e06b489i0 #48860 183: 0cc7b9c0d968e597e2ea5eab66f3cd2ded84b582db7099f0c6be6bc4e54d1030i0 #48833 184: 5e652c3e0930e3c7f370a13fa5dbf6c72eb11da30114f0e98827f9f5fc174b7fi0 #49324 185: 903e593ec9044912fbc8314fd451ce112cea208d1511d4bfdad2e2d2274acfa2i0 #48865 186: 997f8f953b91ef0c098aa77c18b7c8d9d510f0b3ebad5M 8168e45237c5dd67556i0 #48845 187: 813e12ac8e98efbcc4f917dac1af38505d578469f55a617647ca913ce84b8b64i0 #49308 188: 2a73f0b64935b0f0185644b94e677e9341d29e62b1244505bb8afe484bddacf1i0 #48900 189: 96058dc9c4c2d98546cc8e9d84e12a92f1fab730cfd9763d1c2d9d0eec0cbf64i0 #48848 190: 405946add22cfec9b4defbcfe5379a1d39c7e5734c1779e7f1e3dee057904ce0i0 #49442 191: b5b0bdf196686c8eb1db55d678f4289a61453289e69919acba2e56e7a23c5fcdi0 #48889 192: 2fa9a07152c0e845dbb1f22380a9590c9c656f388ec673df3d46cadf6aa8df0fi0 #48817 336c7983c25db595709c5b8d8dbed95a3d51380c091973d44162i0 #48847 194: d93fdc0b6c839a9d8f995814f6a44c7b0ed9208c4376a63d5adcdce220186ec7i0 #49367 195: 767194bfc8cf54cb4c1ab1b0a13323f4e113c2580a0c66d254c4ab4815b72830i0 #49203 196: 76bc7f31796af2e9528dd097a6837b737de0be609eec586889675da5e6eb8c73i0 #49317 197: c0f9cea4f819ec010950f32e4e10de063c2aa53a78886bc9c669135ff83f6919i0 #48823 198: 1b7b88d2dfd8ba0dc5d2d0be01a10ed96463d6f3f3fc7243b7c94fd574e5a22ci0 #49198 199: 378aee98c3227912ccafdbde9ce1e4f2cde33fee994a2b19a04f60d488M 200: 80ba7453a0a267a34f952ae05c21b18d0c9c5cf6dcdcbbd242fd18b4583da469i0 #49310 201: 0504b12fd468110d735baacfea295658aad251e324b5af85b81c7aa6ffe2f732i0 #49002 202: 04781f3dd6924956065f82a4622de83d29e644b7fd0e3ae37aa95ab13551194bi0 #49009 203: fd295e29764a5a85264250a6eea54f38e238ba4a29570873ad1f1432791ff4c1i0 #49082 204: 6d6632386894050321d6c401af27cf7c6ee9a5c4922f2c498bd9a8afffd1effbi0 #49112 205: aa9a86401305598bf346db4ce7d7f3e7d73237124883f37243c52a1c2cf66b80i0 #49041 206: 9fb002d5b6eacb33862ff27c1M af87687b1cc0a700ed0737d1cb2ffbbaa4a1ac2i0 #49083 207: 8d493accf9463868cb7c426e7004e81843f0b35c286eb78b7a87204af4445c30i0 #48998 208: 9184ecf73e779e3a0db172d297c098712e3036d776d8ea45903d2123fc3b7bc7i0 #49086 209: aa299bc15092751c8fa98c33fc91af5f2444ad332ad364b1d21a088c1aea96e5i0 #49098 210: 27988ce4a11742582df23d5cc344a810bebcd65a600ada0c310b4b2c2e3a1323i0 #48990 211: 2319d71979e8e42764cb176d01cd895ab671b10a3ea7086609fb9a1f45f3822di0 #48996 212: 61ab8f54f06da7cdcc9c5cff7d02ec8a75c0444e677c7eb5dc227ee25ff9cd07i0 #489M 213: b7e306e86de654ab90789c285a01b32855b758063e909458862b0ad3a2c7c16ai0 #49027 214: e257708ed55d87d75e5a1fffa4bdb217f2d27ee12c7b595fe1b9529488245556i0 #49015 215: cd20929686aa26a5fd607c54aaaa154c68ee45f71f9197fda879848709c22380i0 #49040 216: 46f408e64fdcb1889a07f114db97c3040b06a1a4267a085adc09e6318fafcdefi0 #49104 217: a6eeb8f2aca5e63290e8546b516b4bbe18598b2db33c93ac3cf47c68e54a1ed6i0 #49093 218: 3c00233d84903cb34259272843172967eeb21705b0e0521e12eacff37e59adaai0 #49066 219: 69807dc3fe02bd5d9f6fb28fabfc319d7d9dcbM f1c68d056452c275c4dff56ca8i0 #49061 220: e1dfa9796d9f1b6548506a27913ccda8d0f83c2a576767166fd99314fae9bf00i0 #48968 221: 4a35ff09915ea54e6a2d56ace1025b61be81d5abef96f10ece4e7666250eaf0ei0 #48977 222: 746489fd0b860dcae53edc47836d344463fd4bee4055811037881e8d78329018i0 #48983 223: 61e2e1e8029bec153132aed29fadd188d653ce54d16591493b94ce53c134c422i0 #48989 224: 5359138b24d827067ad6e880d356b5b141f2a4d4fe8407aeec9a2cb6e374255ei0 #49019 225: bb678d6893a53473d1e549f48b0d6e47279472d802b26debbd93f2cc3800ec27i0 #48995 e6e5a595c5baab3956fa29ad4bb6d41b2871adc1495edb9037170a53a05i0 #48971 227: f0350aed758845cebf9666311c4f199a8d1c88c1ca5483238af85e91ee0334c9i0 #49087 228: 37f75a49046c108c25d55d24a0677c81cd0ca13ce08613b831dee703203d4062i0 #49021 229: 6131f70bc18b61ac622baecbc93c5eda17e5da642a78ce64f883f4ffe737e1fbi0 #49111 230: 0e0b93af0a8931f38e8b9e37914c5b4700abb8745c6dd6e93a4c78dcd4012fbdi0 #49079 231: 068bf24845cdb3d9361890d1a53f8caa59271636cfc09c0d87416a499eb36baei0 #49069 232: 4a4b1226e22eaa16a16b68d8dd951c97a654e5ff16500a7f14cM 293cfe4a92b91i0 #49050 233: 6704c11f2a0ae497567e30a0f7a7141d4b2b18e5dab67d2731704242e911865di0 #49018 234: a67beff90998da185e20453bef83fbab3d13ee7b0e9deef4a6425a7a6df98537i0 #49006 235: 9297ff12c8629aaca337a9ad8235a8970a08bd90eaf9922239aa091adab30b0ei0 #48976 236: 59063fb97772eecf22feffac2b67e7c4c6a405ad3f4351d55028a0f1c176dc14i0 #48982 237: 9f8584169dbfb8070c3daf6b5cb24974d2da93fa9e0e5d8c016418ca4e511474i0 #49031 238: e139ac09831a2bb2021ebcc4109f20803917937556a74d370319d34f190d8fabi0 #49067 239: 8d7824ea6c3c352ea1M 173b778f72c474f14ce0fb3e2dccf18a1de6bd7b71d42di0 #48997 240: ca846f89af45709f72300f442559858d6bd66154afc802b29e497a7209207f24i0 #48992 241: fb8941fd51ea6982d0f2839152ba0d45762f95083b7f2ea515f0569d7a11e4f7i0 #49109 242: fb458d448d08eccace23694a95b07123510c10a45ad2326319d54476370a0783i0 #49045 243: 1f08562ef49344c90cf7f7687c2db6f39a91d9163284fe88b9bdaf86c11779cci0 #49088 244: aedcd25563a270cb9964ff9bd5c51fb317a5dab38a63232cf38b5878390be103i0 #48970 245: 2762b1317859448b7da4e01360cae899f7a2a4c8c536e8287dd156478568df32M 246: 9ec4a9d610c3b33c7e83e0ca4462d1fcf23a4e0017a3f6412616fd89d09e4b1bi0 #48985 247: 7b025f996575bd04a7e195500333924cc605fb6e5b9612c2037921a0a12b0ceai0 #49100 248: a232f4b72f0ee2059064f7fbcf9ac4b521a017aad5aae54712ff5f775d35a67di0 #49038 249: d2a912e61325d665231f29fb82b1fcfa9bfce2504ea7771f4a97f887dbd1ce82i0 #49043 250: f5172ca292fe0e4756c891dc2873cd54b22c5806f9337b29d5e7ddfdcf2979b5i0 #49074 251: d4a940febb00c32ae97c228bd1f621c1ba50962f0208f4c0a4dbc608a1642127i0 #48993 252: be447ccba71b9b791491e696ba6eacdM ceb97e6a45a531cbf5c2e7ce438aa500ci0 #48975 253: e327bf1c65cc71f364b4e4f0417b4b34f3334a7f932b3e93007af77a1ea14ce2i0 #49097 254: 19c47417f8ef5227abceba946f7a483da1248e4cd1e8fb5f5d635f03531a726ei0 #49028 255: c252fcdd713d111d88fb98e366e1bb2abc4a1e4c7bf01a3fbca4766b3f78bd8di0 #49049 256: b70cb0d276e1d925ae9587a87cf5763f5fe5d16528cda9061f347a1d2348bbb4i0 #49073 257: 88af024a2b96733d0e2ebd991fa538d3676dab16662b204d14f5bd33c6d7b968i0 #49025 258: b7bd141d2771797ce88531c5e8e6c7801c8f4853b6db0234f84f42f2aafefe82i0 #49044 : 4e9d2e623ab60bdd6d6be318d3bf2131aaf65d42431b372c3071229a196bd564i0 #49023 260: 422e680fceba94ed93f77960a6bbb62ec2318b764adc7cd1871d7fdba641a0d8i0 #49094 261: 1a4e4ae52d1b58ecbb81eb1ba4cdabd00b06484c26575cbd6d0410f7ca685d50i0 #49012 262: 5c02cf773e5d58b172c7c03ceffb57e496ac902996f845de595767125a7ac774i0 #49033 263: 4b8fd1232375a4263d465c60b62562b26e6770882aee0078edc0daf4939c8902i0 #48969 264: 16de6dbfc906f254ec8a495965fc4019f077381db8e2114edf392ea5b300e0fbi0 #49110 265: aa8655b516ef9003b25c8aafed3c80a589a11c1ced77M e0c49190b7d22ab630b4i0 #49072 266: f3fb65ec989951d450a331e8736f499461b7b62036e865605a792cf9f2607274i0 #49032 267: 05716313246f0af938eb37e220647b1f145bc1d2f74ff41f32872a0a0dd2c993i0 #49051 268: 787616d2f79054ae43747a575ff4692a470f1d744b22d316b14fe67797ec64bfi0 #49080 269: 6438c55ccfbf18cb9e81edf234a8f211100644f604c1408a8774413523ba1e34i0 #49003 270: c5c8e5b96d26b3f9d0254d0881c3224e860d72b9d93e140dce054e5e470ceb84i0 #49047 271: de289a1a18da8ae3d7fc9420dc94381657b9a06eab1a8571d5e1241bfcfa65e9i0 #49099 2e4a065cb51207c3bb5957b5baac57dc86e7afa8be54ff22aa395i0 #49052 273: 8aae3c619f09efc1bf899a7a22e826198981e696d3da98a11d13306a0dfe65c0i0 #49081 274: 4df7d6faf44aa505e2030e0322f0d846118d25e49641ba77e648c40bc21111f4i0 #49107 275: efbb0861df1ffdb952dcb7513e561ae179f264d43534dd9423405283f0806296i0 #49054 276: 7c7bc2ea62a27a5b9d4b5026ea12526048ac0c9eb49c2b35e9ce7c4435aea5aei0 #49070 277: ed9e581d9108a140adf73ada287fbcf80269eeb0a2621faeda99cf777e483dbci0 #49078 278: 9022727b966c27ca566b46519c4f14d54b28a56eb95e446ec5a8f088bM 279: c29bd5d5b5c8f0bc1e3a5688d90ba767811150af8a9ed8cf06213655232f66d0i0 #49090 280: 001ef301fcbe9fa09df16637fe007bc8bc80993e439d5edd2ec5cb17a83c5f82i0 #49042 281: 174974108597ec2af5888dd9b7ac67d688a74142fdb83be5124d2834c4be31d3i0 #49091 282: 3b9a98278fa321e7244eaf4a597c7909a42c9cee79750b86574ce89407ddcbd5i0 #49092 283: 14c4071504f12ab7d4044b24e52f16b42f590b00f40fa74d757097fecf87fffbi0 #49114 284: 202982d2de70471e1af12b11eab8daa5e04899d9adcb79e7aef5b95a3cef96cfi0 #49089 285: f751c7f22e0df029600acd09M b0c26ed9558fc6d0e54337a4578c84010f6433a3i0 #49058 286: 0a714bbd5c604c3c9e02dd7bf8555ec09a06c5e0a15d0cdfd40af9d54d66b0bbi0 #49077 287: 14560f5c82af936bfca78d99ec8d734d468fed742969f024cdf190d488b7f372i0 #49030 288: 1598f4efc4c934200f8a6a0f7ca94784ab2ab0a7d841b1e709890f79411db7adi0 #49068 289: 6465dd49da03019278fe5789b222be45c79b0a419559210956daa96937b9f064i0 #49024 290: 79a346dbfd647284c40782c5c776a92124cf528c30209f899b55bc3156186106i0 #48973 291: 081ddfb39f8d965b61b1003bba585f139f838101078d786a418cc479752c4a40i0 #49M 292: c3995068c306799eb715c6b6d0caea83934bc89dc77786a369f9964b3a3bf823i0 #48991 293: 09fa47557d847d1753c7c1d6524875b7913929a0a250de972714c3f8adfe3d4di0 #49011 294: 7a2050dc4241ef170755da0933c8f4aa3d451a23caff7f88238380ccb0bb353fi0 #49007 295: 3b6d5087abce29023f7d17eeeb3d8f710bc0bf13e9202c0ead2e257af148f8fbi0 #49113 296: 091ea8b9764633646648a13e8383dda601d58796d02ab848b2ae9132ddc30537i0 #49005 297: 85928b36384dfa4fe7526c6117553c6bb1f8b8b1311efcb04701394f8468c378i0 #49036 298: b4fc40869c1a8eb9dde1b55e5e2bb38bdbb20M 8aa730fe4b3cc6c10cd1942aac5i0 #49085 299: dacf939f809b543a7f51adf3de523ab01019ad975b4522e7a17bdf42ec077534i0 #49004 300: 8459f2e4bb9ffbcdfc4112e44d606b99cb24c9d961b4722bce121d0ea405f977i0 #49035 301: 72c321670e93eca2139852eadda79645153935f13a425ac0eb6430aea1a8d210i0 #48979 302: 8c40f93f94e2a08a0458188617a6cc88e05544c4f53a64f1190e5c28211f7621i0 #48987 303: ed520b5918d7b60191ba2936de342511a48e98bd8039b28722cb1111e0dbd331i0 #48999 304: bbcc7be8c52f21a595d1e4c9146a6b5ffb85a1eb876b5366f45b9621caf794a8i0 #49062 1c020d0ed434573c8e6faf1bf3c33853318205c6edf3a900feec9da3c30ei0 #48978 306: 005d87eb2f45afcb0a5f583ae22d2b779f0361e9b7761abdf148e6f79b50159ai0 #49056 307: 7844b0f388926575c06d43f6d5bae9c0d6759c1a24800a46cb4c49d022dd34eai0 #49101 308: 256938e9e807ef1422802f4cf7e3a1fcc9c65863481d85faa770757f2df92edai0 #49095 309: d6b981c3834e6e93c343d7a62a7f56db7dcb84ead98a9e41f99683f2bcf95406i0 #48972 310: 8b3ecb4a7e73c02fe70c35d0efd132e2bb9cf7bd4aa7b73d4c25dde5bb870ef7i0 #49108 311: 3e1d8e5eb9d22697e901605f27a5d9e5627e17008c891bc7faM 1aac30e1c71869i0 #49026 312: 203d12803f07cef2bf803b5cee7eab62fe7ec2976086100f87915ceb867d7922i0 #48988 313: 334146cc13e36142c8c4829981fdcad1aefa671bb07683f55fa94ca9d43d83c3i0 #49084 314: c352c0d36b1ee956d33eb23e30487d01d817b651abc6952158ac6cf887308eaai0 #49065 315: 87805b6014dfcb61167813db3d5032c4a33042eddd08b7f449701181f2de8832i0 #49000 316: 4df75e6899b0a7188d1f963eaf66877786f7f605f6ed58bca4704cde24295083i0 #49046 317: 2daf4cae33f77ec7b9a52ad8207e64af22495d554d9f2490225d03c3a8842e63i0 #49022 318: dbe69a55aca247b7bM d0e9abbeb8ad1e65fa6b9d925b73bbd0e405a9729614b96i0 #49053 319: ba1b0644c03766da43df23fc830af3f6e7605972dd19d2bbe23b615ac4679054i0 #49013 320: 8dca0d5263baeffb5d95bfe0032a27b38b7a2d8b48f33be7b7b03b5c84e7dd10i0 #48980 321: 13662b78f98babc0f780bb56f90a8e21feee9c898e3ef019727745ee362c9f19i0 #48984 322: 231b766d9ad0e11bd575574bcc48961fd76e67908cc4a6cc2bc4b70a6490a2b6i0 #49075 323: 60b30030095dc21de23a4975be0984f8f85bf7ff96e9ed4d71c0a8140ceccaddi0 #49096 324: e0af7e3a5c1d17862044192d452ec590f2e2bf3414ab833e62e7a69beaf8368M 325: 19e8ca7240136aab04214041f29db2a2e7a2001fc084e357f32afde94d3bbb55i0 #49014 326: 483f9d33ad1ec514ee4ecfd28175e0d72ada2c9ac8add7f9b624268cfa7e2c4ci0 #49010 327: 7681417ab30cee6c179cf3302b116be0bbc2b51b9e97b068d898e6dd77fcdfeai0 #49102 328: f5d3b3be3dffedc104f40478616707da85ef3caa6a8516b3a3837dad3dadd7a8i0 #49063 329: f60e87512d50f42b5f76169fd389f1c2e4b55e4646b0b9393044f014f4909ff0i0 #49105 330: 55c3201d528c9f1c7da586e634ad1189d018c30d6ab5c0c85ec2e4e765b9c611i0 #48981 331: d1c213ea0def8ac79ae80a1d512ae3M fa249a29b1815570d6fc90cb6e13d6b2a3i0 #49059 332: 2701df880bac9457d4637659c173324f4ec8a4f187bbd22d8c8ec8a07980c2f1i0 #49106 333: 4a6c804e9aba4b0e93bfe88e974c2fde32577668deff8a81e6990f5182c91ca4i0 #49060 334: 8331391a580f0d038bba4eadc7fda078019b2f5e7126534908e0836b3a188a60i0 #49020 335: 1d22a1af514be791d21286c008fe4bb1f263f2a5fb9ae5f02a065d273b5db0adi0 #49166 336: a08a6c028a60217fa3f27ecb21e9f2d346e9434f7eb0381f253195b98f619e0ei0 #49146 337: 75a8d019c2493b7604fca85daf446cafbde3ea118cd30ae4031f17483eba051fi0 #49148 8: f63df140f25f387525134ba5533cb43c6abecc7bd9ae6a522c5b043fc38e651ci0 #49147 339: 6778b36bf812ab0ac601ce3597c3f3ddc04eba2c4a3f9e9284da3623ebcda800i0 #49144 340: 35254b08f714ffbab5a829c1f58bb65b9206d11027ac8822a3cc94ff9b306fa8i0 #49164 341: 9c2bd217d3b1b328f3f1bcb1da56eb685174152b99402c8388ce10937af0735fi0 #49157 342: 66e310e153a0fa37c5385173c1b6252d624ce59a320eb340507cd6bc01bc1cc5i0 #49169 343: ad173d12ab83ce4124ccb21a586702dfcdc0ebb63ec8870b8081b9c7d28a538ai0 #49160 344: 021352c7ec302024eb2c5aef948147dc84f1de68290M 48947d66a773e7f46ea22i0 #49149 345: 782cec2199d026075577b6e758cc4b0014eef1d2106027c369783aedf2166adfi0 #49170 346: 2c04453eb0880aaab93b641baefe3ae55216356d401b34f1ac1ce56add070a0ei0 #49145 347: 0ba122500a83c88d40bd8f6d950474c91821e746f071c2f01bd8cf6d59f58948i0 #49155 348: 53cfa6446de3cff9cc748d3400fe636b944e7c6795456496533b0d428156aaefi0 #49171 349: 625e3d73fc1f72b6cd5f2834a86dd090e3c1d492d1376a99fc6540afa98227b3i0 #49167 350: 80ea513dd68a62c0e0a8a00293e60872fe216954c364c0399968ac33653ffe2di0 #49151 0de99a2501eae140772ddb90568eaeb1efb67873e2147bc9d058a0i0 #49163 352: 551bbaa03547d712aaeba08cc40f77cc9f8012e0f86c0d8d7759eb62c2777b27i0 #49150 353: 31de51d56b2d18d4be1e917b72c5fc6b2293eca32c9c5eed468d3f9367b030b9i0 #49168 354: b23c79660148984a795107293e2677a3d9faf6c33cbf93f3f429f2a92c511fabi0 #49165 355: ce338a68aea4994753727df57ad48db96c6cf1ece721fbfbfcad79ee1704375ci0 #49156 356: bf1c30fd472e1fb14d23516bfc3aed8fd4717eb6a94d6954a577ea99d7f48289i0 #49159 357: dd0df230fb45b13019956370a5db6646a5a14f39c3e896859dd718cbM 358: 49f800fb4eb179888119ab27bf24640d4e1f08bbb06e300a5b32ce4b36e0bbf4i0 #49172 359: af937b1e45b87cb240f13a0835033ce7c477763326e130f3b39ae4d78c506dfbi0 #49174 360: b4703b71f7eec6b6c3f24b05664c44586e8c2874870a76cf5aaa228710779b32i0 #49152 361: 37400b1f6ed9769d8b23950986d96a0a338ee51790edb1e4c924e13a42228b83i0 #49275 362: 195b18dc47bdcacc7b59b91fd8e5100270d0b6738421eb71d036259d249fb17fi0 #49274 363: c21c899022cc1f15ae401e3ce90dbd98918837be7209a6c319f55ba756e0d91bi0 #49254 364: 9c8a652d3bf418de8200fd5M be9ada5a08c494e6a0516e8628c8f050fe1f36564i0 #49267 365: c1b2ea556b4da096e089167e78f00b89f295bb76f2efe5d44021e105fb85fe43i0 #49258 366: 2522e5014d44908d4b555ccc20659264e0d1c3a913b152aa85daedf9641c5859i0 #49263 367: 082ab9ebbbf9ca4ef54c03d684daed73ed50258fc93fba65f0105e792c0e71bci0 #49288 368: dc231327859d576a5068b73abb417ca8783796c56665fa8b1229bb561ac1f79ci0 #49280 369: 3e387b06e833d0f5e6b33a59f1c8f3dc251b52a3bcf981a03a88746a08217f6bi0 #49270 370: 4c9dad4d15471bb78e4c4e75bf50d5dfd9821c96058c13f21ecbd6a9e6968611i0 #4M 371: e72b2eabb759dda2402b8d29366633e15eac450865698c37077e60d79db84213i0 #49253 372: b3ba7508ac1da65ca18a4cdb2853200e7c9dfee754ea42d49245e9f0b97d6a09i0 #49250 373: 9490a325181c04be782004ac3dc21af0a3c1d55610000620611d96327d2391bbi0 #49287 374: 356c6ed106cb3da016eed2d59a1c25d628bf3ae1b1446f8e3779a77767d4a45bi0 #49264 375: 5472507fd50bae98497a5a5dbb42fb0a384e9894788a818ce276bef5fb9bb35ei0 #49266 376: acc2e3492e6b6c1383ba71668e21e4aca8cca4244017ff16727cbaa710552866i0 #49268 377: 27c253e943b12ccef34ffa7bf20e403099ffM 8cc9f2a873f81dff383babb2f472i0 #49272 378: 2f480262dbc103624d9d30c83f50746bc77866f56301fe3f73a9e3172a217786i0 #49276 379: 0485e11e385714c518678e20d6d11795c7060b9ef152f5a4b583b8f921d01653i0 #49260 380: f7e0e059252533e36a034093591ce0a9965157e237db143017c79a077d78bf77i0 #49273 381: c84a21978352bbca74dc2aa6c75a230eabddf7bc224ed7385ffd03fe08cf95bfi0 #49289 382: f54aca7d511d81f1d9c73e732d9a041908c9b3338448a42469758887474d5421i0 #49255 383: ac64683f1e16d29d7afe07e9bf4d14976a20d399337a0008b4b17fc985649ce2i0 #49293 c5ad86ceb2f71fcd0ac9bc23c7e46d2cbd12ff94607f3cbba438367064daei0 #49284 385: 074fe9b371d174cf54fdf27c6eb5c42691da9bf681a3e4446aab1afcfed52f31i0 #49256 386: b2cd2abdc73bd507dab53d9636c4255b3bceec29513039e01fce55de3c6874efi0 #49294 387: 1ad5f62c3bb050dee6f8678379d298192113fd7ad97276d077caac832155d6a5i0 #49282 388: bf7d620c120476006cb1e9a4c7e6c38ccd3483515a29071365eab735aa96b808i0 #49249 389: 63cc4b6481934a6ac041cbc3a60d30ab6d7f7b91a099d64566556695db91f54ci0 #49259 390: 92d9951bc33598f08a3737ef5c4ff2c1d6441bca546865393M 3b6046c0be24894i0 #49279 391: 5d072ab5b4d57460740e70c42a7aff267e99a3a6ee95c672249c0ae101dd1fb2i0 #49285 392: 038af32c7726bf8178b23029dc5b5de718db5dfeb009136bec6b467cf8c0da07i0 #49248 393: a4cf6838bb10b7ce9e010bbc59ab11d8ee036d5ab49369f853e258c176708668i0 #49269 394: 8e998ad0687e9d3858da5e71eb1a6b585778eb6d4a45625a30de1be9be2b0089i0 #49278 395: ce6681e271119c0ab04ee22b5b9853f75277650fa60c03f82f8f5ef77056760ai0 #49251 396: 3e42b7a25bd9c9d52b2871d3213c7849d3d2b075106cb225762bcfb3a1be6c07i0 #49247 397: b770abeeb06df45dM 9dbef85d247b0153cbd8bf05b3eccf2c48458d3f214526b4i0 #49286 398: c406fe8290e173cd4d73da519bea96c06e521c652319aa592f0e1f60b9189986i0 #49277 399: 206ed4139dbf0f92c8a32d415b0686ce92462c39d81c016071d769c974758ad1i0 #49292 400: 80ac4a8133879d65348c416c45cdb91bf0c70600c84dde33d763356bf9b6ee41i0 #49257 401: 602f33c2512e39fc17c375c94389705d2194e947f7aa8f008794588a6e056a9fi0 #49281 402: 3f310e5f6773fc45b81a73ec085181ca9189a12be359761c3286d201f777b86fi0 #49271 403: 06e68670e5417c7e7c2fbce533b7a0ddcf4c425b583372443ca1031e9a1f04M 404: bc72d67dc9805f3bf6b9a684cb21fbcea2b3acb34ae4565042179a04cb4d805ci0 #49265 405: 1fdaf1fe2dbbca75c95ded3edb6a6d3f9dd190ab0c446dfcc970026f38c5d0a6i0 #49283 406: 5a0519337505a781a644ce287cd4646265100c6b4fb41b0b8f0b9c4bf3710ef6i0 #49295 407: 59d6a528639d969c2ba55f9396f32dbb6eb849f53cde40718ed8bbe347e3b4c2i0 #49290 408: 6d808d2e1a6906cb51d784f9e0bcb775d7c9ce401506f3db4b2ecb644e4d6e54i0 #49261 409: 07077aa4f59675f8450d01833904d6666f5feb430e9f8c61867312309a0e8208i0 #49388 410: ce92b7398bfd519089210a146770dM fceb3e02adf97fbfdaa73b6e05f5c45e2cdi0 #49412 411: ea719347d9b3c4ab2807ea54c98340f9c8dd1a912a9af804c77d0dc92005ed73i0 #49396 412: e743b4d9c4cd5e46405c850f6f7ad73c7255550ec2e48a1eae7518e2c56e2cc0i0 #49410 413: f249b40c293d2efb283ebe5351603c41beca500e3db95f545a7d596c74d317b4i0 #49406 414: 0696c5735833309ec630f4c38d9c231196445709877acf78a547631055757fa1i0 #49403 415: 23aa0d79b03593dd8de913f40bd2afa71acb20d6fe0b26f8b028c79e3ad317aci0 #49405 416: 0588f63f6bbcf1cd2fcd3b5adcec8f255e5e0c1f9b5813dbb844901e7f23d006i0 #49386 17: c6bdcbfcf48e96cc094534dcbd70326bc2c801c6cc982074baa129d254bf3480i0 #49397 418: 14efa5fcba6f9799d6e89bce4f210375fdb94ffb0b117f8be0d91ea3ce47639ei0 #49402 419: eaa305cb1adf9132042202d8ea2f5e203749ff7caf77aa3df3d4ff3b713af199i0 #49400 420: 312ad2d24a19f9f5a684f5c00b4163b8accdc954d776b148ce94d5ee4d15000ei0 #49389 421: aefb8e31e2d98cbb0dd2e1ec5f9bd1d9146c39d1ca0dfae9768d573d88b48115i0 #49390 422: e327dcec7e74c25c104b83f3237cecd4e1b879c0f03ef4485b42acf9f5fed784i0 #49399 423: 41813c55cb4417f9f1f414f5d06dee84dd543a2cc0M 1afba6b890c953d814c405i0 #49385 424: fd62790ce9fde357a39d8fb3572fdefaf284847ab9b0b339c2ae0752bfda7d9bi0 #49401 425: 53bebef1c9a922cdd67f963ed9fcae14e82661621a2f4049d294c35f25498305i0 #49384 426: c99cf95fb3aaea0a75cf8ca8f150766c5e57a3cfcf2a64af75ce2f9f636a8bbfi0 #49409 427: 4fc44045a02c4c87b00bbc1bb13be0bf702f585383ac35dc0639c0cb22920084i0 #49398 428: 602e8c739057e006168d5ee6b359c1734b047903e1d7f8f7f0e32f88be1118b7i0 #49407 429: 844f059ef1cf1e6d04e834eadf7471eca53f2d5de970fe7953b403b79511476bi0 #49394 ef8f4d652a4feaa4df00eae11c160de976244b9ff1f1f38f3dce3d2i0 #49413 431: d28bbf94a10aaf91d97ad2e5c0309f93c8f11064e0b7c465f767bf35d7f2af03i0 #49382 432: 5a2b1f1185362c8902de9a698aa09631e5a5110c0055688a7235bddc5f08e406i0 #49387 433: 55e72c3571e6f4c253a9e0400c1b32b28021fe3fa44fc35ae69cf12c03205ebfi0 #49408 434: b67efa0e77508ffeb0d7779263004067f9806da4147be867fe558c1a5cc7c962i0 #49393 435: 23a76e8178c293b8a80fff3dc0ae2b301e1b086a2d6a0236de1facf22c9c656fi0 #49395 436: 93cd40e35dc32ed439500894238669e5d43643758080ae655f99d1dM 437: aac3789c077c5d0e1e5edbd684e1c5b607a41046a9384aede0bb059f6035c3abi0 #49404 438: 52ab5e5886826483f9a868658bc9531b07a0393e00610f91e54a008d267c695ei0 #49392 439: 1ae2e08153bf1e3fc788b7578283dd4b2366c75c14957468d1e5a2da94b27a05i0 #49383 440: 227ea2ebe16cff0181a50a2e4c649936ef30360321d13a0399c5eab0f63b61a5i0 #49535 441: 3c1de24572a4864209113f49cdb75e91cbb84a007680f2f581e3572c60904048i0 #49507 442: 3d161dd19338b9c34f50ab9f1a5dfd73a20d77d578db6298fcbe623de8363456i0 #49512 443: 380dd7aecdbdbc90428854M ba9ff4a2f34fee31c12318a9381d00800016961775i0 #49520 444: 52b376d4523afec1d0e4951dfc71d0e43819e605ef24a0bb678e56ae8e047e28i0 #49494 445: cb71aa2cdc654fc2169aa2755bcf6b1f680ca055613639c77013a26c57157bfci0 #49565 446: 1251f7a975560d3409e1db78b61f303bba56061abe5e7d2bfedaba93717493cci0 #49551 447: 5e782028eaaab70d107d848108a5fa1faf27d4b6d1285007aaa59fb83151dfbfi0 #49544 448: 94f3e8831cb8ad50b11732ce71637f29b124ac1dfbea072a5f9a63aaebd30c63i0 #49516 449: 7425d35ac8df2741e2785842bbda4252dbf9126600640c5f8fe4ceb51ee1abc4i0 #M 450: 2a0ab7523f951230699bb861a2f513ea38bcb746bfa648fc293c8c8e8ea85f72i0 #49519 451: c363cd88e12ab5373fc7f53d569616fdb429ec79856e18105d90d5f89e6527b0i0 #49539 452: b9e594506f5c9144adac180deff1ad670fe2517d3140c36eeb0c73ace166a0c0i0 #49545 453: d5a3f6b7fe6881accccb86f2f2f2b3a1dd1407fc159fdf93d2b6d0dba230d0d9i0 #49554 454: 8a5fd91cf1b79f94c25f8318a5489e0493e392540ea4de624413965e3200de64i0 #49517 455: 56b3892fbaf588aa12d4999ea6f55a3b71be14e8b4d47839128bdf04aedf5c96i0 #49529 456: bd9e97fad06646468bda57f503c8dae912dM d8fe93387c15fa174d1f2b4216a99i0 #49530 457: 353ea5b1131b303039d8a637d666d6c0a9433c4a4200a310dc4d8542e16b3c31i0 #49499 458: fa8697b2a76af821deed033ce7239072e18350c293f6e363f122283ec823bdc2i0 #49546 459: 5290fb286632abc8e8dfda6e52ac2aa95066a1a3ce04bd5610717626b9083cddi0 #49556 460: c6325e0ed9438fde5043597fdfaf73b36878b10d5620474b0957182c76328442i0 #49502 461: a7f20b14ec187cf4f1fa00d61a09f61400d344d2e60ef382ae501255252efedfi0 #49559 462: 70f8e76ba4af3d11bd66300f98fb88b5eb7e4f1269f7921a703586f3968301bdi0 #49543 373192de8504aac9909d3ad42e6b5e0e3adc1a61ddd755f8ddcfe44469599ei0 #49532 464: 55e48aa79500dcd85d1ab9c7deef7ff5b36012c3544f4cbcfff8ae9c1c06fd5bi0 #49514 465: fd72ba84985dd94b98f6670da67441c7208708353deeaae7b128397e7c80c02bi0 #49497 466: 680683517380665e467dbff530cad85af393e942be302bf48a7797a6ab0f402ai0 #49496 467: 02131f2887d474522f49d8fbd34e2477b84501f0fd60a7199864c669171e1042i0 #49501 468: abd74893d091b2a904b66d0091d28c0c7a6008ea8856ea916cae28c1b164be46i0 #49506 469: d9f6d1a0f54242f47a3238456863f61ac92d2644f6ce1142M fe2242dbdceeb2e8i0 #49561 470: 7fc50e70eaf2f7952259adc370a9c639bc7908b88b3354b470f9d6a64ce57330i0 #49498 471: 0eea4474fd0c04b4d92e3e8559a4d85577b305604930f9145d38e2436a65ae55i0 #49511 472: 386697c3775265908522e4f42ece91fdbf42b57ffa4e778b86052016684b0fdbi0 #49555 473: 022d05242d4ff30789a095d6d6904dd7970357e668865a6d71ff74bb2eb034aei0 #49538 474: 32aa254065bc264564b290200c55ec4aa031c96b036bf60ceac3e60eeaf526b1i0 #49540 475: b3e0ff1b16d0b942c644e9454742870f446a9969920cb824ac629dafbe73c204i0 #49488 476: e0450135e694117M 648105784e1a12d4a55004b970aef0cc0f2eaf35fa1dbb1f8i0 #49564 477: df9f16e349057d55eda6d0d5b7fbcf46ac259b77368f89396b376f2b6281fc62i0 #49515 478: 6766f50cf8a900c2f04aec192cccd62555e29fead2ac3539e4e5b1d8b28ed0dei0 #49558 479: 9c0cf2dd24f610946e0437fec9b28327981521b2c7840194c7520b7931d40bb8i0 #49542 480: c1db497f19c6f02fb1d45611d9e5e18afe2e634f36e68708da7e6487a40b2345i0 #49505 481: 76c3fd46f313a5b481f948fcf9e2007d565d965237e904516092722b29e43254i0 #49509 482: 817e5d984311cc1c8c0e3c385bc4d66e426e767a003d8b62166b4c9a6b309M 483: bd66ba7e017dd44ea75a26130f87e29474897fc160f028d992941529542edcc3i0 #49547 484: 0939ced58c39443ee690d69931503e070198e3ad8ca4c659ace228c5fffca68bi0 #49526 485: c9975e5e80846a3bc92aa6ba659ecafa79714e719fc15c2c4cc0185295ef617ai0 #49521 486: 49f7bbb630af0479bc5ad6ffbac84ceeccdd3f657f3360278f8d4c4a808da6b3i0 #49541 487: 935a59123bbdab10c255072c21cbba1a0a6e32e47938111beb40c6465fe5c71di0 #49490 488: 505110d8499a5538c3dbb6c8d5f69bdbedaa67b9dc578ff96008452343cbc2fei0 #49566 489: 92f88a5954c0665ee925b1df0770M 4b7ddab3dbbbbc2187b0290fd4460649b322i0 #49492 490: 064312b1e8446b2494b2226fd49e3cfad8b045b574aeea1cae1d8f075196b9adi0 #49537 491: d9128496b3bdfacdfa97b6251a434562528a269318586f210cbc558fadd91157i0 #49513 492: 5e28f48e499b61ea449e0605bfabd9f0bc1c191196827ca43ce78840e0b61d8ci0 #49527 493: ff1244ccabeafbefc1018e7752f54bd6f6517535825c6770c748d48ca8f0d8ebi0 #49562 494: 2d7254f3bcae7a06bedf2774a9b3d0d163653b81184aae8b79138dab341fa944i0 #49504 495: 7c08354fdc583866d266f9b3a99e381c73ca446bcb890c4c591bf7886fe2a3a4i0 #49534 496: e712af15848b2b0650a13e4c8713debb5cf05a9fd7b73c52c05dc8613ac204c8i0 #49549 497: f138a294cab6696f17d754c54b61957032722618a9b88695f520d304cd369923i0 #49493 498: 4db7c8174b79b975a8d706755e32ba9386a4a53f8f434e71e20572959c4b3b93i0 #49528 499: ab361d4a87a4c3d27393f4babfb668d3d9524a6a1558a67f4ce41b2ba15f81d7i0 #49552 500: e4ef51af162a69f29b086e5a15fb8f6baa2990e8701a7ac495ddc6740ca46680i0 #49524 501: b509ae5868182599b52b5fff06d0eec0ca955c695e41e82906723d53b3a5067ei0 #49523 502: 4978668e100d8c13860daa7ba7ecd9ac6d86fef99M 6fedc04855920230a228b20i0 #49491 503: 930493a09c1fb593b6f6637af2121af52c6ff50ad39585576defdf648bba9c9fi0 #49533 504: 2454499ddff129d1d6c5543aad7914e4d41a33a50f5884a66f9114abf206d2f0i0 #49563 505: d7cd2a556c74c7921d45c801c244775e58ee4f421990bab390d2ef4785e136aai0 #49536 506: 940fcc13d850c6de5515b2c8d4bafe8e8f9b378fc45977baf210bda08adcbc54i0 #49510 507: 91fafb2cfeb41725a8b1a5320e0547b2547d33aba0a237da6ea5289ff401f817i0 #49489 508: 856a0ddec6d3b217dfcedf72f36b899d4e381fe95b97fe5a529001beacfd0272i0 #49518 8ee3927a488240ea8a7a5ce9c7ad1f4866496835f9b5c63ab45645dei0 #49557 510: 060841725874b63339567ddc5d5f5b354a12745f87b70f8c81ffb322cd5d6651i0 #49508 511: 8fe08cc2f7e63cce3239b011982852b09a19c890805cf319be9b37d703e0ded7i0 #49553 512: eba01fcbd73c28fbe31fd37bbcb937cc0988de38ed1249091551a910a226a003i0 #49487 513: 880e344d9f34f7633243ee1e2c6a4808777a5a1e646bb44f3daa5430d8077943i0 #49503 514: 33a5712b923061eb0bfe20c47fd94d3d5e08245227ba07a330b6c779124bbe3ai0 #49500 515: d4c711a88cd38c689a35543a61b744737133677f36988dbd30c335M 516: 9afd42cb838cea7072a0c357719fdd757d317b2fcdb2206b4bdd40c8216f9684i0 #49525 517: 05f15ea4a5dcacad7aeee97f8e449392f8f55e79a89c41b18ecaa131ec532be7i0 #49560 518: b5faf5f7f45675e2d3ce32935db5a9d68e3486e98b8f0d620c58aad9218d3201i0 #49596 519: 3f980fa0916d6e92b9e1ae74b6208a154edfa86380721ae8118f27aad0707599i0 #49601 520: 53be6831f7360e2bc8c6c30d133ab0d9c59288a6c6b82c7ef376f6fee4e6c29di0 #49602 521: 05669334bd1717adb63b820ac326f53798fef4b881fe578a600627f809d8fba0i0 #49603 522: 4ab57588d03120a14f66dM 8662e6db56fdd4e8e822ff483ba6bdbea6168ccacbci0 #49606 523: 5415a9ad1aa0f778424df2c82851e1ae08bc102edd04135ef722d5d78b161d00i0 #49595 524: d052412d58b2a89a9b5dc538738d094085fd444bb287e6f2f3fdb5c84a650ca9i0 #49605 525: 51052ba602d524e13ed5c101f317fb9b1eaf56e98f45b2cdf02c0e0d393e2225i0 #49597 526: 2a45a51b09c62d6714a308a4efe894955e319a9e288420b1c6ae50379718e561i0 #49599 527: f9a97b26ff7cfc6664a61c4ba3520adad129468a0c4d50ac26a919098a3a0da8i0 #49604 528: a418e64d5b200552f7f2c77cb58bca98a46f515876025cacb0d4c998de8c1996i0 M 529: 7193dfb1cefc45f6a4a7b2bc88317b1d24a38c31260d03d50902c148ba6089fci0 #49608 530: a59826098cc0fde29028427a9e5bcce0aace46cfb859f84643563a1bb2b545c5i0 #49607 531: 0c3c1fa764ced862c1e1f3f2557b662f4669fb0b71cc6056a64739c0bdd61c73i0 #49673 532: bf5401ffd89e9fd80a12e568b8cdb1e4a8534fc92d141d955079b1914c81e316i0 #49655 533: 99f0c56fd1693aa07277d1ea1015a019ad42b85812fc9991579dfc1472139e97i0 #49676 534: 3081f8b76f88dbac3ef4069f2eba5e65ded8227d4af5232d82df7fd6df68d071i0 #49672 535: 96870168b5043fac8cb36971017c0e7271M 72c7c8ef3ad330fea05995cc8ab918i0 #49656 536: 7dc945fd5900c18cac74957a4098c9c1d6e7c706e4e22c8f4ac49c213afd7682i0 #49674 537: 9cbae02baf21a281f7b3430c704a66394b752d950e54bafc7b37bf6fff0495c6i0 #49689 538: b6f7895442ca28bd294d29763a83d62692eee8bdfd2088c9fff5f7f6ed744358i0 #49668 539: aa0bb36169e0d4dc1c79cfb165f62303bc26e4edd229964c4af882a94a921949i0 #49666 540: fe9ebf55b7f00f476434784b92cc833ba306ba22091a35dbbc59f8e175fefa4fi0 #49667 541: bceb6df8a7b328cc11073d2016f99f7e9968cded7fb9cd0e08095ab48844d603i0 #49649 3902c519036ccd8d18df6a6d8e416730891245acd0a9f0120888bb144fa769ci0 #49678 543: 237da87b4b0cf9bd8e94f55327ad787aa54bc127ee2dcb74c0570601e821f3b5i0 #49684 544: 992c05348c7c99601e0e38d23c33c60fcf2e5c721b43c613da8977284ef2c9b2i0 #49683 545: 6bb8485db0a808d3f5135c22871e5851e27e158d8c2a8e4cab15301b870afc0ei0 #49651 546: f129b584c646ddaecb1e1d716d77c068a4c68bcf74e18854c99178c52dad28d5i0 #49690 547: fd74ffd14465dc9563e71a0e3555126ad76cafce01c66eab063f3d03b901e8aci0 #49681 548: 777ab540a172dfbc57269732db61c0333b60c0821501299M e50823c0356e623b9i0 #49686 549: 5bb4b28428a1e89e0f8ca41cc13b64671aff9c380f97a47fc2c9f1a2c1314ba5i0 #49679 550: eda4c11de1a339885d7b7e1f1a5a66606d1cebc56016468446bf7b981b749700i0 #49648 551: 6b4fc81272fb01bf73eafc700509f2c9628035dc7f7ada63fcbc6563bdedd030i0 #49659 552: 2597f54b8f05d40209e8f87c37f9a7c3aba07ca327d6ec6c0ef0ee2b4d4d7413i0 #49653 553: 589662a176fecd0a7fd581548e19631db83fd1358c1bb6b05d44f57f09442a48i0 #49665 554: fb6853644926247c64c1f148788f8e8b4aa92f041a7afc13c34b30d98bd581f4i0 #49692 555: 97ee9cd1c17d76M 90960c5019da6622d285db4027a88b96fd50a5e340c7a265b6i0 #49685 556: dc96d11dbefdb49adc80b4e373278a5d16145df8931eb9a5da33ea220e536545i0 #49664 557: cd9d822e96674cf1eca0960332eb2e7e4f99bb994c103c51dce9dfa846ed792di0 #49658 558: 05ed9acc91b52bf106ee7f2ec3a7e2c2f84acdb70032365aaf2e75bd6f646dc2i0 #49688 559: 50b1debeec6790834b07101e95a6792bbc55c6d5b2cc78db6ff72d7e91652592i0 #49675 560: 3782eb21657e5d2d18dcd1214ee873b733c6f762c0bb9938a30f3663e368de07i0 #49650 561: 4e13824db97194309f95b3eafbb4d2a32a258a2df8d46395b7da6d1eb618M 562: 2ef7c48b20bb5a00c8cd0a13024419b914904e63df424c29fce7f0009c202142i0 #49663 563: 6fb124efee5f79dda0c49ff63c9aee59cd3100d99673efd66a5a65522a564f69i0 #49669 564: bbbe6390712563e726fe6ea5b7c8ecbb9f053e4c7903db1c50c794b5a52edebai0 #49687 565: e775287bbdc8c8ee022a10c39c6ee0c94cb6280bb666b626ce7e705f05dfb66ei0 #49671 566: b91e2c8499dcfaa073657dce88e2487cf4564c365387fcca522d237b8d369816i0 #49654 567: e7e74272726ee592652772e805fc478e323e2abd0177b4bba6b174a4dddc48aai0 #49680 568: dad23c09878bd590b328234264eM 33aa33e83cf4059d61b8c7f42ee786b41bbffi0 #49695 569: 53762dbed04b8739f24a833f70c21be5d69ac1c818ff12f6656862c8be93ccf6i0 #49693 570: 16c7c3312a31ac908c2a4d63e857d86abf67f7790c24591dd27da359fd373238i0 #49661 571: 512651e9e663fddd29a11c2c6eee88be1461d832f8197d89df4cebd0a7d27520i0 #49657 572: 81523f4c7e0137781ca90cf35881c8a020b51626fdfc4e7cc5532d7d705727afi0 #49682 573: 916706e8937dbbcee8cdff39fbea84b485645903f2d731e47a1e1fdd810536d8i0 #49691 574: f84478d48eaf97ecdbd69d94843efeaeab755407d32c76bf0c73bc8f336414fbi0 #49694M 575: f7bd8ea6b7956c84f49ef24a36e6599879f2956be9462e9afe3c3361ee79030fi0 #49652 576: 6f9c666c2c282193168493e202bb74a4e89e8c35efddb6743a127b33e940e636i0 #49660 577: 837326b67265ded947aed09d5560286f19d99cbad14ea3cb8580a23b085cea6ci0 #49670 578: 3322544f4b4add41789ea11ce596b9c5b7598eb7a8746ebe9b97192c865f23aei0 #49712 579: f3c8d5a82dda25868ff130fdabd6f674ca12e98f4971f09ccb1a21f62592f6e8i0 #49714 580: 346b78f866f73e1090ef638271166ae1424ebd54457255de71c7afb199b569e4i0 #49713 581: 5f0d313c341b6345b4a73da4aa169d5492fc3f2aM 3a071db9de5e5182072bab4ei0 #49710 582: ab4cb8ec98eed8ad031796e154ab8a75cde29f258b71b7fc2e4e94acefc6ee4bi0 #49709 583: fa368898d03c58e92b7e134021ebe49847e182aadec1cc6e3794c0f5711836fdi0 #49715 584: d6303f05db9e46334b19f0e318fe759a588958021c8ff04c2457540a44acfc0ai0 #49707 585: 96fb3ab44b1a2cdde6b2cfc46caffd2fa88bb688e50772e7a0d2866b26d2e626i0 #49708 586: 864e96b34ff04397db0f2e10f97dfcc0208c05c1267b375cff17db6d1f00f07fi0 #49711 587: 2a0fe572c45f052691c479e5da117eba6025ef758835e1f6fd6c321ff00e9039i0 #49774 2db0c36fac3119ed0bd4486feac75bd71fbbe04b82160101e885f6688i0 #49779 589: 1bc2718b491afdb369ce2cfeba80047d0380970e67104cbd5b7eca14ceec846ei0 #49778 590: dc7251a5aea4c2d0834b3d40bf3f7ccc79c9bf8c23bf78943ae8bf753839e539i0 #49775 591: 38fcabde46c7d14155370d519f369c1f727ed16248beac820838be7c2916a462i0 #49777 592: 7d144e771035a2cf34815c3a1a5de73e5e137d219741d3946c1fa3d8e7739702i0 #49803 593: c432829f548ffd82735c57e0adfd0dd9700cb4839caa562bac2f0803fab55dd8i0 #49827 594: 5d3e6e89c4c5fa043b8bf610cf28c0f25a2bf302a026a56bca6f2M 50e2e3795f0i0 #49830 595: 42658c4f528b2d4694207521ca9fa7f789399da7a78ff65ca0fc158d835db041i0 #49811 596: 29ab8dcf9ef6ad06c20925853d2acb6f6e722d18b3aa2ca0545576a56b3b29eci0 #49828 597: 8e75d791cad721f9129819bc12cf4e2119a2234d73388aa4a83dda620511da46i0 #49812 598: b87e67ac68a4e974d0f7bf113cddb9a4a4bffa153a7d904ce572aaf6453871fei0 #50006 599: 3316a56cd4d68aeb412801a56a79a05b6f4853b8c370c2d54167dd07483f61fdi0 #50005 600: e01690f43a877250b1e49748c6e97096ba40f70acfea4210409a7a0889c7dd0fi0 #49985 601: 25ef5490d76b101c1c07M a837595b0d733f429784e8f172a5ba61d4c1c2e8daa9i0 #49999 602: a63a18fd296e6f8e1813ed66d6c4f7addfbf7d9e2705c2b553f068f6b07d9329i0 #49991 603: 8e7785df983e58b34072c593b7606054305b3921c48150267b52e5b4930fb907i0 #49984 604: 4ba824081b1a9f14243ad0b6d6b73b357f0a0c3392596095c2368dd5be3c6567i0 #49995 605: 8d869aa7986bb9f83a3b3033c14b2a7e093fb59a85c84d5c3de3283f05879baei0 #50000 606: 78faf339fac5afac1affb8ccadacc6ea138dfa5bd93207e8dec71606f7bce0c5i0 #50001 607: fb568c26e037a1dbda5e595aaead86ff3dc094a80c5d2ae36507081223c0cbd6i0M 608: d98f6558e89be8c2a4ac8bd9e1223436403738198f79a6d53dae90a8c211fc80i0 #49996 609: 6d720f57e6c2070e2060f236afaf8a79fa3b13998b96fd2910473a56634a3912i0 #49986 610: b7f7c346d98cd4d255f7f9231b79f69695c29d3c06b36c47bb04d7bed0045b16i0 #49987 611: e8db367a7b43c40e86354024a0a043b8dff7ff42a48d9dfa063caaf534dbc69ei0 #49997 612: 3a1376cd770b7ff72f40f57ba2dbbf40f13377d52680e046382eea54bedd2d4ai0 #49993 613: 73918a4c97213b269bffc4db80863341e520ff0f679ac78736d7bd902dc999f8i0 #50004 614: d3010f1a5b07513364548c16f28515405M b5b9e79c27b84ddaa15ce980b484d1bi0 #49988 615: b39d936d9469051b93e70edd84d4c22003877b94f7d535e899afdd8e4fa28946i0 #49992 616: ef19a988af27ce215c1a70a0160efd3349bf3004c6a2f8d02cc8994bd05e441ei0 #49990 617: ded194b821ae10c6a9f588cb9020362dc62a750905e6bb95deb335d40e3b3feci0 #50003 618: a093906d1f375b4fd9aa8cc1066489c1d2d0e7f24225ec6b13bf916baf448c4ci0 #49994 619: a0f0223af8d257dab6fc1724da770e0746b73361a155ae657bb42f34e5e1cd4di0 #50015 620: 72f774baace7eb1dcfaef34e107d988bf39663e7908bdd2b689161b3c06ec599i0 #50019 3a79f2db9c96bb932f33ecc3bbfba9e987ee0b610d32d0e2bde8ff0878041720i0 #50011 622: 960f0198f370f751c86721aa6e8062aa12750d21f2dc3343b9024b22008be2c7i0 #50022 623: c6149136b9c82332e8abacc8ae5deebb70ca27054d221473bcb6473c1a293cb1i0 #50021 624: 21b7f883dc9fabc66238c2f76f9912657a909b8903467756cc4ed7fda6f09572i0 #50016 t1: a27c39272e14a67053d3cddc15d6ef9c0ed90efa5a8613791782ef91c71a2fc5i0 #63861 t2: 440bb7503e52ba08adbe02e5ed6d9a29d42a105217d0e35adf631fe37c6f2bc9i0 #66102 t3: 6716d61903f6651df965f1a63fe79ea35c18d77e4b155ce43MP 22e00a5fba6fa82i0 #66095 t4: 971fc890ee791a8b384b1503fc22343c3fadeee441dafc15ef07bb2ccfb745dai0 #66104 t5: f349e8c9dc1b101d49dc1745979b749b9e852c9e863d735e3c791a6d6b726563i0 #66093 t6: faf6eb4f967f070bbe29888746d4e45c4d270f2200acac9cf4f93f1d27a97cbei0 #66101 t7: c999413ffb19df169d0140311b90d196b2fe9929ba1892965217ab738d43b7a4i0 #67104h! Bj@=:BNB.BNB:bnb12j8gqw35m8pulmxa9nufjh0qlztelfmvnl78zz:648383:te:0 DjB=:BNB.BNB:bnb1wecvp0h3jl79pszqq06am404dfsnvkwmxjcqgy:47457457:te:0 FjDOUT:E83C2C2568F11DB5F51757E7B738EFD55F13FC2A3069C1F65FDB9289D773579A FjDOUT:728CB0C760CF37DC0EFB5457ECBAD77B8C342024FDD446E8EFA022167B635A4F text/html;charset=utf-8 a hyperportal inscribed on-chain enter at your own risk Conjured by el_ranye x @timshelxyz * Mathcastles Studios (0x113d & xaltgeist) * Aleksandr Kubarskii <meta charset="utf-8"> <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Chainspace.app M TUNED to Insignia</title> font-family: 'Noto Mathcastles Remix'; src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff'); font-style: normal; text-align: center; overflow: hidden; background: #171717; align-items: center; justify-content: center; body.mobile #text-video { font-family: 'Noto Mathcastles Remix', monospace; pointer-events: none; align-items: center; transform: scaleX(-1); -webkit-transform: scaleX(-1); background: #171717; font-size: 14px; justify-content: center; transform: scaleX(-1); -webkit-transform: scaleX(-1); cursor: pointer; justify-content: center; pointer-events: none; background: #fff; border: 1px solid #111; padding: 3px 10px; font-family: monospace; font-weight: 700; cursor: pointer; outline: inherit; border-radius: 3px; flex-direction: column; align-items: center; justify-content: center; font-family: monospace; text-align: center; margin-top: 20px; background: #222; border-radius: 20px; box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.5); margin-bottom: 16px; margin-bottom: 0; font-size: 13px; <div id="wrapper"> <video id="video">Portal is closed.</video> <canvas id="canvas-video"></canvas> <div id="frame"> <div id="text-video"></div> <div id="header"> the art in Chainspace.app <button id="stop">Wave</button> function run() { function isMobileDevice() { return (typeof window.orientation !== "undefined") || (navigator.userAgent.indexOf('IEMobile') !== -1); const video = document.getElementById('video') video.setAttribute('autoplay', ''); video.setAttribute('muted', ''); video.setAttribute('playsinline', '') const textVideo = document.getElementById('text-video') const canvas = document.getElementById('canvas-video') const ctx = canvas.getContext('2d', { willReadFrequently: true }); let cyclerEnabled = false; let cycler = 0; let isMobile = isMobileDevice(); const chars = [..." const colors = ["#171717", "#FAB63F", "#EC3M let running = true; function setCanvasSize() { w = Math.min(window.innerWidth, 450); h = Math.min(window.innerHeight, isMobileDevice() ? 600 : 450); height = Math.floor(h / 10); width = Math.floor(w / 6.9); let resizeTimeout; window.onresize = function () { clearTimeout(resizeTimeout); resizeTimeout = setTimeout(setCanvasSize, 100); const init = () => { setCanvasSize(); document.body.classList.add(isMobile ? 'mobile' : null) navigator.mediaDevices.getUserMedia({ video: true, audio: false }) .then(function (stream) { video.srcObject = stream; video.play(); .catch(function (err) { running = false; const render = (ctx) => { if (width && height) { canvas.width = width; canvas.height = height; ctx.drawImage(video, 0, 0, M const getPixelsGreyScale = (ctx) => { const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); const data = imageData.data; const res = new Array(height).fill(0).map(() => []); for (let i = 0, c = 0; i < data.length; i += 4) { const avg = (data[i] + data[i + 1] + data[i + 2]) / 3; let curr = res[row] curr.push(avg) if (c < width) { if (c === width) { row += 1 if (isMobile) { return res.map(row => row.slice(row.length / 4, row.length - row.length / 4)); const getCharByScale = (scale) => { const val = Math.floor((scale + cycler) / 255 * (chars.length)); return chars[val % chars.length]; const getColorByScale = (scale) => { const val = Math.floor((scale + cM ycler) / 255 * (colors.length)); return colors[val % colors.length]; const renderText = (node, textDarkScale) => { let gap = isMobileDevice() ? 15 : 10; const gridElem = document.createElement('div'); gridElem.className = 'grid'; gridElem.style.gridTemplateColumns = `repeat(${textDarkScale[0].length}, ${gap}px)`; gridElem.style.gridTemplateRows = `repeat(${textDarkScale.length}, ${gap}px)`; for (let i = 0; i < textDarkScale.length; M for (let k = 0; k < textDarkScale[i].length; k++) { const textElem = document.createElement('p'); textElem.style.color = getColorByScale(textDarkScale[i][k]); textElem.innerHTML = getCharByScale(textDarkScale[i][k]); gridElem.appendChild(textElem); node.textContent = ""; node.appendChild(gridElem); const frame = () => requestAnimationFrame(() => { ars = getPixelsGreyScale(ctx) renderText(textVideo, chars) if (running) { if (cyclerEnabled) { document.getElementById('stop').addEventListener('click', (e) => { running = !running if (running) { document.getElementById('text-video').onclick = () => { cyclerEnabled = !cyclerEnabled; window.addEventListener('DOMContentLoaded', () => { <?xml version="1.0" encoding="UTF-8"?> <svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8"> <!--puzzlords.com s1p0028/4096 1,0,2,0,1 ~0.10270884656347334--> <style type="text/css"> polyline{stroke:#000;stroke-width:0.15} <rect fill="#9296A0" width="100%" height="100%"/> <polyline fill="#36EEE0" points="0,8 6,3 6,3 0,0 "/> <polyline fill="#52F6A8" points="8,0 5,2 5,3 8,8 "/> <polyline fill="#F652A0" points="8,8 4,5 4,5 0,8 "/> <polyline fill="#52F6A8" points="0,0 6,4 6,4 8,0 "/> " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobeM .com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:4b214f55-f9aa-4242-8e2b-b9634de07eea" xmpMM:InstanceID="xmp.iid:9170fe94-322f-4edc-bdf5-e1fee8e00419" xmpMM:OriginalDocumentID="xmp.did:b7702546-df6c-4aa8-a94f-36a2e40567ea" dc:Format="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMM P:TimeStamp="1676241528028363" GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T09:38:46+11:00" xmp:ModifyDate="2023:02:13T09:38:46+11:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:d196a2d5-b129-489b-a99c-9b8fb524fb9e" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T09:38:48"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M M <?xpacket end="w"?>h! ViTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 116.dee3a77, 2022/09/01-13:57:08 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xapM /1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 23.5 (Windows)" xmp:CreateDate="2023-02-11T14:08:12-08:00" xmp:MetadataDate="2023-02-11T18:48:35-08:00" xmp:ModifyDate="2023-02-11T18:48:35-08:00" photoshop:ColorMode="3" dc:format="image/png" xmpMM:InstanceID="xmp.iid:a3420e9d-4b85-3645-b57d-fcfaed7dd273" xmpMM:DocuM mentID="adobe:docid:photoshop:caac83c7-f53c-4040-8cde-5c0eb5c860ab" xmpMM:OriginalDocumentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" tiff:Orientation="1" tiff:XResolution="720000/10000" tiff:YResolution="720000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="65535" exif:PixelXDimension="500" exif:PixelYDimension="500"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName=" 60k ordinals club 100 of 100" photoshop:LayerText=" 60k ordinals club 100 of 100"/> </rdf:Bag> </photoshop:TextLayers> <xmpM MM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stEvt:when="2023-02-11T14:08:12-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:3fbf098b-01a9-1545-9d9a-8c5c2756e0a0" stEvt:when="2023-02-11T18:48:35-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> M <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:a3420e9d-4b85-3645-b57d-fcfaed7dd273" stEvt:when="2023-02-11T18:48:35-08:00" stEvt:softwareAgent="Adobe Photoshop 23.5 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:3fbf098b-01a9-1545-9d9a-8c5c2756e0a0" stRef:documentID="xmp.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf" stRef:originalDocumentID="xmM p.did:689a6ab1-2c62-8c4f-94c3-0f58794c19bf"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> I " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> M <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:ff283b24-4cbe-413e-a6b6-a9d4df9d6b82" xmpMM:InstanceID="xmp.iid:39b2efd2-2d88-4513-9db4-3bfe8651590d" xmpMM:OriginalDocumentID="xmp.did:6be62186-7c32-45d2-bca2-8fa61349ee91" dc:FormM at="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamp="1676241485900876" GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T09:38:04+11:00" xmp:ModifyDate="2023:02:13T09:38:04+11:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:36e2c930-613a-45fa-97a4-281cb786ebaf" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T09:38:05"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDFM > </x:xmpmeta> M M M <?xpacket end="w" Adobe Photoshop CS6 (Windows) cropWhenPrintingbool /http://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:xmpDM="http://ns.adobe.com/xmp/1.0/DynamM icMedia/" xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/" xmpMM:DocumentID="xmp.did:7A2D0CA8EEAAED11A0DF8F47C205A03D" xmpMM:InstanceID="xmp.iid:9EFAF1D5FDAAED118CEBF3BEB8C6E28B" xmpMM:OriginalDocumentID="xmp.did:7A2D0CA8EEAAED11A0DF8F47C205A03D" xmpDM:videoFrameRate="25.000000" xmpDM:videoFieldOrder="Progressive" xM mpDM:videoPixelAspectRatio="1/1" dc:format="image/jpeg" photoshop:LegacyIPTCDigest="D41D8CD98F00B204E9800998ECF8427E" photoshop:ColorMode="3" xmp:CreateDate="2023-02-12T11:03:12-05:00" xmp:ModifyDate="2023-02-12T12:52:03-05:00" xmp:MetadataDate="2023-02-12T12:52:03-05:00" xmpRights:Marked="False"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="converted" stEvt:parameters="from JPEG to image/jpeg"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:660D60D3F3AAED118CEBF3BEB8C6E28B" stEvt:when="2023-02-12T11:40M :30-05:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:9EFAF1D5FDAAED118CEBF3BEB8C6E28B" stEvt:when="2023-02-12T12:52:03-05:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpDM:startTimecode xmpDM:timeValue="00:01:16:15" xmpDM:timeFormat="25Timecode"/> <xmpDM:altTimecode xmpDM:timeValue="00:01:16:15" xmpDM:timeFormat="25Timecode"/> <xmpDM:videoFrameSize stDim:w="1440" stDim:h=M "960" stDim:unit="pixel"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M M <?xpacket end="w"?> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! )Optimized with https://ezgif.com/optimize zTXtRaw profile type iptc text/plain;charset=utf-8 (((((((((((((((((((((((((((((((((((((((((((((((((( text/plain;charset=utf-8 text/plain;charset=utf-8 9j7+:BTC/BTC::bc1q3f787hr38pmal87yxtpq8tng09q60ljjqqd759:0 zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp zTXtRaw profile type xmp CjA=:BNB.BNB:bnb10e404pneljj7n2t4wp4u4c9hflluvtpa4r728k:1974482:te:0 PLTE0;=,24*034AD,462=? text/plain;charset=utf-8 text/html;charset=utf-8 <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Satoshi Nakamoto Blockchain Stamp</title> <meta name="description" content="This fully on-chain document contains all of Satoshi Nakamoto's posts on Bitcointalk. Here, in the blockchain, without depending on servers and domains, will last forever. Created by Chuiso. https://twitter.com/chuisochuM border-radius: 5px; background-color: #e3e0db; padding: 20px; margin:20px 10px; border-radius: 5px; color:#575656; font-weight:bold; background-color: #c3bdb2; max-width:150px; margin: 20px 0 12px 0; <h1 style="background-color: #3a2300;color: white;max-width: 316px;padding: 20px 10px;border-radius: 5px;text-align: center;"> o Blockchain Stamp</h1> <p>Check the centralized source of each message replacing <b>Ref</b> with <i>https://bitcointalk.org/index.php?topic</i></p> <p>This on-chain document has been difficult to put together and inscribe due to the size limitation. But I got it.</p> #539 <b>Welcome to the new Bitcoin forum! on 11/22/2009</b> Ref=5.msg28#msg28 Welcome to the new Bitcoin forum!<br>The old forum can still be reached here:<br>http://bitcoin.sourceforge.net/boards/indM ex.php<br>I'll repost some selected threads here and add updated answers to questions where I can.<br>FAQ<br>http://bitcoin.sourceforge.net/wiki/index.php?page=FAQ<br>Download<br>http://sourceforge.net/projects/bitcoin/files/<br> #538 <b>Repost: Bitcoin Maturation on 11/22/2009</b> Ref=6.msg29#msg29 <br>bitcoinbitcoin:<br>Bitcoin Maturation<br>Posted:Thu 01 of Oct, 2009 (14:12 UTC)<br>From the user's perspective the bitcoin maturation process can be broken down into 8 stagM es.<br>1. The initial network transaction that occurs when you first click Generate Coins.<br>2. The time between that initial network transaction and when the bitcoin entry is ready to appear in the All Transactions list.<br>3. The change of the bitcoin entry from outside the All Transaction field to inside it.<br>4. The time between when the bitcoin appears in the All Transfers list and when the Description is ready to change to Generated (50.00 matures in x more blocks).<br>5. The change of the Description to GeM nerated (50.00 matures in x more blocks).<br>6. The time between when the Description says Generated (50.00 matures in x more blocks) to when it is ready to change to Generated.<br>7 The change of the Description to Generated.<br>8. The time after the Description has changed to Generated.<br>Which stages require network connectivity, significant local CPU usage and or significant remote CPU usage? Do any of these stages have names?<br>--------------------<br>sirius-m:<br>Re: Bitcoin Maturation<br>Posted:Thu 22 of OM ct, 2009 (02:36 UTC)<br>As far as I know, there's no network transaction when you click Generate Coins - your computer just starts calculating the next proof-of-work. The CPU usage is 100% when you're generating coins.<br>In this example, the network connection is used when you broadcast the information about the proof-of-work block you've created (that which entitles you to the new coin). Generating coins successfully requires constant connectivity, so that you can start working on the next block when someone getsM the current block before you.<br> #537 <b>Repost: Request: Make this anonymous? on 11/22/2009</b> Ref=7.msg30#msg30 <br>anonguy54:<br>Request: Make this anonymous?<br>Posted:Thu 15 of Oct, 2009 (19:58 UTC)<br>Are there any plans to make this service anonymous?<br>e.g; Being able to route BitCoin through Tor. #536 <b>Repost: Bitcoin Maturation on 11/22/2009</b> Ref=6.msg31#msg31 It's important to have network connectivity while yoM u're trying to generate a coin (block) and at the moment it is successfully generated.<br>1) During generation (when the status bar says "Generating" and you're using CPU to find a proof-of-work), you must constantly keep in contact with the network to receive the latest block. If your block does not link to the latest block, it may not be accepted.<br>2) When you successfully generate a block, it is immediately broadcast to the network. Other nodes must receive it and link to it for it to be accepted as the new laM test block.<br>Think of it as a cooperative effort to make a chain. When you add a link, you must first find the current end of the chain. If you were to locate the last link, then go off for an hour and forge your link, come back and link it to the link that was the end an hour ago, others may have added several links since then and they're not going to want to use your link that now branches off the middle.<br>After a block is created, the maturation time of 120 blocks is to make absolutely sure the block is partM of the main chain before it can be spent. Your node isn't doing anything with the block during that time, just waiting for other blocks to be added after yours. You don't have to be online during that time. #535 <b>Repost: Request: Make this anonymous? on 11/22/2009</b> Ref=7.msg32#msg32 There will be a proxy setting in version 0.2 so you can connect through TOR. I've done a careful scrub to make sure it doesn't use DNS or do anything that would leak your IP while in proxM #534 <b>Repost: How anonymous are bitcoins? on 11/25/2009</b> Ref=8.msg33#msg33 <br>bitcoinbitcoin:<br>How anonymous are bitcoins?<br>Can nodes on the network tell from which and or to which bitcoin address coins are being sent? Do blocks contain a history of where bitcoins have been transfered to and from? Can nodes tell which bitcoin addresses belong to which IP addresses? Is there a command line option to enable the sock proxy the first time that bitcoin starts?M What happens if you send bitcoins to an IP address that has multiple clients connected through network address translation (NAT)?<br> #533 <b>Repost: How anonymous are bitcoins? on 11/25/2009</b> Ref=8.msg34#msg34 > Can nodes on the network tell from which and or to which bitcoin <br>> address coins are being sent? Do blocks contain a history of where <br>> bitcoins have been transfered to and from?<br>Bitcoins are sent to and from bitcoin addresses, which are esM sentially random numbers with no identifying information.<br>When you send to an IP address, the transaction is still written to a bitcoin address. The IP address is only used to connect to the recipient's computer to request a fresh bitcoin address, give the transaction directly to the recipient and get a confirmation. <br>Blocks contain a history of the bitcoin addresses that a coin has been transferred to. If the identities of the people using the bitcoin addresses are not known and each address is used only oncM e, then this information only reveals that some unknown person transferred some amount to someone else.<br>The possibility to be anonymous or pseudonymous relies on you not revealing any identifying information about yourself in connection with the bitcoin addresses you use. If you post your bitcoin address on the web, then you're associating that address and any transactions with it with the name you posted under. If you posted under a handle that you haven't associated with your real identity, then you're still pM seudonymous.<br>For greater privacy, it's best to use bitcoin addresses only once. You can change addresses as often as you want using Options->Change Your Address. Transfers by IP address automatically use a new bitcoin address each time.<br>> Can nodes tell which bitcoin addresses belong to which IP addresses?<br>No.<br>> Is there a command line option to enable the sock proxy the first<br>> time that bitcoin starts?<br>In the next release (version 0.2), the command line to run it through a proxy fromM the first time is:<br>bitcoin -proxy=127.0.0.1:9050<br>The problem for TOR is that the IRC server which Bitcoin uses to initially discover other nodes bans the TOR exit nodes, as all IRC servers do. If you've already connected once before then you're already seeded, but for the first time, you'd need to provide the address of a node as such:<br>bitcoin -proxy=127.0.0.1:9050 -addnode=<someipaddress><br>If someone running a node with a static IP address that can accept incoming connections could post their IP M to use for -addnode, that would be great.<br>> What happens if you send bitcoins to an IP address that has multiple<br>> clients connected through network address translation (NAT)?<br>Whichever one you've set your NAT to forward port 8333 to will receive it. If your router can change the port number when it forwards, you could allow more than one client to receive. For instance, if port 8334 forwards to a computer's port 8333, then senders could send to "x.x.x.x:8334" <br>If your NAT can't translate port numM bers, there currently isn't a command line option to change the incoming port that bitcoin binds to, but I'll look into it.<br> #532 <b>Repost: Linux/UNIX compile on 11/27/2009</b> Ref=9.msg36#msg36 <br>scott:<br>Linux/UNIX compile<br>Posted:Thu 08 of Oct, 2009 (05:49 UTC)<br>Can we get instructions or modifications to compile and install BitCoin on Linux? A command line version would be great. #531 <b>Repost: Linux/UNIX compile on 11/27/2009</b> Ref=9.msgM The Linux version is on its way. Martti's Linux port was merged into the main code branch and New Liberty Standard has been testing it. It'll be in the next release, version 0.2.<br>Command line is on the to-do list after 0.2. #530 <b>[OLD THREAD] Bitcoin version 0.2 development status on 11/27/2009</b> Ref=10.msg38#msg38 We've been working hard on improvements for the next version release. Martti (sirius-m) added some nice features to maM ke it more user friendly and easier to run in the background:<br> - Minimize to system tray option<br> - Autostart on boot option so you can keep it running in the background automatically<br> - New options dialog layout<br> - Setup EXE for Windows, in addition to the archive download<br>I've been working on a number of refinements to the networking code and laying the groundwork for future functionality. Also coming in version 0.2:<br> - Multi-processor support for coin generation<br> M #529 <b>A few suggestions on 12/09/2009</b> Ref=12.msg41#msg41 Helpful suggestions, thanks.<br><div class="q">Replying</div>That's a good idea. The side accepting the connection just needs to withhold from sending anything until it receives a valid handshake. Any portscan would only get a dead connection that doesn't volunteer to identify itself. <br><div class="q">Replying</div>I have thought about eventually SSLing all the connections. I assume anything M short of SSL would be pointless against DPI. Maybe a better more immediate solution is to connect through TOR, which will be possible with 0.2. <br><div class="q">Replying</div>That's one of the main things on the agenda after 0.2.<br><div class="q">Replying</div>Yeah, the other stealth stuff would be kinda pointless if it's always the same port number.<br><div class="q">Replying</div>I'm looking forward to trying UPnP. Do most P2P clients typically have UPnP enabled by default?<br><div class="q">Replying</div>I'm M still thinking about how best to structure the management interface. Maybe command line commands to communicate with the background daemon to query transactions received and initiate sending transfers. That would be more automation friendly. Or what about an http interface on some port other than 80 to manage it with a browser?<br> #528 <b>A few suggestions on 12/10/2009</b> Ref=12.msg45#msg45 <div class="q">Replying</div>That's a good approach for mobile. Programmatic APIM used by PHP (any language) to present a web UI covers remote admin, mobile and any other client that can't be online all the time with a static IP. It would be like webmail. It would be easier for new users to get started if they only need to create an account on a website, not install software.<br><div class="q">Replying</div>Yeah, we can phase out IRC when there are enough static nodes to preprogram a seed list. Once you get seeded, you don't need IRC.<br><div class="q">Replying</div>There were some issues in 0.M 1.5 where the initial block download could get bogged down. 0.2 has code to make sure it goes smoothly. It ought to take less than an hour, I think. I need to hurry up and get 0.2 out the door.<br>The blocks increase linearly, it'll be decades before it's millions. In theory, the block download time should top out 8 months from now when Moore's Law will be growing faster than the block chain.<br><div class="q">Replying</div>It's SVN on sourceforge. PM or e-mail me your sourceforge account and I'll give you access.<M br><div class="q">Replying</div>That's great because that's where I have less expertise. For instance, I haven't researched the best way to do the "Start Bitcoin on system startup" feature on Linux. On Windows, the option adds/removes an icon in the Startup folder.<br> #527 <b>Questions about Bitcoin on 12/10/2009</b> Ref=13.msg46#msg46 1-3:<br>For that level of anonymity you need to connect through TOR, which will be possible with version 0.2, which is only a few weeks awM ay. I'll post TOR instructions at that time.<br>4:<br>Version 0.1.5: backup the whole %appdata%\Bitcoin directory.<br>Version 0.2: you can backup just wallet.dat.<br>5:<br>Nope. The whole design is all about preventing that from working.<br>6:<br>Those coins can never be recovered, and the total circulation is less. Since the effective circulation is reduced, all the remaining coins are worth slightly more. It's the opposite of when a government prints money and the value of existing money goes down.<br>7:<br>It's M currently 29,296 blocks. The circulation is the number of blocks times 50, so the current circulation is 1,464,800 bc. <br>If you only have 24k blocks, it must not have finished the initial block download. Exit bitcoin and start it again. Version 0.2 is better/faster at the initial block download.<br>8:<br>Typically a few hundred right now. It's easy now but it'll get harder as the network grows.<br>9:<br>Good question, it's TCP. The website needs to be updated to say TCP port 8333.<br>The port forwarding is so othM er nodes can connect to you, so it helps you stay connected because you are able to be connected with more nodes. You also need it to receive payments by IP address.<br>10:<br>No, the other nodes won't accept that.<br>Being open source means anyone can independently review the code. If it was closed source, nobody could verify the security. I think it's essential for a program of this nature to be open source.<br>11:<br>Slower machines produce fewer coins. It's proportional to CPU speed.<br>12:<br>There are more coM ming.<br>13:<br>It uses a transactional database called Berkeley DB. It will not lose data in a system crash. Transactions are written to the database immediately when they're received.<br>14:<br>For now, you can just multiply the total blocks by 50. The Bitcoin network has been running for almost a year now. The design and coding started in 2007. #526 <b>Questions about Bitcoin on 12/11/2009</b> Ref=13.msg49#msg49 That's true, with the send-to-IP option, you are sending tM o whoever answers that IP. Sending to a bitcoin address doesn't have that problem.<br>The plan is to implement an IP + bitcoin address option that would have the benefits of both. It would still use a different address for each transaction, but the receiver would sign the one-time-use address with the given bitcoin address to prove it belongs to the intended receiver.<br> #525 <b>A few suggestions on 12/11/2009</b> Ref=12.msg50#msg50 Right, the SVN has the almost-release-cM andidate 0.2 source, which can also be built and run on Linux. It hasn't been tested on FreeBSD.<br><div class="q">Replying</div>That would be a big help. TOR users wouldn't have to worry about how to get seeded, and we wouldn't depend on IRC.<br>It can be run in a few simple modes without access to the UI if you don't mind a minimized window on the desktop. (0.1.5 doesn't have -min so it would be an open window)<br>To only run a seed:<br>bitcoin -min -gen=0<br>You could sort of monitor it by looking at debug.log.M To stop it, kill the process, the database won't mind.<br>To generate:<br>bitcoin -min -gen<br>To get the generated bitcoins, you'd have to copy wallet.dat (with version 0.2) to a machine with a UI, swap in the wallet.dat, run bitcoin and transfer the coins to your main account. (With version 0.1.5 you'd have to copy the whole "%appdata%/Bitcoin" directory.) There is one caveat about copying wallet.dat: if you happened to kill the program at the exact moment that it generated a coin or received a payment, waM llet.dat might not work by itself and you'd have to copy the whole directory.<br><div class="q">Replying</div>I see, that would happen with multiple nodes using the same NAT or VPN or some ISP that funnels everyone through a few proxy servers. I just committed a fix to SVN for this. If it gets "433" name already in use (it was error 433, right?), it'll retry with a non-address random username. <br><div class="q">Replying</div>That's great, any help is really appreciated!<br> #524 <b>A few suggestioM ns on 12/12/2009</b> Ref=12.msg54#msg54 The average total coins generated across the network per day stays the same. Faster machines just get a larger share than slower machines. If everyone bought faster machines, they wouldn't get more coins than before.<br>We should have a gentleman's agreement to postpone the GPU arms race as long as we can for the good of the network. It's much easer to get new users up to speed if they don't have to worry about GPU drivers and compatibility. It's nicM e how anyone with just a CPU can compete fairly equally right now. #523 <b>A few suggestions on 12/12/2009</b> Ref=12.msg55#msg55 <div class="q">Replying</div>Mac support would be nice. wxWidgets really pays off for cross platform.<br>Please don't try PPC. PPC is big-endian and Bitcoin is little-endian, there would be endless endian bugs making it harder for me to debug the network if there's a potentially byte-swapping node out there. PPC is on its way out anyway.<br>ConsM idered autoconf. Autoconf is a necessity for large projects with a quagmire makefile, but I think we're small enough that it's more optimal without it. I'd rather keep the makefile simple as long as possible.<br><div class="q">Replying</div>My head hurts just thinking about that. Funnelling all the UI backend through a TCP connection would make everything twice as hard. There's too much bandwidth between the UI and the internal data structures in order to keep the listview control updated, because of the way the liM stview control works.<br>I'd rather have command line control, that would get us remote admin and batch automation. #522 <b>A few suggestions on 12/13/2009</b> Ref=12.msg62#msg62 There would be a command line switch at runtime to tell it to run without UI. All it needs to do is not create the main window. A simplistic way would be to disable "pframeMain->Show" and "ptaskbaricon->Show" in ui.cpp. The network threads don't care that the UI isn't there. The only other UM I is a message box in CheckDiskSpace if it runs out of disk space.<br>Then a separate command line utility to communicate with it to do things. Not sure what it should be named.<br>"natural deflation"... I like that name for it. Yes, there will be natural deflation due to payment mistakes and lost data. Coin creation will eventually get slow enough that it is exceeded by natural deflation and we'll have net deflation. #521 <b>A few suggestions on 12/14/2009</b> Ref=12.msg67#msg67 <div class="q">Replying</div><br>It looks like the implicit conversion from std::string to wxString isn't working. That's used everywhere, the conversion needs to work.<br>wxString is complicated by supporting win32's 16-bit wchar and 8-bit ansi dual-compile. You can get that problem on Windows if the "unicode" (meaning wchar) build is used, so that wxString is wchar and std::string is char.<br>It's probably some wxWidgets compile defines or build configuration. What "configure" options did you use?<br>I'm M not sure __WXMAC__ is the right define. It may be the Mac Classic support that's complicating wxString, and we only want OSX. Try __WXOSX__ (or see below)<br>http://docs.wxwidgets.org/stable/wx_cppconst.html<br>"There are two wxWidgets ports to Mac OS. One of them, wxMac, exists in two versions: Classic and Carbon. The Classic version is the only one to work on Mac OS version 8. The Carbon version may be built either as CFM or Mach-O (binary format, like ELF) and the former may run under OS 9 while the latter only M runs under OS X. Finally, there is a new Cocoa port which can only be used under OS X. To summarize:<br> * If you want to test for all Mac platforms, classic and OS X, you should test both __WXMAC__ and __WXCOCOA__.<br> * If you want to test for any GUI Mac port under OS X, use __WXOSX__.<br> * If you want to test for any port under Mac OS X, including, for example, wxGTK and also wxBase, use __DARWIN__" #520 <b>A few suggestions on 12/15/2009</M b> Ref=12.msg70#msg70 <div class="q">Replying</div>Then it must be something you're doing differently with building or configuring wxWidgets.<br>What options did you use on the wxWidgets "configure" script? The options I used are in build-unix.txt.<br><div class="q">Replying</div>Never heard of that happening. Is there anything in debug.log? If you touched the file, that sounds like something is there. Does the program have write access to the file? coin 0.2 released! on 12/16/2009</b> Ref=16.msg73#msg73 Bitcoin version 0.2 is here!<br>Download links:<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.2.0-win32-setup.exe/download<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.2.0-win32.zip/download<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.2.0-linux.tar.gz/download<br>New Features<br>Martti Malmi<br> - Minimize to system tray option<br> - Autostart on boot option sM o you can keep it running in the background automatically<br> - New options dialog layout for future expansion<br> - Setup program for Windows<br> - Linux version (tested on Ubuntu)<br>Satoshi Nakamoto<br> - Multi-processor support for coin generation<br> - Proxy support for use with TOR<br> - Fixed some slowdowns in the initial block download<br>Major thanks to Martti Malmi (sirius-m) for all his coding work and for hosting the new site and this forum, and New Liberty Standard for hisM help with testing the Linux version.<br> #518 <b>A few suggestions on 12/17/2009</b> Ref=12.msg77#msg77 That's good, is it running fine on FreeBSD?<br>I committed the changes to headers.h. For consistency, I used __BSD__. The complete list of defines is at http://docs.wxwidgets.org/stable/wx_cppconst.html<br>#ifdef __BSD__<br>#include <netinet/in.h><br>#endif<br>malloc.h is only needed on windows, I'll move that into the __WXMSW__ section before it causes any more tM #517 <b>A few suggestions on 12/18/2009</b> Ref=12.msg79#msg79 What you can currently do is set "Minimize to the tray" in options, then run it as "bitcoin -min" so it starts minimized. The only visible part will be a small (20x20) icon on the tray, which can be doubleclicked if you want to access the UI. Note: there's a bug with tray icons sometimes disappearing on 64-bit Karmic Koala, not sure if it's from 64-bit or Karmic, it was fine on 32-bit Jaunty.<br>We didnM 't have time to implement the "Start Bitcoin on system startup" feature on Linux in time for 0.2 so it's greyed out. I figured Linux people wouldn't mind doing that manually anyway. I guess they need to know about the -min switch to do it right.<br>You can locate the data directory where you want with the "-datadir=<directory>" switch. I know someone is already doing that to put it on a TrueCrypt USB drive. #516 <b>Is my second Transaction working correctly? +Transfer Question on 01/05/2010</M b> Ref=17.msg85#msg85 The transfer is immediate if you send by IP address. If you send by bitcoin address and the recipient isn't online at the time, it might take 30 minutes or more to see it. <br>Also, the recipient needs to be synced up with the block chain before it'll see the received transaction. That means the status bar at the bottom needs to say at least 33000 blocks, like "x connections 33200 blocks x transactions".<br><div class="q">Replying</div>Would it be clearer M if the status said "x confirmations", like:<br>2/unconfirmed<br>3/unconfirmed<br>4/unconfirmed<br>5/unconfirmed<br>6 confirmations<br>7 confirmations<br>8 confirmations<br>Each block essentially means another node has confirmed that it agrees with all transactions up to that point.<br> #515 <b>64bit support on 01/14/2010</b> Ref=18.msg97#msg97 I haven't tried compiling 64-bit yet. 64-bit wouldn't make it any faster, since it uses 64-bit numbers in only a few places and SHAM -256 is a 32-bit algorithm, but it may be convenient for those running a 64-bit OS. If I get a chance I'll try -m64 and see what the problem is.<br>You can run the 32-bit version on 64-bit Linux by installing ia32-libs. (sudo apt-get install ia32-libs) If we made a Debian package, it could automatically pull that in as a dependency. #514 <b>Number of connections? on 01/20/2010</b> Ref=21.msg112#msg112 Coins generate at the same speed with any number of connections &gM t;= 1.<br>More connections just add redundancy. If you only had one connection, what if that node is slow or busy, or only connected to you? Having several connections increases the certainty that you're well connected to the network. That hasn't been a problem in practice, the network is very thoroughly connected. If you have 2 or 3 connections, you're fine. #513 <b>TOR and I2P on 01/20/2010</b> Ref=22.msg113#msg113 I've been thinking about that for a while. I want M to add the backend support for .onion addresses and connecting to them, then go from there.<br>There aren't many .onion addresses in use for anything because the user has to go through a number of steps to create one. Configure TOR to generate a .onion address, restart TOR, configure it with the generated address. Perhaps this is intentional to keep TOR so it can't be integrated into file sharing programs in any sufficiently automated way.<br> #512 <b>Bitcoin crash when sending coins on 01/27/2010<M /b> Ref=27.msg156#msg156 That is what happens if you copy wallet files around. If you copy your wallet file to a second computer, then they both think the money in the wallet is theirs. If one spends any of it, the other doesn't know those coins are already spent and would try to spend them again, and that's the error you would hit.<br>Now that it's clear this is a key error message, it ought to be something more like "the money appears to be already spent... this could happen if you used M a copy of your wallet file on another computer." <br>You can move or backup your wallet file, but it needs to have only one "lineage" and only used in one place at a time. Any time you transfer money out of it, then you must no longer use any previous copies.<br>This brings up a good point. In the case of restoring a backup that may be from before you spent some coins, we need to add functionality to resync it to discover which coins have already been spent. This would not be hard to do, it just hasn't been implemeM nted yet. I'll add it to the list. This would make it mostly repair the situation instead of giving that error message. #511 <b>A newb's test - anyone want to buy a picture for $1? on 01/28/2010</b> Ref=25.msg159#msg159 Yes, it's a technical limitation. Sending by bitcoin address enters the transaction into the network and the recipient discovers it from the network. You don't connect directly with them and they don't have to be online at the time.<br>I very much wanted toM find some way to include a short message, but the problem is, the whole world would be able to see the message. As much as you may keep reminding people that the message is completely non-private, it would be an accident waiting to happen.<br>Unfortunately, ECDSA can only sign signatures, it can't encrypt messages, and we need the small size of ECDSA. RSA can encrypt messages, but it's many times bigger than ECDSA. #510 <b>Blocks never stop generating? on 01/28/2010</b> Ref=28.msg160#msg160 Where it says # blocks" in the status column I'm changing it to say # confirmations". That might be clearer.<br>If you doubleclick on the transaction you get a little more information. #509 <b>Bitcoin crash when sending coins on 01/28/2010</b> Ref=27.msg170#msg170 The resync idea would go through your wallet and check it against the block index to find any transactions that your current computer doesn't realize are already spent. That could happen if thM ey were spent on another computer with a copy of the wallet file, or you had to restore the wallet to a backup from before they were spent. Currently, the software just assumes it always knows whether its transactions are spent because it marks them spent in wallet.dat when it spends them.<br>A wallet merge tool is possible to implement but much less in demand once resync solves most of the problem. With resync, you could do about the same thing by sending all the money from one wallet to the other. The receiver woM uld resync and discover all its overlapping coins were spent, then receive them in the new transaction. #508 <b>Payment server on 01/28/2010</b> Ref=29.msg172#msg172 That's the right way to do it as riX says. The software can generate a new bitcoin address whenever you need one for each payment. "Please send X bc to [single-use bitcoin address] to complete your order" When the server receives that amount to the bitcoin address, that could trigger it to automatically M fulfil the order or e-mail the shop owner.<br>Adding command line support is a high priority. It's just a matter of getting the time to code it. #507 <b>A newb's test - anyone want to buy a picture for $1? on 01/29/2010</b> Ref=25.msg173#msg173 The recommended ways to do a payment for an order:<br>1) The merchant has a static IP, the customer sends to it with a comment.<br>2) The merchant creates a new bitcoin address, gives it to the customer, the customer sends to that aM ddress. This will be the standard way for website software to do it.<br>RSA vs ECDSA: it's not the size of the executable but the size of the data. I thought it would be impractical if the block chain, bitcoin addresses, disk space and bandwidth requirements were all an order of magnitude bigger. Also, even if using RSA for messages, it would still make sense to do all the bitcoin network with ECDSA and use RSA in parallel for only the message part. In that case, everything that's been implemented up to now would bM e implemented exactly as it has been.<br>We can figure out the best way to do this much later. It could use a separate (maybe existing) e-mail or IM infrastructure to pass messages, and instead of RSA, maybe just put a hash of the message in the transaction to prove that the transaction is for the order described in the message. The message would have to include a salt so nobody could brute force the hash to reveal a short message. #506 <b>64bit support on 01/29/2010</b> Ref=18.msg174#msg174 I committed a fix for 64-bit compile and some fixes to support wxWidgets 2.9.0.<br>There was one compile error in serialize.h with min(sizeof()) that I fixed for 64-bit. The rest of the 64-bit compile errors I was getting were in wxWidgets 2.8.9, so I started working on supporting wxWidgets 2.9.0.<br>wxWidgets 2.9.0 is UTF-8. We've been using the ANSI version of wxWidgets 2.8.9 in anticipation of wxWidgets UTF-8 support.<br>I compiled and ran on 64-bit Ubuntu 9.10 Karmic.<br>I think the only bugM left is where the status number is mashed up. I'm not sure why, I have to suspect it's a UTF-8 thing, but no idea how that could happen. Haven't looked into it.<br>build-unix.txt is updated and two makefiles on SVN:<br>makefile.unix.wx2.8<br>makefile.unix.wx2.9<br>Unfortunately there's still no debian package for either version of wxWidgets we use. They only have the wchar ("unicode") version of wxWidgets 2.8, which is a disaster because wchar wxString doesn't convert to std::string. We use either ANSI wxWidgets 2M .8, or wxWidgets 2.9. So you still have to get it and build it yourself.<br> #505 <b>Bitcoin crash when sending coins on 02/03/2010</b> Ref=27.msg219#msg219 I uploaded this fix to the SVN. It watches for spent coins and updates your wallet on load and also continuously as blocks come in. I also put a better error message, but it should never hit it because it always finds spent coins ahead of time, unless you spent the same money at the same time on two computers at once.<M br>If you want to try it, PM or e-mail me your e-mail address where I can send it as an attachment and also what OS (win, linux 32-bit, linux 64-bit). #504 <b>Win32 CPU Cycles vs 'Live Protection' Engines ? on 02/03/2010</b> Ref=35.msg220#msg220 Thanks for that. Which version of Windows? #503 <b>Questions about Addresses on 02/04/2010</b> Ref=34.msg222#msg222 Port forwarding forwards a port to one computer. It tells the router whiM ch computer handles connections to that port. So that's the computer receiving.<br>If you didn't set up port forwarding, then incoming connections won't go to any computer, and attempts to send to that IP would just say it couldn't connect to the recipient and nothing is sent. When sending by IP, you still send to a bitcoin address, but your computer connects to that IP, gets a new bitcoin address from it, gives the transaction directly to the them and confirms that it was received and accepted.<br>Someone should pM ost their static IP so people can try out sending by IP and also give that user free money.<br>There's a 32-bit checksum in bitcoin addresses so you can't accidentally type an invalid address.<br>If 4) you send to a recipient who has abandoned or lost their wallet.dat, then the money is lost. A subtle point can be made that since there is then less total money in circulation, everyone's remaining money is worth slightly more, aka "natural deflation". #502 <b>TOR and I2P on 02/04/2010</b> Ref=22.msgM When using proxy port 9050, it will only make one attempt to connect to IRC, then give up, since it knows it will probably always fail because IRC servers ban all the TOR exit nodes. If you're using another port, it would assume it might be a regular old normal proxy and would keep retrying IRC at longer and longer intervals. You should not use Polipo or Privoxy as those are http filters and caches that would corrupt Bitcoin's messages if they make any changes. Bitcoin might be M trying to overcome it by reconnecting. You should use port 9050.<br>As riX says, the "is giving Tor only an IP address. Apps that do DNS..." warnings are nothing to worry about. Bitcoin doesn't use DNS at all in proxy mode.<br>Since Bitcoin can't get through to IRC through Tor, it doesn't know which nodes are currently online, so it has to try all the recently seen nodes. It tries to conserve connection attempts as much as possible, but also people want it to connect quickly when they start it up and reconnect quicM kly if disconnected. It uses an algorithm where it tries an IP less and less frequently the longer ago it was successful connected. For example, for a node it saw 24 hours ago, it would wait 5 hours between connection attempts. Once it has at least 2 connections, it won't try anything over a week old, and 5 connections it won't try anything over 24 hours old. #501 <b>Proof-of-work difficulty increasing on 02/05/2010</b> Ref=43.msg249#msg249 We had our first automatic adjusM tment of the proof-of-work difficulty on 30 Dec 2009. <br>The minimum difficulty is 32 zero bits, so even if only one person was running a node, the difficulty doesn't get any easier than that. For most of last year, we were hovering below the minimum. On 30 Dec we broke above it and the algorithm adjusted to more difficulty. It's been getting more difficult at each adjustment since then.<br>The adjustment on 04 Feb took it up from 1.34 times last year's difficulty to 1.82 times more difficult than last year. That M means you generate only 55% as many coins for the same amount of work.<br>The difficulty adjusts proportionally to the total effort across the network. If the number of nodes doubles, the difficulty will also double, returning the total generated to the target rate.<br>For those technically inclined, the proof-of-work difficulty can be seen by searching on "target:" in debug.log. It's a 256-bit unsigned hex number, which the SHA-256 value has to be less than to successfully generate a block. It gets adjusted every M 2016 blocks, typically two weeks. That's when it prints "GetNextWorkRequired RETARGET" in debug.log. #500 <b>Questions about Addresses on 02/05/2010</b> Ref=34.msg250#msg250 <div class="q">Replying</div><br>That's not possible. You've handed control of the money over to the recipient's keypair. Only that key can control it.<br>It's similar to if you encrypt a file with AES and a strong password, and you lose the password. The data is lost. #499 <b>Repost: M Request: Make this anonymous? on 02/06/2010</b> Ref=7.msg264#msg264 When you send to a bitcoin address, you don't connect to the recipient. You send the transaction to the network the same way you relay transactions. There's no distinction between a transaction you originated and one you received from another node that you're relaying in a broadcast. With a very small network though, someone might still figure it out by process of elimination. It'll be better when the network is larger.<brM >If you send by IP, the recipient sees you because you connect to their IP. You could use TOR to mask that.<br>You could use TOR if you don't want anyone to know you're even using Bitcoin.<br>Bitcoin is still very new and has not been independently analysed. If you're serious about privacy, TOR is an advisable precaution. #498 <b>How divisible are bitcoins and other market/economic questions on 02/06/2010</b> Ref=44.msg267#msg267 Eventually at most only 21 million coins foM r 6.8 billion people in the world if it really gets huge.<br>But don't worry, there are another 6 decimal places that aren't shown, for a total of 8 decimal places internally. It shows 1.00 but internally it's 1.00000000. If there's massive deflation in the future, the software could show more decimal places.<br>If it gets tiresome working with small numbers, we could change where the display shows the decimal point. Same amount of money, just different convention for where the ","'s and "."'s go. e.g. moving the dM ecimal place 3 places would mean if you had 1.00000 before, now it shows it as 1,000.00. #497 <b>Make your "we accept Bitcoin" logo on 02/08/2010</b> Ref=45.msg278#msg278 No, sorry. I've been meaning to redo it. The largest icon that still looks good is the 20x20 one which is used for the tray icon in GNOME. Any larger than that looks bad. The 16x16 and 20x20 ones have quite a bit of hand tweaking to get the pixels to work out right. If you just scale down a larger image, M the pixels end up blurred and awkward in places where the lines in "BC" don't land square on a pixel.<br>The best 16x16 with full alpha channel is in src/rc/bitcoin.ico. I don't like the 32x32 version.<br>I'm attaching bitcoin20x20.png, the 20x20 version with full transparency. #496 <b>Bitcoin client and website translation on 02/08/2010</b> Ref=47.msg279#msg279 Thank you for the offer to help translate. That is probably the best way you could help.<br>I will need to prepaM re the code for translation first. wxWidgets has locale support, and most strings are in generated code that is already wrapped, so it shouldn't be too hard. We also must finish upgrading to wxWidgets-2.9.0 to get UTF-8 support. I've done test builds with 2.9.0 and there is one bug left to fix. <br>What operating system are you using? Windows, Linux 32-bit or 64 bit?<br>Split from another thread.<br>sirius-m #495 <b>Bitcoin client and website translation on 02/08/2010</b> Ref=47.msg283#msg283M It's much easier to have a single binary and multiple .mo files. It's too much maintenance work to have lots of build variations. Once the software support is implemented, anyone could contribute translations.<br>wxWidgets uses the gettext standard. You use the gettext tools or something like poedit to create a .po file by scanning the sourcefiles for strings and editing the translations into the .po file, then compile it into a .mo file. The program loads the .mo file at runtime and reskM ins all the strings. Additional languages can be added to an existing program by adding .mo files without recompiling the program.<br>On Windows, the .mo files would go in a lang subdirectory in the directory where the EXE is located.<br>Right now I'm working on JSON-RPC and command line support, but when I'm finished with that I hope to do this next. #494 <b>Simple to implement feature requests on 02/08/2010</b> Ref=46.msg284#msg284 There are command line options:<br>bitcM oin -addnode=1.2.3.4 to tell bitcoin about a node to connect to<br>bitcoin -connect=1.2.3.4 connect only to the specified node(s)<br>You can use more than one of these, for instance<br>bitcoin -connect=(first to try) -connect=(next to try) ...<br>You can specify non-routable IPs with -connect like 192.168.x.x, so if you had a server farm and you wanted one server to connect to the world and the rest to connect to the one server, you could do that.<br>In particular, -addnode is needed if yoM u're always going to connect through TOR, since the IRC server blocks all the TOR exit nodes. To connect through TOR, you could use:<br>bitcoin -proxy=127.0.0.1:9050 -addnode=212.159.72.216 #493 <b>DEB Package? on 02/12/2010</b> Ref=49.msg315#msg315 Are you just trying to run the program or do you really need to compile it? There's a 32-bit linux binary that can be run on 64-bit ubuntu if you "sudo apt-get ia32-libs".<br>http://sourceforge.net/projects/bitcoin/files/M Bitcoin/bitcoin-0.2.0-linux.tar.gz/download<br>I recently updated the SVN for building on 64-bit Karmic with wxWidgets 2.9.0. This was after the 0.2.0 release. The 0.2.0 release did not build on 64-bit yet.<br>Unfortunately there currently isn't a -dev deb package of either of the versions of wxWidgets that we can use. On Karmic they only have the UTF-16 version. We need either the ANSI (libwxgtk2.8-ansi-dev) version or the UTF-8 (wxWidgets 2.9.0) version. We're moving towards 2.9.0.<br>I know you said you didn't wM ant VM, but as a last resort, last I checked the Windows version runs fine in Wine. #492 <b>What's with this odd generation? on 02/12/2010</b> Ref=48.msg316#msg316 There's a small transaction fee for very large transactions. The node that generates the block that contains the transaction gets the fee.<br>If the same money gets sent again, it won't incur the fee again. If all you have is generated coins in your wallet, if you send them all in one huge transaction, it has toM bundle hundreds of 50 bc coins together. After that it's just one line to send the combined unit. #491 <b>DEB Package? on 02/12/2010</b> Ref=49.msg322#msg322 <div class="q">Replying</div><br>Am I missing something? Is there something wrong with the 32-bit linux precompiled binary on bitcoin.org?<br>The bitcoin binary in the distribution static links the wxWidgets library, and its shared links (openssl and GTK) are included in Ubuntu, so it can run without needing toM be a .deb to pull down dependencies.<br>Since we're upgrading to wxWidgets 2.9.0 for UTF-8, which doesn't have a DEB package yet, we'll continue to need to static link it. #490 <b>Repost: Request: Make this anonymous? on 02/12/2010</b> Ref=7.msg324#msg324 True, sending by IP through Tor trades one problem for another. The Tor exit node can see the text of your message and potentially MITM you.<br>Best to only send to bitcoin addresses then. Payments by bitcoin address areM broadcast over the network as part of the normal network traffic. All communications with the network are broadcasts of public information. #489 <b>DEB Package? on 02/13/2010</b> Ref=49.msg326#msg326 I couldn't get wxWidgets 2.8.9 to compile on Karmic 64-bit either.<br>I have been compiling the latest SVN on Karmic 64-bit with wxWidgets 2.9.0, which compiles fine on 64-bit. Read build-unix.txt and use the given ../configure parameters on wxWidgets so you can use the makefM ile.unix.wx2.9 as supplied. (--enable-debug --disable-shared --enable-monolithic)<br><del>There's one cosmetic bug with 2.9.0 I still need to fix where the status number display is bunched up for some reason.</del> -- fixed<br>The download link on the homepage is to the sourceforge tar.gz archive which contains the 32-bit binary and the 0.2.0 sources, which were not yet buildable on 64-bit at the time.<br>The SVN was first buildable on 64-bit with wx2.9.0 on 28 January 2010.<br>Hopefully they'll have a wxWidgM ets 2.9.0 debian package someday. #488 <b>What's with this odd generation? on 02/14/2010</b> Ref=48.msg327#msg327 <div class="q">Replying</div>Yes.<br><div class="q">Replying</div>Almost all transactions are free. A transaction is over the maximum size limit if it has to add up more than 500 of the largest payments you've received to make up the amount. A transaction over the size limit can still be sent if a small fee is added.<br>The average transaction, and anything up M to 500 times bigger than average, is free.<br>It's only when you're sending a really huge transaction that the transaction fee ever comes into play, and even then it only works out to something like 0.002% of the amount. It's not money sucked out of the system, it just goes to other nodes. If you're sad about paying the fee, you could always turn the tables and run a node yourself and maybe someday rake in a 0.44 fee yourself. #487 <b>What's with this odd generation? on 02/14/2010</b> Ref=48.msg329M Right. Otherwise we couldn't have a finite limit of 21 million coins, because there would always need to be some minimum reward for generating. In a few decades when the reward gets too small, the transaction fee will become the main compensation for nodes. I'm sure that in 20 years there will either be very large transaction volume or no volume. #486 <b>Proof-of-work difficulty increasing on 02/15/2010</b> Ref=43.msg346#msg346 0000000065465700000000000000000000000000000000000000000000000000<br>2009 1.00<br>30/12/2009 1.18 +18%<br>11/01/2010 1.31 +11%<br>25/01/2010 1.34 +2%<br>04/02/2010 1.82 +36%<br>14/02/2010 2.53 +39%<br>Another big jump in difficulty yesterday from 1.82 times to 2.53 times, a 39% increase since 10 days ago. It was 10 days apart not 14 because more nodes joined and generated the 2016 blocks in less timeM #485 <b>Setting up multiple bitcoin machines behind NAT on 02/16/2010</b> Ref=54.msg360#msg360 Right now there isn't a port number setting to do that. It's a feature yet to be implemented. You can only set up your NAT to port-forward to one of the computers. (I said something earlier about NAT port translation, but that wouldn't work, other nodes wouldn't know to connect to that port)<br>If you want, as a small optimization, you could run the rest of your computers as:<bM r>bitcoin -connect=<the IP of the first computer><br>so they get all their network communication from the first computer and don't all connect over the net individually for the same information. This saves bandwidth, although it doesn't use much bandwidth to begin with, so it wouldn't really matter unless you had tons of computers.<br>For redundancy in case the first computer goes down, you could have two that connect out and the rest connect to both of them. The first two are run normally, the rest are run lM ike:<br>bitcoin -connect=<IP1> -connect=<IP2> #484 <b>Proof-of-work difficulty increasing on 02/16/2010</b> Ref=43.msg376#msg376 <div class="q">Replying</div>I thought about that but there wasn't a practical way to do smaller increments. The frequency of block generation is balanced between confirming transactions as fast as possible and the latency of the network.<br>The algorithm aims for an average of 6 blocks per hour. If it was 5 bc and 60 per hour, there M would be 10 times as many blocks and the initial block download would take 10 times as long. It wouldn't work anyway because that would be only 1 minute average between blocks, too close to the broadcast latency when the network gets larger. #483 <b>Proof-of-work difficulty increasing on 02/17/2010</b> Ref=43.msg388#msg388 <div class="q">Replying</div>2 seconds of latency in both directions should reduce your generation success by less than 1%.<br><div class="q">Replying</M div>Probably OK, but I'm not sure. The protocol is designed to resync to the next message, and messages get re-requested from all the other nodes you're connected to until received. If you miss a block, it'll also keep requesting it every time another blocks comes in and it sees there's a gap. Before the original release I did a test dropping 1 out of 4 random messages under heavy load until I could run it overnight without any nodes getting stuck. #482 <b>Bitcoin client and website translation on M 02/17/2010</b> Ref=47.msg389#msg389 I updated the SVN with changes to support translation. Translatable strings are all enclosed in _(""), and we're using UTF-8 on all platforms.<br>When the program runs, it looks in the directory of the EXE for the file: locale\<langcode>\LC_MESSAGES\bitcoin.mo<br><langcode> is the two letter code of the language your OS is set to, like "de" or "nl".<br>On Linux, it also looks for:<br>/usr/share/locale/<langcode>/LC_MESSAGES/bitcoin.mo<bM r>/usr/local/share/locale/<langcode>/LC_MESSAGES/bitcoin.mo<br>(are there other standard places it should look on linux?)<br>Here's a quick walkthrough using poedit to make a .po and .mo file:<br>- Download the bitcoin sourcecode from SVN<br>- In the trunk directory, mkdir locale\<lang>\LC_MESSAGES<br>- In poedit, File->New catalog->Paths tab<br>- Click the "New item" dotted rectangle button<br>- Put "../../.." and MAKE SURE TO PRESS ENTER to add the path<br>- Click OK<br>- Save the file as "bitcoM in.po" in the LC_MESSAGES directory you made<br>- It should then scan the sourcecode and find about 170 strings<br>- If it didn't find anything, check Catalog->Settings->Path tab, make sure the "../../.." was added<br>When you're done translating, commit both bitcoin.po (the editable catalog file) and bitcoin.mo (compiled data used by the program).<br> #481 <b>Number of connections on 02/21/2010</b> Ref=58.msg413#msg413 Nodes stop trying to initiate connections once M they have 15. If you can accept incoming connections, then you can get well above that from nodes connecting to you, otherwise you max out at 15.<br>I don't know if there's any reason to have 15 connections. Maybe it should be 10.<br>Since nodes that can only connect out are probably at or near 15 most of the time now, you should level off to an equilibrium. 45 suggests a ratio of 3 out-only nodes to every 1 in-accepting node.<br>The number of connections won't be a good gauge of the size of the network any more. SM omeone should periodically IRC to the bitcoin channel on chat.freenode.net and count the number of users. That gives you the total count of network nodes (except TOR nodes).<br>Block generation is again running ahead of pace. We're in for another big step up in difficulty at the next adjustment in about 5 days. #480 <b>Post your static IP on 02/21/2010</b> Ref=59.msg414#msg414 It would be nice to have a list of static IPs for new users to send test donations to so they canM see how the software works. If you can accept incoming connections and you have a static IP address, post it here!<br>Anything sent to these IPs should be considered a donation. <br>If you do request a round-trip, be sure to include your return bitcoin address or IP in the comment, but please assume it'll be one-way. They won't necessarily be watching for incoming transactions to send back. #479 <b>Current Bitcoin economic model is unsustainable on 02/21/2010</b> Ref=57.msg415#msg415 Excellent analysis, xc.<br>A rational market price for something that is expected to increase in value will already reflect the present value of the expected future increases. In your head, you do a probability estimate balancing the odds that it keeps increasing.<br>In the absence of a market to establish the price, NewLibertyStandard's estimate based on production cost is a good guess and a helpful service (thanks). The price of any commodity tends to gravitate toward the production cost. If the pricM e is below cost, then production slows down. If the price is above cost, profit can be made by generating and selling more. At the same time, the increased production would increase the difficulty, pushing the cost of generating towards the price.<br>In later years, when new coin generation is a small percentage of the existing supply, market price will dictate the cost of production more than the other way around.<br>At the moment, generation effort is rapidly increasing, suggesting people are estimating the preseM nt value to be higher than the current cost of production. #478 <b>UI improvements on 02/21/2010</b> Ref=60.msg426#msg426 Uploaded some UI changes to SVN as version 0.2.5.<br>Instead of View->Show Generated, we now have tabs:<br>- All Transactions<br>- Sent/Received<br>- Sent<br>- Received<br>Makes it a lot easier to flip to received and check for payments.<br>Moved the "Your Addresses" book inside the main address book. It was confusing having two address books.<br>I fM ound the "To:" in "From: unknown, To: (one of your bitcoin addresses)" still confusing, so I changed it to "From: unknown, Received with:". The bitcoin address is abbreviated so you can see the label that you set in the Receiving tab of the address book.<br>Fixed a few UI glitches from the upgrade to wxWidgets 2.9.0.<br>I haven't forgotten about you people who want non-UI, but I had to do some fun stuff before more build bashing.<br> #477 <b>generation slowed down dramatically on 02/23/2010</b> RefM Just a random streak of bad luck. It looks steady to me.<br>Competition doesn't have an effect until the next automatic retarget adjustment, and we haven't reached the next one yet.<br>The adjustments are every 2016 blocks. To calculate our progress towards the next one, divide the block total by 2016. The fractional part is how far we are to the next one. <br>My back-of-the-envelope projection: 42032 blocks/2016 = 20.85 = 85% of the way. About 1.5 days to go until the neM xt one. That'll only be about 10 days since the last one, the target is 14 days, so 14/10 = 1.4 = around 40% difficulty increase.<br> #476 <b>UI improvements on 02/23/2010</b> Ref=60.msg434#msg434 There are now "Sending" and "Receiving" tabs in the Address Book. Your addresses are referred to as "receiving addresses".<br>madhatter was working on building it on Mac. He had errors probably caused by UTF-16 wxWidgets 2.8. Should have better luck now with 2.9.0. wxWidgets 2.9.M 0 is UTF-8 and wouldn't have that problem.<br>I think he had it working on FreeBSD, but he wanted a non-UI version.<br>I have the command line and JSON-RPC daemon version working now. Will SVN it in a day or two.<br>I disabled gdm on my Ubuntu system so it boots into command line. I hope I will be able to get it enabled again with rcconf. #475 <b>Bitcoin Address Collisions on 02/23/2010</b> Ref=62.msg443#msg443 There's a separate public/private keypair for every bitcoin adM dress. You don't have a single private key that unlocks everything. Bitcoin addresses are a 160-bit hash of the public key, everything else in the system is 256-bit.<br>If there was a collision, the collider could spend any money sent to that address. Just money sent to that address, not the whole wallet.<br>If you were to intentionally try to make a collision, it would currently take 2^126 times longer to generate a colliding bitcoin address than to generate a block. You could have got a lot more money by generatiM ng blocks.<br>The random seed is very thorough. On Windows, it uses all the performance monitor data that measures every bit of disk performance, network card metrics, cpu time, paging etc. since your computer started. Linux has a built-in entropy collector. Adding to that, every time you move your mouse inside the Bitcoin window you're generating entropy, and entropy is captured from the timing of disk ops. #474 <b>UI improvements on 02/23/2010</b> Ref=60.msg446#msg446 iv class="q">Replying</div>Ah yes, there we go, back to normal again.<br>The ctrl+alt+F[1-8] thing never worked on this computer. The screen just goes haywire. #473 <b>Command Line and JSON-RPC on 02/23/2010</b> Ref=63.msg452#msg452 Version 0.2.6 on SVN can now run as a daemon and be controlled by command line or JSON-RPC.<br>On Linux it needs libgtk2.0-0 installed, but does not need a GUI running. Hopefully gtk can be installed without having a windowing system installed.M <br>The command to start as a daemon is:<br>bitcoin -daemon [switches...]<br>Or, to run the UI normally and also be able to control it from command line or JSON-RPC, use the "-server" switch.<br>bitcoin -server [switches...]<br>With either switch, it runs an HTTP JSON-RPC server that accepts local socket connections on 127.0.0.1:8332. The port is bound to loopback and can only be accessed from the local machine, but from any account, not just the user it's running under.<br>To control it from the command line, the M interface is a command name without any switches, followed by parameters if any.<br>bitcoin <command> [params...]<br>For example:<br>bitcoin getinfo<br>bitcoin getdifficulty<br>bitcoin setgenerate true<br>bitcoin stop<br>It's a simple JSON-RPC client and prints the JSON result. Look at rpc.cpp for the list of commands.<br>Web apps or anything automated will normally use JSON-RPC directly, not command line. There are JSON-RPC libraries for all the major languages. In script languages like PHP and Python the syM ntax is as natural as calling a local function. #472 <b>Bitcoin Address Collisions on 02/23/2010</b> Ref=62.msg453#msg453 <div class="q">Replying</div>No, each generated transaction uses a new, single-use address.<br>Nothing uses the address in the main window, it's just there for convenience for you to copy. 0.2.5 has a "New..." button next to it to make it easy to change each time you use it. #471 <b>URI-scheme for bitcoin on 02/24/2010</b> Ref=55.msg481M That would be nice at point-of-sale. The cash register displays a QR-code encoding a bitcoin address and amount on a screen and you photo it with your mobile. #470 <b>Command Line and JSON-RPC on 02/24/2010</b> Ref=63.msg482#msg482 <div class="q">Replying</div>Will this requirement be removed sometime? I'd rather not have to deal with GTK.<br></div>How much "dealing with" does GTK actually require? Is it just a matter of "sudo apt-geM t install libgtk2.0-0" and having some extra libraries sitting around? GTK doesn't have to do anything, just be there for bitcoin to link to when it loads up, have the gtk-init-check call fail because no GUI present, then it's done. <br>It saves us butchering everything with ifdefs and a separate compile and binary to use wxBase just to try to avoid linking GTK. #469 <b>New icon/logo on 02/24/2010</b> Ref=64.msg504#msg504 New icons, what do you think? Better thM an the old one?<br>The perspective shadow was too thick on the larger sizes. I updated 32, 48 and the full size.<br>I release these images into the public domain (copyright-free). I request that derivative works be made public domain.<br> #468 <b>Make your "we accept Bitcoin" logo on 02/24/2010</b> Ref=45.msg507#msg507 If you GPL stuff, I have to avoid using it. Nothing against GPL per-se, but Bitcoin is an MIT license project. Anything GPL please clearly mark it as such. #467 <b>Command Line and JSON-RPC on 02/24/2010</b> Ref=63.msg509#msg509 When and how fast did memory usage increase? Right away, slowly over a long time, or starting at some later event?<br>I have -daemon running on ubuntu 9.10 64-bit and memory usage is steady.<br>It has to be something about the difference on the server besides 64-bit. Maybe some malfunction from the lack of GUI. A memory leak debug tool could give a clue. #466 <b>Proof-of-work diM fficulty increasing on 02/24/2010</b> Ref=43.msg510#msg510 The automatic adjustment happened earlier today.<br>24/02/2010 0000000043b3e500000000000000000000000000000000000000000000000000<br>24/02/2010 3.78 +49%<br>I updated the first post.<br> #465 <b>New icon/logo on 02/25/2010</b> Ref=64.msg521#msg521 <div class="q">Replying</div>Yes, the original is 546x531 pixels.<br>It looks good at larger size too, but since the small icons are wM hat you mostly always see, I wanted to judge it on those first. I'll post larger sizes and full size a little later. #464 <b>Command Line and JSON-RPC on 02/25/2010</b> Ref=63.msg539#msg539 OK, I made a build target bitcoind that only links wxBase and does not link GTK. Version 0.2.7 on SVN.<br>I split out the init and shutdown stuff from ui.cpp into init.cpp, so now ui.cpp is pure UI. ui.h provides inline stubs if wxUSE_GUI=0. We only have four functions that interface frM om the node to the UI. In the bitcoind build, we don't link ui.o or uibase.o.<br><div class="q">Replying</div>Sure feels like it could be something in wxWidgets retrying endlessly because some UI thing failed or something wasn't inited correctly. Our hack to ignore the initialize failure and run anyway means we're in uncharted territory. We're relying on the fact that we hardly use wx in this mode. We do still use a few things like wxGetTranslation and wxMutex.<br>Another way to debug would be to run in gdb, wait uM ntil everything is quiet and all threads should be idle, and break it and see which thread is busily doing something and what it's doing.<br>I suspect bitcoind will probably work fine, but I hope you can still debug the problem. #463 <b>Proof-of-work difficulty increasing on 02/25/2010</b> Ref=43.msg540#msg540 The formula is based on the time it takes to generate 2016 blocks. The difficulty is multiplied by 14/(actual days taken). For instance, this time it took 9.4 days, M so the calculation was 14/9.4 = 1.49. Previous difficulty 2.53 * 1.49 = 3.78, a 49% increase. <br>I don't know what you're talking about accepting easier difficulties. #462 <b>Command Line and JSON-RPC on 02/26/2010</b> Ref=63.msg555#msg555 wx/clipbrd.h isn't used, move it inside the #if wxUSE_GUI.<br>Updated headers.h on SVN.<br>Sorry, I linked to wxbase but I had full wxWidgets on my computer.<br>The db.h:140 class Db no member named "exisits" is stranger. pdb->get, pM db->put, pdb->del compiled before that. Do you have version 4.7.25 of Berkeley DB?<br>Db::exists()<br>http://www.oracle.com/technology/documentation/berkeley-db/db/api_reference/CXX/frame_main.html<br>http://www.oracle.com/technology/documentation/berkeley-db/db/api_reference/CXX/dbexists.html<br>I suppose they might have added exists recently, using get before that. #461 <b>New icon/logo on 02/26/2010</b> Ref=64.msg561#msg561 Good suggestion. I made the B slightly lM ighter and the background slightly darker. Very slightly. The foreground is now exactly the same colour as the BC in the old one.<br>It's kind of OK if you can't easily read the B in the 16x16. At that size, you just need to see that it's a coin. It doesn't matter so much what's embossed on it, just that there be some detail there because it wouldn't look like a coin if it was a blank smooth circle.<br>It's slightly wider than tall because the dark perspective under it goes more to the right than down.<br>I finisheM d and posted the 32x31 and 48x47 versions in the first message. I like the 48 a lot.<br>How does everyone feel about the B symbol with the two lines through the outside? Can we live with that as our logo? #460 <b>Command Line and JSON-RPC on 02/26/2010</b> Ref=63.msg562#msg562 Are you using wxWidgets 2.9.0? I don't recommend using anything other than 2.9.0.<br>It looks like they've got a reference in the wx headers (arrstr.h) to something outside of wxBase.<br>M Removing -D__WXDEBUG__ from bitcoin's makefile would probably solve it.<br>If that doesn't work and you just want to get it working, you could edit wxWidgets include/wx/arrstr.h, line 167 and comment out the wxASSERT_MSG. #459 <b>New icon/logo on 02/27/2010</b> Ref=64.msg566#msg566 <div class="q">Replying</div>I don't know how to do SVG, but I did the original very large, over 500 pixels across, so it can be scaled down. I'll give the original when I'm finished.<br>I had tM o custom tweak each icon size so the vertical lines land square on their pixels, otherwise they're ugly blurry and inconsistent. Such is the challenge of making icons. The original will be good for scaling to custom sizes between 48 and 500 but not smaller. #458 <b>wxWidgets 2.9.0 on 02/27/2010</b> Ref=65.msg571#msg571 <div class="q">Replying</div>In the Windows world, "unicode" means UTF-16 (wchar).<br>2.8 has two build variations, ANSI and UTF-16 (unicode). The UTF-16 veM rsion is the "unicode" version provided in the Debian package. I believe 2.8 and its UTF-16 build labelled simply "unicode" has been the source of build problems described in the forum. We were previously using 2.8 ANSI in anticipation of getting to UTF-8 without going through UTF-16 hell. We cannot compile with UTF-16.<br>2.9 has only one version, UTF-8. On Windows, we set the codepage to UTF-8, so on all platforms our code is UTF-8 and wxWidgets interfaces with us in UTF-8. On Linux I assume the codepage is alreaM dy UTF-8. By standardizing on 2.9 we avoid the multi-build confusion of 2.8, and we need 2.9 for UTF-8 internationalization.<br>Make sure you read build-unix.txt and configure wxWidgets using the configure parameters given.<br>Curious, why is it incredibly hard to provide wxWidgets 2.9.0? If you mean for users, that's why we static link it.<br>It's unfortunate that we require so many big dependencies, but we need them all. At least on Debian/Ubuntu, all but wxWidgets are available as packages. Eventually theyM 'll provide a 2.9 package. #457 <b>New icon/logo on 03/02/2010</b> Ref=64.msg588#msg588 We have the standard icon sizes, and the full size scales nicely to anything else.<br>I added the full size to the first post. #456 <b>Money Transfer Regulations on 03/03/2010</b> Ref=69.msg614#msg614 When there's enough scale, maybe there can be an exchange site that doesn't do transfers, just matches up buyers and sellers to exchange with eacM h other directly, similar to how e-bay works.<br>To make it safer, the exchange site could act as an escrow for the bitcoin side of the payment. The seller puts the bitcoin payment in escrow, and the buyer sends the conventional payment directly to the seller. The exchange service doesn't handle any real world money.<br>This would be a step better than e-bay. E-bay manages to work fine even though shipped goods can't be recovered if payment falls through. #455 <b>Command Line and JSON-RPC on 03/05/M 2010</b> Ref=63.msg633#msg633 <div class="q">Replying</div>sirius-m debugged this, it was 64-bit related. <br>The fix is now available on SVN, file util.cpp. #454 <b>bitcoin auto-renice-ing on 03/15/2010</b> Ref=72.msg717#msg717 It sets different priorities for each thread. The generate threads run at PRIO_MIN. The other threads rarely take any CPU and run at normal.<br>#define THREAD_PRIORITY_LOWEST PRIO_MIN<br>#M define THREAD_PRIORITY_BELOW_NORMAL 2<br>#define THREAD_PRIORITY_NORMAL 0<br>The priorities converted from Windows priorities were probably from a table like this:<br> "The following table shows the mapping between nice values and Win32 priorities. Refer to the Win32 documentation for SetThreadPriority() for more information on Win32 priority issues.<br>nice value Win32 Priority<br>-20 to -16 THREAD_PRIORITY_HIGHEST<br>-1M 5 to -6 THREAD_PRIORITY_ABOVE_NORMAL<br>-5 to +4 THREAD_PRIORITY_NORMAL<br>+5 to +14 THREAD_PRIORITY_BELOW_NORMAL<br>+15 to +19 THREAD_PRIORITY_LOWEST"<br>If you have better values, suggestions welcome.<br>Also, there was some advice on the web that PRIO_PROCESS is used on Linux because threads are processes. If that's not true, maybe it accounts for unexpectedly setting the priority of the whole app.<br> // threads are procesM ses on linux, so PRIO_PROCESS affects just the one thread<br> setpriority(PRIO_PROCESS, getpid(), nPriority);<br> #453 <b>Idea for file hosting and proxy services on 03/15/2010</b> Ref=83.msg719#msg719 When you want to upload an image to embed in a forum post, there are services like imageshack, but because they're free, they limit the number of views. It's a minuscule amount of bandwidth cost, but they can't just give it away for free, there has to be soM mething in it for them. It would be nice to be able to pay for the bandwidth and avoid the limits, but conventional payments are too inconvenient for such a minor thing.<br>It's worse if you want to upload a file for others to download. There are services like rapidshare, but they require the downloaders to go through extra steps and delays to make them look at advertising or encourage upgrading to a paid subscription, and they limit it to 10 or so downloads.<br>It would be nice if we made some free PHP code for anM image and file hosting service that charges Bitcoins. Anyone with some extra bandwidth quota could throw it on their webserver and run it. Users could finally pay the minor fee to cover bandwidth cost and avoid the limits and hassles. Ideally, it should be MIT license or public domain.<br>Services like this would be great for anonymous users, who have trouble paying for things. #452 <b>On IRC bootstrapping on 03/16/2010</b> Ref=84.msg729#msg729 Thanks soultcer for talkingM with the Freenode staffer. Good to know it's OK at the current size, and now they know who we are. They're supportive of projects like TOR so I hope they would probably be friendly to us. We don't want to overstay our welcome. If we get too big, then by the same token, we're big enough that we don't need IRC anymore and we'll get off.<br>We only needed IRC because nobody had a static IP. In the early days there were some steady supporters, but they all had pool-allocated IPs that change every few days. IRC was onlM y intended as a temporary solution. Bitcoin's built-in addr system is the main solution.<br>Bitcoin can get the list of IPs from any bitcoin node. In that sense, every node serves as a directory server.<br>When there are enough static IP nodes to have a good chance that at least one will still be running by the time the current version goes out of use, we can preprogram a seed list.<br>How do you think we should compile the seed list? Would it be OK to create it from the currently connected IPs that have beenM static for a while?<br>BTW, if we want to supplement by deploying separate directory server software, may I suggest IRC? IRC is a good directory server (I've heard it has other uses too), and there are mature IRC server implementations available that anyone can run. :) Bitcoin's IRC client implementation is already thoroughly tested. #451 <b>Idea for file hosting service on 03/16/2010</b> Ref=83.msg731#msg731 That's a great idea. There's a thriving business inM those services, but I've always thought the standard payment methods are at odds with privacy minded customers.<br>Would you consider making your software freely available so anyone could easily set one up? I know for competitive reasons the inclination is to keep it to yourself, but it could get an order of magnitude more use if anyone could give proxy access to their country just by putting the software on a server.<br>I wonder if there are other kinds of web application servers where we would only have toM tack on the payment mechanism to an already existing system?<br> #450 <b>who is bitcoin.com on 03/23/2010</b> Ref=88.msg806#msg806 It's unrelated. There wasn't anything there when I started.<br>The price of .com registrations is lower than it should be, therefore any good name you might think of is always already taken by some domain name speculator. Fortunately, it's standard for open source projects to be .org. #449 <b>Exchange Methods on 03/23/2010</b>M Ref=87.msg807#msg807 LR and Pecunix have many established exchanges to paper currencies by various payment methods, and a number of vendors accept them as payment, so an exchange link between Bitcoin and LR/Pecunix would give us 2nd-hop access to all that. The possibility to cash out through them would help support the value of bitcoins.<br>Bitcoin has unique properties that would be complementary. LR/Pecunix are easy to spend anonymously, but hard to buy anonymously and not worth the troM uble to buy in small amounts. Bitcoin, on the other hand, is easy to get in small amounts anonymously. It would be convenient to buy LR/Pecunix with bitcoins rather than through conventional payment methods.<br>Most customers who convert to LR to buy something would probably ask the seller first if they accept Bitcoin, encouraging them to start accepting it. #448 <b>Idea for file hosting and proxy services on 03/24/2010</b> Ref=83.msg809#msg809 Title changed.<br>It helps tM hat we have someone with actual experience running a proxy service. Do you think Psiphon is the best one currently? (sometimes the one you run was the best when you started but you found better ones later) #447 <b>Idea for file hosting and proxy services on 03/24/2010</b> Ref=83.msg810#msg810 Mihalism Multi Host is a popular open source PHP file hosting server.<br>It's geared toward image hosting, but I think by increasing the file size limit and liberalising the allM owed file extensions, it could just as easily be used for general file upload hosting. They need the limits to keep it reasonable as a free service, but if we bolt on a Bitcoin payment mechanism, the limits could be relaxed.<br>It doesn't have a bunch of client side scripting or anti-embedding junk to rip out. It generates standard links that work normally.<br>There's a turnover churn in these free hosting sites. Small sites can give free image hosting, but once one starts getting popular, it gets too swamped with M moochers using them for free bandwidth. Any site that gets well known has to become more aggressively pay-naggy to cover bandwidth costs. It's a perfect example of a service where the needed price point is in the no-man's-land between just a little too expensive to be free, but too cheap for most users to take the trouble of a conventional payment. It's in the gap between 0 and 19.95. The best they can do is try to maybe get 1 out of 1000 users to pay 9.95, but that has 999/1000 users treated like freeloaders. It cM an't really be advertising supported because the images are embedded in other sites and downloaded without going to the hosting site.<br>An example of a site running the software:<br>http://www.imagez.ws/<br>Forum:<br>http://www.mihalism.net/<br>Download:<br>http://code.google.com/p/mihalismmh/<br>What do you think? If I made a Bitcoin payment integration for this, would anyone be interested in running it? It might be the first fully automated service available to buy with Bitcoins. The advantage it couM ld offer over the free services is general file upload hosting of large files without making downloading users go to the upload site and jump through hoops. It would give a normal link directly to the file. #446 <b>Could the bitcoin network be destroyed by someone generating endless bitcoin add on 05/16/2010</b> Ref=130.msg1130#msg1130 When you generate a new bitcoin address, it only takes disk space on your own computer (like 500 bytes). It's like generating a new PGP priM vate key, but less CPU intensive because it's ECC. The address space is effectively unlimited. It doesn't hurt anyone, so generate all you want. #445 <b>For a website taking payments with bitcoins, better: IP or bitcoin addresses? on 05/16/2010</b> Ref=129.msg1131#msg1131 <div class="q">Replying</div>That's a good idea. At the very least a warning dialog explaining that it'll connect to the IP and send the information cleartext, giving the chance to cancel.<br> #444 <b>URI-scheme for bitcoin on 05/16/2010</b> Ref=55.msg1132#msg1132 <div class="q">Replying</div><br>There you go, we could easily do it the same way, like:<br>http://127.0.0.1:8330/?to=<bitcoinaddress>;amount=<amount><br>Bitcoin can answer port 8330 on local loopback just as it does for JSON-RPC on 8332. It would give an HTTP answer.<br><br><div class="q">Replying</div><br>I think we can do that.<br>Although it would be possible for Bitcoin to take care of business iM n the HTTP response by presenting HTML UI to the user, as a user I would wonder if some website is trying to trick me or if I'm really talking to my own Bitcoin server.<br>The HTTP response could simply be HTML with the JavaScript equivalent of the back button, sending it back to the page. Bitcoin then pops up the Send Bitcoins dialog with the destination bitcoin address and amount already filled in. It would work just like a mailto: link that pops up a new email with the address filled in.<br>127.0.0.1 loopback isM accessible by any user on the machine, it doesn't have per-user separation, but it's OK because it would only serve the convenience function of pre-filling the fields in a dialog. You'd still have to press Send. We'd have to make sure the Send button is not selected so it couldn't jump into the foreground while you're typing a space or enter.<br><br> #443 <b>Exception: 9key_error error on 05/16/2010</b> Ref=135.msg1133#msg1133 Does it happen every time you run it, or justM happened once at some random time?<br>I've never seen that fail before. It's a call to OpenSSL that I assumed would never fail, but I put an error check there just in case. I can't imagine how it would fail. Out of memory maybe.<br>The code is:<br>key.h:<br> EC_KEY* pkey;<br> pkey = EC_KEY_new_by_curve_name(NID_secp256k1);<br> if (pkey == NULL)<br> throw key_error("CKey::CKey() : EC_KEY_new_by_curve_name faiM led");<br>NID_secp256k1 is a constant. #442 <b>removing bitcoin addresses on 05/16/2010</b> Ref=101.msg1134#msg1134 SheriffWoody:<br>Bitcoin addresses you generate are kept forever. A bitcoin address must be kept to show ownership of anything sent to it. If you were able to delete a bitcoin address and someone sent to it, the money would be lost. They're only about 500 bytes.<br>sirius-m:<br>Thousands of own addresses should not be any problem at all. If you've generated 5M 0000 BTC, then you already have 1000 own addresses, one for each 50 generated. Those are hidden, they're not shown in the UI.<br>It would be a good idea to add a little code that keeps giving the same address to the same IP. Here's what I did in C++ to keep giving the same key (aka bitcoin address) until they use it:<br> // Keep giving the same key to the same ip until they use it<br> if (!mapReuseKey.count(pfrom->addr.ip))<br> mapReuseKey[pfromM ->addr.ip] = GenerateNewKey();<br> <br> ...sends the key mapReuseKey[pfrom->addr.ip]<br>...later...<br> // Received something with this key<br> mapReuseKey.erase(pfrom->addr.ip);<br>If it's not convenient to know when you've received, just clear the cached keys every 20 minutes.<br>I want to add a parameter to getnewaddress for number of days to expire if nothing is received with the address.<br> #441 <b>Setting up mulM tiple bitcoin machines behind NAT on 05/16/2010</b> Ref=54.msg1135#msg1135 At the moment, it always assumes the incoming port is 8333, so it would tell other bitcoin nodes to connect to router:8333 even if you're redirecting from another port number.<br>I'm not in a big hurry to fix this because I can't think of any benefit to having more than one incoming connection port. If you're providing one incoming port, then you've done your bit to help the network. Having two incoming ports to theM same person doesn't help redundancy.<br>If you have many computers, then using the -connect switch on most of them to connect locally makes more sense. #440 <b>Is there a way to automate bitcoin payments for a website? on 05/18/2010</b> Ref=112.msg1143#msg1143 A little late, but in case anyone else has the same issue. The compile dump had 2 warnings (that were 20 lines long) and 2 link errors. The errors were:<br><div class="q">Replying</div><br>Those are probably due to M switching to the release build of wxWidgets instead of debug. They're moving towards only debug build and ditching the release build, so they probably don't care that their release build is broken by referring to non-existent assert stuff. There's nothing to fear about the debug build. It's fully suitable for releases.<br>bitcoind runs as a daemon and can either be controlled by command line or JSON-RPC.<br>Thanks madhatter and generica for detailing the instructions for building on freebsd. b>Ummmm... where did my bitcoins go? on 05/18/2010</b> Ref=125.msg1149#msg1149 It's not the download so much as verifying all the signatures in all the blocks as it downloads that takes a long time.<br>How long is the initial block download typically taking? Does it slow down half way through or is about the same speed the whole way?<br>I've thought about ways to do a more cursory check of most of the chain up to the last few thousand blocks. It is possible, but it's a lot of work, aM nd there are a lot of other higher priority things to work on.<br>Simplified Payment Verification is for lightweight client-only users who only do transactions and don't generate and don't participate in the node network. They wouldn't need to download blocks, just the hash chain, which is currently about 2MB and very quick to verify (less than a second to verify the whole chain). If the network becomes very large, like over 100,000 nodes, this is what we'll use to allow common users to do transactions without beinM g full blown nodes. At that stage, most users should start running client-only software and only the specialist server farms keep running full network nodes, kind of like how the usenet network has consolidated.<br>SPV is not implemented yet, and won't be implemented until far in the future, but all the current implementation is designed around supporting it.<br>In the meantime, sites like vekja.net and www.mybitcoin.com have been experimenting with account-based sites. You create an account on a website and hold yM our bitcoins on account there and transfer in and out. Creating an account on a website is a lot easier than installing and learning to use software, and a more familiar way of doing it for most people. The only disadvantage is that you have to trust the site, but that's fine for pocket change amounts for micropayments and misc expenses. It's an easy way to get started and if you get larger amounts then you can upgrade to the actual bitcoin software. #438 <b>We accept Bitcoins on 05/20/2010</b> RefM <div class="q">Replying</div>Almost but not quite. Bitcoin uses EC-DSA, which can only do digital signing, not encryption. RSA can do both, but I didn't use it because it's an order of magnitude bigger and would have been impractical. #437 <b>JSON-RPC programming tips using labels on 05/26/2010</b> Ref=157.msg1252#msg1252 I added label related functions to help with managing multiple addresses per user. New or renamed functionsM are:<br> getreceivedbyaddress -- amount received on a single address<br> getreceivedbylabel -- amount received by all addresses with this label<br> listreceivedbyaddress -- list addresses and amounts they've received<br> listreceivedbylabel -- list labels and amounts they've received<br> setlabel -- misc label functions for completeness<br> getlabel<br> getaddressesbylabel<br>For consistency I renamed getamountreceived->getreceivedbyaddress and getallreceived->listreceivedbM yaddress. The old names are still there so as not to break existing code, but they're deprecated.<br>The idea is that if you give the username whenever you call getnewaddress, you can get the user's total received across all their addresses using the "bylabel" functions. You can freely change their address without worrying about tracking all their old addresses.<br>A good way to automate changing the user's receiving address: just before displaying their current address, check if it has been used to receive anythinM g, if it has then replace it with a new one:<br>// Get a new address whenever the current one has received anything<br>if (strAddr == "" || getreceivedbyaddress(strAddr) > 0)<br> strAddr = getnewaddress(strUsername); // Label the address with username<br>Display(strAddr); // Display their current receiving address<br>// Get total received by all the user's addresses<br>getreceivedbylabel(strUsername, 0) // unconfirmed<br>getreceivedbylabel(strUsername, 1) // available balance<br>If you're just gettinM g one particular user's balance, such as in response to a page request by that user, use getreceivedbylabel, but if you're scanning over all users, it's better to use listreceivedbylabel to get the complete list and scan against the result. Scanning users with getreceivedbylabel would be n-squared, using listreceivedbylabel is n-log-n (or n linear).<br>You should only really need to scan all users if you're polling in order to spontaneously take action in response to money received, rather than the user going to a M webpage, seeing their balance and telling you what to do with it. It's not necessary to poll very frequently. If you require 1 confirmation, that'll take an average of 10 minutes anyway, so there's no point in polling more often than every few minutes.<br>If you're selling digital goods and services, where you don't lose much if someone gets a free access, and it can't be resold for profit, I think you're fine to accept 0 confirmations.<br>It's mostly only if you were selling gold or currency that you'd need multipM le confirmations.<br> #436 <b>Tracing a coin's lineage on 05/26/2010</b> Ref=154.msg1254#msg1254 <div class="q">Replying</div>This is on my list. I will soon make the "Your Bitcoin Address:" window automatically change whenever you receive anything to the address displayed.<br>I'm also recommending this approach for the implementation of web apps. I just posted some sample code showing a suggested way of implementing this.<br>Versions on SVN since 0.2.4 already have a "NewM ..." button next to the address bar to encourage changing it manually too.<br>@theymos: If nothing else, we can fall back on that solution in the future. #435 <b>CLI bitcoin generation on 05/26/2010</b> Ref=145.msg1256#msg1256 <div class="q">Replying</div>Yeah, that actually is what it is. getallreceived 0 should do what you want. (now it's renamed to listreceivedbyaddress 0) The default is 1 confirmation, but I think in reality most digital goods and services can beM 0 confirmations. Like you say, if you need more than 0 confirmations, you could show two numbers, unconfirmed and available balance, so they immediately see their transaction went through.<br>listreceivedbyaddress [minconf=1] [includeempty=false]<br>[minconf] is the minimum number of confirmations before payments are included.<br>[includeempty] whether to include addresses that haven't received any payments.<br>Returns an array of objects containing:<br> "address" : receiving address<br> "label" : the M label of the receiving address<br> "amount" : total amount received by the address<br> "confirmations" : number of confirmations of the most recent transaction included<br>or listreceivedbylabel if you're labelling addresses with their username.<br>So far I've concentrated on functions for web merchants, not so much on stuff for remote management of headless coin generators yet. #434 <b>Share database blocks ? on 05/26/2010</b> Ref=153.msg1258#msg1258 n fact download 500 blocks at a time, then the counter counts one at a time as it verifies the blocks.<br>The advantage of letting bitcoin download and verify the blocks is that you do not have to trust the person you're downloading them from. If you downloaded the blk*.dat files from some site, you would have to trust that site, since you would be accepting the data without verifying it yourself. If you're copying blk*.dat from another computer of yours, that should be fine.<br>How long is the initial block downloM #433 <b>Website translations on 05/26/2010</b> Ref=151.msg1259#msg1259 Does anyone want to translate the Bitcoin client itself? It would be great to have at least one other language in the 0.3 release.<br>All you have to do is get poedit and translate the po file I'm attaching to this post. It's less than 750 words.<br>Updated bitcoin.po attachment for 0.3.1 #432 <b>Odd amount of generated coins on 05/26/2010</b> Ref=141.msg1260#msM In the SVN version, if a transaction requires a transaction fee, it says<br>"This transaction is over the size limit. You can still send it for a fee of #,<br>which goes to the nodes that process your transaction and helps to support the network.<br>Do you want to pay the fee?"<br>If you don't have enough money with the fee added, it says<br>"Total exceeds your balance when the # transaction fee is included " #431 <b>Website translations on 05/27/2010</b> Ref=1M Hurray! We have our first language. I uploaded it to SVN to go in with the 0.3 release.<br> #430 <b>Hostnames instead of IP Addresses on 06/02/2010</b> Ref=158.msg1322#msg1322 The current sending by IP is not very useful: it connects to the IP, so you'd like to use TOR for anonymity, but then it can totally be eavesdropped and man-in-the-middled.<br>The future plan for sending to an IP is to make it a bitcoin address plus M IP, like:<br>1auaDZCFYqaGx4FKS5WenNfurk2SkoDu4h<someseparatorcharacter>1.2.3.4<br>or<br>1auaDZCFYqaGx4FKS5WenNfurk2SkoDu4h<someseparatorcharacter>domain.com<br>I need suggestions for the separator character. ":" is a candidate, but IPv6 has : in it and that might get confusing. Something that's allowed in url parameters would be nice.<br>I want to use SSL for the connection, using the bitcoin address' public key as the cert. You would be certain you're connected to who you thought, and safely encrypted.M The bitcoin address would not be used for the transaction, only for authentication. A new generated bitcoin address would be sent through the SSL connection.<br>Since it's authenticated, it would then be safe to allow the IP address to be a domain name. Some care taken that if a proxy is used, it uses socks4a instead of DNS lookup. #429 <b>Proof-of-work difficulty increasing on 06/02/2010</b> Ref=43.msg1323#msg1323 That's a good idea. I'm not sure where exactly to fit thaM t in, but it could certainly calculate the expected average time between blocks generated, and then people would know what to expect.<br>Every node and each processor has a different public key in its block, so they're guaranteed to be scanning different territory.<br>Whenever the 32-bit nonce starts over at 1, bnExtraNonce gets incremented, which is an arbitrary precision integer. #428 <b>Website translations on 06/02/2010</b> Ref=151.msg1324#msg1324 I uploaded the 93% coM mplete Dutch translation to SVN. Thanks! #427 <b>On IRC bootstrapping on 06/14/2010</b> Ref=84.msg1579#msg1579 Bitcoin has its own distributed address directory using the "addr" message. It's about time we coded in a list of the current long running static nodes to seed from. I can add code so new nodes do not preferentially stay connected to the seed nodes, just connect and get the list, so it won't be a burden on them.<br>What do you think, should I go ahead with adding M the seeds?<br>It'll still try IRC first. The IRC has the advantage that it lists nodes that are currently online, since they have to stay connected to stay on the list, but the disadvantage that it's a single point of failure. The "addr" system has no single point of failure, but can only tell you what nodes have recently been seen, so it takes a little longer to get connected since some of the nodes you try have gone offline. The combination of the two gets us the best of both worlds and more total robustness.<br>M Is there anyone who wants to volunteer to run an IRC server in case freenode gets tired of us? #426 <b>Hostnames instead of IP Addresses on 06/14/2010</b> Ref=158.msg1582#msg1582 SirArthur has a good point about the normal online merchant case, which is what the send-by-IP option is more suited to. This is the case where the merchant will have a server on a static IP and their own domain name and SSL cert.<br>Instead of connecting by IP, we can connect to a domain name by M SSL, using the existing CA infrastructure to authenticate that you're connected to the owner of that domain.<br>The user would send to domain.com (or www.domain.com is ok too). That would be very natural and users could see and verify that what they entered is who they intend to pay.<br>The SSL also makes it safe for TOR users.<br>Problem is, I think merchants would still prefer to use bitcoin addresses to be certain they know what the payment is for. You simply cannot count on users to enter the right thing in theM comment fields to identify the transaction. It would only approach practical if we had a mailto style link that prepopulates the comment field with the order number, but then the link could just as well be a bitcoin address. <br>Just having an open bitcoin server at domain.com that users could send unidentified payments to would be too much of a liability. Regular users aren't used to the idea of having to identify the payment. Merchants would get too many blank payments followed by "I paid you, where's my stuff?!M " a week later.<br>The payment sequence does have a step where the receiver verifies the order before accepting it. It can reject the payment and return an error message if it doesn't contain a valid order number. That would require a difficult level of integration of custom code with the bitcoin server though. #425 <b>Dealing with SHA-256 Collisions on 06/14/2010</b> Ref=191.msg1585#msg1585 SHA-256 is very strong. It's not like the incremental step from MD5 to SHA1. It caM n last several decades unless there's some massive breakthrough attack.<br>If SHA-256 became completely broken, I think we could come to some agreement about what the honest block chain was before the trouble started, lock that in and continue from there with a new hash function.<br>If the hash breakdown came gradually, we could transition to a new hash in an orderly way. The software would be programmed to start using a new hash after a certain block number. Everyone would have to upgrade by that time. The softwarM e could save the new hash of all the old blocks to make sure a different block with the same old hash can't be used. #424 <b>Technical clarifications on 06/14/2010</b> Ref=179.msg1588#msg1588 3) Nothing, if sending by bitcoin address<br>5) It is decentralised. After you have connected to the network the first time, you no longer need IRC. #423 <b>Can't Build r80 from SVN on 06/14/2010</b> Ref=163.msg1590#msg1590 Sorry, I didn't teM st compile on linux the last few revisions.<br>Reverted makefile.unix. #422 <b>What is the incentive to collect transactions? on 06/15/2010</b> Ref=165.msg1595#msg1595 <div class="q">Replying</div>The premise is false. Adding more transactions to the block you're working on does NOT slow down your generation rate. When generate is scanning hashes, it only hashes the header of the block, which is constant size. The header contains a hash of the transactions (the Merkle rootM ) and is only updated occasionally.<br>If necessary I can write code to make nodes prefer not to use a block if it doesn't contain enough of the transactions they know about. A discouraged block would almost always fail to be included in the main chain, but would be accepted if it did get in. I doubt this will be necessary, since there's no real advantage for nodes not to include all transactions. #421 <b>URI-scheme for bitcoin on 06/16/2010</b> Ref=55.msg1596#msg1596 ://127.0.0.1:8330/?to=domain.com&amount=200.00&comment=order_12345<br>or<br>http://127.0.0.1:8330/?to=<bitcoinaddress><separatorchar>1.2.3.4&amount=200.00<br>But as long as the link is already doing the typing for you, I don't see much benefit in using a domain address instead of bitcoin address. With a bitcoin address, the user can't send an unidentified payment. They can't send payment until they've been given a correct bitcoin address to send to.<br>What would be nice about sending by domM ain is you could visually verify who it's going to.<br><br>A more crucial issue is what if the browser isn't allowed to connect to 127.0.0.1:<br>http://bitcointalk.org/index.php?topic=63.msg1589#msg1589<br>and if that's true, then what about that example freenet link that had 127.0.0.1 in it? #420 <b>Website translations on 06/16/2010</b> Ref=151.msg1600#msg1600 Thanks DataWraith! The German translation is uploaded to SVN.<br>This is great, we've already got 3 major M #419 <b>new binary release? on 06/17/2010</b> Ref=184.msg1609#msg1609 I'm working on getting version 0.3 released as soon as I can. Just a last few things left to do. It's been a long time since 0.2 and we need to get a prebuilt bitcoind with command line and JSON-RPC available. This time we'll have both 32-bit and 64-bit linux binaries, and Laszlo is going to build a Mac OSX release. Plus, we'll include the German, Dutch and Italian translations by DataWraith, M Xunie and Joozero (thanks you guys!). #418 <b>Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG on 06/17/2010</b> Ref=195.msg1611#msg1611 The nature of Bitcoin is such that once version 0.1 was released, the core design was set in stone for the rest of its lifetime. Because of that, I wanted to design it to support every possible transaction type I could think of. The problem was, each thing required special support code and data fields whether it was used or M not, and only covered one special case at a time. It would have been an explosion of special cases. The solution was script, which generalizes the problem so transacting parties can describe their transaction as a predicate that the node network evaluates. The nodes only need to understand the transaction to the extent of evaluating whether the sender's conditions are met.<br>The script is actually a predicate. It's just an equation that evaluates to true or false. Predicate is a long and unfamiliar word so I calleM d it script.<br>The receiver of a payment does a template match on the script. Currently, receivers only accept two templates: direct payment and bitcoin address. Future versions can add templates for more transaction types and nodes running that version or higher will be able to receive them. All versions of nodes in the network can verify and process any new transactions into blocks, even though they may not know how to read them.<br>The design supports a tremendous variety of possible transaction types that I deM signed years ago. Escrow transactions, bonded contracts, third party arbitration, multi-party signature, etc. If Bitcoin catches on in a big way, these are things we'll want to explore in the future, but they all had to be designed at the beginning to make sure they would be possible later.<br>I don't believe a second, compatible implementation of Bitcoin will ever be a good idea. So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace M to the network. The MIT license is compatible with all other licenses and commercial uses, so there is no need to rewrite it from a licensing standpoint. #417 <b>Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG on 06/18/2010</b> Ref=195.msg1617#msg1617 A second version would be a massive development and maintenance hassle for me. It's hard enough maintaining backward compatibility while upgrading the network without a second version locking things in. If the M second version screwed up, the user experience would reflect badly on both, although it would at least reinforce to users the importance of staying with the official version. If someone was getting ready to fork a second version, I would have to air a lot of disclaimers about the risks of using a minority version. This is a design where the majority version wins if there's any disagreement, and that can be pretty ugly for the minority version and I'd rather not go into it, and I don't have to as long as there's onlM y one version.<br>I know, most developers don't like their software forked, but I have real technical reasons in this case.<br><div class="q">Replying</div>That's one of the reasons for transaction fees. There are other things we can do if necessary.<br><div class="q">Replying</div>Since 2007. At some point I became convinced there was a way to do this without any trust required at all and couldn't resist to keep thinking about it. Much more of the work was designing than coding.<br>Fortunately, so far all the issuM es raised have been things I previously considered and planned for. #416 <b>On IRC bootstrapping on 06/18/2010</b> Ref=84.msg1619#msg1619 The SVN version now uses IRC first and if that fails it falls back to a hardcoded list of seed nodes. There are enough seed nodes now that many of them should still be up by the time of the next release. It only briefly connects to a seed node to get the address list and then disconnects, so your connections drop back to zero for while. M At that point, be patient. It's only slow to get connected the first time.<br>This means TOR users won't need to -addnode anymore, it'll get connected automatically. #415 <b>Get 5 free bitcoins from freebitcoins.appspot.com on 06/18/2010</b> Ref=183.msg1620#msg1620 Excellent choice of a first project, nice work. I had planned to do this exact thing if someone else didn't do it, so when it gets too hard for mortals to generate 50BTC, new users could get some coins to play M with right away. Donations should be able to keep it filled. The display showing the balance in the dispenser encourages people to top it up.<br>You should put a donation bitcoin address on the page for those who want to add funds to it, which ideally should update to a new address whenever it receives something. #414 <b>Bitcoin in Ubuntu 10.04 on 06/21/2010</b> Ref=149.msg1646#msg1646 <div class="q">Replying</div>This is now fixed in the SVN version.<br>1) Menu bar defaulM t color.<br>2) Balance bar not a different color.<br>3) Background behind bitcoin address and balance now the same color as toolbar.<br>I checked all the standard themes and it seems reasonable with all of them.<br>Ubuntu minimize,maximize,close buttons to the right:<br>gconf-editor<br>apps->metacity->general<br>button_layout=menu:minimize,maximize,close<br>They've got it awfully buried considering 9 out of 10 users are used to having it on the right. #413 <b>Dying bitcoins on 06/21/2010</b> M Ref=198.msg1647#msg1647 Lost coins only make everyone else's coins worth slightly more. Think of it as a donation to everyone.<br><div class="q">Replying</div>Computers have to get about 2^200 times faster before that starts to be a problem. Someone with lots of compute power could make more money by generating than by trying to steal. #412 <b>Proof-of-work difficulty increasing on 06/21/2010</b> Ref=43.msg1648#msg1648 I integrated the hashmeter iM dea into the SVN version. It displays khash/s in the left section of the status bar.<br>Two new log messages:<br>21/06/2010 01:23 hashmeter 2 CPUs 799 khash/s<br>21/06/2010 01:23 generated 50.00<br>grep your debug.log for "generated" to see what you've generated, and grep for "hashmeter" to see the performance. On windows, use:<br> findstr "hashmeter generated" "%appdata%\bitcoin\debug.log"<br>I have the hashmeter messages once an hour. How often do you think it should be? #411 <b>Bitcoin in Ubuntu 10.04 on 06/22/2010</b> Ref=149.msg1653#msg1653 On Ubuntu 10.04 it wouldn't remove the taskbar button cleanly, so I made it leave it there.<br>But now that you mention it, it's probably better to have the feature, even if it's messy, than not to have it, though it may confuse a few people when the taskbar button temporarily stays around but disappears if you click on it.<br>Updated SVN.<br>Thanks for testing. #410 <b>0.3 almost ready -- pleasM e test the Mac version! on 06/22/2010</b> Ref=199.msg1654#msg1654 I finished everything on my list to do for version 0.3. The code on SVN is about ready to release.<br>Testing at this point is much appreciated. #409 <b>How fast do the fastest computers generate bitcoins? on 06/22/2010</b> Ref=197.msg1656#msg1656 I've noticed that hashing performance doesn't vary as much between CPUs as you'd expect. Compared to an old CPU, a newer CPU doesn't showM as much of a speedup at hashing as it does on general benchmarks.<br>I guess recent CPU optimizations must have concentrated on things like I/O and branch prediction. Most programs are a bunch of memory access, comparisons and branching, they rarely get down to cranking away at maths for very long.<br>The latest SVN version has a khash/s display. Around 400 khash/s per processor is typical. #408 <b>Bitcoin in Ubuntu 10.04 on 06/22/2010</b> Ref=149.msg1668#msg1668 late now for feature changes to 0.3, but I'll add that to the post-0.3 to do list. I never would have noticed that if you hadn't pointed it out. #407 <b>Proof-of-work difficulty increasing on 06/22/2010</b> Ref=43.msg1669#msg1669 Agree. Certainly too trivial to clutter the user's attention with.<br>I changed it to every 30 minutes.<br>If I increased it to every 10 minutes, it would still be a small enough presence in the log file. Question is whether that would be more ouM tput than the user wants when they grep. #406 <b>0.3 almost ready on 06/22/2010</b> Ref=199.msg1670#msg1670 <div class="q">Replying</div>My fear is too many programmers would latch onto that for checking for received payments. It can never be reliable that way. The list/getreceivedbyaddress/label functions are the only way to do it reliably.<br>We shouldn't delay forever until every possible feature is done. There's always going to be one more thing to do. #405 <b>0.3 almost ready on 06/22/2010</b> Ref=199.msg1671#msg1671 Here's RC1 for windows for testing:<br>(removed, see RC2 below)<br>Please only download this if you're going to test and report back whether everything seems fine or not. Make sure to look through the files in "c:\program files\bitcoin" #404 <b>0.3 almost ready on 06/22/2010</b> Ref=199.msg1675#msg1675 <div class="q">Replying</div>What operating system?<br>Normally when it does thM at it's because the directory where the data directory should go doesn't exist. See if the "%appdata%" directory exists.<br>Do you get that error with 0.2 also? It's hard to see how you could get that with 0.3 and not with 0.2 since there's nothing different in that regard.<br> #403 <b>0.3 almost ready on 06/22/2010</b> Ref=199.msg1677#msg1677 davidonpda, were you also running laszlo's build previously?<br>Check if the "%appdata%" directory exists, and "%appdata%\bitM coin"<br>Try:<br> rename "%appdata%\bitcoin" bitcoin2 <br>does it work then? #402 <b>0.3 almost ready on 06/22/2010</b> Ref=199.msg1679#msg1679 You figured it out faster than I could post a reply. :) <br>It looks like laszlo's build of Berkeley DB has database/log.* files that are not compatible with ours. The .dat files are fine, their format shouldn't ever change. All data is stored in the .dat files. All your own data is stored in wallet.dat. If you had waited for M it to redownload the block chain, your missing transactions and generateds would have appeared as the block chain reached the point where those transactions were recorded.<br>When you copied the directory except log.0000000002, that's the best solution. You should be good now.<br>The database/log.* files only contain temporary database data. If you exited bitcoin normally the last time, not exited by forced terminating it or crashing, then the database/log.* files can normally be deleted safely. They're only used sM o that if the database is in the middle of a transaction when the computer crashes or the program is killed or crashes, then it could recover without losing data.<br>Please keep running v0.3 if at all possible, don't go back to v0.2.10.<br>Anyone else who hits this problem, move the database\log.000000000* files somewhere else. (if it works fine after that, you can delete them later)<br>I'm reluctant to make the installer delete or move those files. If the previous run was stopped by crashing or killed, that would M be the wrong thing to do.<br> #401 <b>0.3 almost ready on 06/22/2010</b> Ref=199.msg1686#msg1686 Laszlo figured out that enabling some more optimisation increased performance about 20%, so 0.3 hashes 20% faster than 0.2.0, but I assume he used that in his own build.<br>30khash increase to what total rate? (to figure the % increase) #400 <b>0.3 almost ready on 06/24/2010</b> Ref=199.msg1748#msg1748 Here's RC1 for linux for teM sting:<br>(link removed, see below)<br>It contains both 32-bit and 64-bit binaries.<br>Recent changes:<br>build-unix.txt:<br>- Added instructions for building wxBase, which is needed to compile bitcoind.<br>- The package libboost-dev doesn't install anything anymore, you need to get libboost-all-dev.<br>- Updated version numbers.<br>makefile.unix:<br>- The libboost libraries have removed the "-mt" from their filenames in 1.40. If you're compiling with Boost 1.38 or lower, like on Ubuntu Karmic, you would need to chM ange it back to boost_system-mt and boost_filesystem-mt. #399 <b>0.3 almost ready on 06/25/2010</b> Ref=199.msg1760#msg1760 I don't know. Maybe someone with more Linux experience knows how to install the library it needs.<br>I built it on Ubuntu 10.04. I hope that wasn't a mistake. Maybe it should have been built on an older version for more backward compatibility. Is this a problem on Linux, that if you build on the latest version, then it has trouble working on older verM sions? Is there any way I can downgrade to an older version of GCC on 10.04?<br>The 64-bit version shouldn't be any faster than the 32-bit version, but it would be great if someone could do a side-by-side comparison of the two linux versions and check. SHA-256 is a 32-bit algorithm and nothing in BitcoinMiner uses 64-bit at all.<br>We don't need to bother with a 64-bit version for Windows. 32-bit programs work on all versions of Windows. It's not like Linux where the 64-bit OS wants 64-bit programs.<br>I'm alM so curious if it's a little faster on linux than windows.<br>Do you think I should make the directories:<br>/bin32/<br>/bin64/<br>instead of<br>/bin/32/<br>/bin/64/ #398 <b>0.3 almost ready on 06/25/2010</b> Ref=199.msg1769#msg1769 Thanks virtualcoin, that's a perfect comparison.<br>The 8% speedup from 32-bit Windows (2310k) to 32-bit Linux (2500k) is probably from the newer version of GCC on Linux (4.4.3 vs 3.4.5).<br>The 15% speedup from 32-bit to 64-bit Linux is more ofM a mystery. The code is completely 32-bit.<br>Hmm, I think the 8 extra registers added by x86-64 must be what's helping. That would make a significant difference to SHA if it could hold most of the 16 state variables in registers. #397 <b>Bitcoin clients getting k-lined from the IRC bootstrapping channel on 06/25/2010</b> Ref=215.msg1779#msg1779 We need more details about what happened MadHatter.<br>Both 0.2 and 0.3 have a backup way of getting connected without IRC, it's M just slower to get connected.<br>0.2 can find other nodes without IRC if it's ever been connected before, but a new install can't discover the network for the first time without IRC.<br>0.3 can also seed without IRC. It can operate entirely without IRC if it needs to, but it's better having IRC for redundancy. #396 <b>On IRC bootstrapping on 06/25/2010</b> Ref=84.msg1781#msg1781 <div class="q">Replying</div>This seems like a good idea.<br>What does everyone think, should wM e make the switch for 0.3? #395 <b>0.3 almost ready on 06/26/2010</b> Ref=199.msg1787#msg1787 Lets try using Laszlo's irc.lfnet.org instead of freenode. Here's RC2, that's the only change in it:<br>(see below for download links)<br> #394 <b>Bitcoin clients getting k-lined from the IRC bootstrapping channel on 06/26/2010</b> Ref=215.msg1797#msg1797 Freenode is too visible, right in the middle of where all those users and moderatorsM are hanging out. Laszlo's option is a much better fit for us.<br>I made 0.3.0.RC2 available that uses irc.lfnet.org instead of freenode if you want to start switching over:<br>http://bitcointalk.org/index.php?topic=199.msg1787#msg1787 #393 <b>0.3 almost ready on 06/26/2010</b> Ref=199.msg1800#msg1800 The first panel of the status bar is shared with the help description of menu items as you hover over them. Since all our menu item descriptions are blank, it replaces it witM h blank when you're hovering in a menu. #392 <b>Beta? on 06/26/2010</b> Ref=217.msg1803#msg1803 Is it about time we lose the Beta? I would make this release version 1.3. #391 <b>1.3 almost ready on 06/26/2010</b> Ref=199.msg1806#msg1806 Changed the version number to 1.3 and removed "Beta".<br>(links removed, see below)<br>Uses irc.lfnet.org.<br> #390 <b>Bitcoin mobile. on 06/26/2010</b> Ref=177.msg1814#msg18M <div class="q">Replying</div>I think that's the best option right now. Like cash, you don't keep your entire net worth in your pocket, just walking around money for incidental expenses.<br>They could make a smaller version of the site optimized for mobile. If there was an app, it could be a front end to one of those, with the main feature being QR-code reader, or maybe there's already a universal QR-code reading app that web sites can be designed to accept scans from.<br>If there was anM iPhone app that was just a front end for vekja or mybitcoin, not a big involved P2P, would apple approve it and if not, on what basis? It could always be an Android app instead. An app is not really necessary though, just a mobile sized website.<br>A web interface to your own Bitcoin server at home wouldn't be a solution for everyone. Most users don't have a static IP, and it's too much trouble to set up port forwarding.<br> #389 <b>Building BitCoin Client completely Headless on 06/26/2010</M b> Ref=171.msg1815#msg1815 The linux release candidate in the "1.3 almost ready" thread contains prebuilt bitcoind. #388 <b>Bitcoin Faucet changes on 06/26/2010</b> Ref=206.msg1816#msg1816 Many big ISPs give you a new IP every time you connect, usually in the same class B (a.b.?.?). Maybe you should have a minimum time between payments per class-B.<br>If you can't solve the problem, you can always keep lowering the amount of bitcoins given until iM t's manageable, and always require captcha. #387 <b>Beta? on 06/27/2010</b> Ref=217.msg1827#msg1827 But 1.0 sounds like the first release. For some things newness is a virtue but for this type of software, maturity and stability are important. I don't want to put my money in something that's 1.0. 1.0 might be more interesting for a moment, but after that we're still 1.0 and everyone who comes along thinks we just started. This is the third major release and 1.3 reflects thM at development history. (0.1, 0.2, 1.3) #386 <b>IPv6, headless client, and more on 06/27/2010</b> Ref=218.msg1828#msg1828 Welcome, Harry.<br>I hadn't thought about starting out using bitcoind without using bitcoin first. I guess for now, this thread serves as the tutorial. <br>The focus for bitcoind so far has been more on backend support for websites. There's demand for things that would be nice for adminning headless generators like listgenerated. For the moment, you canM grep the debug.log file for "generated" and "hashmeter" for some feedback. Generated blocks take about 24 hours before they're credited to your balance. #385 <b>1.3 almost ready on 06/27/2010</b> Ref=199.msg1834#msg1834 MinGW still only has good old stable 3.4.5. There's not much reason for them to update it. <br>When I looked at the 3.4.5 compiled SHA disassembly, I couldn't see any room for improvement at all. I can't imagine how 8% more could be squeezed out of it. Is M it possible Windows could have 8% more overhead? Not making system calls or anything, just plain busy computational code, could task switching and other housekeeping operations take away that much? #384 <b>Major Meltdown on 06/27/2010</b> Ref=202.msg1838#msg1838 Here's an answer to a similar question about how to recover from a major meltdown.<br>https://www.bitcoin.org/smf/index.php?topic=191.msg1585#msg1585<br><div class="q">Replying</div> Feature Request: Limiting Connections on 07/02/2010</b> Ref=223.msg1924#msg1924 Thanks for the feedback on this.<br>One thing we could do is lower the outbound connections from 15 to 10 or maybe even 5. The choice of 15 was arbitrary. It just needs to be enough for redundancy and fast exponential propagation of messages. 10 would still be plenty. 5 should be fine. 10 is good as a nice round number so users can see that it stopped intentionally.<br>It would help to implement UPnP so there wM ould be more inbound accepting nodes. Your number of connections is the ratio of inbound accepting nodes to out-only times 15. We need to encourage more people to accept inbound connections.<br>I will implement a feature to stop accepting inbound connections once you hit a certain number.<br>Which version are you running?<br>Anyone know how many connections typical P2P software like BitTorrent can get up to?<br> #382 <b>1.3 almost ready on 07/02/2010</b> Ref=199.msg1926#msg1926 <div class="t">M <div class="q">Replying</div>It is, but generating is more than twice as slow. #381 <b>0.3 almost ready on 07/02/2010</b> Ref=199.msg1927#msg1927 (reverted to rc2)<br>Links removed, 0.3 is now released, so go to http://www.bitcoin.org to download it.<br> #380 <b>Beta? on 07/02/2010</b> Ref=217.msg1928#msg1928 OK, back to 0.3 then.<br>Please download RC4 and check it over as soon as possible. I'd like to release it soon.<br>hM ttp://bitcointalk.org/index.php?topic=199.msg1927#msg1927<br>Other than the version number change, which included changes in readme.txt and setup.nsi, I reduced the maximum number of outbound connections from 15 to 8 so nodes that accept inbound don't get too many connections. 15 was a lot more than needed. 8 is still plenty for redundancy. #379 <b>Feature Request: Limiting Connections on 07/02/2010</b> Ref=223.msg1929#msg1929 I reduced max outbound connections from 15 to M 8 in RC4.<br>15 was way more than we needed for redundancy. 8 is still plenty of redundancy.<br>As the nodes upgrade to this version, this will cut in half the number of connections that inbound accepting nodes get.<br>If anyone wants more than 8 connections, they can open port 8333 on their firewall. #378 <b>0.3 almost ready -- please test the Mac version! on 07/04/2010</b> Ref=199.msg1947#msg1947 Laszlo's build is going to be our first Mac release so please test it! #377 <b>Slashdot Submission for 1.0 on 07/05/2010</b> Ref=234.msg1976#msg1976 BTW, I did come to my senses after that brief bout with 1.3, this release is still going to be 0.3 beta not 1.0.<br>I really appreciate the effort, but there are a lot of problems.<br>We don't want to lead with "anonymous". (I've been meaning to edit the homepage)<br>"The developers expect that this will result in a stable-with-respect-to-energy currency outside the reach of any government." -- I am M definitely not making an such taunt or assertion. <br>It's not stable-with-respect-to-energy. There was a discussion on this. It's not tied to the cost of energy. NLS's estimate based on energy was a good estimated starting point, but market forces will increasingly dominate. <br>Sorry to be a wet blanket. Writing a description for this thing for general audiences is bloody hard. There's nothing to relate it to. #376 <b>Bitcoin 0.3 released! on 07/06/2010</b> Ref=238.msg2004#msg2004 Announcing version 0.3 of Bitcoin, the P2P cryptocurrency! Bitcoin is a digital currency using cryptography and a distributed network to replace the need for a trusted central server. Escape the arbitrary inflation risk of centrally managed currencies! Bitcoin's total circulation is limited to 21 million coins. The coins are gradually released to the network's nodes based on the CPU power they contribute, so you can get a share of them by contributing your idle CPU time.<br>What's new:<br>- CM ommand line and JSON-RPC control<br>- Includes a daemon version without GUI<br>- Transaction filter tabs<br>- 20% faster hashing<br>- Hashmeter performance display<br>- Mac OS X version (thanks to Laszlo)<br>- German, Dutch and Italian translations (thanks to DataWraith, Xunie and Joozero)<br>Get it at http://www.bitcoin.org or read the forum to find out more. #375 <b>0.3 almost ready -- please test the Mac version! on 07/06/2010</b> Ref=199.msg2006#msg2006 0.3 released<brM >http://bitcointalk.org/index.php?topic=238.msg2004#msg2004<br> #374 <b>On IRC bootstrapping on 07/07/2010</b> Ref=84.msg2010#msg2010 Everybody needs to connect to the same IRC server and channel so they can find each other.<br><div class="q">Replying</div>It might not be good if we suddenly rushed freenode with a ton of users all at once.<br>The fallback is our own seed system. <br>irc.lfnet.org is pretty old and has impressive uptime. I think it's going to be fine.<br>WeM could take IRC out at some point if we want, but I'd rather ease into it and just test our own seed system as a backup for now, and I really like the complementary redundant attributes of the two different systems. #373 <b>bitcoin 0.3 win64 - broken access to APPDATA if non-latin characters in username on 07/08/2010</b> Ref=246.msg2068#msg2068 Thanks for finding that. We switched from ANSI in 0.2 to UTF-8 in version 0.3, so it must be related to that.<br>Just to confirm, M if you log in with the non-latin character username, not having an appdata/Bitcoin directory yet, and run Bitcoin and let it create the database from scratch, does it work or not? #372 <b>Anonymity on 07/08/2010</b> Ref=241.msg2071#msg2071 It's hard to imagine the Internet getting segmented airtight. It would have to be a country deliberately and totally cutting itself off from the rest of the world.<br>Any node with access to both sides would automatically flow the block M chain over, such as someone getting around the blockade with a dial-up modem or sat-phone. It would only take one node to do it. Anyone who wants to keep doing business would be motivated.<br>If the network is segmented and then recombines, any transactions in the shorter fork that were not also in the longer fork are released into the transaction pool again and are eligible to get into future blocks. Their number of confirmations would start over.<br>If anyone took advantage of the segmentation to double-spend, suM ch that there are different spends of the same money on each side, then the double-spends in the shorter fork lose out and go to 0/unconfirmed and stay that way.<br>It wouldn't be easy to take advantage of the segmentation to double-spend. If it's impossible to communicate from one side to the other, how are you going to put a spend on each side? If there is a way, then probably someone else is also using it to flow the block chain over.<br>You would usually know whether you're in the smaller segment. For exaM mple, if your country cuts itself off from the rest of the world, the rest of the world is the larger segment. If you're in the smaller segment, you should assume nothing is confirmed. #371 <b>bitcoin 0.3 win64 - broken access to APPDATA if non-latin characters in username on 07/09/2010</b> Ref=246.msg2077#msg2077 I think I see where the problem is. Coincidentally, I recently coded a replacement for the function in question which should fix it. It's not enabled yet, but inM the SVN version it prints a debug message in debug.log showing the new directory value and old value for comparison. #370 <b>BTC Vulnerability? (Massive Attack against BTC system. Is it really?) on 07/09/2010</b> Ref=242.msg2078#msg2078 What the OP described is called "cornering the market". When someone tries to buy all the world's supply of a scarce asset, the more they buy the higher the price goes. At some point, it gets too expensive for them to buy any more. It's grM eat for the people who owned it beforehand because they get to sell it to the corner at crazy high prices. As the price keeps going up and up, some people keep holding out for yet higher prices and refuse to sell.<br>The Hunt brothers famously bankrupted themselves trying to corner the silver market in 1979:<br>"Brothers Nelson Bunker Hunt and Herbert Hunt attempted to corner the world silver markets in the late 1970s and early 1980s, at one stage holding the rights to more than half of the world's deliverable silvM er.[1] During Hunt's accumulation of the precious metal silver prices rose from $11 an ounce in September 1979 to nearly $50 an ounce in January 1980.[2] Silver prices ultimately collapsed to below $11 an ounce two months later,[2] much of the fall on a single day now known as Silver Thursday, due to changes made to exchange rules regarding the purchase of commodities on margin.[3]"<br>http://en.wikipedia.org/wiki/Cornering_the_market<br> #369 <b>bitcoin 0.3 win64 - broken access to APPDATA if non-M latin characters in username on 07/09/2010</b> Ref=246.msg2092#msg2092 I tested this with a non-lower-ASCII account name on XP and confirmed the bug, then tested that the new GetDefaultDataDir fixed it. This change is revision 102 of the SVN. #368 <b>Security on 07/10/2010</b> Ref=240.msg2132#msg2132 I'll start thinking about how to do this.<br>At the moment, you can kind of use -connect. You can use -connect to make it connect to local computers M on your LAN, like -connect=192.168.0.100. If you start it out blank and don't let it connect to the main network, the difficulty is still at the original low difficulty. If you've port-forwarded though, then outside nodes might still connect inward to you.<br>With -connect it still uses IRC, do you think it shouldn't get on IRC when you're telling it to only connect to specific nodes with -connect? The main scenario for -connect is where you have a server farm, with two connected to the network and the rest cM onnected to the first two. In that case, you wouldn't want the -connect computers on IRC.<br>void ThreadIRCSeed(void* parg)<br>{<br> if (mapArgs.count("-connect"))<br> return;<br> #367 <b>Major Meltdown on 07/10/2010</b> Ref=202.msg2133#msg2133 <div class="q">Replying</div>True, if it happened suddenly. If it happens gradually, we can still transition to something stronger. When you run the upgraded software for the first time, it woM uld re-sign all your money with the new stronger signature algorithm. (by creating a transaction sending the money to yourself with the stronger sig) #366 <b>No blocks downloaded... why? on 07/14/2010</b> Ref=323.msg2867#msg2867 So that was responsible for keeping blocks from downloading?<br>The link: "Win32 CPU Cycles vs 'Live Protection' Engines"<br>For BitcoinFX, Live Protection was keeping it from getting CPU for generating coins. You said your friend was getting 1400-M 1600 khash/s, so it was getting CPU. I guess Live Protection must have been blocking some other part of the program then? #365 <b>resource hog on 07/14/2010</b> Ref=327.msg2871#msg2871 In Windows, you select the process in the task manager, right click, Set Priority. Set it to BelowNormal or Low. That shouldn't make a difference though.<br>If you turn off Generate Coins, does the CPU usage go flat? That would confirm that all the CPU time it's taking is generate, whiM ch is idle priority already.<br>It could be it's slow just because you have too many things running at once and you're out of memory. When you switch from one thing to another, it has to page it in from disk. #364 <b>stopped prodicing coins on 07/14/2010</b> Ref=343.msg2880#msg2880 Thanks for making that calculator.<br>The difficulty doubled a day or two ago, plus it's just random and you can have surprisingly long dry spells. #363 <b>Building Bitcoin 0.3 M on 07/14/2010</b> Ref=298.msg2885#msg2885 It doesn't work with wxWidgets 2.8, it needs wxWidgets 2.9. Unfortunately, there isn't a Debian package of wxWidgets 2.9 yet.<br> #362 <b>bitcoin auto-renice-ing on 07/14/2010</b> Ref=72.msg2886#msg2886 Laszlo corrected this, but unfortunately it was too late to make it into 0.3.0. There will probably be a 0.3.1 soon though.<br>The problem is I used PRIO_MIN, I should have used PRIO_MAX for the lowest prioM rity. The OS isn't supposed to let you increase priority, so the PRIO_MIN ought to leave it at priority 0. #361 <b>Stuck on 513 blocks on 07/14/2010</b> Ref=305.msg2895#msg2895 This is the second time I've seen this "Live Protection" problem reported.<br>It must be blocking the program's network communication. It sounds like it's allowing connections to be made, hence the 10 connections shown, but not allowing any data to be sent or received on them.<br>We need to understaM nd this problem better.<br>Can someone write some instructions on the wiki explaining how to turn off or add an exclusion to Live Protection or whatever its full proper name is. #360 <b>Error on Ubuntu 10.04 on 07/14/2010</b> Ref=318.msg2903#msg2903 What language is your computer set to? Is it set to German, Dutch or Italian? Is it one of those sub-languages like "nl-??"?<br>It's trying to load a translation and failing. You could delete the locale directory thM at came with bitcoin so it doesn't try to use it.<br>Can someone test each language on Ubuntu and see if there's a problem with just one of them or maybe all three? #359 <b>Runaway CPU usage for 64bit BitCoin (Linux Client) on 07/14/2010</b> Ref=299.msg2908#msg2908 After it initially tries incorrectly to set itself to the lowest priority, the generate thread only changes its priority again temporarily when it finds a block. When you've found a block, you should want it to M hurry up and broadcast it as soon a possible before someone else finds one and makes yours invalid. The generate thread only changes to higher priority for less than a second every few days.<br>There should be a 0.3.1 release for this soon. There are a few other issues we need to look at fixing in 0.3.1 before making a release.<br><div class="q">Replying</div>That's interesting. I know the minimize to tray on Ubuntu is very clunky, but I didn't know it had a CPU peg problem too. Anyone else able to reproduce this pM roblem? We had this feature disabled on Linux before, but then it seemed better to have the imperfect UI than to lose the feature entirely. I'm thinking we should disable it again on Linux. #358 <b>Warning this block was not received by any other nodes on 07/14/2010</b> Ref=291.msg2913#msg2913 Microsoft Security Essentials Live Protection is blocking your communication with the network. You have connections, which tricks Bitcoin into thinking it's connected, but theyM are silent because the data is being blocked.<br>You need to make bitcoin.exe an excluded process in Live Protection.<br>This is becoming a common problem. Someone should write this up in a pegged thread.<br>The message "Warning: This block was not received by any other nodes" occurs when Bitcoin broadcasts a block, but nobody confirms they received it. The warning is there just for this kind of situation, where for some reason you have connections, but they have gone dead and nobody can hear you. Your block will M never become valid because nobody received it.<br> #357 <b>Hash/sec Throttling for Democracy on 07/14/2010</b> Ref=325.msg2935#msg2935 <div class="q">Replying</div>This is a common point of confusion. There's no such thing as being 1% towards solving a block. You don't make progress towards solving it. After working on it for 24 hours, your chances of solving it are equal to what your chances were at the start or at any moment.<br>It's like trying to flip 37 coins at once M and have them all come up heads. Each time you try, your chances of success are the same.<br>The RNG is the OpenSSL secure random number generator. On Windows it's seeded with the complete set of all hardware performance counters since your computer started, on Linux it's dev/random. #356 <b>Scalability on 07/14/2010</b> Ref=286.msg2947#msg2947 The design outlines a lightweight client that does not need the full block chain. In the design PDF it's called Simplified PaymentM Verification. The lightweight client can send and receive transactions, it just can't generate blocks. It does not need to trust a node to verify payments, it can still verify them itself. <br>The lightweight client is not implemented yet, but the plan is to implement it when it's needed. For now, everyone just runs a full network node. <br>I anticipate there will never be more than 100K nodes, probably less. It will reach an equilibrium where it's not worth it for more nodes to join in. The rest will be lightweigM ht clients, which could be millions.<br>At equilibrium size, many nodes will be server farms with one or two network nodes that feed the rest of the farm over a LAN. #355 <b>Runaway CPU usage for 64bit BitCoin (Linux Client) on 07/15/2010</b> Ref=299.msg3008#msg3008 OK, the undocumented switch "-minimizetotray" which re-enables the option.<br>I uploaded the change to SVN. #354 <b>[Bitcoin 0.3.0] Runtime error on 07/15/2010</b> Ref=373.msg3150#msg3150 More directly, this:<br>http://bitcointalk.org/index.php?topic=246.0<br>I will be posting release candidate of 0.3.1 with this fix shortly. Please try that and let me know if it fixes the problem. #353 <b>Static Linux x86_64 bins for those having libcrypto troubles on 07/15/2010</b> Ref=326.msg3157#msg3157 We don't even specify linking glibcxx_3.4.11, so gcc must automatically link it behind the scenes. There's probably a compiler switch that would telM l it to static link it. I'm not sure what the licensing issues would be. Typically, compiler stuff is fully redistributable. #352 <b>resource hog on 07/15/2010</b> Ref=327.msg3162#msg3162 Then all the CPU time is the generate thread, which definitely runs at the lowest possible priority, idle priority. It's normal that your CPU meter is 100%. Since it's idle priority, it won't actually slow anything else down, even though the CPU meter is 100%. coin 0.3.1 released on 07/15/2010</b> Ref=383.msg3198#msg3198 This is a bugfix maintenance release. It is now uploaded to SourceForge. Mac OS X didn't need any fixes so we don't really need to update it, 0.3.0 is still good.<br>The download links are on bitcoin.org<br>Changes:<br>- Added Portuguese translation by Tiago Faria<br>Windows<br>- Fix for 22DbRunRecoveryException if your username has non-ascii characters in it<br>Linux<br>- Laszlo's fix for lowering generate thread to lowest prioM rity <br>- Fix for if you're having trouble with libcrypto linkage<br>- Gavin Andresen's implementation of "start on windowing system startup" option<br> #350 <b>0.3.1 release candidate, please test on 07/15/2010</b> Ref=383.msg3205#msg3205 Well, it can't hurt to do a backup and it's a good idea to backup regularly, but no, a backup is not required before installing this.<br> #349 <b>0.3.1 release candidate, please test on 07/15/2010</b> Ref=383.msg3221#msM I don't think you have a particular problem, I think your system is laggy because you're running a lot of things at once and hitting the pagefile because memory is full. You confirmed when you shut off generation that your CPU drops to 0%, so the CPU usage is definitely all idle priority. There's nothing in the 0.3.1 that would affect these things. #348 <b>Website and software translations on 07/15/2010</b> Ref=151.msg3238#msg3238 ="q">Replying</div>I need to give an updated .po file.<br><div class="q">Replying</div>OK, this must be a problem somewhere, I'll have to take a look at it or one of the other devs can.<br><div class="q">Replying</div>Many of the strings are in code automatically generated from uiproject.fbp where nothing can be done about these things. I have a program I use to find all the spacing inconsistencies at the beginning and ending of strings in your .po file and manually fix them up before I upload them to SVN.<br> #347 <b>Website and software translations on 07/15/2010</b> Ref=151.msg3242#msg3242 I uploaded an updated bitcoin.po for 0.3.1 attached to this message:<br>http://bitcointalk.org/index.php?topic=151.msg1259#msg1259<br>please use it if you're starting a new translation.<br>If you already have a po file, poedit can update it. <br>- Get the src directory from the 0.3.1 release candidate posted in the development forum, any version will do:<br>http://bitcointalk.org/index.php?topiM c=383.0<br>- Make a subdirectory under src: locale/??/LC_MESSAGES<br>(?? could be anything really, "en" or your language 2-letter code)<br>- Put your .po file there<br>- Open it with poedit<br>- In poedit, Catalog->Update from sources<br>The key is that the src directory with the sourcefiles needs to be 3 directories up from the .po file. #346 <b>Website and software translations on 07/15/2010</b> Ref=151.msg3247#msg3247 <div class="q">Replying</div>I updated them to 0.M 3.0.<br>I am tempted to remove the download links from the other languages and only keep it on English.<br>They will need to be updated for 0.3.1 soon. Perhaps there's a way for someone to manage the updating of the translated drupal pages. #345 <b>Website and software translations on 07/15/2010</b> Ref=151.msg3257#msg3257 Thanks for the Spanish and French translations! The edited and updated .po files are attached.<br>I uploaded these to the SVN. 44 <b>0.3.1 release candidate, please test on 07/15/2010</b> Ref=383.msg3295#msg3295 <div class="q">Replying</div>I was not able to reproduce this. I have dual-proc, so I ran two memory hogs. Bitcoin got 0% of CPU according to the task manager. The khash/sec meter stayed stuck because it couldn't get any CPU to update it.<br>Do you have dual-proc? Are you sure you weren't running a single processor hog? #343 <b>0.3.1 release candidate, please test on 07/15/2010</b> RM ef=383.msg3305#msg3305 <div class="q">Replying</div>I updated the first post with a link to rc2 for linux with the fix for this. Please check that this is fixed for you. Thanks!<br>http://www.bitcoin.org/download/bitcoin-0.3.1.rc2-linux.tar.gz #342 <b>0.3.1 release candidate, please test on 07/15/2010</b> Ref=383.msg3306#msg3306 <div class="q">Replying</div>Yes a bug. It'll have to be fixed in the next version. #341 <b>"SetIcons()M : icon bundle doesn't contain any suitable icon" on 07/15/2010</b> Ref=391.msg3308#msg3308 That's surprising that we've never heard of that before now.<br>Maybe you're the first person to ever run it on Vista :) <br>I have to guess it has something to do with your display color depth selection. e.g. 8-bit, 16-bit, 24-bit, 32-bit, what is it? Do you have a weird video card, display setup or running it on a tablet or mobile or something? #340 <b>Runaway CPU usageM for 64bit BitCoin (Linux Client) on 07/15/2010</b> Ref=299.msg3309#msg3309 The fix for the thread priority level on linux is available in the 0.3.1 release candidate here:<br>http://bitcointalk.org/index.php?topic=383.msg3198#msg3198 #339 <b>0.3.1 release candidate, please test on 07/15/2010</b> Ref=383.msg3319#msg3319 <div class="q">Replying</div>It could go either way. The Startup folder has the advantage that the end user can see it and manualM ly remove it with the regular UI (not regedit) if they already blew away the Bitcoin directory and its uninstaller. Bitcoin will not relentlessly keep re-adding it if you delete it manually.<br>OpenOffice is another example of something that puts its link in the Startup folder. #338 <b>"SetIcons(): icon bundle doesn't contain any suitable icon" on 07/15/2010</b> Ref=391.msg3323#msg3323 <div class="q">Replying</div>What is "120DPI mode"? Is that an actual setting someM where? Sounds like an obscure enough candidate. I suppose it needs twice the resolution icon to fill the size of the upper left corner icon. Only one size is provided. #337 <b>0.3.1 release candidate, please test on 07/16/2010</b> Ref=383.msg3339#msg3339 Run it with the undocumented switch -minimizetotray and the option is available in the options menu.<br>I don't know how to fix it. It's something wrong deep inside wxWidgets or GTK or Gnome. >Donations to freebitcoins.appspot.com needed! on 07/16/2010</b> Ref=295.msg3350#msg3350 5 BTC seems like a lot these days, maybe the normal amount should be 1 or 2 BTC.<br>This is an important service so new users can at least get something if generating is too hard. #335 <b>"SetIcons(): icon bundle doesn't contain any suitable icon" on 07/16/2010</b> Ref=391.msg3362#msg3362 That must be it then.<br>It must be looking for a larger icon like 20x20M but we don't have one. #334 <b>Proof-of-work difficulty increasing on 07/16/2010</b> Ref=43.msg3488#msg3488 The proof-of-work difficulty is currently 45.38. (see http://www.alloscomp.com/bitcoin/calculator.php) <br>It's about to increase again in a few hours. It's only been 3-4 days since the last increase, so I expect it will increase by the max of 4 times, or very nearly the max. That would put it at 181.54.<br>The target time between adjustments is 14 days, 14/3.M 5 days = 4.0 times increase. #333 <b>Assertion Failure - Ubuntu Lucid on 07/16/2010</b> Ref=400.msg3492#msg3492 That's the first time I've seen this error.<br>How many blocks do you have? (in the status bar)<br>You should move your blk*.dat files (in ~/.bitcoin) to another directory and let it start over downloading the block chain again. If you don't mind, could you keep the old blk*.dat files for a little while in case I need to look at them?<br> >Fedora 13 libcrypto on 07/16/2010</b> Ref=296.msg3495#msg3495 Please try the 0.3.1 release candidate, it should at least resolve the libcrypto dependency:<br>http://bitcointalk.org/index.php?topic=383.0<br>Let me know if that works. #331 <b>Resending transaction on 07/16/2010</b> Ref=303.msg3499#msg3499 Bitcoin automatically rebroadcasts your transactions if it receives new blocks that don't contain them. It may take about an hour to get rebroadcM asted. It is relentless though. It will keep nagging the network forever until your transaction gets into a block. #330 <b>0.3.1 release candidate, please test on 07/16/2010</b> Ref=383.msg3505#msg3505 Because of all the dependencies that different systems don't have. It's easier to just static link what we can. It doesn't increase the size by very much. #329 <b>Source code documentation on 07/16/2010</b> Ref=393.msg3510#msg3510 like that in libraries for the external API's, but you can probably tell from the code that I'm not a fan of it for interior functions. Big obligatory comment headers for each function space out the code and make you hesitate about creating a small little function where the comment header would be bigger than the function. They're some trouble for maintenance, as changes to the function then require duplicate changes in the comment header. I like to keep code compact so you can see more code on the screen at once.M <br>To add them now at this point, what would be written would just be what's obvious from looking at the function.<br>The external API we have, in rpc.cpp, the usage documentation is in the help string.<br>Sorry to be a wet blanket. #328 <b>Hash() function not secure on 07/16/2010</b> Ref=360.msg3520#msg3520 SHA256 is not like the step from 128 bit to 160 bit.<br>To use an analogy, it's more like the step from 32-bit to 64-bit address space. We quickly ran out of address M space with 16-bit computers, we ran out of address space with 32-bit computers at 4GB, that doesn't mean we're going to run out again with 64-bit anytime soon.<br>SHA256 is not going to be broken by Moore's law computational improvements in our lifetimes. If it's going to get broken, it'll be by some breakthrough cracking method. An attack that could so thoroughly vanquish SHA256 to bring it within computationally tractable range has a good chance of clobbering SHA512 too.<br>If we see a weakness in SHA256 coming gM radually, we can transition to a new hash function after a certain block number. Everyone would have to upgrade their software by that block number. The new software would keep a new hash of all the old blocks to make sure they're not replaced with another block with the same old hash. #327 <b>Request: expected bitcoins per day display on 07/16/2010</b> Ref=397.msg3524#msg3524 Many businesses are like that. For a car salesman, when will the next customer walk in the door?<M br>On the OP's question, it's a good feature, but the question is, how would we word it so people don't expect to get something after that specific amount of time? "it said 7 days and I waited more than a week and didn't get anything!" Approx, average, but still they're going to think that way. It can't be a whole sentence, unless we think of somewhere else to put it, but where would that be? Suggestions?<br>The difficulty quadrupled a few minutes ago to 181.54. It's going to take typically about M a week to generate now. #326 <b>Proof-of-work difficulty increasing on 07/16/2010</b> Ref=43.msg3526#msg3526 It adjusted to 181.54 a few minutes ago. Typical time to get a block is about a week now.<br>The difficulty can adjust down as well as up.<br>The network should be generating close to 6 blocks per hour now. #325 <b>Source code documentation on 07/16/2010</b> Ref=393.msg3534#msg3534 It's in init.cpp.<br>It's a wxWidgets app,M so it doesn't have a main() function. It may in a little while, since I'm pretty close to making bitcoind build w/o wxBase. (it'll be in init.cpp)<br>Sorry about my choice of the filename "main.cpp", another possible name would have been "core.cpp". It's much too late to change. I still prefer main.cpp.<br>We're still in great need of sample code showing the recommended way to use the JSON-RPC functions, like for a basic account system on a typical storefront website. Using getreceivedbylabel using the username asM the label, changing to a new bitcoin address once the stored one for that account gets used. I posted a sample code fragment on the forum somewhere. (search on getreceivedbylabel or getnewaddress) The sample code could be a plain vanilla bank site where you can deposit and send payments. #324 <b>0.3.1 release candidate, please test on 07/16/2010</b> Ref=383.msg3536#msg3536 Good point. If you're going to have more than 8 LAN nodes connect to one gateway node, then yoM u'd better have the gateway node set up so it can receive incoming connections. Otherwise, while the gateway node has 8 or more connections, it will not try to add any more outbound connections. As the outside nodes you're connected to come and go, it doesn't make new outbound connections to replace them. You'll be fine if you can accept incoming connections, then there will be plenty of others connecting to you. #323 <b>Proof-of-work difficulty increasing on 07/16/2010</b> Ref=43.msg3537#msg3537 Yes, about 20 hours. (120 conf / 6 blocks per hour = 20 hours) That's the normal length of time before you can spend it. You know long before that that you won one. #322 <b>bitcoin trademark? on 07/16/2010</b> Ref=378.msg3540#msg3540 No, not related at all. #321 <b>The dollar cost of bitmining energy on 07/16/2010</b> Ref=403.msg3545#msg3545 Neat chart.<br>Difficulty just increased by 4 times, so nowM your cost is US$0.02/BTC. #320 <b>Website integration for bitcoin on 07/16/2010</b> Ref=364.msg3559#msg3559 I've been trying to encourage someone to write and release some sample Python code showing the recommended way to do the typical accounting stuff, but to no avail. It would be nice if you didn't have to re-invent the wheel like you're doing here. Search on getnewaddress and you should find a thread where I gave a small fragment of sample pseudocode. #319 <b>Proof-of-work difficulty increasing on 07/16/2010</b> Ref=43.msg3565#msg3565 Right, the difficulty adjustment is trying to keep it so the network as a whole generates an average of 6 blocks per hour. The time for your block to mature will always be around 20 hours.<br>The recent adjustment put us back to close to 6 blocks per hour again.<br>There's a site where you can see the time between blocks, and since block 68545, it's been more like 10 minutes per block:<br>http://nullvoid.M org/bitcoin/statistix.php #318 <b>Sample account system using JSON-RPC needed on 07/16/2010</b> Ref=417.msg3579#msg3579 We need someone to write sample code, preferably Python or Java, showing the recommended way to use the JSON-RPC interface to create an account system. Most sites that sell things will need something like this. Someone who's kept up on the JSON-RPC threads here should have some idea how it should work.<br>When a user is logged in to their account, you shoM w the bitcoin address they can send to to add funds. Before showing it, you check if it's been used, if it has then you replace it with a new one (getnewaddress <username>). You only need to keep the latest bitcoin address for the account in your database. (I posted a sample code fragment for this in an earlier thread somewhere, search on getnewaddress)<br>You use getreceivedbylabel <username> with the username as the label to get the "credit" amount of the account. You need to keep a "debit" amount in M your database. The current balance of the account is (credit - debit). When the user spends money, you increase debit.<br>If you're requiring more than 0 confirmations, it's nice if you show the current balance (0 confirmations) and the available balance (1 or more confirmations), so they can immediately see that their payment is acknowledged. Not all sites need to wait for confirmations, so the dual current & available should be optional. Most sites selling digital goods are fine to accept 0 confirmations. <brM >A nice sample app for this would be a simple bank site, which would have the above, plus the option to send a payment to a bitcoin address. The sample code should be the simplest possible with the minimum extra stuff to make it a working site.<br>vekja.net is an example of a site like this.<br> #317 <b>Bitcoin 0.3.1 released on 07/16/2010</b> Ref=383.msg3590#msg3590 I uploaded windows 0.3.1 rc1 and linux 0.3.1 rc2 to SourceForge and updated the links on the homepage.<br>YM ou don't need to update to 0.3.1 unless you had one of the problems listed in the first post. If you've got it working already, stay with 0.3.0. #316 <b>A New Currency System for the World on 07/16/2010</b> Ref=128.msg3605#msg3605 <div class="q">Replying</div>0.3.1 fixes that, sets the generate threads to the lowest priority. Download links are on the homepage now. #315 <b>BUG Report: Rounding glitch on 07/17/2010</b> Ref=432.msg3769#msg3769 It must be a rounding error when getinfo converts to floating point to return the JSON-RPC result. The only place where it uses floating point to represent money is returning a value in JSON-RPC.<br>1.139999999999 is longer than bitcoin can internally represent.<br>internally, it could only be:<br>1.13999999 or<br>1.14000000<br>1.139999999999 is much much closer to 1.14000000 than 1.13999999, so it must be 1.14000000.<br>The code is this:<br>(double)GetBalance() / (double)COIN.<br>(I can't think of an eM asy way to fix it at the moment) #314 <b>Privacy versus Safety: handling change on 07/17/2010</b> Ref=434.msg3770#msg3770 We should queue up a supply of pre-made addresses in the wallet to use when a new address is needed. They aren't very big, so it wouldn't hurt to have a lot of them. This would more generally cover the case also where someone backs up, then requests a new address and receives a big payment with it. Maybe there should be separate queues so one type of deM mand on addresses doesn't deplete it for the others.<br>The addresses would be created and stored in the normal place, but also listed on a separate list of created-but-never-used addresses. When an address is requested, the address at the front of the never-used queue is handed out, and a new address is created and added to the back.<br>There's some kind of rescan in the block loading code that was made to repair the case where someone copied their wallet.dat. I would need to check that the rescan handles the caseM of rediscovering received payments in blocks that were already received, but are forgotten because the wallet was restored. #313 <b>Nenolod, the guy that wants to prove Bitcoin doesn't work. on 07/17/2010</b> Ref=431.msg3773#msg3773 0.3.2 has some security safeguards to lock in the block chain up to this point and limit the damage a little if someone gets 50%.<br>But if someone has 50%+ of the CPU power and malicious intent, they can prove what it already says in the desiM #312 <b>Bitcoin 0.3.2 released on 07/17/2010</b> Ref=437.msg3807#msg3807 Download links available now on bitcoin.org. Everyone should upgrade to this version.<br>- Added a simple security safeguard that locks-in the block chain up to this point.<br>- Reduced addr messages to save bandwidth now that there are plenty of nodes to connect to.<br>- Spanish translation by milkiway.<br>- French translation by aidos.<br>The security safeguard makes it so even if someoM ne does have more than 50% of the network's CPU power, they can't try to go back and redo the block chain before yesterday. (if you have this update)<br>I'll probably put a checkpoint in each version from now on. Once the software has settled what the widely accepted block chain is, there's no point in leaving open the unwanted non-zero possibility of revision months later. #311 <b>Bitcoin snack machine (fast transaction problem) on 07/17/2010</b> Ref=423.msg3819#msg3819 believe it'll be possible for a payment processing company to provide as a service the rapid distribution of transactions with good-enough checking in something like 10 seconds or less.<br>The network nodes only accept the first version of a transaction they receive to incorporate into the block they're trying to generate. When you broadcast a transaction, if someone else broadcasts a double-spend at the same time, it's a race to propagate to the most nodes first. If one has a slight head start, it'll geometricallM y spread through the network faster and get most of the nodes.<br>A rough back-of-the-envelope example:<br>1 0<br>4 1<br>16 4<br>64 16<br>80% 20%<br>So if a double-spend has to wait even a second, it has a huge disadvantage.<br>The payment processor has connections with many nodes. When it gets a transaction, it blasts it out, and at the same time monitors the network for double-spends. M If it receives a double-spend on any of its many listening nodes, then it alerts that the transaction is bad. A double-spent transaction wouldn't get very far without one of the listeners hearing it. The double-spender would have to wait until the listening phase is over, but by then, the payment processor's broadcast has reached most nodes, or is so far ahead in propagating that the double-spender has no hope of grabbing a significant percentage of the remaining nodes.<br> #310 <b>Assertion FailurM e - Ubuntu Lucid on 07/17/2010</b> Ref=400.msg3823#msg3823 <div class="q">Replying</div>Right, they'll re-appear when it's finished downloading all the blocks. #309 <b>Bitcoin 0.3.2 released on 07/17/2010</b> Ref=437.msg3825#msg3825 <div class="q">Replying</div>I went about 200 blocks back. The block chain was a clean straight line without branches, and there was only one known version of the locked block.<br><div class="q">Replying</div>Sorry, noM t yet, but I do want to make the initial block download faster.<br> #308 <b>Source code documentation on 07/17/2010</b> Ref=393.msg3828#msg3828 I didn't realize you were going to document all the intentionally undocumented commands. They're unsupported and not intended to be used by users.<br>All the user-facing commands are listed in the -? help. #307 <b>Network Size on 07/17/2010</b> Ref=419.msg3830#msg3830 <div class="q">ReplyiM ng</div>In 0.3.0, the change to 8 only ended up in the Windows version, the other versions still had 15.<br>Please upgrade to 0.3.2, it's available now. #306 <b>Bitcoin snack machine (fast transaction problem) on 07/18/2010</b> Ref=423.msg3867#msg3867 <div class="q">Replying</div>I didn't say impermeable, I said good-enough. The loss in practice would be far lower than with credit cards.<br><div class="q">Replying</div>No, the vending machine talks to a big service provideM r (aka payment processor) that provides this service to many merchants. Think something like a credit card processor with a new job. They would have many well connected network nodes. #305 <b>Source code documentation on 07/18/2010</b> Ref=393.msg3999#msg3999 They're only intended for intrepid programmers who read the sourcecode. #304 <b>URI-scheme for bitcoin on 07/18/2010</b> Ref=55.msg4008#msg4008 <div class="q">Replying</div>TM hat's what I thought too.<br><div class="q">Replying</div>Now I'm hearing a report that it IS possible for javascript to do a cross-domain POST request to 127.0.0.1. Not other domains, but just specifically to that one. Great...<br>If this is the case, then do not use the -server switch or bitcoind on a system where you do web browsing.<br>I'll get started on adding the password field.<br> #303 <b>Bitcoin 0.3.2 released on 07/18/2010</b> Ref=437.msg4037#msg4037 list is basically encompassed by what's listed in the first message. Everyone should upgrade to get the important security improvements.<br>Minimizing to tray had at least 3 different glitches and bugs on Linux, including a crash one, so I disabled it again. You can still re-enable the option with "-minimizetotray" if you want to use it anyway. The bugs/glitches are somewhere in wxWidgets or GTK or Gnome and I don't know how to fix them. Sorry, I just don't know what else to do, it's just too glitchy and buggy to hM ave as a mainline feature. #302 <b>JSON-RPC password on 07/18/2010</b> Ref=461.msg4059#msg4059 I uploaded to SVN my changes to add a password to JSON-RPC. If you're set up to build, please test it.<br>The -server switch is replaced with -rpcpw=<password>, which is also used with bitcoind.<br>bitcoin -rpcpw=<password> -- runs with JSON-RPC port open<br>bitcoind -rpcpw=<password> -- daemon with password<br>If you have a better idea for tM he switch name, let me know, but keep in mind there will eventually be a password for encrypting the database too. I'm not sure but I think they may want to use different passwords for the two.<br>It gives a warning if you don't set a password.<br>All commands now require the password as the first parameter. It'll tell you that if you run "bitcoind help".<br>The central code:<br> // Check password<br> if (params.size() < 1 || params[0].type() != str_type)<br> throw M runtime_error("First parameter must be the password.");<br> if (params[0].get_str() != strRPCPassword)<br> {<br> if (strRPCPassword.size() < 15)<br> Sleep(50);<br> begin = strRequest.end();<br> printf("ThreadRPCServer incorrect password attempt\n");<br> throw runtime_error("Incorrect password.");<br> }<br>Any comments on these decisions?<br>1)M if (strRPCPassword.size() < 15) Sleep(50); -- this means if it's a short password, it'll wait 50ms after each attempt. This might be used as a DoS attack, but I figured if it's a short password, it's more important to protect against brute force password scan. This may tell outsiders whether the password is less than 15 characters, but less than 15 isn't all that noteworthy, most passwords are less than 15. If you want to close the DoS possibility, just use a password 15 characters or longer.<br>2) begin M = strRequest.end(); -- if it's a single request with multiple invocations, I throw away the rest if one has a bad password. This is so you can't stuff it with millions of password attempts in one packet. What do you think, is this the right thing to do? (multiple invocation is probably almost never used anyway)<br>I also fixed the two duplicated commands listed in the help:<br>getaddressesbylabel <pw> <label><br>getbalance <pw><br>getblockcount <pw><br>getblocknumber <pw><bM r>getconnectioncount <pw><br>getdifficulty <pw><br>getgenerate <pw><br>getinfo <pw><br>getlabel <pw> <bitcoinaddress><br>getnewaddress <pw> [label]<br>getreceivedbyaddress <pw> <bitcoinaddress> [minconf=1]<br>getreceivedbylabel <pw> <label> [minconf=1]<br>help <pw><br>listreceivedbyaddress <pw> [minconf=1] [includeempty=false]<br>listreceivedbylabel <pw> [minconf=1] [includeempty=false]<br>sendtoaddress <pw> <bitcoinaddressM > <amount> [comment] [comment-to]<br>setgenerate <pw> <generate> [genproclimit]<br>setlabel <pw> <bitcoinaddress> <label><br>stop <pw><br> #301 <b>MSVC build & SHA-256 on 07/18/2010</b> Ref=453.msg4068#msg4068 OpenSSL doesn't have any interface for doing just the low level raw block hash part of SHA256. SHA256 begins by wrapping your data in a specially formatted buffer. Setting up the buffer takes an order of magnitude longer tM han the actual hashing if you're only hashing one or two blocks like we do. It's intended that the time is amortised if you were hashing many KB or MB of data. In BitcoinMiner, we format the buffer once and keep reusing it.<br>If you can find SHA256 code that's faster (with MinGW/GCC) than what we've got, that would be really great! (although, keep licensing in mind) The one we have is the only one I tried, so there's significant chance for improvement. <br>When I wrote it more than 2 years ago, there wM ere screaming hot SHA1 implementations but minimal attention to SHA256. That's a lot of time for them to come up with better stuff. SHA256 was a lot slower than the fastest SHA1 at the time than I thought it should be. Obviously SHA256 should be slower than SHA1 by a certain amount, but not by as much as I saw.<br>(hope you don't mind I renamed your thread, SHA-256 optimisation is something important that I keep forgetting about) #300 <b>Nenolod, the guy that wants to prove Bitcoin doesn't work. onM 07/18/2010</b> Ref=431.msg4073#msg4073 Typically, over 25,000 BTC. #299 <b>Did block generation crawl to a halt? on 07/18/2010</b> Ref=441.msg4095#msg4095 Nice graph! A moving average to smooth it out would be nice.<br>http://nullvoid.org/bitcoin/statistix.php says 212 blocks in the last 24 hours, or 8.8 per hour. #298 <b>JSON-RPC password on 07/19/2010</b> Ref=461.msg4169#msg4169 is quite a bit better. <br>Can you give me any examples of other stuff that does it that way? (and what the command line looks like)<br>The main change you're talking about here is instead of -rpcpw= when you start bitcoind, you'd use a switch that specifies a text file to go and read it from, right? (any ideas what I should name the switch?) #297 <b>Warning: don't use -server or bitcoind where you web browse (v0.3.2 and lower) on 07/19/2010</b> Ref=479.msg4263#msg4263 Don't use the -server or -daemon switch or run bitcoind on a machine where you use a web browser. It opens port 8332 on 127.0.0.1, the local loopback address, and you wouldn't think that web browsers could cross-site access it, but it is possible.<br>We're working on a release soon that puts a password on the JSON-RPC interface, but until then, avoid using the -server switch, and don't web browse on the same machine where bitcoind is running.<br>Update:<br>The JSON-RPC HTTP authentication feature in 0.3.3 M solves this problem. #296 <b>JSON-RPC password on 07/19/2010</b> Ref=461.msg4268#msg4268 So you drop a settings file in the ~/.bitcoin directory, that sounds better. In the "no password is set" warning, it could tell you where the file is and what to do.<br>What is the most popular and common settings file format?<br>HTTP basic authentication should be considered. In actual practice though, it's more work for web developers to figure out how to specify the password throughM some extra parameter in the HTTP or JSON-RPC wrapper than to just stick an extra parameter at the beginning of the parameter list. What do you think? Does HTTP basic authentication get us any additional benefits? Moving it off the parameter list but then you still have to specific it in a more esoteric place I'm not sure is a net win. <br><div class="q">Replying</div>You're also confusing me, what do you mean? Did I do something unintended? #295 <b>They want to delete the WikipedM ia article on 07/20/2010</b> Ref=342.msg4508#msg4508 Bitcoin is an implementation of Wei Dai's b-money proposal http://weidai.com/bmoney.txt on Cypherpunks http://en.wikipedia.org/wiki/Cypherpunks in 1998 and Nick Szabo's Bitgold proposal http://unenumerated.blogspot.com/2005/12/bit-gold.html<br>The timing is strange, just as we are getting a rapid increase in 3rd party coverage after getting slashdotted. I hope there's not a big hurry to wrap the discussion and decide. How long does WikipM edia typically leave a question like that open for comment?<br>It would help to condense the article and make it less promotional sounding as soon as possible. Just letting people know what it is, where it fits into the electronic money space, not trying to convince them that it's good. They probably want something that just generally identifies what it is, not tries to explain all about how it works.<br>If you post in http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Bitcoin please don't say "yeah, but M bitcoin is really important and special so the rules shouldn't apply" or argue that the rule is dumb or unfair. That only makes it worse. Try to address how the rule is satisfied.<br>Search "bitcoin" on google and see if you can find more big references in addition to the infoworld and slashdot ones. There may be very recent stuff being written by reporters who heard about it from the slashdot article.<br>I hope it doesn't get deleted. If it does, it'll be hard to overcome the presumption. Institutional momentum isM to stick with the last decision. (edit: or at least I assume so, that's how the world usually works, but maybe Wiki is different)<br> #294 <b>JSON-RPC password on 07/21/2010</b> Ref=461.msg4577#msg4577 Still need to know what's the most typical settings file format on Linux. Is there a standard file extension? I've never seen a settings file using JSON, and it doesn't look very human friendly with everything required to be in quotes. I think what I usually see is liM ke:<br># comment<br>setting=value<br>Is there a settings file thing in Boost?<br>When you're using bitcoind to issue commands from the command line as a client, can we have it get the password from the settings file then too?<br>Gavin pointed out I forgot to increment the column of numbers in CommandLineRPC, so the current -rpcpw= implementation doesn't work right from the command line with non-string parameters. (JSON-RPC is fine) Still under construction. #293 <b>JSON-RPC password on 07/21/M 2010</b> Ref=461.msg4646#msg4646 I was researching config file formats, here's a comparison.<br>YAML is massive. I'm not sure there's a lightweight easy to build library we can integrate into our project. Seems overkill.<br>JSON is tempting and I'm inclined to like it, but two main sticking points:<br>1) No comments! How can you have a config file where you can't comment out a line to disable it?<br>2) Not very user friendly to have to "quote" all the strings, including the keys, andM also have to remember the comma at the end of lines.<br>{<br> "key" : "value",<br>}<br>I suppose we could easily preprocess JSON reading the config file one line at a time, truncate the lines at any # character (and/or "//"?), concatenate them into a string and pass it to JSON, so you could go:<br># comment<br>"key" : "value", # still have to remember the comma <br>"key2" : "value", // comment like this or both<br>Boost has boost::program_options.<br>We could read lines ourselves anM d feed them into a map<string, string> mapConfig.<br>while (!eof)<br> read line<br> if '#' found, truncate line<br> split line at first ':' -> key, value<br> mapConfig.insert(key, value)<br>If we use the syntax:<br># comment<br>key : value<br>...and don't allow whitespace indenting before the keys, I guess we would be a subset of YAML and could switch to YAML someday if we need more complexity. <br>If we go with self parsed, that doesn't mean we can't use JSON onM particular parameter values as needed. If an option needs a list or more structured data, it could always parse its value as json:<br>key : ["item1", "item2", "item3"]<br>Although it has to be all on one line then.<br>I guess I'm leaning towards self parsed mapConfig:<br># comment<br>key : value<br> #292 <b>JSON-RPC password on 07/21/2010</b> Ref=461.msg4758#msg4758 <div class="q">Replying</div>Thanks for that survey!<br>I find "key value" a little unnatural. There ought M to be a more definite separator between key and value that suggests assignment. The space people may just be getting lazy using their language's split function.<br>key=some full sentence with spaces in it. # seems more clear<br>key some full sentence with spaces in it. # than this<br>Allright then, lets go with self-parsed mapConfig, syntax:<br># comment<br>key=value<br>file extension .conf. What's the filename, is it ~/.bitcoin/settings.conf or ~/.bitcoin/bitcoin.conf or what? <br>I think we better strM ip whitespace at the beginning and end of the key and the value.<br># user who likes column formatted <br>k = value<br>key = value<br>longerkey = this sentence would be this # "this sentence would be this"<br> key = value # guess this is ok too<br> nextkey = value<br> right = justified<br>The normal syntax should be "key=value", but you can't blame peoplM e for the occasional "key = value". #291 <b>JSON-RPC password on 07/21/2010</b> Ref=461.msg4775#msg4775 boost::program_options has the same "key=value" format. Gavin pointed out we can use it in a simple way as a parser without getting into all the esoteric c++ syntax like typed value extraction. We can use more features if we want later.<br>Lets go ahead with HTTP basic authentication instead of password as a parameter. #290 <b>JSON-RPC password on 07/22/M 2010</b> Ref=461.msg4928#msg4928 <div class="q">Replying</div>In many of the contexts of this RPC stuff, you can print to the console with fprintf(stdout, like this:<br>#if defined(__WXMSW__) && wxUSE_GUI<br> MyMessageBox("Warning: rpc password is blank, use -rpcpw=<password>\n", "Bitcoin", wxOK | wxICON_EXCLAMATION);<br>#else<br> fprintf(stdout, "Warning: rpc password is blank, use -rpcpw=<password>\n");<br>#endif #289 <b>JSON-RPC password on 07/23/2010</b> Ref=461.msg5337#msg5337 <div class="q">Replying</div>Yes, I think that would be really good so each dev doesn't have to figure it out themselves. We need a simple example for each of Python, PHP and Java importing the json-rpc library and using it to do a getinfo or something, including doing the http authentication part. #288 <b>JSON-RPC password on 07/23/2010</b> Ref=461.msg5338#msg5338 Gavin's changes look good. I think everything is complete. Here's a test build, please test it!<br>http://www.bitcoin.org/download/bitcoin-0.3.2.5-win32.zip<br>http://www.bitcoin.org/download/bitcoin-0.3.2.5-linux.tar.gz<br> #287 <b>bitcoind not responding to RPC on 07/23/2010</b> Ref=548.msg5339#msg5339 If I recall correctly, 500 is the prescribed status code for JSON-RPC error responses. There is still a JSON response in the body of the reply telling the explanation of M the error, which could be something like {"result":"","error":"bitcoin address not found","id":"1"}. #286 <b>Faster initial block download (5x faster) on 07/23/2010</b> Ref=550.msg5349#msg5349 By making some adjustments to the database settings, I was able to make the initial block download about 5 times faster. It downloads in about 30 minutes.<br>The database default had it writing each block to disk synchronously, which is not necessary. I changed the settings to let itM cache the changes in memory and write them out in a batch. Blocks are still written transactionally, so either the complete change occurs or none of it does, in either case the data is left in a valid state.<br>I only enabled this change during the initial block download. When you come within 2000 blocks of the latest block, these changes turn off and it slows down to the old way.<br>I built a test build if you'd like to start using it:<br>http://www.bitcoin.org/download/bitcoin-0.3.2.5-win32.zip<br>http://www.bitM coin.org/download/bitcoin-0.3.2.5-linux.tar.gz<br>These binaries also include Gavin Andresen's JSON-RPC HTTP authentication feature and the other important security improvements from 0.3.2.<br>I've been running a test over the last 24 hours that kills and restarts it randomly every 2-60 seconds (poor thing) while it's trying to do an initial block download and it's been fine.<br>There are no changes to the way it handles wallet.dat. This change is only for blk*.dat and the non-critical addr.dat. You can always deleM te blk*.dat if it gets screwed up and let it re-download.<br> #285 <b>Faster initial block download on 07/23/2010</b> Ref=550.msg5378#msg5378 <div class="q">Replying</div>Not really. I'll change it to 1000 next time. #284 <b>JSON-RPC password on 07/23/2010</b> Ref=461.msg5383#msg5383 I don't think authentication should be disabled by default if there's no conf file or the config file doesn't contain "rpcpassword", but what if it cM ontains "rpcpassword="?<br>I can see both points.<br>What if the programmer can't figure out how to do HTTP authentication in their language (Fortran or whatever) or it's not even supported by their JSON-RPC library? Should they be able to explicitly disable the password requirement?<br>OTOH, what if there's a template conf file, with<br>rpcpassword= # fill in a password here<br>There are many systems that don't allow you to log in without a password. This forum, for instance. Gavin's point seems strongM er.<br>BTW, I haven't tested it, but I hope having rpcpassword= in the conf file is valid. It's only if you use -server or -daemon or bitcoind that it should fail with a warning. If it doesn't need the password, it should be fine. Is that right? #283 <b>JSON-RPC Multiple Invocations on 07/24/2010</b> Ref=528.msg5416#msg5416 Obviously it's a bug that it repeats the header.<br>I was trying to follow the 1.0 spec: http://json-rpc.org/wiki/specification It caM lled for multiple invocation.<br>I think they mean it's like this, but I'm not sure:<br>Post:<br>{"method": "postMessage", "params": ["Hello all!"], "id": 99}<br>{"method": "postMessage", "params": ["I have a question:"], "id": 101}<br>Reply:<br>{"result": 1, "error": null, "id": 99}<br>{"result": 1, "error": null, "id": 101}<br>I can't remember where I think I saw that it's supposed to send back HTTP status 500 for an error reply. If it contains multiple responses and one is an error, I wonder if that makes the stM atus 500 for the whole thing, I guess so. Maybe it should always return 200. I think someone sounded like the 500 might be causing a problem.<br>This probably gets fixed after 0.3.3. Until then, just use single invocation. I wonder if any JSON-RPC package even supports multiple invocation, probably not.<br>It would be nice if we could pin down better how multiple-invocation is supposed to work, if at all, before trying to fix it, and whether returning HTTP status 500 for error response is right.<br> #282 <b>bitcoind not responding to RPC on 07/24/2010</b> Ref=548.msg5419#msg5419 Can anyone confirm if JSON-RPC over HTTP is supposed to use status 500 if the reply is an error reply? I can't remember where I picked that up, maybe it's wrong. It seems like 200 would make more sense unless there's something wrong with the mechanics of the HTTP request itself. (and maybe that's what it said and I forgot and spread 500 to all error responses) #281 <b>Warning: don't usM e -server or bitcoind on a machine where you web browse on 07/24/2010</b> Ref=479.msg5432#msg5432 The JSON-RPC HTTP authentication feature in 0.3.3 solves this problem. #280 <b>Version 0.3.2.5 -- please test! on 07/24/2010</b> Ref=556.msg5443#msg5443 Please test 0.3.2.5 in preparation for the 0.3.3 release! This build is looking good and should be the one that goes into 0.3.3. I encourage you to go ahead and upgrade now if you're on Windows M or Linux.<br>New features:<br>- Gavin Andresen's HTTP authentication to secure JSON-RPC<br>- 5x faster initial block download, under 30 minutes<br>Download here:<br>http://www.bitcoin.org/download/bitcoin-0.3.2.5-win32.zip<br>http://www.bitcoin.org/download/bitcoin-0.3.2.5-linux.tar.gz<br>Thanks! #279 <b>Reading/Writing Blocks and FLATDATA on 07/24/2010</b> Ref=555.msg5450#msg5450 FLATDATA was a workaround to serialize a fixed field length array. There was a cleaner way toM make it understand how to serialize arrays directly, but MSVC6 couldn't do it and I wanted to keep compatibility with MSVC6 at that time. We don't support MSVC6 anymore because we use something in Boost that doesn't. We lost support for it after 0.2.0. Maybe someday I'll swap in the clean way that just knows how to serialize fixed length arrays without wrapping them in FLATDATA. #278 <b>a simple traffic load test run on 07/25/2010</b> Ref=567.msg5694#msg5694 he test network?<br>http://bitcointalk.org/index.php?topic=363.0 #277 <b>a simple traffic load test run on 07/25/2010</b> Ref=567.msg5698#msg5698 Please do these tests on the test network. That's what it's for. Thanks. #276 <b>Bitcoin 0.3.3 released -- PLEASE UPGRADE on 07/25/2010</b> Ref=570.msg5707#msg5707 Please upgrade to 0.3.3! Important security improvements were made in 0.3.2 and 0.3.3.<br>New features:<br>- Gavin AndM resen's HTTP authentication to secure JSON-RPC<br>- 5x faster initial block download, under 30 minutes #275 <b>Stealing Coins on 07/25/2010</b> Ref=571.msg5712#msg5712 It's best if you tell it to me privately so it can be fixed first.<br>I just e-mailed you my e-mail address. (or you could PM me here) #274 <b>Stealing Coins on 07/25/2010</b> Ref=571.msg5724#msg5724 Red, thanks for telling me privately first! Please go ahead M and post it (and relieve the suspense for everyone!)<br>His point is that transactions paid to a Bitcoin Address are only as secure as the hash function. To make Bitcoin Addresses short, they are a hash of the public key, not the public key itself. An attacker would only have to break the hash function, not ECDSA. #273 <b>Stealing Coins on 07/25/2010</b> Ref=571.msg5740#msg5740 <div class="q">Replying</div>You would still have to sign it with public key 654321. You need toM find a collision using a public key for which you know the private key.<br>When you claim a Bitcoin Address transaction, you give your public key that matches the hash, then you must sign it with that key.<br>Red's point is that it's easy to quickly generate insecure public keys which you could break and find the private key after you find a collision.<br>He points out that if the public key was required to be a secure one, one which must have required significant work to find the prime numbers, that would increasM e the strength above that of the hash function alone. Someone trying to brute force would have to take time generating a key for each attempt.<br> #272 <b>Stealing Coins on 07/25/2010</b> Ref=571.msg5754#msg5754 <div class="q">Replying</div>2^80 is if you can use a birthday attack. You can't use a birthday attack for this, so the difficulty is the full 2^160 bits. Although, if you were trying to crack any one of 1 million (2^20) transactions, you could do a partial birthdaM y attack 2^160/2^20 = 2^140.<br>Bitcoin Addresses are the only place where 160-bit hash is used. Everything else is SHA-256. They're calculated as:<br>bitcoinaddress = RIPEMD-160(SHA-256(publickey))<br>Correct me if I'm wrong (please, and I'll gladly eat crow) but I think it would be hard to use an analytical attack on RIPEMD-160 in this case. An analytical attack prescribes a certain range or pattern of inputs to try that will greatly increase your chance of finding a collision. Here, you don't have that kind of cM ontrol over RIPEMD-160's input, because the input is the output of SHA-256. If an analytical attack helps you find an input to RIPEMD-160 that produces a collision, what are you going to do with it? You still have to get SHA-256 to output that value, so you would still have to break SHA-256 too.<br>For brute force, RIPEMD-160(SHA-256(x)) is no stronger than RIPEMD-160 alone. But for analytical attack, it seems like you must analytical attack both RIPEMD-160 and SHA-256. If I'm wrong, then the strength is the M same as RIPEMD-160 and the SHA-256 only serves as one round of key strengthening. #271 <b>JSON-RPC password on 07/25/2010</b> Ref=461.msg5767#msg5767 <div class="q">Replying</div>+1 to you for having such a long password that you found this bug.<br>Uploaded to SVN as rev 110.<br> #270 <b>JSON-RPC password on 07/25/2010</b> Ref=461.msg5769#msg5769 <div class="q">Replying</div>That's strange, didn't someone just say that was supposeM d to work? (what library was he using?) Post if you figure out what wrong.<br>I hope it's not going to put up this much of a fight for all PHP users.<br>Looks like we've got the Fortran scenario already. #269 <b>JSON-RPC password on 07/25/2010</b> Ref=461.msg5771#msg5771 <div class="q">Replying</div>SVN rev 111 #268 <b>md5? on 07/25/2010</b> Ref=458.msg5772#msg5772 For future reference, here's my public key. It's the sM ame one that's been there since the bitcoin.org site first went up in 2008. Grab it now in case you need it later.<br>http://www.bitcoin.org/Satoshi_Nakamoto.asc #267 <b>Stealing Coins on 07/25/2010</b> Ref=571.msg5778#msg5778 Sorry, actually it's ECDSA (Elliptic Curve Digital Signature Algorithm) not RSA. I shouldn't have said "prime numbers". ECDSA doesn't take much time to generate a keypair. #266 <b>bitcoind without wxWidgets on 07/26/2010</b> Ref=576.M I replaced the last of the few wxBase dependencies in bitcoind.<br>bitcoind now compiles without wxWidgets or wxBase in SVN rev 112.<br>main(int argc, char* argv[]) is added to init.cpp. CMyApp and the Startup folder stuff are moved to ui.cpp. ui.cpp and uibase.cpp aren't linked by bitcoind.<br>The makefiles have -DGUI to control whether the GUI is used.<br>I test compiled MinGW, VC and Ubuntu. I don't know if I broke the Mac OSX build, someone will need to check that.<br> #265 <b>Bitcoin x64 for Windows on 07/26/2010</b> Ref=501.msg5920#msg5920 <div class="q">Replying</div>Is that still starting from Crypto++? Lets get this into the main sourcecode. #264 <b>Bitcoin x86 for Windows on 07/27/2010</b> Ref=572.msg5978#msg5978 <div class="q">Replying</div>I added the cached SHA256 state idea to the SVN, rev 113. The speedup is about 70%. I credited it to tcatm based on your post in the x64 thread.M <br>I can compile the Crypto++ 5.6.0 ASM SHA code with MinGW but as soon as it runs it crashes. It says its for MASM (Microsoft's assembler) and the sample command line they give looks like Visual C++. Does it only work with the MSVC and Intel compilers? #263 <b>Proof-of-work difficulty increasing on 07/27/2010</b> Ref=43.msg5990#msg5990 New difficulty factor 244.213223092<br>+35%<br>I updated the first post.<br>date, difficulty factor, % change<br>2009  M ; 1.00<br>30/12/2009 1.18 +18%<br>11/01/2010 1.31 +11%<br>25/01/2010 1.34 +2%<br>04/02/2010 1.82 +36%<br>14/02/2010 2.53 +39%<br>24/02/2010 3.78 +49%<br>08/03/2010 4.53 +20%<br>21/03/2010 4.57 +9%<br>01/04/2010 6.09 +33%<br>12/04/2010 7.82 +28%<br>21/04/M 2010 11.46 +47%<br>04/05/2010 12.85 +12%<br>19/05/2010 11.85 -8%<br>29/05/2010 16.62 +40%<br>11/06/2010 17.38 +5%<br>24/06/2010 19.41 +12%<br>06/07/2010 23.50 +21%<br>13/07/2010 45.38 +93%<br>16/07/2010 181.54 +300%<br>27/07/2010 244.21 +35%<br> #262 <b>Bitcoin x86 for Windows oM n 07/27/2010</b> Ref=572.msg6069#msg6069 <div class="q">Replying</div>I added a subset of the Crypto++ 5.6.0 library to the SVN. I stripped it down to just SHA and 11 general dependency files. There shouldn't be any other crypto in there other than SHA.<br>I aligned the data fields and it worked. The ASM SHA-256 is about 48% faster. The combined speedup is about 2.5x faster than version 0.3.3.<br>I guess it's using SSE2. It automatically sets its build configuration at compile time based oM n the compiler environment.<br>It looks like it has some SSE2 detection at runtime, but it's hard to tell if it actually uses it to fall back if it's not available. I want the release builds to have SSE2. SSE2 has been around since the first Pentium 4. A Pentium 3 or older would be so slow, you'd be wasting your electricity trying to generate on it anyway.<br>This is SVN rev 114. #261 <b>Bitcoin x86 for Windows on 07/27/2010</b> Ref=572.msg6083#msg6083 OK, thanks. I'd alsoM like to know if it runs fine as long as you don't turn on Generate. You'd think as long as it doesn't actually execute any SSE2 instructions, it would still load. At least Pentium 3's could run it without generating. #260 <b>Having problems specifing -datadir on 07/28/2010</b> Ref=601.msg6268#msg6268 It was able to reproduce this. The database doesn't like the relative path.<br>"bitcoind -datadir=./subdir getinfo" works against a running daemon, but trying to start the daM emon as "bitcoind -datadir=./subdir" gets that exception.<br>I guess we should resolve the full path before passing it to the database.<br>It looks like you were the first one to ever use -datadir with a relative path. #259 <b>Build error SVN r115 on my Mac: workaround on 07/28/2010</b> Ref=604.msg6273#msg6273 Was that the only thing I broke in the OSX build?! Does it actually work after just that one change?<br>I had to do that for makefile.vc also. It compiled, butM SHA-256 didn't work correctly; it returned the same incorrect hash each time.<br>We'll disable it now, and if anyone figures out how to fix it, we can re-enable it then. It's still 1.7x faster from the midstate optimisation.<br>The Crypto++ ASM SHA-256 works with GCC on Linux and Windows (MinGW).<br>I uploaded this makefile.osx change to SVN. (let me know if that compiles now) #258 <b>Difficulty on 07/29/2010</b> Ref=587.msg6301#msg6301 You were looking at the wrong code.M Here's the code that applies:<br><div class="codeheader">Code:</div><div class="code">bool CBlock::CheckBlock() const<br>{<br>...<br> // Check timestamp<br> if (nTime > GetAdjustedTime() + 2 * 60 * 60)<br> return error("CheckBlock() : block timestamp too far in the future");<br>...<br>bool CBlock::AcceptBlock()<br>{<br> ...<br> // Check timestamp against prev<br> if (nTime <= pindexPrev->GetM MedianTimePast())<br> return error("AcceptBlock() : block's timestamp is too early");<br></div><br>The timestamp is limited to up to 2 hours in the future. It can be earlier than the previous block, but it must be greater than the median of the last 11 blocks. The reason for doing it that way is so the time can get corrected in the next block if the previous block had the time too far in the future, like what happened.<br> #257 <b>Scalability and transaction rate on M 07/29/2010</b> Ref=532.msg6306#msg6306 The current system where every user is a network node is not the intended configuration for large scale. That would be like every Usenet user runs their own NNTP server. The design supports letting users just be users. The more burden it is to run a node, the fewer nodes there will be. Those few nodes will be big server farms. The rest will be client nodes that only do transactions and don't generate.<br><div class="q">Replying</div>See the snack machM ine thread, I outline how a payment processor could verify payments well enough, actually really well (much lower fraud rate than credit cards), in something like 10 seconds or less. If you don't believe me or don't get it, I don't have time to try to convince you, sorry.<br>http://bitcointalk.org/index.php?topic=423.msg3819#msg3819<br> #256 <b>wiki registration email? on 07/29/2010</b> Ref=338.msg6307#msg6307 WTF? How did we get on that? AFAIK, the only e-mailM is if you tell the forum to do notifications, and I guess the wiki registration. I'd consider turning off the forum notification e-mails, I don't know why we have that. #255 <b> Upgrade to 0.3.6 on 07/29/2010</b> Ref=626.msg6451#msg6451 Please upgrade to 0.3.6 ASAP! We fixed an implementation bug where it was possible that bogus transactions could be displayed as accepted. Do not accept Bitcoin transactions as payment until you upgrade to version 0.3.6!<br>If you caM n't upgrade to 0.3.6 right away, it's best to shut down your Bitcoin node until you do.<br>Also in 0.3.6, faster hashing:<br>- midstate cache optimisation thanks to tcatm<br>- Crypto++ ASM SHA-256 thanks to BlackEye<br>Total generating speedup 2.4x faster.<br>Download:<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.6/<br>Windows and Linux users: if you got 0.3.5 you still need to upgrade to 0.3.6.<br> #254 <b> version 0.3.6 on 07/29/2010</b> Ref=626.msg6469#msg6469 Haven't had time to update the SVN yet. Wait for 0.3.6, I'm building it now. You can shut down your node in the meantime. #253 <b> version 0.3.6 on 07/29/2010</b> Ref=626.msg6480#msg6480 SVN is updated with version 0.3.6.<br>Uploading Windows build of 0.3.6 to Sourceforge now, then will rebuild linux. #252 <b> Upgrade to 0.3.6 ASAP! on 07/29/2010</b> Ref=626.msg6490#msg6490 0.3.6 Linux build is back to the old makeM file.unix. It static links libjpeg so that shouldn't be a problem.<br>Is that working better?<br>If you got 22DbRunRecoveryException and you've used someone else's build before, you may need to delete (or move the files somewhere else) database/log.000000*<br>Windows and Linux users: if you got 0.3.5 you still need to upgrade to 0.3.6. #251 <b> Upgrade to 0.3.6 ASAP! on 07/29/2010</b> Ref=626.msg6502#msg6502 "./bitcoin: /lib64/libc.so.6: version `GLIBC_2.11' not found (reqM uired by ./bitcoin)" isn't a new problem that started with 0.3.6 is it? This was built on the same OS installations as 0.3.0.<br>Unfortunately I upgraded to Ubuntu 10.04 before 0.3.0. I will not upgrade anymore. I don't know when I might have time to reinstall to downgrade, but at least by not upgrading, it'll gradually fix itself. #250 <b>Implementation bug prior to 0.3.6 on 07/29/2010</b> Ref=628.msg6508#msg6508 Actually, it works well to just PM me. I'm the one whM o's going to be fixing it. If you find a security flaw, I would definitely like to hear from you privately to fix it before it goes public. #249 <b>Transaction disappeared in the void... on 07/29/2010</b> Ref=615.msg6512#msg6512 If the transaction didn't go out immediately at first, like if you weren't connected at the time, it may take up to 2 hours to resend it. Long term, it does keep relentlessly sending it.<br>I'll shorten that length of time in a future version.<br>YM ou do need to have downloaded the complete block chain (currently 71040 blocks) before you'll see any confirms. Same with the recipient. #248 <b>Linux distribution download on 07/29/2010</b> Ref=612.msg6516#msg6516 Yeah, acutely aware that I should have stayed on 9.04 or 9.10. It's a lot more work to downgrade than upgrade and I've been squeezed for time. Ubuntu is the most popular distro, so I'm staying with that. #247 <b> Upgrade to 0.3.6 ASAP! on 07/29/M 2010</b> Ref=626.msg6542#msg6542 <div class="q">Replying</div>We don't really need pre-compiled header. It only makes it compile slightly faster. I think I'll just get rid of it. Even still, you'd still need to remember to "make -f makefile.unix clean" or delete headers.h.gch one more time to get rid of the leftover file.<br>Damn that GLIBC_2.11. I thought I'd been careful not to accept any of the updates. #246 <b>Bug: "Immature" coins lost in wallet.dat during transactionM on 07/30/2010</b> Ref=642.msg6701#msg6701 I don't get how it let you send if it was not matured. Your balance would have been lower than the amount. It would have said balance 0.01, right? If I try that it says "you don't have enough money" or "Insufficient funds" from the command line.<br>How many blocks did it say it had left to mature when you sent?<br>There's a chance it might still go through.<br>Have you copied or moved your wallet.dat in any way?<br><br> <b>[PATCH] implement 'listtransactions' on 07/30/2010</b> Ref=611.msg6706#msg6706 What are you needing to use listtransactions for?<br>The reason I didn't implement listtransactions is I want to make sure web programmers don't use it. It would be very easy to latch onto that for watching for received payments. There is no reliable way to do it that way and make sure nothing can slip through the cracks. Until we have solid example code using getreceivedbyaddress and getreceivedbylabel to pM oint to and say "use this! use this! don't use listtransactions!", I don't think we should implement listtransactions.<br>When we do implement listtransactions, maybe one way to fight that is to make it all text. It should not break down the fields into e.g. comment, confirmations, credit, debit. It could be one pretty formatted string like "0/unconfirmed 0:0:0 date comment debit 4 credit 0" or something so it's hard for programmers to do the wrong thing and process it. It's M only for viewing the status of your server. I guess that would be kinda annoying for web interfaces that would rather format it into html columns though. #244 <b> Upgrade to 0.3.6 ASAP! on 07/30/2010</b> Ref=626.msg6711#msg6711 <div class="q">Replying</div>I can't understand why you're having so much pain. I just followed the instructions in build-unix.txt. I made a couple little corrections for Boost 1.37, which I'll put on SVN the next time I update it, noted below:<br>DM ependencies<br>------------<br>sudo apt-get install build-essential<br>sudo apt-get install libgtk2.0-dev<br>sudo apt-get install libssl-dev<br>sudo apt-get install libdb4.7-dev<br>sudo apt-get install libdb4.7++-dev<br>sudo apt-get install libboost-all-dev (or libboost1.37-dev)<br>wxWidgets<br>---------<br>cd /usr/local<br>tar -xzvf wxWidgets-2.9.0.tar.gz<br>cd /usr/local/wxWidgets-2.9.0<br>mkdir buildgtk<br>cd buildgtk<br>../configure --with-gtk --enable-debug --disable-shared --enable-monolithic<br>make<br>sudo M su<br>make install<br>ldconfig<br><br>added a comment in makefile.unix:<br># for boost 1.37, add -mt to the boost libraries<br>LIBS= \<br> -Wl,-Bstatic \<br> -l boost_system \<br> -l boost_filesystem \<br> -l boost_program_options \<br> -l boost_thread \<br> -l db_cxx \<br> -l crypto \<br> -Wl,-Bdynamic \<br> -l gthread-2.0<br> #243 <b> Upgrade to 0.3.6 ASAP! on 07/30/2010</b> Ref=626.msg6728#msg6728 <div class="q">Replying</div>Except that wouldn't work for boost 1.40+ (on Ubuntu 10.04), where you need to get libboost-all-dev.<br>Seems they changed everything around in Boost recently, "-mt" and all that, makes it hard.<br>BTW, I tried Boost 1.34 but it didn't have the boost.interprocess stuff.<br>Mac OSX version is available now. See bitcoin.org or the SourceForge link. #242 <b>4 hashes parallel on SSE2 CPUs for 0.3.6 on 07/31/2010</b> Ref=648.msg6751#msg6751 That's amazing... <br>So are you saying you use 128-bit registers to SIMD four 32-bit data at once? I've wondered about that for a long time, but I didn't think it would be possible due to addition carrying into the neighbour's value. #241 <b>Webpage idea: Next predicted difficulty change on 07/31/2010</b> Ref=651.msg6760#msg6760 It would be neat if someone had a page (like that handy calculator at http://www.alloscomp.com/bitcoin/calculator.php) that prM ojects what the next difficulty adjustment will be.<br>projected difficulty adjustment multiplier = <br> blocks_since_last_adjustment / 2016<br> ------------------------------------<br> time_since_last_adjustment / 14_days<br>For instance, if it already got half way to the next adjustment in only 3.5 days instead of 7, we would expect difficulty to double:<br> (1008/2016) / (3.5/14) = 0.5/0.25 = 2.0<br>Also, it could show the predicted time when the next adjustment will occur, and tell when the M last adjustment was and how much it changed. #240 <b>Linux distribution download on 07/31/2010</b> Ref=612.msg6822#msg6822 It can be built with Boost 1.37 or later.<br> #239 <b>Linux version => No GUI after upgrade. WTF? on 08/02/2010</b> Ref=655.msg7057#msg7057 Did it print anything to the console? Are you sure you didn't run "bitcoind"?<br>Try version 0.3.7. #238 <b>Mac Client Problems Outlined... on 08/0M 2/2010</b> Ref=660.msg7068#msg7068 "Minimize to the tray instead of the taskbar" & "Minimize to the tray on close" must not be implemented yet on the Mac. We should grey them out in the next version.<br> #237 <b>4 hashes parallel on SSE2 CPUs for 0.3.6 on 08/02/2010</b> Ref=648.msg7084#msg7084 Is it 2x fast on AMD and 1/2 fast on Intel?<br><div class="q">Replying</div>Tried that, but it doesn't work for things on the stack. I ran some tests.<bM r>It doesn't even cause an error, it just doesn't align it. #236 <b>Protocol Buffers for Bitcoin on 08/02/2010</b> Ref=632.msg7090#msg7090 The reason I didn't use protocol buffers or boost serialization is because they looked too complex to make absolutely airtight and secure. Their code is too large to read and be sure that there's no way to form an input that would do something unexpected.<br>I hate reinventing the wheel and only resorted to writing my own serialization M routines reluctantly. The serialization format we have is as dead simple and flat as possible. There is no extra freedom in the way the input stream is formed. At each point, the next field in the data structure is expected. The only choices given are those that the receiver is expecting. There is versioning so upgrades are possible.<br>CAddress is about the only object with significant reserved space in it. (about 7 bytes for flags and 12 bytes for possible future IPv6 expansion)<br>The larger things we have like M blocks and transactions can't be optimized much more for size. The bulk of their data is hashes and keys and signatures, which are uncompressible. The serialization overhead is very small, usually 1 byte for size fields.<br>On Gavin's idea about an existing P2P broadcast infrastructure, I doubt one exists. There are few P2P systems that only need broadcast. There are some libraries like Chord that try to provide a distributed hash table infrastructure, but that's a huge difficult problem that we don't need or want.M Those libraries are also much harder to install than ourselves. #235 <b>Builds for Ubuntu? on 08/03/2010</b> Ref=454.msg7328#msg7328 <div class="q">Replying</div>Yes, 0.3.7 has it. It was in rev 112. #234 <b>Bitcoind x86 binary for CentOS on 08/03/2010</b> Ref=685.msg7331#msg7331 <div class="q">Replying</div>I urge you not to use BDB 4.8. The database/log0000* files will be incompatible if anyone uses your build and then goes bacM k to the official build.<br> #233 <b>Content-Length header and 500 (was Authentication, JSON RPC and Python) on 08/03/2010</b> Ref=689.msg7335#msg7335 <div class="q">Replying</div>I guess we should try to support the case where there's no Content-Length parameter. I don't want to rip and replace streams though, even if it has to read one character at a time.<br>Edit: That is, assuming there actually are any libraries that don't support Content-Length. <b>What happens when network is split for prolonged time and reconnected? on 08/03/2010</b> Ref=661.msg7356#msg7356 creighto: I agree with that idea. After a few hours, it should be possible for the client to notice if the flow of blocks has dropped off by more than would be likely just by chance. It could tell if it's not hearing the hum of the world anymore.<br><div class="q">Replying an user</div>In practice, splits are likely to be very asymmetrical. It would be hard to split the worlM d down the middle. More likely it would be a single country vs the rest of the world, lets say a 1:10 split. In that case, it would take the minority fork 10 times as long to generate 100 blocks, so about 7 days. Also it would be super easy for the client to realize it's hearing way too few blocks and something must be wrong.<br><div class="q">Replying</div>There's no time limit. Assuming you weren't spending coins generated in the minority fork, or spending someone's double-spends you received, your transactions cM an get into the other chain at any time later.<br><br> #231 <b>Please upgrade to 0.3.8! on 08/03/2010</b> Ref=696.msg7364#msg7364 Version 0.3.8 adds an important security improvement. Everyone should upgrade to get this change.<br>The new safety feature displays a warning message in the status bar and locks down RPC if it detects a problem that may require an upgrade.<br>If it sees a longer chain, but it can't process it, then it knows something is wrong. It displays "WARNM ING: Displayed transactions may not be correct! You may need to upgrade." and makes most RPC commands return an error. It still keeps generating as normal, which is necessary for the stability of the network.<br>There were important security updates in the versions before this too, so if you haven't upgraded recently, it's extremely important that you upgrade now!<br>Also, don't forget, we recently added 2.4x faster generating thanks to tcatm's mid-state caching optimisation and BlackEye's help getting ASM SHM A-256 working.<br>Download:<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.8/ #230 <b>Bitcoind x86 binary for CentOS on 08/04/2010</b> Ref=685.msg7372#msg7372 <div class="q">Replying</div>I'd rather you didn't make a build of the 1000 node connecting version available. It won't take very many people running that before we have to make another release just to limit the incoming connections. #229 <b>Please upgrade to 0.3.8! on 08/04/201M 0</b> Ref=696.msg7381#msg7381 I guess SourceForge hasn't updated its mirrors yet. The files are there on the admin side, but not on the user side. I have no idea how long that will take. It's always been immediate in the past.<br>Edit: SourceForge is updated now. #228 <b>Building initial transaction trust through "coin ripping" on 08/04/2010</b> Ref=635.msg7385#msg7385 The software is designed to support things like this. I was going to post detaiM ls of the plans for Escrow, but since getting slashdotted I haven't had time. #227 <b>Flood attack 0.00000001 BC on 08/04/2010</b> Ref=287.msg7524#msg7524 <div class="q">Replying</div>Bitcoin isn't currently practical for very small micropayments. Not for things like pay per search or per page view without an aggregating mechanism, not things needing to pay less than 0.01. The dust spam limit is a first try at intentionally trying to prevent overly small micropayments likeM that.<br>Bitcoin is practical for smaller transactions than are practical with existing payment methods. Small enough to include what you might call the top of the micropayment range. But it doesn't claim to be practical for arbitrarily small micropayments. <br> #226 <b>Flood attack 0.00000001 BC on 08/05/2010</b> Ref=287.msg7687#msg7687 Forgot to add the good part about micropayments. While I don't think Bitcoin is practical for smaller micropayments right now, it will eM ventually be as storage and bandwidth costs continue to fall. If Bitcoin catches on on a big scale, it may already be the case by that time. Another way they can become more practical is if I implement client-only mode and the number of network nodes consolidates into a smaller number of professional server farms. Whatever size micropayments you need will eventually be practical. I think in 5 or 10 years, the bandwidth and storage will seem trivial.<br>I am not claiming that the network is impervious to DoS attack.M I think most P2P networks can be DoS attacked in numerous ways. (On a side note, I read that the record companies would like to DoS all the file sharing networks, but they don't want to break the anti-hacking/anti-abuse laws.)<br>If we started getting DoS attacked with loads of wasted transactions back and forth, you would need to start paying a 0.01 minimum transaction fee. 0.1.5 actually had an option to set that, but I took it out to reduce confusion. Free transactions are nice and we can keep it that way if peM ople don't abuse them.<br>That brings up the question: if there was a minimum 0.01 fee for each transaction, should we automatically add the fee if it's just the minimum 0.01? It would be awfully annoying to ask each time. If you have 50.00 and send 10.00, the recipient would get 10.00 and you'd have 39.99 left. I think it should just add it automatically. It's trivial compared to the fees many other types of services add automatically.<br><div class="q">Replying</div>No, not at all.<br> <b>Flood attack 0.00000001 BC on 08/05/2010</b> Ref=287.msg7694#msg7694 <div class="q">Replying</div>One alternative is to use a round-up system. You pay for, say, 1000 pages or images or downloads or searches or whatever at a time. When you've used up your 1000 pages, you pay for another 1000 pages. If you only use 1 page, then you have 999 left that you may never use, but it's not a big deal because the cost per 1000 is still small.<br>Or you could pay per day. The first time you accessM the site on a given day, you pay for 24 hours of access.<br>Per 1000 or per day may be easier for consumers to get their heads around too. They worry about per item because it's harder to figure if it might add up too fast. Unlimited for 24 hours they know what the cost will be. Or if 1000 seems like plenty, they're not worrying that it's costing more with each click if they figure 1000 is more than they'll probably use. #224 <b>Flood attack 0.00000001 BC on 08/05/2010</b> Ref=287.msg7696#msg7696 <div class="q">Replying</div>I don't know a way to implement that. The transaction fee to the block creator uses a special trick to include the transaction fee without any additional size. If there was a transaction for each transaction fee, then what about the transactions fees for the transaction fee's transaction? #223 <b>Who's the Spanish jerk draining the Faucet? on 08/05/2010</b> Ref=704.msg7703#msg7703 Silently failing would look bad.<br><dM iv class="q">Replying</div>Definitely needed. What rate are you thinking of? Ultimately, it's better to rate limit it than to let it all drain out.<br><div class="q">Replying</div>That might work surprisingly well. If it works, it keeps them from hitting the rate limit, but the rate limit is there as the last line of defence. <br><div class="q">Replying</div>Definitely time to lower it. <br> #222 <b>bitcoind transaction to ip address on 08/05/2010</b> Ref=711.msg7705#msg7705 It's not implemented.<br>It turned out nobody liked that mode of transfer anyway, so it hasn't had much development attention. #221 <b>Transaction Overload Solution on 08/05/2010</b> Ref=713.msg7706#msg7706 I can't think of a way to implement that. All the transaction fees would be additional transactions. What about the transaction fees for the transaction fee's transaction?<br> #220 <b>Flood attack 0.00000001 BC on 08/05/2010</b> Ref=287.msg7710M <div class="q">Replying</div>If you're only going to have one person work on building the block, that could take days. Oh, do you mean send a different variation to each node with the tx fee written to them?<br>The way it is now, it's whoever builds this gets it.<br>If we needed to, we could have a BitTorrent-esque tit-for-tat for transaction broadcast. Relay paying transactions to me, or I won't relay them to you. It probably won't be an actual problem though. It only takes one nM ode relaying like it should to cancel out 7 others greedily not relaying. #219 <b>A proposal for a semi-automated Escrow mechanism on 08/05/2010</b> Ref=645.msg7712#msg7712 A transaction can be written that requires two signatures to spend it next. You write a payment that requires the signature of both the recipient and the sender to spend it. To release the escrow, you give the recipient the signature for your half, or the payee can return it by giving you his signed halM f. There's no mediator in this simple case. The recourse is to refuse to ever release it, essentially burning the money. #218 <b>latency and locality on 08/07/2010</b> Ref=723.msg8103#msg8103 Once you get away from a system where each node's influence is proportional to their CPU power, then what else do you use to determine who is (approximately) one person?<br> #217 <b>Bitcoin minting is thermodynamically perverse on 08/07/2010</b> Ref=721.msg8114#msg811M It's the same situation as gold and gold mining. The marginal cost of gold mining tends to stay near the price of gold. Gold mining is a waste, but that waste is far less than the utility of having gold available as a medium of exchange.<br>I think the case will be the same for Bitcoin. The utility of the exchanges made possible by Bitcoin will far exceed the cost of electricity used. Therefore, <i>not</i> having Bitcoin would be the net waste.<br><div class="q">Replying</div>Each node'sM influence on the network is proportional to its CPU power. The only way to show the network how much CPU power you have is to actually use it.<br>If there's something else each person has a finite amount of that we could count for one-person-one-vote, I can't think of it. IP addresses... much easier to get lots of them than CPUs.<br>I suppose it might be possible to measure CPU power <i>at certain times</i>. For instance, if the CPU power challenge was only run for an average of 1 minute every 10 minutes. You coulM d still prove your total power at given times without running it all the time. I'm not sure how that could be implemented though. There's no way for a node that wasn't present at the time to know that a past chain was actually generated in a duty cycle with 9 minute breaks, not back to back.<br>Proof-of-work has the nice property that it can be relayed through untrusted middlemen. We don't have to worry about a chain of custody of communication. It doesn't matter who tells you a longest chain, the proof-of-work speM #216 <b>A proposal for a semi-automated Escrow mechanism on 08/07/2010</b> Ref=645.msg8137#msg8137 <div class="q">Replying</div>Really? Do you think people won't be able to understand the benefit? (If your response is an argument that there's no benefit at all, I guess that will reinforce the case that people won't be able to understand it.) #215 <b>Escrow on 08/07/2010</b> Ref=750.msg8140#msg8140 s an outline of the kind of escrow transaction that's possible in software. This is not implemented and I probably won't have time to implement it soon, but just to let you know what's possible.<br>The basic escrow: The buyer commits a payment to escrow. The seller receives a transaction with the money in escrow, but he can't spend it until the buyer unlocks it. The buyer can release the payment at any time after that, which could be never. This does not allow the buyer to take the money back, but it does give him M the option to burn the money out of spite by never releasing it. The seller has the option to release the money back to the buyer.<br>While this system does not guarantee the parties against loss, it takes the profit out of cheating.<br>If the seller doesn't send the goods, he doesn't get paid. The buyer would still be out the money, but at least the seller has no monetary motivation to stiff him.<br>The buyer can't benefit by failing to pay. He can't get the escrow money back. He can't fail to pay due to lack of fM unds. The seller can see that the funds are committed to his key and can't be sent to anyone else.<br>Now, an economist would say that a fraudulent seller could start negotiating, such as "release the money and I'll give you half of it back", but at that point, there would be so little trust and so much spite that negotiation is unlikely. Why on earth would the fraudster keep his word and send you half if he's already breaking his word to steal it? I think for modest amounts, almost everyone would refuse on principM #214 <b>4 hashes parallel on SSE2 CPUs for 0.3.6 on 08/07/2010</b> Ref=648.msg8145#msg8145 <div class="q">Replying</div>Sorry about that. CRITICAL_BLOCK isn't perfect. You have to be careful not to break or continue out of it. There's an assert that catches and warns about break. I can be criticized for using it, but the syntax would be so much more bloated and error prone without it.<br>Is there a chance the SSE2 code is slow on Intel because of some quirk tM hat could be worked around? For instance, if something works but is slow if it's not aligned, or thrashing the cache, or one type of instruction that's really slow? I'm not sure how available it is, but I think Intel used to have a profiler for profiling on a per instruction level. I guess if tcatm doesn't have a system with the slow processor to test with, there's not much hope. But it would be really nice if this was working on most CPUs. #213 <b>bitcoin generation broken in 0.3.8? onM 08/09/2010</b> Ref=753.msg8388#msg8388 I found that SSE2 only added a slight 2% speedup, which didn't seem worth the incompatibility. I was trying to take the safer option.<br>It doesn't look to me like Crypto++ could be deciding whether to use SSE2 at runtime. There's one place where it detects SSE2 for deciding some block count parameter, but the SSE2 stuff is all #ifdef at compile time and I can't see how that would switch at runtime. Maybe I'm not looking in the right place.<br>ShouldM we enable SSE2 in all the makefiles? It seems like we must in case someone compiles with 64-bit.<br>I will recompile the 64-bit part of the Linux 0.3.8 release. #212 <b>Version 0.3.8.1 update for Linux 64-bit on 08/09/2010</b> Ref=765.msg8402#msg8402 When we switched to Crypto++ 5.6.0 SHA-256 in version 0.3.6, generation got broken on the Linux 64-bit build. Version 0.3.8.1 is on SourceForge with the 64-bit binary updated.<br>Download:<br>http://sourceforge.net/projM ects/bitcoin/files/Bitcoin/bitcoin-0.3.8/bitcoin-0.3.8.1-linux.tar.gz/download<br>Future versions after 0.3.8 will probably require SSE2. Anyone have Pentium 3 or older where this would be a problem? #211 <b>What could be the transition plan to Y2038 compliant Bitcoin? on 08/09/2010</b> Ref=760.msg8413#msg8413 <b>unsigned</b> int is good until 2106. Surely the network will have to be totally revamped at least once by then.<br>There should not be any signed int. If you've fM ound a signed int somewhere, please tell me (within the next 25 years please) and I'll change it to unsigned int. #210 <b>bitcoin generation broken in 0.3.8? (64-bit) on 08/09/2010</b> Ref=753.msg8417#msg8417 I uploaded 0.3.8.1 for Linux with re-built 64-bit. I ran a difficulty 1 test with it and it has generated blocks.<br>http://bitcointalk.org/index.php?topic=765.0<br>Download:<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.8/bitcoin-0.3.8.1-linuxM .tar.gz/download<br> #209 <b>Version 0.3.8.1 update for Linux 64-bit on 08/09/2010</b> Ref=765.msg8422#msg8422 That's a good point, I believe you could run with generation off if you don't have SSE2.<br>How about add to the top of cryptopp/config.h:<br>#if !defined(_M_X64) && !defined(__x86_64__)<br>#define CRYPTOPP_DISABLE_SSE2 1<br>#endif<br>that would disable SSE2 for 32-bit builds. (at least with GCC or MSVC) #208 <b>Connection limits on M 08/09/2010</b> Ref=766.msg8424#msg8424 SVN rev 125:<br>- Always make 8 outbound connections even if have 8 inbound<br>- Limit outbound connections to one per a.b.?.? range<br>- Switch -maxconnections=#<br>I added the (currently undocumented) switch -maxconnections=#. You shouldn't use it unless you need to because your router can't maintain a lot of connections, then try -maxconnections=30.<br>I haven't really tested -maxconnections much, could someone test it?<br> >Bitcoin minting is thermodynamically perverse on 08/09/2010</b> Ref=721.msg8431#msg8431 The heat from your computer is not wasted if you need to heat your home. If you're using electric heat where you live, then your computer's heat isn't a waste. It's equal cost if you generate the heat with your computer.<br>If you have other cheaper heating than electric, then the waste is only the difference in cost.<br>If it's summer and you're using A/C, then it's twice.<br>Bitcoin generation shouldM end up where it's cheapest. Maybe that will be in cold climates where there's electric heat, where it would be essentially free. #206 <b>Version 0.3.8.1 update for Linux 64-bit on 08/10/2010</b> Ref=765.msg8628#msg8628 SVN rev 128: disable SSE2 on 32-bit. This may only disable it for MSVC and GCC. Other compilers might have different 64-bit defines. #205 <b>Not a suggestion on 08/11/2010</b> Ref=770.msg8637#msg8637 interesting topic. If a solution was found, a much better, easier, more convenient implementation of Bitcoin would be possible.<br>Originally, a coin can be just a chain of signatures. With a timestamp service, the old ones could be dropped eventually before there's too much backtrace fan-out, or coins could be kept individually or in denominations. It's the need to check for the absence of double-spends that requires global knowledge of all transactions.<br>The challenge is, how do you prove that no other spends M exist? It seems a node must know about all transactions to be able to verify that. If it only knows the hash of the in/outpoints, it can't check the signatures to see if an outpoint has been spent before. Do you have any ideas on this?<br>It's hard to think of how to apply zero-knowledge-proofs in this case.<br>We're trying to prove the absence of something, which seems to require knowing about all and checking that the something isn't included. #204 <b>Escrow on 08/11/2010</b> Ref=750.msg864M <div class="q">Replying</div>That makes it sound like it might somehow get lost and the parties can't get it even if they want to cooperate.<br>When you pay for something up front, you can't get it back either. Consumers seem comfortable with that. It's no worse than that.<br>Either party always has the option to release it to the other.<br><div class="q">Replying</div>Then you must also be against the common system of payment up front, where the customer loses.<br>Payment up froM nt: customer loses, and the thief gets the money.<br>Simple escrow: customer loses, but the thief doesn't get the money either.<br>Are you guys saying payment up front is better, because at least the thief gets the money, so at least someone gets it?<br>Imagine someone stole something from you. You can't get it back, but if you could, if it had a kill switch that could be remote triggered, would you do it? Would it be a good thing for thieves to know that everything you own has a kill switch and if they stealM it, it'll be useless to them, although you still lose it too? If they give it back, you can re-activate it.<br>Imagine if gold turned to lead when stolen. If the thief gives it back, it turns to gold again.<br>It still seems to me the problem may be one of presenting it the right way. For one thing, not being so blunt about "money burning" for the purposes of game theory discussion. The money is never truly burned. You have the option to release it at any time forever.<br> #203 <b>Compile erM ror in SVN r127 on 08/11/2010</b> Ref=784.msg8651#msg8651 Updated SVN. Thanks.<br>There's little hope of not repeatedly stumbling over that in the future. It doesn't break the compile for me. #202 <b>Not a suggestion on 08/11/2010</b> Ref=770.msg8798#msg8798 Still thinking this idea through...<br>The only job the network needs to do is to tell whether a spend of an outpoint is the first or not.<br>If we're willing to have clients keep the history M for their own money, then some of the information may not need to be stored by the network, such as:<br>- the value<br>- the association of inpoints and outpoints in one transaction<br>The network would track a bunch of independent outpoints. It doesn't know what transactions or amounts they belong to. A client can find out if an outpoint has been spent, and it can submit a satisfying inpoint to mark it spent. The network keeps the outpoint and the first valid inpoint that proves it spent. The inpoint signs a hash M of its associated next outpoint and a salt, so it can privately be shown that the signature signs a particular next outpoint if you know the salt, but publicly the network doesn't know what the next outpoint is.<br>I believe the clients would have to keep the entire history back to the original generated coins. Someone sending a payment would have to send data to the recipient, as well as still communicating with the network to mark outpoints spent and check that the spend is the first spend. Maybe the data transfeM r could be done as an e-mail attachment.<br>The fact that clients have to keep the entire history reduces the privacy benefit. Someone handling a lot of money still gets to see a lot of transaction history. The way it retrospectively fans out, they might end up seeing a majority of the history. Denominations could be made granular to limit fan-out, but a business handling a lot of money might still end up seeing a lot of the history.<br> #201 <b>Lost large number of bitcoins on 08/11/2010</b> Ref=7M <div class="q">Replying</div>You can get away with backing up without stopping the client if you don't do anything or receive a payment within a few seconds before the backup. (like 5 seconds) <br><div class="q">Replying</div>No, it doesn't usually empty your wallet with each transaction. It uses the smallest set of coins it can find to add up to near the amount. In this case, unfortunately, his wallet had a single 9000 BTC bill in it, and it had to break it to get 1 BTCM and 8999 BTC change. #200 <b>Where is the separate discussion devoted to possible Bitcoin weaknesses. on 08/11/2010</b> Ref=788.msg8804#msg8804 It doesn't have to be such a breaking change. New nodes could accept old transactions for a long time until most nodes have already upgraded before starting to refuse transactions without PoW. Or, they could always accept old transactions, but only a limited number per time period.<br>I've thought about PoW on transactions many tiM mes, but usually I end up thinking a 0.01 transaction fee is essentially similar and better. 0.01 is basically a proof of work, but not wasted. But if the problem is validating loads of transactions, then PoW could be checked faster.<br>A more general umbrella partial solution would be to implement the idea where an unlikely dropoff in blocks received is detected. Then an attacker would still need a substantial portion of the network's power to benefit from a DoS attack.<br><div class="q">Replying</div>+1<br>Any deM monstration tests at this point would only show what we already know, and divert dev time from strengthening the system to operational fire fighting.<br> #199 <b>Flood attack 0.00000001 BC on 08/11/2010</b> Ref=287.msg8810#msg8810 It would be nice to keep the blk*.dat files small as long as we can.<br>The eventual solution will be to not care how big it gets.<br>But for now, while it's still small, it's nice to keep it small so new users can get going faster. When I eventuM ally implement client-only mode, that won't matter much anymore.<br>There's more work to do on transaction fees. In the event of a flood, you would still be able to jump the queue and get your transactions into the next block by paying a 0.01 transaction fee. However, I haven't had time yet to add that option to the UI.<br>Scale or not, the test network will react in the same ways, but with much less wasted bandwidth and annoyance. #198 <b>BSD detection on 08/12/2010</b> Ref=790.msg8814#msg8814 <div class="q">Replying</div>That code was a bad idea anyway, I'm deleting it. Any Mac code should only use __WXMAC_OSX__, not __WXMAC__ or __WXOSX__, and we should stop using __BSD__.<br><div class="q">Replying</div>Will that definitely cause BSD to be defined on Mac?<br> #197 <b>Not a suggestion on 08/12/2010</b> Ref=770.msg8836#msg8836 <div class="q">Replying</div>Are you back to talking about the existing Bitcoin system here?<br>I was talking aboM ut in the hypothetical system I was describing, if the network doesn't know the values and lineage of the transactions, then it can't verify them and vouch for them, so the clients would have to keep the history all the way back.<br>If a client wasn't present until recently, the two ways to convince it that a transaction has a valid past is:<br>1) Show it the entire history back to the original generated coin.<br>2) Show it a history back to a thoroughly deep block, then trust that if so many nodes all said the hisM tory up to then was correct then it must be true.<br>But if the network didn't know all the values and lineage of the transactions, it couldn't do 2), I don't think.<br> #196 <b>BSD detection on 08/12/2010</b> Ref=790.msg8919#msg8919 This is in SVN rev 130. Check that it compiles right.<br><div class="codeheader">Code:</div><div class="code">#if (defined(__unix__) || defined(unix)) && !defined(USG)<br>#include <sys/param.h> // to get BSD define<br>#endiM f<br>#ifdef __WXMAC_OSX__<br>#ifndef BSD<br>#define BSD 1<br>#endif<br>#endif<br></div> #195 <b>Bugfixes in SVN rev 130 on 08/12/2010</b> Ref=795.msg8920#msg8920 Misc bugfixes in rev 130:<br>fix -datadir with relative path<br>autostart is now off by default except on windows<br>fix occasional "vector iterator not dereferencable" assertion when compiled with msvc<br>fix readlink compile warning on linux build<br>use sys/param.h and BSD define instead of __BSD__<br>-paytxfeeM switch, e.g. -paytxfee=0.01 #194 <b>Bitcoin Watchdog Service on 08/12/2010</b> Ref=691.msg8922#msg8922 True, there would probably be someone with a dial-up modem or satellite dish internet. Rarer would be someone who has both that and the wired internet that has the outage, but if it's a big enough segment to matter, out of a million people there's bound to be a multi-home geek.<br>ISP network cuts are just your local area. If you still have communication with the rest ofM your area, it would probably be something like 1/1000 of the world or less. Block generation in the segment would take several hours per block.<br>I favour the plan to monitor if the frequency of blocks received drops too slow. That covers a large range of possibilities. #193 <b>Having problems specifing -datadir on 08/12/2010</b> Ref=601.msg8924#msg8924 Fixed in SVN rev 130. #192 <b>4 hashes parallel on SSE2 CPUs for 0.3.6 on 08/12/2010</b> Ref=648.msg89M That big of a difference in speed, by a factor of 4 or 6, feels like it's likely to be some quirky weak spot or instruction that the old chip is slow with. Unless it's a touted feature of the i5 that they made SSE2 six times faster.<br>A quick summary:<br>Xeon Quad 41% slower<br>Core 2 Duo 55% slower<br>Core 2 Duo same (vess)<br>Core 2 Quad 50% slower<br>Core i5 &nbM sp; 200% faster (nelisky)<br>Core i5 100% faster (vess)<br>AMD Opteron 105% faster<br>aceat64:<br>My system went from ~7100 to ~4200.<br>This particular system has dual Intel Xeon Quad-Core CPUs (E5335) @ 2.00GHz.<br>impossible7:<br>on an Intel Core 2 Duo T7300 running x86_64 linux it was 55% slower compared to the stock version (r121)<br>nelisky:<br>My Core2Quad (Q6600) slowed down 50%, <br>my i5 improved ~200%, <br>impossible7:<br>on an AMDM Opteron 2374 HE running x86_64 linux I got a 105% improvement (!)<br> #191 <b>Bugfixes in SVN rev 130 on 08/13/2010</b> Ref=795.msg8960#msg8960 No, that's not what it is.<br>-paytxfee allows you to include a transaction fee with your transactions. If transaction confirmations become slow, you can get priority by using "-paytxfee=0.01". Any transactions you send would cost an extra 0.01. There's no reason to use more than 0.01.<br>It's just there in case we need it. It proM bably won't be needed, and it can be explained more if we do. #190 <b>Bitcoin Watchdog Service on 08/13/2010</b> Ref=691.msg9041#msg9041 <div class="q">Replying</div>Which doesn't matter because you can't access sourceforge to download the software either.<br>If you've ever been connected before, you don't need IRC to bootstrap anymore. Even if you haven't, you can bootstrap from seed nodes. IRC is completely redundant since 0.3.0. #189 <b>Version 0.3.9 rcM 1, please test on 08/13/2010</b> Ref=806.msg9046#msg9046 Here's a test build if you'd like to help test before 0.3.9 is released.<br>(or if you'd rather get upgrading out of the way now instead of waiting)<br>Downloads: (binaries only)<br>http://www.bitcoin.org/download/bitcoin-0.3.9.rc1-win32.zip<br>(http://www.bitcoin.org/download/bitcoin-0.3.9.rc1-linux.tar.gz)<br>SHA1 a36ea00cce27b4b083755df73a3d1e5e5729884e bitcoin-0.3.9.rc1-win32.zip<br>SHA1 bbb333b0ea57302740ad1bb9948520d00f88M 4f9d bitcoin-0.3.9.rc1-linux.tar.gz<br>Edit:<br>Linux please test rc2 instead. This adds a -4way switch for tcatm's 4-way SSE2. This will only be for Linux:<br>http://www.bitcoin.org/download/bitcoin-0.3.9.rc2-linux.tar.gz<br>SHA1 47d9998f7d15fe81234a5c89a542da9d0664df40 bitcoin-0.3.9.rc2-linux.tar.gz<br>Please report back your results<br>http://bitcointalk.org/index.php?topic=820 #188 <b>Not a suggestion on 08/13/2010</b> Ref=770.msg9074#msg9074 I'm not grasping your ideaM yet. Does it hide any information from the public network? What is the advantage?<br>If at least 50% of nodes validated transactions enough that old transactions can be discarded, then everyone saw everything and could keep a record of it.<br>Can public nodes see the values of transactions? Can they see which previous transaction the value came from? If they can, then they know everything. If they can't, then they couldn't verify that the value came from a valid source, so you couldn't take theirM generated chain as verification of it.<br>Does it hide the bitcoin addresses? Is that it? OK, maybe now I see, if that's it.<br>Crypto may offer a way to do "key blinding". I did some research and it was obscure, but there may be something there. "group signatures" may be related.<br>There's something here in the general area:<br>http://www.users.zetnet.co.uk/hopwood/crypto/rh/<br>What we need is a way to generate additional blinded variations of a public key. The blinded variations would have the sameM properties as the root public key, such that the private key could generate a signature for any one of them. Others could not tell if a blinded key is related to the root key, or other blinded keys from the same root key. These are the properties of blinding. Blinding, in a nutshell, is x = (x * large_random_int) mod m.<br>When paying to a bitcoin address, you would generate a new blinded key for each use.<br>Then you need to be able to sign a signature such that you can't tell that two signatures came from the saM me private key. I'm not sure if always signing a different blinded public key would already give you this property. If not, I think that's where group signatures comes in. With group signatures, it is possible for something to be signed but not know who signed it.<br>As an example, say some unpopular military attack has to be ordered, but nobody wants to go down in history as the one who ordered it. If 10 leaders have private keys, one of them could sign the order and you wouldn't know who did it.<br> #187 <b>Proposed change to sendtoaddress API call on 08/13/2010</b> Ref=807.msg9134#msg9134 It's too soon to start junking up the API for backward compatibility at all costs.<br>Just return "<txid>". #186 <b>4 hashes parallel on SSE2 CPUs for 0.3.6 on 08/14/2010</b> Ref=648.msg9145#msg9145 MinGW on Windows has trouble compiling it:<br>g++ -c -mthreads -O2 -w -Wno-invalid-offsetof -Wformat -g -D__WXDEBUG__ -DWIN32 -D__WXMSW__ -D_WINDOWS -M DNOPCH -I"/boost" -I"/db/build_unix" -I"/openssl/include" -I"/wxwidgets/lib/gcc_lib/mswud" -I"/wxwidgets/include" -msse2 -O3 -o obj/sha256.o sha256.cpp<br>sha256.cpp: In function `long long int __vector__ Ch(long long int __vector__, long long int __vector__, long long int __vector__)':<br>sha256.cpp:31: internal compiler error: in perform_integral_promotions, at cp/typeck.c:1454<br>Please submit a full bug report,<br>with preprocessed source if appropriate.<br>See <URL:http://www.mingw.org/bugs.shtml> for inM structions.<br>make: *** [obj/sha256.o] Error 1<br> #185 <b>4 hashes parallel on SSE2 CPUs for 0.3.6 on 08/14/2010</b> Ref=648.msg9159#msg9159 If you haven't already, try aligning thash. It might matter. Couldn't hurt.<br><div class="q">Replying</div>No help from -O0, same error.<br>MinGW is GCC 3.4.5. Probably the problem.<br>I'll see if I can get a newer version of MinGW.<br> #184 <b>4 hashes parallel on SSE2 CPUs for 0.3.6 on 08/14/2010</b> Ref=648.msg9M Got the test working on 32-bit with MinGW GCC 4.5. Exactly 50% slower than stock with Core 2.<br> #183 <b>4 hashes parallel on SSE2 CPUs for 0.3.6 on 08/14/2010</b> Ref=648.msg9278#msg9278 MinGW GCC 4.5.0:<br>Crypto++ doesn't work, X86_SHA256_HashBlocks() never returns<br>I only got 4-way working with test.cpp but not when called by BitcoinMiner<br>MinGW GCC 4.4.1:<br>Crypto++ works<br>4-way SIGSEGV<br>GCC is definitely not aligning __M m128i. <br>Even if we align our own __m128i variables, the compiler may decide to use a __m128i behind the scenes as a temporary variable.<br>By making our __m128i variables aligned and changing these inlines to defines, I was able to get it to work on 4.4.1 with -O0 only:<br>#define Ch(b, c, d) ((b & c) ^ (~b & d))<br>#define Maj(b, c, d) ((b & c) ^ (b & d) ^ (c & d))<br>#define ROTR(x, n) (_mm_srli_epi32(x, n) | _mm_slli_epi32(x, 32 - n))<br>#define SHR(x, n) _mm_srli_epi32(xM , n)<br>But that's with -O0.<br> #182 <b>4 hashes parallel on SSE2 CPUs for 0.3.6 on 08/15/2010</b> Ref=648.msg9359#msg9359 On both MinGW GCC 4.4.1 and 4.5.0 I have it working with test.cpp but SIGSEGV when called by BitcoinMiner. So now it doesn't look like it's the version of GCC, it's something else, maybe just the luck of how the stack is aligned.<br>I have it working fine on GCC 4.3.3 on Ubuntu 32-bit.<br>I found the problem with Crypto++ on MinGW 4.5.0. Here's the paM tch for that:<br><div class="codeheader">Code:</div><div class="code">--- \old\sha.cpp<span style="white-space: pre;"> </span>Mon Jul 26 13:31:11 2010<br>+++ \new\sha.cpp<span style="white-space: pre;"> </span>Sat Aug 14 20:21:08 2010<br>@@ -336,7 +336,7 @@<br> <span style="white-space: pre;"> </span>ROUND(14, 0, eax, ecx, edi, edx)<br> <span style="white-space: pre;"> </span>ROUND(15, 0, ecx, eax, edx, edi)<br> <br>-<span style="white-space: pre;"> </span>ASL(1)<br>+ ASL(label1) M // Bitcoin: fix for MinGW GCC 4.5<br> <span style="white-space: pre;"> </span>AS2(add WORD_REG(si), 4*16)<br> <span style="white-space: pre;"> </span>ROUND(0, 1, eax, ecx, edi, edx)<br> <span style="white-space: pre;"> </span>ROUND(1, 1, ecx, eax, edx, edi)<br>@@ -355,7 +355,7 @@<br> <span style="white-space: pre;"> </span>ROUND(14, 1, eax, ecx, edi, edx)<br> <span style="white-space: pre;"> </span>ROUND(15, 1, ecx, eax, edx, edi)<br> <span style="white-space: pre;"> </span>AS2(<span sM tyle="white-space: pre;"> </span>cmp<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>WORD_REG(si), K_END)<br>-<span style="white-space: pre;"> </span>ASJ(<span style="white-space: pre;"> </span>jne,<span style="white-space: pre;"> </span>1, b)<br>+ ASJ( jne, label1, ) // Bitcoin: fix for MinGW GCC 4.5<br> <br> <span style="white-space: pre;"> </span>AS2(<span style="white-space: pre;"> </span>mov<span style="white-space: prM e;"> </span><span style="white-space: pre;"> </span>WORD_REG(dx), DATA_SAVE)<br> <span style="white-space: pre;"> </span>AS2(<span style="white-space: pre;"> </span>add<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>WORD_REG(dx), 64)<br></div> #181 <b>tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10 on 08/15/2010</b> Ref=820.msg9452#msg9452 0.3.10 has tcatm's 4-way SSE2 as an option switch.<br>Use the switch "-4way" to turn it on. WiM thout the switch you get Crypto++ ASM SHA-256.<br>I could only get this working with Linux.<br>Download:<br>Get 0.3.10 from http://bitcointalk.org/index.php?topic=827.0<br>Please report back your CPU and results! I think it's pretty clear that Core 2 and lower are slower, i5 faster. I don't think we've heard any i7 results yet. We need to know about the different models of AMD or other less common CPUs.<br> #180 <b>Potential disaster scenario on 08/15/2010</b> Ref=813.msg9454#msg9454 Some places where generation will gravitate to:<br>1) places where it's cheapest or free<br>2) people who want to help for idealogical reasons<br>3) people who want to get some coins without the inconvenience of doing a transaction to buy them<br>There are legitimate places where it's free. Generation is basically free anywhere that has electric heat, since your computer's heat is offsetting your baseboard electric heating. Many small flats have electric heat out of convenience.<br>How expensive iM s heating oil? With the price of oil so high, if it's actually more expensive than electric, then generating would have negative cost.<br>There's also kids putting it on their parent's power bill, employees their employer, botnets, etc.<br>Case 3 comes into play for small amounts. The overhead of doing an exchange doesn't make sense if you just need a small bit of pocket change for incidental micropayments. I think this is a nice advantage vs fiat currency, instead of all the seigniorage going to one big entiM ty, let it go in convenience amounts to people who need to scrape up a small amount of change.<br> #179 <b>Version 0.3.9 rc1, please test on 08/15/2010</b> Ref=806.msg9475#msg9475 <div class="q">Replying</div>The idea was the main part. When you posted your patch, I realized it should have been done that way instead of "-?". I always had reservations about "-?" because it intrudes on the possible parameter values, and the help response is based on the version of the callerM instead of the server. #178 <b>tcatm's 4-way SSE2 for Linux 32/64-bit 0.3.9 rc2 on 08/15/2010</b> Ref=820.msg9478#msg9478 I hope someone can test an i5 or AMD to check that I built it right. I don't have either to test with.<br>I'm also curious if it performs much worse on 32-bit linux vs 64-bit. #177 <b>tcatm's 4-way SSE2 for Linux 32/64-bit 0.3.9 rc2 on 08/15/2010</b> Ref=820.msg9483#msg9483 I just uploaded a quick build so tesM ters can check if I built it right. (I don't have an i5 or AMD) If it checks out, I'll put together the full package and do all the release stuff. #176 <b>overflow bug SERIOUS on 08/15/2010</b> Ref=823.msg9530#msg9530 Here's the preliminary change. Look right? I have more changes to make, this isn't all of it. Will SVN shortly.<br><div class="codeheader">Code:</div><div class="code"> bool CheckTransaction() const<br> {<br> M // Basic checks that don't depend on any context<br> if (vin.empty() || vout.empty())<br> return error("CTransaction::CheckTransaction() : vin or vout empty");<br> // Check for negative and overflow values<br> int64 nTotal = 0;<br> foreach(const CTxOut& txout, vout)<br> {<br> if (txoM ut.nValue < 0)<br> return error("CTransaction::CheckTransaction() : txout.nValue negative");<br> if (txout.nValue > 21000000 * COIN)<br> return error("CTransaction::CheckTransaction() : txout.nValue too high");<br> nTotal += txout.nValue;<br> if (nTotal > 21000000 * COIN)<br>&nM bsp; return error("CTransaction::CheckTransaction() : txout total too high");<br> }<br> if (IsCoinBase())<br> {<br> if (vin[0].scriptSig.size() < 2 || vin[0].scriptSig.size() > 100)<br> return error("CTransaction::CheckTransaction() : coinbase script size");<br>  M ; }<br> else<br> {<br> foreach(const CTxIn& txin, vin)<br> if (txin.prevout.IsNull())<br> return error("CTransaction::CheckTransaction() : prevout is null");<br> }<br> return true;<br> }<br></div><br>Don't sticky the topic, nobodyM looks up there. There'll be enough posts to bump. #175 <b>overflow bug SERIOUS on 08/15/2010</b> Ref=823.msg9531#msg9531 It would help if people stop generating. We will probably need to re-do a branch around the current one, and the less you generate the faster that will be.<br>A first patch will be in SVN rev 132. It's not uploaded yet. I'm pushing some other misc changes out of the way first, then I'll upload the patch for this. #174 <b>overflow bug SEM RIOUS on 08/15/2010</b> Ref=823.msg9539#msg9539 Once you have an update, you could download knightmb's block chain. You'll want one that's old enough that it ends <i>before</i> block 74000 so the most recent security lockin will check it. Can someone find the link for that? #173 <b>overflow bug SERIOUS on 08/15/2010</b> Ref=823.msg9548#msg9548 Patch is uploaded to SVN rev 132! <br>For now, recommended steps:<br>1) Shut down.<br>2) Download kM nightmb's blk files. (replace your blk0001.dat and blkindex.dat files)<br>3) Upgrade.<br>4) It should start out with less than 74000 blocks. Let it redownload the rest.<br>If you don't want to use knightmb's files, you could just delete your blk*.dat files, but it's going to be a lot of load on the network if everyone is downloading the whole block index at once.<br>I'll build releases shortly. #172 <b>overflow bug SERIOUS on 08/15/2010</b> Ref=823.msg9573#msg9573 date the block chain download. When you take someone's block chain download, you don't want it right up to the end. A somewhat old one is better so it can download and verify the most recent blocks.<br>tcatm's 4-way SSE2 SHA-256 is in the file sha256.cpp and already uploaded a few revs ago.<br>I just now uploaded rev 134 which is the makefile.unix that enables building with it on Linux. If you build rev 134 on Linux now you'll get the -4way switch.<br>If you have problems building because of it, then edit makefile.M unix and:<br>- remove -DFOURWAYSSE2<br>- remove obj/sha256.o from the end of these lines:<br>bitcoin: $(OBJS) obj/ui.o obj/uibase.o obj/sha256.o<br>bitcoind: $(OBJS:obj/%=obj/nogui/%) obj/sha256.o<br>The 0.3.10 linux build <i>will</i> have the -4way option when I build it.<br>Here are the patch downloads for Windows:<br>http://www.bitcoin.org/download/bitcoin-0.3.10-win32-setup.exe<br>http://www.bitcoin.org/download/bitcoin-0.3.10-win32.zip<br>SHA1 16645ec5fcdb35bc54bc7195309a1a81105242bb bitcoin-0.3.10-win32-setupM .exe<br>SHA1 4f35ad7711a38fe8c880c6c9beab430824c426d3 bitcoin-0.3.10-win32.zip<br>Steps:<br>1) Shut down.<br>2) Download knightmb's blk files and replace your blk0001.dat and blkindex.dat files.<br>http://knightmb.dyndns.org/files/bitcoin/blocks/<br>http://rapidshare.com/files/413168038/BitcoinBlocks.torrent<br>3) Upgrade to 0.3.10.<br>4) It should start out with less than 74000 blocks and redownload the rest.<br>Or if you don't want to mess with downloading blk files, you can just do this:<br>1) Shut down.<br>2) DM elete (or move) blk*.dat<br>3) Upgrade to 0.3.10.<br>4) It redownloads all blocks, probably take about an hour.<br><br> #171 <b>overflow bug SERIOUS on 08/15/2010</b> Ref=823.msg9576#msg9576 <div class="q">Replying</div>Just leave the old one alone! Older is better. What block number is it? Anywhere from 60000-74000 is good. The one that you've had available for a while has been vetted and is the best choice. #170 <b>overflow bug SERIOUS on 08/M 15/2010</b> Ref=823.msg9584#msg9584 Starting at 67000 is <i>perfect</i>. <br>Yeah, at the moment you'll stop at 74638. It should start slowly creeping up as more nodes upgrade and generate.<br>Linux build links below.<br>The Linux version includes tcatm's 4-way SSE2 SHA-256 that makes generating faster on i5 and AMD CPU's. Use the "-4way" switch to enable it and check if it's faster for you.<br>Download links:<br>http://www.bitcoin.org/download/bitcoin-0.3.10-win32-setup.exe<br>http://www.M bitcoin.org/download/bitcoin-0.3.10-win32.zip<br>http://www.bitcoin.org/download/bitcoin-0.3.10-linux.tar.gz<br>SHA1 16645ec5fcdb35bc54bc7195309a1a81105242bb bitcoin-0.3.10-win32-setup.exe<br>SHA1 4f35ad7711a38fe8c880c6c9beab430824c426d3 bitcoin-0.3.10-win32.zip<br>SHA1 e3fda1ddb31b0d5c35156cacd80dee6ea6ae6423 bitcoin-0.3.10-linux.tar.gz #169 <b>overflow bug SERIOUS on 08/15/2010</b> Ref=823.msg9586#msg9586 <div class="q">Replying</div>Agree, wanted to do that for a long tM ime, haven't had time to do it.<br>For now, you could also subscribe to the bitcoin-list mailing list. It rarely gets used except for announcements like this and major new versions.<br>Subscribe/unsubscribe page:<br>http://lists.sourceforge.net/mailman/listinfo/bitcoin-list<br> #168 <b>Version 0.3.10 - block 74638 overflow PATCH! on 08/15/2010</b> Ref=827.msg9590#msg9590 Version 0.3.10 patches the block 74638 overflow bug. http://bitcointalk.org/index.php?topic=823<br>TheM Linux version includes tcatm's 4-way SSE2 SHA-256 that makes generating faster on i5, i7 (with hyperthreading) and AMD CPU's. Try the "-4way" switch to enable it and check if it's faster for you. <br>Download from sourceforge:<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.10/<br>SHA1 16645ec5fcdb35bc54bc7195309a1a81105242bb bitcoin-0.3.10-win32-setup.exe<br>SHA1 4f35ad7711a38fe8c880c6c9beab430824c426d3 bitcoin-0.3.10-win32.zip<br>SHA1 e3fda1ddb31b0d5c35156cacd80dee6ea6ae6423 bitcoin-0.3.10-lM inux.tar.gz<br>SHA1 b812ccff4881778b9090f7c0b0255bcba7b078ac bitcoin-0.3.10-macosx.zip<br>It is no longer necessary to delete blk*.dat. The good block chain has overtaken the bad block chain, so you can just upgrade and it'll automatically reorg away the bad block chain. #167 <b>0.3.10.1 Question on where block should be on 08/16/2010</b> Ref=828.msg9608#msg9608 I suspect there's some difficulty receiving blocks if all the nodes you're connected to are 0.3.9 or lower. We nM eed enough of us so that at least one node you connect to will be 0.3.10. The problem will start to go away when we make up more than 1/8th of the network.<br>It'll help if you port forward so you can get lots of connections. #166 <b>0.3.10.1 Question on where block should be on 08/16/2010</b> Ref=828.msg9612#msg9612 For now, can some people running 0.3.10 with static IP who can receive incoming connections post their IP? Then we can -addnode= them and make sure to cM onnect to at least one 0.3.10 node.<br> #165 <b>overflow bug SERIOUS on 08/16/2010</b> Ref=823.msg9623#msg9623 <div class="q">Replying</div>Right, it will get reincorporated into the fixed chain. The transaction won't disappear, it'll still be visible on both sides, but the confirmation count will jump back to 0 and start counting up again.<br>It's only if you generated a block in the bad chain after block 74638 that the 50 BTC from that will disappear. Any blocks in the bM ad chain wouldn't have matured yet. #164 <b>overflow bug SERIOUS on 08/16/2010</b> Ref=823.msg9624#msg9624 <div class="q">Replying</div>If you still show 74638 blocks then you aren't connected to any 0.3.10 nodes. <br>For today, try adding these parameters: <br>-addnode=75.158.131.108 -addnode=99.27.237.13 -addnode=68.68.99.14<br>See<br>http://bitcointalk.org/index.php?topic=828 #163 <b>overflow bug SERIOUS on 08/16/2010</b> Ref=823.msg9628#msg9628 <div class="q">Replying</div>1) Once more than 50% of the node power is upgraded and the good chain overtakes the bad, the 0.3.10 nodes will make it hard for any bad transactions to get any confirmations. <br>2) If you didn't remove your blk*.dat files, you're not helping to contribute to that 50%, and you'll still show bad transactions until the good chain overtakes the bad chain. #162 <b>overflow bug SERIOUS on 08/16/2010</b> Ref=823.msg9642#msg9642 The bad chain is also slowed down as more nodes upgrade.<br>We've already generated 14 blocks since 74638. The builds of 0.3.10 were uploaded about 2 and 3 hours ago. Of the nodes I'm connected to, more than half are already 0.3.10. I would say we probably already have more power than the bad chain.<br> #161 <b>overflow bug SERIOUS on 08/16/2010</b> Ref=823.msg9648#msg9648 On Windows, findstr /c:"version message" debug.log<br>It looks like the bad chain was on block 74M 678 recently. Can't wait to overtake it.<br>On the stats at http://nullvoid.org/bitcoin/statistix.php there's been 5 blocks per hour in the last 3 hours. We had a difficulty adjustment about a day ago that should have put it back to 6 blocks per hour.<br> #160 <b>tcatm's 4-way SSE2 for Linux 32/64-bit 0.3.9 rc2 on 08/16/2010</b> Ref=820.msg9655#msg9655 <div class="q">Replying</div>GCC 4.3.3 doesn't support -march=amdfamk10. I get:<br>sha256.cpp:1: error: bad value (aM mdfamk10) for -march= switch<br><br><div class="q">Replying</div>Hey, you may be onto something!<br>hyperthreading didn't help before because all the work was in the arithmetic and logic units, which the hyperthreads share.<br>tcatm's SSE2 code must be a mix of normal x86 instructions and SSE2 instructions, so while one is doing x86 code, the other can do SSE2.<br>How much of an improvement do you get with hyperthreading?<br>Some numbers? What CPU is that?<br> #159 <b>tcatm's 4-way SSE2 for LM inux 32/64-bit 0.3.9 rc2 on 08/16/2010</b> Ref=820.msg9661#msg9661 <div class="q">Replying</div>That works.<br>That's strange... are we sure that's the same thing? tcatm, try amdfam10 and make sure you get the same speed measurement. #158 <b>tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10 on 08/16/2010</b> Ref=820.msg9676#msg9676 <div class="q">Replying</div>cpu family 6 model 26 stepping 4 is an Intel Core i7.<br>That's a 23% speedup wiM th -4way, 63% total speedup with -4way + hyperthreading.<br>33% faster with hyperthreading than without it. #157 <b>overflow bug SERIOUS on 08/16/2010</b> Ref=823.msg9734#msg9734 It looks like we overtook the bad chain somewhere around 74689. 0.3.9 and lower nodes have been responding with the current block number for some hours now.<br>That means it's no longer necessary to delete blk*.dat before upgrading. You can just upgrade and it'll reorg away the bad block chain.<brM >Thanks to everyone for the quick response! #156 <b>tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10 on 08/16/2010</b> Ref=820.msg9736#msg9736 I wrapped sha256.cpp in <br>#ifdef FOURWAYSSE2<br>#endif // FOURWAYSSE2<br>try it now. #155 <b>[PATCH] Automatic block validation on 08/16/2010</b> Ref=832.msg9754#msg9754 That's a difficult approach.<br>We need to cause a reorg, which will disconnect the invalid chain.<br>This is code tM hat will rarely ever get tested, and is fairly intricate, so something simple and safe is best.<br>Here's what I was thinking of. (I haven't tested this yet) It checks all the blocks in the main chain. If it finds a bad one, it sets all that chain's bnChainWork to 0 so it can't win best chain again, and it reduces best chain work to the fork level so any new block after the fork will cause a reorg. (It can't change pindexBest without actually doing a reorg)<br>This isn't perfect yet. It still needs to receiveM one valid block to trigger the reorg. <br>It would probably be possible to initiate an AddToBlockIndex or Reorganize after the check, but it would require a lot more careful attention. I probably should break out part of AddToBlockIndex that sets the new best block. I'll probably end up doing that instead of the code below.<br><div class="codeheader">Code:</div><div class="code">bool CTxDB::LoadBlockIndex()<br>{<br> ...<br> // Verify blocks in the main chain<br> &nbsM p;vector<CBlockIndex*> vChain;<br> for (CBlockIndex* pindex = pindexBest; pindex && pindex->pprev; pindex = pindex->pprev)<br> {<br> vChain.push_back(pindex);<br> CBlock block;<br> if (!block.ReadFromDisk(pindex))<br> return error("LoadBlockIndex() : block.ReadFromDisk failed");<br> if (!bM lock.CheckBlock())<br> {<br> bnBestChainWork = pindex->pprev->bnChainWork;<br> foreach(CBlockIndex* pindex2, vChain)<br> pindex2->bnChainWork = 0;<br> }<br> }<br> return true;<br>}<br></div> #154 <b>blocks minus 1 on 08/16/2010</b> Ref=837.msM I'd like to reduce the number of blocks displayed in the status bar by 1. When you first load the program, it'll display 0 blocks instead of 1:<br>"0 connections 0 blocks 0 transactions"<br>It's always been "nBestHeight + 1" because it's counting the genesis block. Technically, yes, the genesis block is a block. It's a hardcoded block that you start out with. You can't <i>not</i> have the genesis block. Maybe think of it as a reference coin thaM t you measure other coins against. The block count people are looking for is the number of blocks they've downloaded.<br>The main benefit is that blocks will be equal to the block number of the current best block. If blocks is 10, then the highest block number you have is 10. It means you have block 10 and you don't have block 11.<br>It would reduce the confusion we had here:<br><div class="q">Replying</div><br>I had some confusion on this myself and got clarification in #bitcoin-dev:<br>The bad block was number 74M 638, the last good one was 74637. The numbers start at 0, so when your client shows there are 74638 blocks then that means you have up to block number 74637, the last good one.<br></div> #153 <b>blocks minus 1 on 08/16/2010</b> Ref=837.msg9774#msg9774 Done in SVN rev 137 #152 <b>[PATCH] Automatic block validation on 08/16/2010</b> Ref=832.msg9775#msg9775 <div class="q">Replying</div>This is what I ended up doing in SVN rev 139.<brM >Instead of deleting the bad chain, I added an extra CheckBlock to ConnectBlock so bad blocks can't get back into the best chain once they're kicked out. #151 <b>Checking the block chain on load on 08/16/2010</b> Ref=841.msg9813#msg9813 SVN rev 139 does a basic check of the block chain after loading.<br>With this we wouldn't have needed to delete blk*.dat, it would have automatically done a reorg back to the fork. There wasn't time to do a careful implementation of this atM the time.<br>It might take longer than we want, since it has to load all the blocks. If it's too slow, we could have it only go back to a certain block number. #150 <b>checkpointing the block chain on 08/16/2010</b> Ref=834.msg9816#msg9816 There is no way for the software to automatically know if one chain is better than another except by the greatest proof-of-work. In the design it was necessary for it to switch to a longer chain no matter how far back it has to go.<br>TM he only exception to that is the manual checkpoints I've added. If it weren't for those, it would be able to reorg all the way back to the first block. #149 <b>overflow bug SERIOUS on 08/16/2010</b> Ref=823.msg9841#msg9841 Un-upgraded nodes have the correct chain most of the time, but they are still trying to include the overflow transaction in every block, so they're continually trying to fork and generate invalid blocks. If an old version node is restarted, its transactiM on pool is emptied, so it may generate valid blocks for a while until the transaction gets broadcast again. 0.3.9 and lower nodes still must upgrade.<br>The SVN now has the code we needed to automatically reorg the block chain without having to delete the blk*.dat files manually. I knew I couldn't write that code fast and carefully enough yesterday, so I went with the quick manual option. #148 <b>checkpointing the block chain on 08/16/2010</b> Ref=834.msg9843#msg9843 class="q">Replying</div>Total proof-of-work. #147 <b>New screenshots to the front page? on 08/18/2010</b> Ref=850.msg10067#msg10067 Definitely. The old screenshots of 0.1 are very outdated.<br>Windows Aero is a good choice. Windows is still the largest user group. Mind what's behind it for the transparent parts.<br>What to have displayed in the transaction list? Not completely filled up with stuff, just a few things. #146 <b>Difficulty: More nodes acM tive, or faster nodes? on 08/18/2010</b> Ref=846.msg10076#msg10076 The performance numbers posted from a VIA C7's hardware SHA-256 weren't astronomical. Only in the 1500 khash/s range. If you think about it, just because it's implemented in hardware doesn't mean it's crazy fast. It still has to do all the steps. It's only if simplifying it down to single-purpose hardware makes it small enough to fit many in parallel. That's not necessarily easy or a given.<br> king the block chain on load on 08/18/2010</b> Ref=841.msg10082#msg10082 In the next SVN rev, I'll make it only go back to the last checkpoint at block 74000. If we need to correct a problem in the future, we can always make sure it goes back at least as far back as the problem. Also, I'm adding code to verify the block index, which means the proof-of-work chain is checked.<br>Still, the system won't be entirely secure against your blk*.dat files. You are trusting someone if you use a copyM of their blk files.<br> #144 <b>Convert Bitcoin to GTK: Yes? No? wx is better? on 08/19/2010</b> Ref=867.msg10272#msg10272 <div class="q">Replying</div>wxWidgets 2.9 is their first UTF-8 version. We are UTF-8 on all platforms including Windows.<br>The distro packages of 2.8 are UTF-16, so they just trip people up. People had endless build problems with 2.8 and its wxString UTF-16/ANSI conditional build options until we standardized on 2.9. Also, to use 2.8, we were usinM g ANSI, which was just a temporary stopgap until wxWidgets supported UTF-8.<br>This is a problem that will solve itself. With time, 2.9 will become a more mainline release. #143 <b>HOWTO: Compiling Bitcoin on Ubuntu 10.04 (Karmic) on 08/19/2010</b> Ref=868.msg10275#msg10275 That's a really well written walkthough. Someone should confirm if they followed it and didn't run into any snags.<br> #142 <b>tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10 on 08/M 19/2010</b> Ref=820.msg10281#msg10281 <div class="q">Replying</div>That's the first I've heard anyone say i5 was slower. Everyone else has said 4way was faster on i5. Moreso with hyperthreading enabled.<br><div class="q">Replying</div>Good, so I take it that's a confirmation that it's working on Mac as well?<br>Laszlo told me he did compile in the -4way stuff on Mac, so the -4way switch is also available to try on Mac. I don't think makefile.osx on SVN has it yet, just the built version. #141 <b>28 days without generation, i have 4200khash/s on 08/19/2010</b> Ref=862.msg10290#msg10290 Make sure your computer's date and time are correct. #140 <b>Need a post writing up some things users should know on 08/19/2010</b> Ref=873.msg10297#msg10297 I'm not sure what to call it, but we could use a post that lists these things users should know. If someone has time to write it, here's the list:<br>- Make sure your clock is seM t correctly. <br>- Microsoft Security Essentials. This never got written up proper.<br>- Warning not to mess around with your wallet.dat file. It's a database file, it's not as simple as you think. In this Beta version, we haven't had time to try and tinker-proof it yet. It may not work as expected if you start swapping it around.<br> #139 <b>Hypothetical question on lost coins / transfers on 08/19/2010</b> Ref=870.msg10300#msg10300 That's right. You don't need to be re-brM oadcasting your transactions for it to work.<br>When any node disconnects a fork, it dumps all the transactions from the fork back into the transaction pool to add to the new chain. The entire network is making sure to re-integrate your transactions again. All you should see is that your number of confirmations starts over from 0.<br>In some types of forks, your transaction would have gotten into both forks already, so you're already good either way. #138 <b>Need a post writing up some things usersM should know on 08/22/2010</b> Ref=873.msg10715#msg10715 The clock part will be covered in the next release (0.3.11 or higher). SVN rev 141 pops up a message box if your clock is too far off. #137 <b>28 days without generation, i have 4200khash/s on 08/22/2010</b> Ref=862.msg10717#msg10717 Search debug.log for "proof-of-work found". If you find any, then check for any errors right after that.<br><div class="q">Replying</div>The margin is 2 hours.<M br>This should be solved in SVN rev 141 and the next release (0.3.11+). It'll pop up a message box alerting you if your clock is off by more than an hour. #136 <b>tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10 on 08/22/2010</b> Ref=820.msg10720#msg10720 Thanks for clearing that up. I read the link someone posted about AMD making that change around 2007, but I didn't know what the story was for Intel.<br>There's no hope for Core/Core2 then. They only have half the SSE2M hardware.<br>Strange that Intel has 3 128bit units, but AMD with 2 128bit units is the faster one.<br> #135 <b>Development of alert system on 08/22/2010</b> Ref=898.msg10722#msg10722 I've been working on writing the alert system. Alerts are broadcast through the network and apply to a range of version numbers. Alert messages are signed with a private key that only I have.<br>Nodes can do two things in response to an alert:<br>- Put a warning message on the status bar.<br>M - Make the money handling methods of the json-rpc interface return an error.<br>In cases like the overflow bug or a fork where users may not be able to trust received payments, the alert should keep old versions mostly safe until they upgrade. Manual users should notice the status bar warning when looking for received payments, and the json-rpc safe mode stops automated websites from making any more trades until they're upgraded.<br>The json-rpc methods that return errors during an alert are:<br>sendtoaddress<br>geM tbalance<br>getreceivedbyaddress<br>getreceivedbylabel<br>listreceivedbyaddress<br>listreceivedbylabel<br> #134 <b>integrating digital payments into p2p protocols on 08/22/2010</b> Ref=890.msg10723#msg10723 Hey Zooko!<br>I wanted to thank you for posting about Bitcoin on your blog a year or two ago, back when I announced it on the Cryptography mailing list. #133 <b>tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10 on 08/24/2010</b> Ref=820.msg11068#msg11M <div class="q">Replying</div>This probably explains why hyperthreading increases performance with -4way. If three SSE2 units is excessive, then hyperthreading would help keep them all busy. #132 <b>Development of alert system on 08/24/2010</b> Ref=898.msg11074#msg11074 If you're so paranoid that you're getting hysterical over this, then surely you're paranoid enough that if a warning message displays on the status bar, you'll check the websiteM and forum.<br>I think if another bug like the overflow bug occurs, it's important that automated websites stop trading until their admins can check out what's going on and decide what to do. If you decide it's a false alarm and want to take your chances, you can use the "-disablesafemode" switch. #131 <b>Development of alert system on 08/25/2010</b> Ref=898.msg11078#msg11078 This is in SVN rev 142 as version 0.3.11. #130 <b>Development of alert system on M 08/25/2010</b> Ref=898.msg11150#msg11150 It can't do arbitrary actions remotely. Maybe some of you are responding to other posters who suggested the alert system should do more?<br>If there is an alert, the following json-rpc methods return an error:<br>sendtoaddress<br>getbalance<br>getreceivedbyaddress<br>getreceivedbylabel<br>listreceivedbyaddress<br>listreceivedbylabel<br>The remaining 14 methods function as normal. <br>I believe the safer option should be enabled by default. If you waM nt your server to keep trading and ignore an alert saying the money its receiving might be like the money from the overflow bug, then you can use the switch and not blame anyone else if you lose your money.<br>Worst case if you leave alerts enabled, your site stops trading until you upgrade or add the -disablesafemode switch.<br>Getting surprised by some temporary down time when your node would otherwise be at risk is better than getting surprised by a thief draining all your inventory.<br>Someday when we haven't fM ound any new bugs for a long time and it has been thoroughly security reviewed without finding anything, this can be scaled back. I'm not arguing that this is the permanent way of things forever. It's still beta software.<br> #129 <b>Development of alert system on 08/25/2010</b> Ref=898.msg11151#msg11151 I changed the switch name to -disablesafemode. #128 <b>Development of alert system on 08/25/2010</b> Ref=898.msg11155#msg11155 div class="q">Replying</div>WRT the alert system, who cares? The most the key can do is temporarily disable six json-rpc commands until the site owners either add the -disablesafemode switch or upgrade. All nodes keep running and generating, the network stays up. If I'm not available, any script kiddie can figure out how to add two characters and make a new version that disables the alert system. It would be a temporary inconvenience only.<br><div class="q">Replying</div>This is what makes me think the peopleM objecting don't know what they're talking about. It can't "shut down the complete network". <br> #127 <b>Development of alert system on 08/25/2010</b> Ref=898.msg11158#msg11158 <div class="q">Replying</div>getinfo has a new field that shows any alert messages or other errors that would be displayed on the status bar.<br>The rpc methods return a json-rpc error with the error description "Safe mode: " followed by additional text specified by the alert.<br>I added the switchM "-testsafemode" for you. SVN rev 145.<br>This stuff is very new and may still be subject to change.<br><div class="q">Replying</div>Many switches are intentionally undocumented, like if their functionality is still under construction or I haven't settled on their name yet, or just test code not intended for release.<br>-4way should eventually be replaced by an auto-detect. #126 <b>Development of alert system on 08/26/2010</b> Ref=898.msg11219#msg11219 <div class="q">ReplyM ing</div>This is what makes me think the people objecting don't know what they're talking about. It can't "shut down the complete network". <br>I've never objected this change/idea, just asking if this was possible and to what extent.<br>What's wrong with getting informed? ;) <br>My apologies, your post was indeed a question not a statement.<br> #125 <b>RFC: remove DB_PRIVATE flag on 08/26/2010</b> Ref=920.msg11224#msg11224 Can you provide more details about what removing M DB_PRIVATE does?<br>I can't remember if I had a specific reason for DB_PRIVATE, or if I just copied the flags from some example code. Does removing DB_PRIVATE make it safe for other processes to open the database simultaneously? That may be an improvement, depending what the side effects are. Does it substantially reduce performance by making it have to write out every change immediately or do other coordination? Are there additional locking or coordination files then? What else changes? YouM could test by timing an initial block download with and without DB_PRIVATE, preferably -connect-ing to a local machine so network isn't a factor.<br>Apparently, DB_PRIVATE doesn't do what you would hope it would do, which is prevent other processes from being able to open the database. It still lets them, it just screws up if they do. Another option, if there's a way, would be to make it lock the database files so they can't be accessed by other processes. #124 <b>Need a post writing up some thingM s users should know on 08/26/2010</b> Ref=873.msg11227#msg11227 Any backup process/procedure would just be a stopgap until there's time to properly work on coding solutions in software. We can try to use words to help the situation until code gets there.<br>The main backup improvement will be pre-made pool of keys, and a rescan at load to scrape missed transactions from the block history. Then a backup will last forward for a long time.<br> #123 <b>auto backing up of walleM t.dat on 08/26/2010</b> Ref=921.msg11228#msg11228 I started posting in the other topic but I'll repeat here, this thread seems more specific to the topic.<br>The main backup improvement will be a pre-generated pool of keys and a rescan at load to scrape missed transactions from the block history. Then a backup will last forward for a long time.<br>I was starting to post the same idea you said nelisky.<br>How about a json-rpc command that locks the wallet, flushes it, copies wallet.dat to aM location you specified, then unlocks it? That would be a smaller project than the pooled keys, so maybe it could be done first.<br>What's the simplest portable way to copy a file? Is there something in Boost?<br>What should it be named? maybe:<br>backupwallet <destination><br> #122 <b>Gentoo Linux Ebuild on 08/27/2010</b> Ref=930.msg11342#msg11342 Try -datadir=<br>Last time I tried $(shell /usr/bin/wx-config), there was immediate hollering about buM ild problems with it. There wasn't time to investigate at the time.<br>One problem with $(shell /usr/bin/wx-config) is it will pick up any version (wx 2.8 ) and any configuration (non-UTF-8 ) of wxWidgets that happens to be there. -lwx_gtk2ud-2.9 only matches the right configuration. It fails if wxWidgets was built with the wrong configuration. <br><div class="q">Replying</div>Did they say why they were baffled? <br><div class="q">Replying</div>Why is it there? Was it included by the OS, or did you have to buM ild it? If you built it, I wonder why it would put itself in a different place.<br>Has wxWidgets 2.9 finally started to become available as a debian package?<br>Maybe we should do this:<br>INCLUDEPATHS= \<br> -I"/usr/local/include/wx-2.9" \<br> -I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9" \<br> -I"/usr/include/wx-2.9" \<br> -I"/usr/lib/wx/include/gtk2-unicode-debug-static-2.9"<br>Again, those paths help make sure it's only 2.9 and will fail with 2.8.<br>wxWidgets 2.8 comes iM n ANSI and UTF-16, both wrong for us. It's tempting because it's so easily available as a package; a lot of people were frustrated by it until we started hardcoding 2.9 into the makefile.<br> #121 <b>auto backing up of wallet.dat on 08/27/2010</b> Ref=921.msg11345#msg11345 If you read it into memory and write it out, it could fail in tight memory situations. <br>I'm looking for something like copyfile(const char* from, const char* to) or copyfile(path from, path to), prefeM rably something in Boost if it has it. If you find it for me, it's more likely I'll get to implementing it.<br><div class="q">Replying</div>We require Boost for JSON and a dozen things replacing dependencies on wxWidgets. Boost is good, portable stuff, we should not shy away from it. #120 <b>auto backing up of wallet.dat on 08/27/2010</b> Ref=921.msg11350#msg11350 I doubt there's an mmap(2) on Windows. I'd rather call an existing file copy function than make and test my owM n.<br><div class="q">Replying</div>Thanks. I thought it would be in there somewhere.<br>We already use boost::filesystem in a dozen places. It's not a new added dependency. It gives us a lot of portable stuff that we would otherwise have to have a #ifdef for each OS and test everywhere.<br> #119 <b>auto backing up of wallet.dat on 08/27/2010</b> Ref=921.msg11399#msg11399 Sorry, I've been so busy lately I've been skimming messages and I still can't keep up.<br>We want to avM oid Windows API calls whenever possible. They usually take about 6-8 parameters and a lot of testing to get right, it takes a page of code to do something simple.<br>I usually shy away from iostreams. Seems like I too often hit limitations. They kind of botched the C++ streams standard in the 90's, which is too bad, streams can be very powerful and useful when done right. Using it in rpc.cpp may still turn out to be a mistake.<br>Bottom line is I'd rather call an existing file copy function than make and test my owM #118 <b>New web service: obtain dump of bitcoin block NNNN on 08/27/2010</b> Ref=928.msg11400#msg11400 That's kind of interesting as an upside-down bar chart of how many blocks were produced each day. The target is 144 blocks per day. #117 <b>Bitcoins are most like shares of common stock on 08/27/2010</b> Ref=845.msg11403#msg11403 Bitcoins have no dividend or potential future dividend, therefore not like a stock.<br>More like aM collectible or commodity. #116 <b>Bitcoin does NOT violate Mises' Regression Theorem on 08/27/2010</b> Ref=583.msg11405#msg11405 As a thought experiment, imagine there was a base metal as scarce as gold but with the following properties:<br>- boring grey in colour<br>- not a good conductor of electricity<br>- not particularly strong, but not ductile or easily malleable either<br>- not useful for any practical or ornamental purpose<br>and one special, magical property:<br>M - can be transported over a communications channel<br>If it somehow acquired any value at all for whatever reason, then anyone wanting to transfer wealth over a long distance could buy some, transmit it, and have the recipient sell it.<br>Maybe it could get an initial value circularly as you've suggested, by people foreseeing its potential usefulness for exchange. (I would definitely want some) Maybe collectors, any random reason could spark it.<br>I think the traditional qualifications for money were writtenM with the assumption that there are so many competing objects in the world that are scarce, an object with the automatic bootstrap of intrinsic value will surely win out over those without intrinsic value. But if there were nothing in the world with intrinsic value that could be used as money, only scarce but no intrinsic value, I think people would still take up something.<br>(I'm using the word scarce here to only mean limited potential supply)<br> #115 <b>Version 0.3.11 with upgrade alerts on 08M /27/2010</b> Ref=941.msg11439#msg11439 Version 0.3.11 is now available.<br>Changes:<br>- Some blk*.dat checking on load<br>- Built the -4way code with -march=amdfam10, which makes it a little faster<br>- Warning if your clock is too far off<br>- Warnings/errors/alerts can also be seen in the getinfo command<br>- Alert system<br>The alert system can display notifications on the status bar to alert you if you're running a version that needs to be upgraded for an important security update.<brM >In response to an alert, your node may also go into safe mode, which disables the following json-rpc commands (used by automated websites) to protect it from losing money until you get a chance to upgrade:<br> sendtoaddress<br> getbalance<br> getreceivedbyaddress<br> getreceivedbylabel<br> listreceivedbyaddress<br> listreceivedbylabel<br>If you decide it's a false alarm and want to take your chances, you can use the switch -disablesafemode to re-enable them.<br>This is an important saM fety improvement. For a large segment of possible problems, this can warn everyone immediately once a problem is discovered and prevent them from acting on bad information.<br>Nodes keep operating and do not stop generating in response to an alert, so old versions may still try to make a fork, but the alert system can make sure users are warned not to act on anything in the fork.<br>Download:<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.11/<br> #114 <b>tcatm's 4-way SSE2 forM Linux 32/64-bit is in 0.3.10 on 08/28/2010</b> Ref=820.msg11503#msg11503 The simplification is intentional. There will only be more than one thash[7]=0 in one out of 134,217,728 cases. It only makes it 0.0000007% slower.<br> #113 <b>Version 0.3.11 with upgrade alerts on 08/28/2010</b> Ref=941.msg11505#msg11505 <div class="q">Replying</div>What OS? I ran the Windows and 64-bit Linux version and checked the about dialog.<br>The Mac version isM still 0.3.10.1.<br><div class="q">Replying</div>I updated the first post to be more specific. Only the -4way code is compiled this way.<br> #112 <b>Big endian code problems on 08/29/2010</b> Ref=816.msg11610#msg11610 The code assumes little-endian throughout and was written with the intention of never being ported to big-endian. Every integer that is sent over the network would have to be byte swapped, in addition to many dozens of other places in code. It would not be woM rth the extra sourcecode bloat.<br>Big-endian is on its way out anyway. #111 <b>CryptoPP Assertion Error on 09/05/2010</b> Ref=967.msg12062#msg12062 You can probably just comment out the line<br>cryptopp/secblock.h:187<br> //assert(false);<br>Let me know if it works, and watch if it memory leaks. <br>It looks like a template class to make sure the derived class defines its own version of allocate and deallocate. It would be weird if that was the actual problem and itM made it all the way to release. Probably a false alarm. #110 <b>Warning : Check your system ( Help me ) on 09/05/2010</b> Ref=960.msg12063#msg12063 Any suggestions for better text to put for this error message so the next person will be less likely to be confused?<br>It's trying to tell them their clock is wrong and they need to correct it.<br>It's relying on 3 time sources:<br>1) the system clock<br>2) the other nodes, if within an hour of the system clock<br>if those M disagree, then<br>3) the user (asking the user to fix the system clock)<br>I've thought about NTP, but this is more secure. #109 <b>HTTP status codes from the JSON-RPC api on 09/06/2010</b> Ref=969.msg12130#msg12130 This is in SVN rev 147.<br>This is more standard, and although json-rpc 1.0 didn't specify the format of error objects, it did specify that they would be <i>objects</i> not strings or other values, so we needed to change this to be correct. The code/message memM bers have become standard in later json-rpc specs.<br>If you have code that checks the error and expects a string, you'll need to change it. When there is an error, the error member is now an object not a string.<br>Also in SVN rev 147:<br>- The command line json-rpc returns the error code as its exit code. Exit codes can only be 0-255 on unix, so it's abs(code)%256.<br>- The "backupwallet <destination>" command that was discussed in another thread. It locks the wallet and copies it, so you can be sure you geM t a correct copy.<br> #108 <b>Warning : Check your system ( Help me ) on 09/06/2010</b> Ref=960.msg12132#msg12132 <div class="q">Replying</div>Thanks. #107 <b>auto backing up of wallet.dat on 09/06/2010</b> Ref=921.msg12134#msg12134 rpc backupwallet <destination> is in SVN rev 147. #106 <b>bitcoind as daemon in OSX on 09/06/2010</b> Ref=992.msg12135#msg12135 Can you build?<br>Try M changing line 78 of init.cpp from:<br>#ifdef __WXGTK__<br>to:<br>#ifndef __WXMSW__<br>If that works, I'll change the source. It should work. #105 <b>Always pay transaction fee? on 09/07/2010</b> Ref=994.msg12168#msg12168 Another option is to reduce the number of free transactions allowed per block before transaction fees are required. Nodes only take so many KB of free transactions per block before they start requiring at least 0.01 transaction fee.<br>The threshold shouldM probably be lower than it currently is.<br>I don't think the threshold should ever be 0. We should always allow at least some free transactions.<br> #104 <b>Version 0.3.12 on 09/07/2010</b> Ref=999.msg12181#msg12181 Version 0.3.12 is now available.<br>Features:<br>- json-rpc errors return a more standard error object. (thanks to Gavin Andresen)<br>- json-rpc command line returns exit codes.<br>- json-rpc "backupwallet" command.<br>- Recovers and continues if an exception M is caused by a message you received. Other nodes shouldn't be able to cause an exception, and it hasn't happened before, but if a way is found to cause an exception, this would keep it from being used to stop network nodes.<br>If you have json-rpc code that checks the contents of the error string, you need to change it to expect error objects of the form {"code":<number>,"message":<string>}, which is the standard. See this thread:<br>http://bitcointalk.org/index.php?topic=969.0<br>Download:<br>http://soM urceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.12/<br> #103 <b>Always pay transaction fee? on 09/08/2010</b> Ref=994.msg12237#msg12237 Currently, paying a fee is controlled manually with the -paytxfee switch. It would be very easy to make the software automatically check the size of recent blocks to see if it should pay a fee. We're so far from reaching the threshold, we don't need that yet. It's a good idea to see how things go with controlling it manually firstM anyway.<br>It's not a big deal if we reach the threshold. Free transactions would just take longer to get into a block.<br>I did a rough tally of 4000 blocks from around 74000-78000. This is excluding the block reward transactions:<br>There were average 2 transactions per block, 17 transactions per hour, 400 transactions per day.<br>Average transaction bytes per block was 428 bytes, or 214 bytes per transaction.<br>The current threshold is 200KB per block, or about 1000 transactions per block. I think it should beM lowered to 50KB per block. That would still be more than 100 times the average transactions per block.<br>The threshold can easily be changed in the future. We can decide to increase it when the time comes. It's a good idea to keep it lower as a circuit breaker and increase it as needed. If we hit the threshold now, it would almost certainly be some kind of flood and not actual use. Keeping the threshold lower would help limit the amount of wasted disk space in that event.<br> #102 <b>Version 0.3.M 12 on 09/08/2010</b> Ref=999.msg12240#msg12240 Bitcoin clients currently only create and recognize transactions that match two possible templates. <br>Those are some quick tests that loosely check if transactions fit some general metrics that those standard transactions fit. Nodes will only work on adding those transactions to their block.<br>In the future, if we add more templates to the existing 2 types of transactions, we can change the "rather not work on nonstandard transactions" testM to accept them.<br> #101 <b>Bitcoin Blogger: Is It Better To Buy Or Generate Bitcoins? on 09/08/2010</b> Ref=955.msg12248#msg12248 <div class="q">Replying</div>Did you try -4way?<br><div class="q">Replying</div>AMD Phenom (I think 4-core) CPUs are doing about 11,000khps with -4way, about 100% speedup. 24 cores should get 66,000khps. AMD is the best choice because it has the best SSE2 implementation. (or maybe because tcatm had an AMD and optimised his code for that)<br>ThM ere's been so much else to do that I haven't had time to make -4way automatic. For now you still have to do it manually.<br>http://bitcointalk.org/index.php?topic=820.0<br> #100 <b>Auto-detect for 128-bit 4-way SSE2 on 09/09/2010</b> Ref=1007.msg12262#msg12262 SVN rev 150 has some code to try to auto-detect whether to use 4-way SSE2. We need this because it's only faster on certain newer CPUs that have 128-bit SSE2 and not ones with 64-bit SSE2.<br>It uses the CPUID instruM ction to get the CPU brand, family, model number and stepping. That's the easy part. Knowing what to do with the model number is the hard part. I was not able to find any table of family, model and stepping numbers for CPUs. I had to go by various random reports I saw.<br>Here's what I ended up with:<br><div class="codeheader">Code:</div><div class="code"> // We need Intel Nehalem or AMD K10 or better for 128bit SSE2<br> // Nehalem = i3/i5/i7 and some Xeon<br> // K10 = Opterons with 4 orM more cores, Phenom, Phenom II, Athlon II<br> // Intel Core i5 family 6, model 26 or 30<br> // Intel Core i7 family 6, model 26 or 30<br> // Intel Core i3 family 6, model 37<br> // AMD Phenom family 16, model 10<br> bool fUseSSE2 = ((fIntel && nFamily * 10000 + nModel >= 60026) ||<br> (fAMD && nFamily * 10000M + nModel >= 160010));<br></div><br>I saw some sporadic inconsistent model numbers for AMD CPUs, so I'm not sure if this will catch all capable AMDs.<br>If it's wrong, you can still override it with -4way or -4way=0.<br>It prints what it finds in debug.log. Search on CPUID.<br>This is only enabled if built with GCC. #99 <b>Won't let me send coins because it requires a transaction fee? on 09/10/2010</b> Ref=1013.msg12341#msg12341 What version is the one where this happenM ed? Release build, or built it yourself? Which operating system? <br>Were you sending by IP or by Bitcoin Address?<br>When you sent 49.99, did it prompt you to pay a 0.01 fee?<br>There was a change in GetMinFee, but I can't see how it would cause this. It only starts to apply when a block gets huge. <br>The reason for the difference in block number is the number displayed was reduced by 1 in 0.3.11 because it made more sense that way. #98 <b>Won't let me send coins because it requM ires a transaction fee? on 09/10/2010</b> Ref=1013.msg12342#msg12342 I think I know what happened. Doubleclick on the generated transaction. It probably has a sub-0.01 transaction fee in it.<br>Someone has been paying a 0.00000010 transaction fee. I don't think you can even set that with -paytxfee, I think you'd have to modify the code to do it. Your generated block is worth 50.00000010, so when you try to send the whole thing you have 0.00000010 left over for the change, which triggers thM e dust spam 0.01 fee.<br>It would normally be harmless except in this corner case. I should add a special case to CreateTransaction to handle this. #97 <b>Won't let me send coins because it requires a transaction fee? on 09/10/2010</b> Ref=1013.msg12368#msg12368 The fix is in SVN rev 151.<br>You will be able to send your stuck 0.01 (actually 0.01000010) when you next upgrade.<br> #96 <b>Auto-detect for 128-bit 4-way SSE2 on 09/10/2010</b> Ref=1007.msg12372M <div class="q">Replying</div>Added in SVN rev 152 #95 <b>Running on a port other than 8333 on 09/12/2010</b> Ref=589.msg12483#msg12483 <div class="q">Replying</div>Is there a way to open BerkeleyDB exclusive?<br>DB_PRIVATE is the worst of both worlds. DB_PRIVATE is not exclusive, but it does make it get screwed up if another process tries to access it at the same time.<br>I've dropped the DB_PRIVATE flag in rev 153. <b>RFC: remove DB_PRIVATE flag on 09/12/2010</b> Ref=920.msg12484#msg12484 Trying it without the DB_PRIVATE flag in rev 153. We need to keep an eye on what's different.<br>On Windows at least, it creates six __db.001 - __db.006 files with sizes from 24K to 4MB. It doesn't delete them on exit, it just leaves them behind.<br>The docs say it uses memory mapped files. I assume they have the same file permissions as the database files, so the same user access restrictions apply.<br>Tests on WinM dows private LAN download of 78500 blocks:<br>with DB_PRIVATE 20 minutes 51 seconds<br>without DB_PRIVATE 20 minutes 51 seconds<br>I wasn't expecting them to come out exactly the same. #93 <b>Switch to GPL on 09/12/2010</b> Ref=989.msg12494#msg12494 If the only library is closed source, then there's a project to make an open source one.<br>If the only library is GPL, then there's a project to make a non-GPL one.<br>If the best library is MIT, Boost, neM w-BSD or public domain, then we can stop re-writing it.<br>I don't question that GPL is a good license for operating systems, especially since non-GPL code is allowed to interface with the OS. For smaller projects, I think the fear of a closed-source takeover is overdone.<br> #92 <b>Memory leak on 09/19/2010</b> Ref=1023.msg13201#msg13201 Bouncing between 0 and 2 connections could be if it's connecting to itself. Are you using the "-connect" switch?<br>Did you compile it oM r is this a release build, and what version? <br>I'm not sure how the 200Kb/sec, since it waits at least a half second between connection attempts. How fast is it flickering between 0 and 2 connections? Faster than twice a second?<br>The wait function on linux is:<br>inline void Sleep(int64 n)<br>{<br> boost::thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(n));<br>}<br>If that doesn't work right, then it would be possible for it to spin through the loop as fast as it can.M #91 <b>Issues building bitcoin on Windows 7 on 09/19/2010</b> Ref=1034.msg13206#msg13206 The lines it's tripping on:<br><div class="codeheader">Code:</div><div class="code">ERROR extern map<string, string> mapAddressBook;<br>ERROR extern CCriticalSection cs_mapAddressBook;<br>ERROR extern vector<unsigned char> vchDefaultKey;<br>OK extern bool fClient;<br>OK extern int nBestHeight;<br><br>OK extern unsigned int nWalletDBUpdated;<br>ERROR extern DbEnv dbenv;<br>M </div><br>So it's acting like nothing is defined, not even map and vector.<br>Yet, db.h is included by headers.h (and only there, nowhere else) which includes vector, map, util.h and everything before db.h.<br>Is VC trying to use precompiled headers and screwing it up? Could there be some leftover precompiled header files in your directory from previously failed attempts that it's finding and using?<br>There's an installer package now that makes it really easy to install MinGW. Don't use the latest version 4.M 5.0, use a few versions back like 4.4.1 (1.908.0) or 1.812.0. A setup program completely installs everything, it's not hard like it used to be. I think the only thing I had to do was rename make*.exe something to make.exe.<br>http://tdm-gcc.tdragon.net/<br>Off topic, but: It would be nice if someone would hack on getting tcatm's 4-way 128-bit SSE2 code working on Windows. There's something with MinGW's optimisation, I'm not sure but maybe a problem with 16-byte alignment on the stack, that makes it segfault. With sM ome fiddling, I was able to get his code to work in a test program, but not in Bitcoin itself for some reason.<br> #90 <b>Bug? /usr/bin/bitcoind "" on 09/19/2010</b> Ref=1063.msg13211#msg13211 I don't know anything about any of the bug trackers. If we were to have one, we would have to make a thoroughly researched choice.<br>We're managing pretty well just using the forum. I'm more likely to see bugs posted in the forum, and I think other users are much more likely to helM p resolve and ask follow up questions here than if they were in a bug tracker. A key step is other users helping resolve the simple stuff that's not really a bug but some misunderstanding or confusion.<br>I keep a list of all unresolved bugs I've seen on the forum. In some cases, I'm still thinking about the best design for the fix. This isn't the kind of software where we can leave so many unresolved bugs that we need a tracker for them. #89 <b>The case for removing IP transactions on 09/19/2010</M b> Ref=1048.msg13219#msg13219 Probably best to disable receiving by IP unless you specifically intend to use it. This is a lot of surface area that nobody uses that doesn't need to be open by default.<br>In storefront cases, you would typically only want customers to send payments through your automated system that only hands out bitcoin addresses associated with particular orders and accounts. Random unidentified payments volunteered to the server's IP address would be unhelpful.<br>In geM neral, sending by IP has limited useful cases. If connecting directly without a proxy, the man-in-the-middle risk may be tolerable, but no privacy. If you use a privacy proxy, man-in-the-middle risk is unacceptably high. If we went to all the work of implementing SSL, only large storefronts usually go to the trouble of getting a CA cert, but most of those cases would still be better off to use bitcoin addresses.<br>I uploaded this change to SVN rev 156. The switch to enable is "-allowreceivebyip".<br>Senders with tM his version will get the error "Recipient is not accepting transactions sent by IP address". Older version senders will get "Transfer was not accepted".<br>I used a different name for the switch because "-allowiptransactions" sounds like it includes sending. If there's a better name for the switch, we can change it again. #88 <b>Message Encryption as a built-in feature? on 09/19/2010</b> Ref=1032.msg13221#msg13221 Theymos already said this... ECDSA does not support encryptM ing messages. Only digital signatures.<br> #87 <b>Always pay transaction fee? on 09/23/2010</b> Ref=994.msg13829#msg13829 <div class="q">Replying</div>I implemented this change in SVN rev 157.<br>The reason I previously made it so high was to allow very large transactions without hitting the transaction fee. The threshold was around 26,000 BTC for transactions made of 50 BTC generated coins. Even though it was 100 times easier to generate back then, only a few people ever M encountered the fee at that level. The new threshold puts it at around 11,000 BTC for sending generated coins. It would mostly only be reached with generated bitcoins. If you bought your bitcoins, they'll be denominated in larger transactions and won't be anywhere near the fee limit, unless you bought them in several hundred separate transactions. Even if you do reach the fee level, you only have to pay it once to bundle your little transactions together. #86 <b>Internal version number on 09/23/201M 0</b> Ref=1269.msg13831#msg13831 In the next release (0.3.13), I'm going to change the format of the internal version number integer from 313 to 31300, for instance 31305 = 0.3.13.5. The last number represents changes on the SVN between releases and ought to be properly represented in the version number. Otherwise, it would be a pain if we had a mistake or something in one of the sub versions that needed to be worked around. #85 <b>Warning : Check your system ( Help me )M on 09/23/2010</b> Ref=960.msg13833#msg13833 I don't understand, are you under the impression that the program sets the system clock? It doesn't.<br><div class="q">Replying</div>We use an internal offset based on the median of other nodes' times, but for security reasons we don't let them offset us by more than an hour. If they indicate we're off by more than an hour, then we resort to alerting the user to fix their clock. #84 <b>Porn on 09/23/2010</b> Ref=671.msg138M Bitcoin would be convenient for people who don't have a credit card or don't want to use the cards they have, either don't want the spouse to see it on the bill or don't trust giving their number to "porn guys", or afraid of recurring billing. #83 <b>How divisible are bitcoins - the technical side on 09/23/2010</b> Ref=1271.msg13848#msg13848 I would not encourage using the extra decimal places. They're only intended for future use.<br>M You are correct that above 0.01 can still have additional precision, but the recipient won't be able to see it. The UI will show it rounded down. #82 <b>Internal version number on 09/23/2010</b> Ref=1269.msg13849#msg13849 I don't think it should cause any problems for version comparisons. 31300 > 312. #81 <b>How To Make a Distributed BitCoin Escrow Service on 09/26/2010</b> Ref=1283.msg14136#msg14136 It's not implemented yet, bM ut the network can support a transaction that requires two signatures. It's described here:<br>http://bitcointalk.org/index.php?topic=750.0<br>It's absolutely safer than a straight payment without escrow, but not as good as a human arbitrated escrow, assuming you trust the human enough.<br>In this kind of escrow, a cheater can't win, but it's still possible for you to lose. It at least takes away the profit motive for cheating you. The seller is assured that the money is reserved for him, while the buyer retains thM e leverage that the seller hasn't been paid yet until completion.<br> #80 <b>I broke my wallet, sends never confirm now. on 09/30/2010</b> Ref=1306.msg14714#msg14714 As you figured out, the root problem is we shouldn't be counting or spending transactions until they have at least 1 confirmation. 0/unconfirmed transactions are very much second class citizens. At most, they are advice that something has been received, but counting them as balance or spending them is prematurM e.<br>I made changes so they show up in lighter print, with the credit amount in square brackets like [+1.23], and the amount not counted towards your balance and not available for spending. This doesn't apply to transactions you sent, which you implicitly trust, since you wrote them.<br>I didn't make it (+1.23) because parenthesis in accounting means negative. I hope square brackets is different enough to be clear what is meant.<br>The JSON-RPC interface can still see 0/unconfirmed if it wants by specifying 0 confM irmations.<br>I uploaded the changes to SVN rev 158. I will post a 0.3.13 RC shortly.<br>If you have any of these transactions in your wallet, do not send any payments until you've upgraded to 0.3.13, which will be coming soon.<br>If you've already sent any of these transactions, or you're the creator of them, then use theymos' patch or make the following change and use it to send your clean transactions to a new wallet to clean things up.<br>change:<br> if (pcoin->GetDepthInMainChain() < 1 &M & pcoin->GetDebit() <= 0)<br> continue;<br>to:<br> if (pcoin->GetDepthInMainChain() < 1)<br> continue;<br> #79 <b>I broke my wallet, sends never confirm now. on 09/30/2010</b> Ref=1306.msg14720#msg14720 0.3.13 release candidate, please test:<br>http://www.bitcoin.org/download/bitcoin-0.3.13-rc1-win32-setup.exe<br> #78 <b>0.3.13 RC1 for Windows, please test on 09/30/2010</b> M Ref=1322.msg14722#msg14722 0.3.13 release candidate, to be released soon so please test:<br>http://www.bitcoin.org/download/bitcoin-0.3.13-rc1-win32-setup.exe<br>- don't count or spend payments until they have 1 confirmation<br> http://bitcointalk.org/index.php?topic=1306.0<br>- internal version number from 312 to 31300<br>- only accept transactions sent by IP address if -allowreceivebyip is specified<br>- dropped DB_PRIVATE Berkeley DB flag<br>- fix problem sending the M last cent with sub-cent fractional change<br>- auto-detect whether to use 128-bit 4-way SSE2 on Linux<br>Gavin Andresen:<br>- option -rpcallowip= to accept json-rpc connections from another machine<br>- clean shutdown on SIGTERM on Linux<br> #77 <b>BitCoin Wikipedia page DELETED!!! on 09/30/2010</b> Ref=652.msg14729#msg14729 If you do, I think it should be a very brief, single paragraph article like 100 words or less that simply identifies what Bitcoin is.<br>I wish ratherM than deleting the article, they put a length restriction. If something is not famous enough, there could at least be a stub article identifying what it is. I often come across annoying red links of things that Wiki ought to at least have heard of.<br>The article could be as simple as something like:<br>"Bitcoin is a peer-to-peer decentralised /link/electronic currency/link/."<br>The more standard Wiki thing to do is that we should have a paragraph in one of the more general categories that we are an instance of, lM ike Electronic Currency or Electronic Cash. We can probably establish a paragraph there. Again, keep it short. Just identifying what it is.<br> #76 <b>Prioritized transactions, and tx fees on 09/30/2010</b> Ref=1314.msg14732#msg14732 It ramps up the fee requirement as the block fills up:<br><50KB free<br>50KB 0.01<br>250KB 0.02<br>333KB 0.03<br>375KB 0.04<br>etc.<br>It's a typical pricing mechanism. After the first 50KB sells out, the pricM e is raised to 0.01. After 250KB is sold, it goes up to 0.02. At some price, you can pretty much always get in if you're willing to outbid the other customers.<br>Just including the minimum 0.01 goes a long way. #75 <b>Prioritized transactions, and tx fees on 09/30/2010</b> Ref=1314.msg14734#msg14734 True, the switch should be something more dynamic that pays per KB. It's harder to think of how to explain it. #74 <b>Remote RPC access on 09/30/2010</b> Ref=M 1291.msg14736#msg14736 It can be safe if you're using it over your own LAN, like if you have multiple servers at a location that talk to each other.<br>0.3.13 RC1 is available for Windows:<br>http://www.bitcoin.org/download/bitcoin-0.3.13-rc1-win32-setup.exe<br> #73 <b>0.3.13 RC1 for Windows, please test on 10/01/2010</b> Ref=1322.msg14787#msg14787 Too late for 0.3.13, but I'll try to find time to add it to the next version. b>Version 0.3.13, please upgrade on 10/01/2010</b> Ref=1327.msg14788#msg14788 Version 0.3.13 is now available. You should upgrade to prevent potential problems with 0/unconfirmed transactions. Note: 0.3.13 prevents problems if you haven't already spent a 0/unconfirmed transaction, but if that already happened, you need 0.3.13.2.<br>Changes:<br>- Don't count or spend payments until they have 1 confirmation.<br>- Internal version number from 312 to 31300.<br>- Only accept transactions sent bM y IP address if -allowreceivebyip is specified.<br>- Dropped DB_PRIVATE Berkeley DB flag.<br>- Fix problem sending the last cent with sub-cent fractional change.<br>- Auto-detect whether to use 128-bit 4-way SSE2 on Linux.<br>Gavin Andresen:<br>- Option -rpcallowip= to accept json-rpc connections from another machine.<br>- Clean shutdown on SIGTERM on Linux.<br>Download:<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.13/<br>(Thanks Laszlo for the Mac OSX build!)<br>Note:<br>The SSE2 auto-detecM t in the Linux 64-bit version doesn't work with AMD in 64-bit mode. Please try this instead and let me know if it gets it right:<br>http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-linux64.tar.gz<br>You can still control the SSE2 use manually with -4way and -4way=0.<br>Version 0.3.13.2 (SVN rev 161) has improvements for the case where you already had 0/unconfirmed transactions that you might have already spent. Here's a Windows build of it:<br>http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setuM #71 <b>Version 0.3.13 on 10/03/2010</b> Ref=1327.msg15102#msg15102 <div class="q">Replying</div>Forgot to say, I suspected the detect might not work on 64-bit AMD. I found it hard to believe but AMD reports a different model number in 64-bit mode.<br>Could you grep CPUID your debug.log and tell me what it says? (and anyone else with 64-bit AMD) And what AMD chip do you have?<br>Do all AMDs that support 64-bit have the better SSE2 hardware also? #70 <b>Version 0.3.13, please upgrade on 10/03/2010</b> Ref=1327.msg15110#msg15110 Could a few people please run this special build? It'll amnesty the dust spam transactions, which will clear up the 0/unconfirmed problem for now. We really just need one block letting them through to clear up the previous transactions. Post if you generate a block with this.<br>These are binaries only. The linux version is 64-bit only.<br>http://www.bitcoin.org/download/bitcoin-0.3.13.1-speM cialbuild-win32.zip<br>http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-linux64.tar.gz<br>SHA1 fb7c66270281ed058c570627cf7baff0bdc16e5d bitcoin-0.3.13.1-specialbuild-win32.zip<br>SHA1 9fc44ea5f2109618073e2cfd887e2cc266eb31a9 bitcoin-0.3.13.1-specialbuild-linux64.tar.gz<br>The linux 64-bit version includes a change to the cpuid 4-way 128-bit SSE2 autodetect for AMD in 64-bit mode, if you'd like to test that and see if that's better. #69 <b>Version 0.3.13, please upgrade on 10/03/2010</bM > Ref=1327.msg15112#msg15112 <div class="q">Replying</div>Seriously? What hardware is that? #68 <b>Version 0.3.13, please upgrade on 10/03/2010</b> Ref=1327.msg15116#msg15116 <div class="codeheader">Code:</div><div class="code">diff -u old\main.cpp new\main.cpp<br>--- old\main.cpp<span style="white-space: pre;"> </span>Sun Oct 03 20:57:20 2010<br>+++ new\main.cpp<span style="white-space: pre;"> </span>Sun Oct 03 20:57:54 2010<br>@@ -2831,6 +M 2831,10 @@<br> bool fUseSSE2 = ((fIntel && nFamily * 10000 + nModel >= 60026) ||<br> (fAMD && nFamily * 10000 + nModel >= 160010));<br> <br>+ // AMD reports a lower model number in 64-bit mode<br>+ if (fAMD && sizeof(void*) > 4 && nFamily * 10000 + nModel >= 160004)<br>+ fUseSSE2 = true;<br>+<br> &M nbsp; static bool fPrinted;<br> if (!fPrinted)<br> {<br>@@ -2989,6 +2993,17 @@<br> <br> // Transaction fee based on block size<br> int64 nMinFee = tx.GetMinFee(nBlockSize);<br>+ //////// temporary code<br>+ &nbsM p; if (nBlockSize < MAX_BLOCK_SIZE_GEN / 10 && GetWarnings("statusbar") == "")<br>+ {<br>+ if (nBestHeight < 91000)<br>+ nMinFee = 0;<br>+ if (nBestHeighM t < 100000 && nTxSize < 2000)<br>+ nMinFee = 0;<br>+ if (nBestHeight < 110000 && nBestHeight % 10 == 0)<br>+ nMinFee = 0;<br>+ }<br>+ &nM bsp; //////// temporary code<br> <br> map<uint256, CTxIndex> mapTestPoolTmp(mapTestPool);<br> if (!tx.ConnectInputs(txdb, mapTestPoolTmp, CDiskTxPos(1,1,1), pindexPrev, nFees, false, true, nMinFee))<br>diff -u old\serialize.h new\serialize.h<br>--- old\serialize.h<span style="white-space: pre;"> </span>Sun OcM t 03 20:57:45 2010<br>+++ new\serialize.h<span style="white-space: pre;"> </span>Sun Oct 03 20:57:54 2010<br>@@ -22,8 +22,8 @@<br> class CAutoFile;<br> static const unsigned int MAX_SIZE = 0x02000000;<br> <br>-static const int VERSION = 31300;<br>-static const char* pszSubVer = "";<br>+static const int VERSION = 31301;<br>+static const char* pszSubVer = " test1";<br></div> #67 <b>Version 0.3.13, please upgrade on 10/03/2010</b> Ref=1327.msg15136#msg15136 v class="q">Replying</div>Transactions aren't accepted or displayed as 0/unconfirmed until your node has a path of transactions back to the block chain.<br>Any transactions in your wallet also have bundled with them all unrecorded transactions required to reach the block chain. If you have a transaction that is displayed as 0/unconfirmed, then you have all the previous unrecorded transactions it depends on and you will also rebroadcast those transactions when you rebroadcast yours.<br>If a no-fee block has already M been generated and hasn't helped, then I need to look at what's wrong. It's a part of code that doesn't get much use. They should be recorded in the wallets of everyone who has a transaction depending on them.<br><div class="q">Replying</div>Sigh... why delete a wallet instead of moving it aside and keeping the old copy just in case? You should never delete a wallet.<br><div class="q">Replying</div>It may take a while to collect re-broadcast transactions. It'll help if you can accept inbound connections so yoM u'll be listening to more nodes. Even if you find a block in 3 hours, keep it running continuously for a few days at least.<br> #66 <b>[PATCH] increase block size limit on 10/03/2010</b> Ref=1347.msg15139#msg15139 <div class="q">Replying</div>+1 theymos. Don't use this patch, it'll make you incompatible with the network, to your own detriment.<br>We can phase in a change later if we get closer to needing it. #65 <b>How to overthrow the GPU Oligarchs on 10/M 03/2010</b> Ref=1332.msg15142#msg15142 <div class="q">Replying</div>This is the point of confusion. extraNonce is not part of the block header, it is part of the first transaction. It does not slow down your hashing. It does not change the size of the header.<br>We need to be vigilant and nip in the bud any misconception that the contents of your block slows down your hash speed. It doesn't.<br>extraNonce never needs to be very big. We could reset it every second whenever the time changes M if we wanted. Worst case, if you didn't want to keep track of incrementing it, extraNonce could be 4 random bytes and the chance of wasting time from collision would be negligible.<br>Separate machines are automatically collision proof because they have different generated public keys in the first transaction. That also goes for each thread too.<br> #64 <b>Version 0.3.13, please upgrade on 10/03/2010</b> Ref=1327.msg15147#msg15147 ShadowOfHarbringer, is yours faster with -M 4way?<br>If it is, then I'm thinking that any AMD that supports 64-bit has 128-bit SSE2.<br>The specialbuild version I posted here looks for model 4 or higher. If yours is faster with -4way, then I should change it to always use SSE2 with any AMD with 64-bit.<br> #63 <b>Memory leak on 10/03/2010</b> Ref=1023.msg15150#msg15150 You're connecting to yourself. All 21 connection attempts were to a node with version 31300 (0.3.13). Not everyone has 0.3.13 yet.<br>IRC seems to beM working. It ought to have other nodes to try.<br>There may be something I need to do to make sure it doesn't try to connect to itself again right away after disconnecting. I can't see how it's happening though, it should be resetting nLastTry which would put it to the back of the queue, but the log doesn't show it.<br>You can try moving addr.dat aside. Maybe there's something wrong in it.<br>Are you using -addnode? #62 <b>Version 0.3.13, please upgrade on 10/03/2010</b> Ref=1327.msg15167#msg15167 Make sure you keep your node online so it'll keep rebroadcasting transaction b412a0. It haven't seen it rebroadcast since 29/09/2010 16:41. #61 <b>Website and software translations on 10/04/2010</b> Ref=151.msg15176#msg15176 Thanks eurekafag, Russian translation added to SVN rev 160. #60 <b>Website and software translations on 10/04/2010</b> Ref=151.msg15360#msg15360 <div class="q">Replying</div>poedit doM es it. Either get the src directory from a release, or download it with SVN. Place your .po file 3 directories deep under the src directory. Open it with poedit and do Catalog->Update from sources.<br>So for example, you have:<br>src<br>src\base58.h<br>src\bignum.h<br>...<br>src\util.cpp<br>src\util.h<br>src\xpm<br>src\locale\ru\LC_MESSAGES\bitcoin.po<br>Open bitcoin.po with poedit, do Catalog->Update from sources. It looks for the sourcecode up 3 directories (..\..\..) from where bitcoin.po is.<br>This updatM es your existing .po file you already worked on and adds any news strings. It may try to match close strings, so check things over and make sure it didn't make any bad guesses.<br>Make sure you use the .po file I uploaded to SVN or in a release, because I always fix up at least a few things. I'm attaching your Russian one to this message.<br> #59 <b>[PATCH] increase block size limit on 10/04/2010</b> Ref=1347.msg15366#msg15366 It can be phased in, like:<br>if (blocknumber M > 115000)<br> maxblocksize = largerlimit<br>It can start being in versions way ahead, so by the time it reaches that block number and goes into effect, the older versions that don't have it are already obsolete.<br>When we're near the cutoff block number, I can put an alert to old versions to make sure they know they have to upgrade.<br> #58 <b>Website and software translations on 10/06/2010</b> Ref=151.msg15660#msg15660 poedit reorganised the file forM some reason. I re-ran update from sources and it put it back in the original order so it's fine now. Did you run it on a drive where files aren't sorted alphabetically, like a FAT drive or USB flash drive?<br>Strings aren't added or changed very often. It's months before enough changes build up.<br>I uploaded the changes.<br>This Windows build has the Russian translation in it:<br>http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setup.exe #57 <b>I broke my wallet, sends never confirm now. onM 10/06/2010</b> Ref=1306.msg15672#msg15672 That's going to be more of a SelectCoins thing.<br>SVN rev 161 has a refinement to recursively determine if your own unconfirmed transactions can be spent. This is needed because you should be able to spend your own change right away.<br>The new recursive determination is: 0/unconfirmed can be spent if it's yours and all its dependencies are either in a block or also yours.<br>Here's a Windows build:<br>http://www.bitcoin.org/download/bitcoin-0.3.M 13.2-win32-setup.exe<br>This version is an improvement if you already had a 0/unconfirmed transaction and might have already spent it. If you were the original creator of a 0/unconfirmed transaction, you still need theymos' patch instead. #56 <b>Tor connections not working reliably, many seednodes offline on 10/06/2010</b> Ref=1375.msg15682#msg15682 Maybe you were just unlucky to have an exit node without reverse lookup.<br>The IRC server's response doesn't look like it waM s disconnecting you for that. It's supposed to go IRC SENDING: NICK after that, and it doesn't so it gets timed out.<br>I see the problem. The IRC code is looking for various phrases to see when the server is ready to receive your NICK, but it's not looking for that particular phrase. I'll fix it.<br>I don't know if it's really required to wait for the server to finish looking up hostname before sending nick.<br>How long did it take to get connected with TOR the first time, having to use the seed nodes? #55 <b>The Niche List on 10/06/2010</b> Ref=1268.msg15741#msg15741 <div class="q">Replying</div>Repeating myself here, but there is open source software for that, so it would just be a matter of bolting on a Bitcoin payment mechanism. One good one I found was Mihalism Multi Host. It's designed as a free host, so it would just need a few tweaks to loosen up restrictions consistent with paid use.<br> #54 <b>Key pool feature for safer wallet backup on 10/09/2010</b> RefM =1414.msg16316#msg16316 SVN rev 163 (ver 0.3.13.3) has the key pool feature. Pre-generated new keys are aged in a queue before use, so that backups of wallet.dat hold keys you'll use in the future.<br>For now I made the default pool size 100. It can be configured with -keypool=. Be aware, it takes a little time to increase the pool size, so don't go crazy with it. Disk space is about 1K per key.<br>I have not addressed the recovery side of this yet. If you actually did restore an old walleM t.dat, I think you may have to delete blk*.dat to rediscover your own transactions during the redownload.<br>I've only tested this moderately. You might not want to use this for a website server until it's had some more testing. #53 <b>Version 0.3.14 on 10/21/2010</b> Ref=1528.msg17924#msg17924 Version 0.3.14 is now available<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.14/<br>Changes:<br>- Key pool feature for safer wallet backup<br>Gavin Andresen:M <br>- TEST network mode with switch -testnet<br>- Option to use SSL for JSON-RPC connections on unix/osx<br>- validateaddress RPC command<br>eurekafag:<br>- Russian translation<br> #52 <b>Website and software translations on 10/21/2010</b> Ref=151.msg17965#msg17965 The order matters not to the program, but it matters to me maintaining it. If it jumbles the order of the .po file then I can't diff for changes. I have to update all 7 translation files when I change the EnglisM h text in the program, and it's easier when they're all in the same order.<br>I can still put it back into normal order by making poedit rescan it.<br>It is normal that untranslated strings are shown on top.<br><div class="q">Replying</div>I know, but not easily without complicating the sourcecode. #51 <b>ERROR - PLEASE HELP ME! on 10/23/2010</b> Ref=1530.msg18241#msg18241 <div class="q">Replying</div>He was generating invalid blocks at difficulty 1.0. He must have a corruM pted entry in his blk0001.dat or blkindex.dat file. He just needs to delete blk*.dat and let it redownload.<br>The safety lockdown detected the problem and was displaying "WARNING: Displayed transactions may not be correct!" because it saw a longer chain existed that it was unable to accept. The safety lockdown cannot stop generation or it would create an attack possibility.<br><div class="q">Replying</div>Good idea, I made a change to make sure it won't generate before checkpoint block 74000.<br> #50 <b>ERROR - PLEASE HELP ME! on 10/23/2010</b> Ref=1530.msg18245#msg18245 OK, if it really won't get past block 1698 on redownload, then we're in stranger territory.<br>Yes, possibly he has antivirus software or even a router or filewall that is pattern matching a sequence of bytes and censoring it.<br>It would be instructive to get knightmb's blk*.dat and see if that gets him past that point. #49 <b>Win7 64bit since last patch Tues now crashes on 10/23/2010</b> Ref=1540M <div class="q">Replying</div>This is the important clue. I believe it's saying it crashed in that. Maybe there are other versions of it to try. mingwm10.dll is just a simple placeholder thing that satisfies some callback requirement for multithreaded apps.<br>Is anyone else running OK on Windows 64-bit? #48 <b>Suggestion: Allow short messages to be sent together with bitcoins ? on 10/23/2010</b> Ref=1545.msg18250#msg18250 can't encrypt messages, only sign signatures.<br>It would be unwise to have permanently recorded plaintext messages for everyone to see. It would be an accident waiting to happen.<br>If there's going to be a message system, it should be a separate system parallel to the bitcoin network. Messages should not be recorded in the block chain. The messages could be signed with the bitcoin address keypairs to prove who they're from. #47 <b>Multiple Wallets, one computer on 10/24/2010</b> Ref=665.msg18349#M I have the beginning of something like this. It's mostly like what Gavin described.<br>Some more rpc interface:<br>move <fromaccount> <toaccount> <amount><br> Move from one internal account to another. I think blank account name ("") will be your default account. If you sell something to a user, you could do move "theiraccount" "" 123.45.<br> Is "move" the best name for this? I shied away from "transfer" because that sounds too closeM to sending a transaction.<br>I'm thinking a new function getaccountaddress instead of overloading getnewaddress:<br>getaccountaddress <account><br> Gives you an address allocated from getnewaddress <account>. It'll keep giving the same address until something is received on the address, then it allocates a new address. (It automatically does what the sample code I posted some time ago did)<br>Would these commands make it possible in simple cases to implement your website without needing a dM atabase of your own?<br> #46 <b>Multiple Wallets, one computer on 10/25/2010</b> Ref=665.msg18508#msg18508 Here's some pseudocode of how you would use the account based commands. It sure makes website integration a lot easier.<br>print "send to " + getaccountaddress(username) + " to fund your account"<br>print "balance: " + getbalance(username, 0)<br>print "available balance: " + getbalance(username, 6)<br>// if you make a sale, move the money out of their account<br>move(M username, "", amount, 6)<br>// withdrawal<br>sendfrom(username, bitcoinaddress, amount, 6) #45 <b>Win7 64bit since last patch Tues now crashes on 10/25/2010</b> Ref=1540.msg18511#msg18511 The only thing I can think of is to see if there are other versions of mingwm10.dll you can get. mingwm10.dll is a tiny little DLL that came with the MinGW compiler that you need when you build for multi-thread. I don't know exactly what it does, but it probably just says something like "M yes Windows, see I'm in a DLL like you insisted."<br>The end of your debug.log file might show the last thing it was doing before it crashed. #44 <b>New icon/logo on 11/13/2010</b> Ref=64.msg21766#msg21766 I'm happy if someone with artistic skill wants to contribute alternatives. The icon/logo was meant to be good as an icon at the 16x16 and 20x20 pixel sizes. I think it's the best program icon, but there's room for improvement at larger sizes for a graphic for use on websM ites.<br>It'll be a lot simpler if authors could make their graphics public domain. #43 <b>Some testing that I did on the testnetwork, my findings. on 11/13/2010</b> Ref=1668.msg21896#msg21896 Thank you for limiting flood tests to the testnet.<br>Version 0.3.15 combines several features to help legitimate transactions jump the queue during a flood attack. The key was Gavin's idea for prioritising transactions based on the age of their dependencies. Every coin is entitled tM o turn over so often. The longer waited, the more priority accumulates. Priority is sum(valuein * age) / txsize. Transaction fee still takes precedence over priority, and priority determines the order of processing within a fee strata.<br>In support of the priority feature, SelectCoins only uses your own 0 conf transactions only as a last resort if that's all you have left. This helps keep you from turning your coins over rapidly unless you're forcing it by actually turning all your coins over rapidly. #42 <b>Version 0.3.15 on 11/13/2010</b> Ref=1780.msg21897#msg21897 Version 0.3.15 is now available.<br>Changes:<br>- paytxfee switch is now per KB, so it adds the correct fee for large transactions<br>- sending avoids using coins with less than 6 confirmations if it can<br>- BitcoinMiner processes transactions in priority order based on age of dependencies<br>- make sure generation doesn't start before block 74000 downloaded<br>- bugfixes by Dean Gores<br>- testnet, keypoololdest and M paytxfee added to getinfo<br> #41 <b>Some testing that I did on the testnetwork, my findings. on 11/14/2010</b> Ref=1668.msg21959#msg21959 <div class="q">Replying</div>You should use at least some priority in case a flood comes along before the next block.<br>As long as all dependencies have at least 1 conf, if the transaction doesn't have enough priority at first, the dependencies will age until it does.<br><div class="q">Replying</div>Or managing how much priority you spM end on a transaction. The software would have to know your future plans to know whether to spend your priority now or save it for later. I don't think we'll need to get into that much detail though. There's a wide enough difference between normal users and flooders.<br>Priority doesn't have to do everything. Once you know there's a flood, you can add -paytxfee=0.01. Hopefully with priority, your transactions before that should be at worst slow, not stuck. #40 <b>Need OP_BLOCKNUMBER to allow "time" M limited transactions on 11/15/2010</b> Ref=1786.msg22119#msg22119 We can't safely do OP_BLOCKNUMBER. In the event of a block chain reorg after a segmentation, transactions need to be able to get into the chain in a later block. The OP_BLOCKNUMBER transaction and all its dependants would become invalid. This wouldn't be fair to later owners of the coins who weren't involved in the time limited transaction.<br>nTimeLock does the reverse. It's an open transaction that can be replaced with newM versions until the deadline. It can't be recorded until it locks. The highest version when the deadline hits gets recorded. It could be used, for example, to write an escrow transaction that will automatically permanently lock and go through unless it is revoked before the deadline. The feature isn't enabled or used yet, but the support is there so it could be implemented later.<br> #39 <b>Transaction / spam flood attack currently under way on 11/19/2010</b> Ref=1850.msg22952#msg22952 <div class="q">Replying</div>I'm doing something like that. Priority is a more formalised version of the concept you're describing.<br><div class="q">Replying</div>Yes, like this. And the no-priority-requirement area is 3K, about a dozen transactions per block.<br>I just uploaded SVN rev 185 which has a minimal priority requirement for free transactions. Transaction floods are made up of coins that are re-spent over and over, so they depend on their own 0 conf transactions repeatedly. 0 conf transactiM ons have 0 priority, so free transactions like that will have to wait for one transaction to get into a block at a time.<br>Version 0.3.15 doesn't write transactions using 0 conf dependencies unless that's all it has left, so normal users shouldn't usually have a problem with this.<br>I think this is a good compromise short of making the default fee 0.01. It's not so much to ask that free transactions can only be used to turn coins over so often. If you're using free transactions, you're taking charity and there haM s to be some limit on how often you can use it with the same coins.<br>We've always said free transactions may be processed more slowly. You can help ensure your transactions go through quickly by adding -paytxfee=0.01.<br> #38 <b>OpenCL miner for the masses on 11/20/2010</b> Ref=1334.msg23097#msg23097 <div class="q">Replying</div>Thanks m0mchil for keeping up on the updates!<br>GPU miners, please upgrade as soon as possible to shut down the free transaction abuse! TM his version has the new priority-based limit on free transaction spam.<br><div class="q">Replying</div>Before SVN 184, compiling transactions into a block used an n^2 algorithm. The new efficient single-pass algorithm is orders of magnitude quicker. (O(n) vs O(n^2)/2 algorithm, n=200 maybe 10 to 100 times quicker) #37 <b>New getwork on 11/23/2010</b> Ref=1901.msg23876#msg23876 I uploaded a redesign of m0mchil's getwork to SVN rev 189 (version 31601)<br>m0mchil's external bM itcoin miner idea has solved a lot of problems. GPU programming is immature and hard to compile, and I didn't want to add additional dependencies to the build. getwork allows these problems to be solved separately, with different programs for different hardware and OSes. It's also convenient that server farms can run a single Bitcoin node and the rest only run getwork clients.<br>The interface has a few changes:<br>getwork [data]<br>If [data] is not specified, returns formatted hash data to work on:<br> M "midstate" : precomputed hash state after hashing the first half of the data<br> "data" : block data<br> "hash1" : formatted hash buffer for second hash<br> "target" : little endian hash target<br>If [data] is specified, tries to solve the block and returns true if it was successful. [data] is the same 128 byte block data that was returned in the "data" field, but with the nonce changed.<br>Notes: <br>- It does not return work when you submit a possible hit, only when called withoutM parameter.<br>- The block field has been separated into data and hash1.<br>- data is 128 bytes, which includes the first half that's already hashed by midstate.<br>- hash1 is always the same, but included for convenience.<br>- Logging of "ThreadRPCServer method=getwork" is disabled, it would be too much junk in the log.<br> #36 <b>New getwork on 11/23/2010</b> Ref=1901.msg23891#msg23891 It's not an exact drop-in replacement. I wanted to clean up the interface a little. ItM only requires a few changes.<br>ScanHash_ functions aren't going away. BTW, the interface of this is designed to mirror the parameters of that (midstate, data, hash1).<br> #35 <b>New getwork on 11/24/2010</b> Ref=1901.msg24095#msg24095 <div class="q">Replying</div>getwork does the byte-reversing. midstate, data and hash1 are already big-endian, and you pass data back still big-endian, so you work in big-endian and don't have to do any byte-reversing. They're the same dataM that is passed to the ScanHash_ functions. You can take midstate, data and hash1, put them in 16-byte aligned buffers and pass them to a ScanHash_ function, like ScanHash(pmidstate, pdata + 64, phash1, nHashesDone). If a nonce is found, patch it into data and call getwork.<br>I should probably change the ScanHash_ functions to use pdata instead of pdata + 64 so they're consistent.<br>target is little endian, it's supposed to be the same as how m0mchil's did it. (if it's not, then it should be fixed) That's tM he only case where you would use byte reverse. I think you do it like: if ByteReverse((unsigned int*)hash[6]) < (unsigned int*)target[6].<br><div class="q">Replying</div>This is the new spec. It shouldn't be hard to update your miner to use it.<br>The changes are:<br>- It does not return work when you submit a possible hit, only when called without parameter.<br>- The block field has been split into data and hash1.<br>- state renamed to midstate for consistency.<br>- extranonce not needed.<br> 34 <b>OpenCL miner for the masses on 11/24/2010</b> Ref=1334.msg24101#msg24101 A revised version of getwork is now in the official client, but the miners need to be updated a little to use it.<br> #33 <b>RFC: ship block chain 1-74000 with release tarballs? on 11/25/2010</b> Ref=1931.msg24438#msg24438 It's not the downloading that takes the time, it's verifying and indexing it.<br>Bandwidthwise, it's more efficient than if you downloaded an archiveM . Bitcoin only downloads the data in blk0001.dat, which is currently 55MB, and builds blkindex.dat itself, which is 47MB. Building blkindex.dat is what causes all the disk activity.<br>During the block download, it only flushes the database to disk every 500 blocks. You may see the block count pause at ??499 and ??999. That's when it's flushing.<br>Doing your own verifying and indexing is the only way to be sure your index data is secure. If you copy blk0001.dat and blkindex.dat from an untrusted source, there's noM way to know if you can trust all the contents in them.<br>Maybe Berkeley DB has some tweaks we can make to enable or increase cache memory.<br> #32 <b>Version 0.3.17 on 11/25/2010</b> Ref=1946.msg24460#msg24460 Version 0.3.17 is now available. <br>Changes:<br>- new getwork, thanks m0mchil<br>- added transaction fee setting in UI options menu<br>- free transaction limits<br>- sendtoaddress returns transaction id instead of "sent"<br>- getaccountaddress <account><br>TM he UI transaction fee setting was easy since it was still there from 0.1.5 and all I had to do was re-enable it.<br>The accounts-based commands: move, sendfrom and getbalance <account> will be in the next release. We still have some more changes to make first.<br>Downloads:<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.17/<br> #31 <b>RFC: ship block chain 1-74000 with release tarballs? on 11/26/2010</b> Ref=1931.msg24662#msg24662 a slow 7 year old drive, where bandwidth and CPU were clearly not the bottleneck. Initial download took 1 hour 20 minutes.<br>If it's taking a lot longer than that, certainly 24 hours, then it must be downloading from a very slow node, or your connection is much slower than around 15KB per sec (120kbps), or something else is wrong. It would be nice to know what appears to be the bottleneck when that happens.<br>Every 10 minutes or so when the latest block is sent, it should have the chance to change to a faster noM de. When the latest block is broadcast, it requests the next 500 blocks from other nodes, and continues the download from the one that sends it fastest. At least, that's how it should work.<br><div class="q">Replying</div>It may only need more read caching. It has to read randomly all over blk0001.dat and blkindex.dat to index. It can't assume the file is smaller than memory, although it currently still is. Caching would be effective, since most dependencies are recent.<br>Someone should experiment with different BM erkeley DB settings and see if there's something that makes the download substantially faster. If something substantial is discovered, then we can work out the particulars.<br><div class="q">Replying</div>We checkpoint every 500 blocks. #30 <b>Version 0.3.17 on 11/26/2010</b> Ref=1946.msg24673#msg24673 Laszlo does them, but I haven't asked him to do one for a while because there wasn't anything major. I'll ask him to do this version. #29 <b>New getwork on M 11/26/2010</b> Ref=1901.msg24708#msg24708 That's what it does, it returns true/false. #28 <b>New demonstration CPU miner available on 11/26/2010</b> Ref=1925.msg24719#msg24719 You should try it with tcatm's 4-way SSE2 SHA in sha256.cpp. It compiles fine as a C file, just rename sha256.cpp to sha256.c. I was able to get it to work in simple tests on Windows, but not when linked in with Bitcoin. It may have a better chance of working as part of a C M program instead of C++.<br>Currently it's only enabled in the Linux build, so if you get it to work you could make it available to Windows users. It's about 100% speedup on AMD CPUs. #27 <b>Cooperative mining on 11/28/2010</b> Ref=1976.msg25119#msg25119 ribuck's description is spot on.<br>Pool operators can modify their getwork to take one additional parameter, the address to send your share to.<br>The easy way for the pool operator would be to wait until the next block isM found and divy it up proportionally as:<br>user's near-hits/total near-hits from everyone<br>That would be easier and safer to start up. It also has the advantage that multiple hits from the same user can be combined into one transaction. A lot of your hits will usually be from the same people.<br>The instant gratification way would be to pay a fixed amount for each near-hit immediately, and the operator takes the risk from randomness of having more or less near-hits before a block is found. <br>Either way, the usM er who submits the hit that solves the block should get an extra amount off the top, like 10 BTC.<br>New users wouldn't really even need the Bitcoin software. They could download a miner, create an account on mtgox or mybitcoin, enter their deposit address into the miner and point it at anyone's pool server. When the miner says it found something, a while later a few coins show up in their account.<br>Miner writers better make sure they never false-positive near-hits. Users will depend on that to check if the pool M operator is cheating them. If the miner wrongly says it found something, users will look in their account, not find anything, and get mad at the pool operator. #26 <b>RFC: ship block chain 1-74000 with release tarballs? on 11/28/2010</b> Ref=1931.msg25138#msg25138 Despite everything else said, the current next step is:<br><div class="q">Replying</div>In particular, I suspect that more read caching might help a lot.<br><div class="q">Replying</div>Then something more specifM ic was wrong. That's not due to normal initial download time. Without more details, it can't be diagnosed. If it was due to slow download, did it speed up after 10-20 minutes when the next block broadcast should have made it switch to a faster source? debug.log might have clues. How fast is their Internet connection? Was it steadily slow, or just slow down at one point?<br><div class="q">Replying</div>The 74000 checkpoint is not enough to protect you, and does nothing if the download is already past 740M 00. -checkblocks does more, but is still easily defeated. You still must trust the supplier of the zipfile.<br>If there was a "verify it" step, that would take as long as the current normal initial download, in which it is the indexing, not the data download, that is the bottleneck.<br><div class="q">Replying</div>80 bytes per header and no indexing work. Might take 1 minute.<br><div class="q">Replying</div>The data is mostly hashes and keys and signatures that are uncompressible.<br>The speed of initial download iM s not a reflection of the bulk data transfer rate of the protocol. The gating factor is the indexing while it downloads.<br> #25 <b>Is safe running bitcoins with the same wallet on more computers simultaneously? on 11/28/2010</b> Ref=1986.msg25154#msg25154 <div class="q">Replying</div>Very much not. Using multiple copies of wallet.dat is not recommended or supported, in fact all of Bitcoin is designed to defeat that. Both copies will get screwed up.<br>If you're trying to M consolidate your generated coins into one wallet, a better solution now is to run getwork miners on the additional systems. jgarzik has a CPU miner, and it supports tcatm's 4-way SSE2, so on Windows it's up to twice as fast as the built-in SHA if you have an AMD or recent Intel (core 3, 5 or 7).<br>New demonstration CPU miner available:<br>http://bitcointalk.org/index.php?topic=1925.0<br> #24 <b>RFC: ship block chain 1-74000 with release tarballs? on 11/29/2010</b> Ref=1931.msg25449#msg25449 It seems like you're inclined to assume everything is wrong more than is actually so.<br>Writing the block index is light work. Building the tx index is much more random access per block. I suspect reading all the prev txins is what's slow. Read caching would help that. It's best if the DB does that. Maybe it has a setting for how much cache memory to use.<br><div class="q">Replying</div>Already does that. See CDB. The lifetime of the (for instance) CTxDB object is only to support database transM actions and to know if anything is still using the database at shutdown.<br><div class="q">Replying</div>If it was doing that it would be much slower. It's supposed to be only once a minute or 500 blocks:<br> if (strFile == "blkindex.dat" && IsInitialBlockDownload() && nBestHeight % 500 != 0)<br> nMinutes = 1;<br> dbenv.txn_checkpoint(0, nMinutes, 0);<br>Probably should add this:<br> if (!fReadOnly)<br> M dbenv.txn_checkpoint(0, nMinutes, 0);<br><div class="q">Replying</div>Does transaction commit imply flush? That seems surprising to me. I assume a database op wrapped in a transaction would be logged like any other database op. Many database applications need to wrap almost every pair of ops in a transaction, such as moving money from one account to another. (debit a, credit b) I can't imagine they're required to batch all their stuff up themselves.<br>In the following cases, would M case 1 flush once and case 2 flush twice?<br>case 1:<br>write<br>write<br>write<br>write<br>checkpoint<br>case 2:<br>begin transaction<br>write<br>write<br>commit transaction<br>begin transaction<br>write<br>write<br>commit transaction<br>checkpoint<br>Contorting our database usage will not be the right approach. It's going to be BDB settings and caching. #23 <b>Incompatible wallet format with latest bitcoin-git ? on 11/30/2010</b> Ref=2007.msg25799#msg25799 wallet used with? An early accounts patch or git build?<br>It's while loading the wallet. I assume it must be in this:<br> else if (strType == "acentry")<br> {<br> string strAccount;<br> ssKey >> strAccount;<br> uint64 nNumber;<br> ssKey >> nNumber;<br> if (nNumber > nAccountingEntryNumber)<br> &nM bsp; nAccountingEntryNumber = nNumber;<br> }<br>You could check that with this:<br> else if (strType == "acentry")<br> {<br> string strAccount;<br> assert(!ssKey.empty());<br> ssKey >> strAccount;<br> uint64 nNumber;<br> if (ssKey.size() != 8 )<br>  M ; printf("***** %s %d\n", strAccount.c_str(), ssKey.size());<br> assert(ssKey.empty() == false);<br> ssKey >> nNumber;<br> if (nNumber > nAccountingEntryNumber)<br> nAccountingEntryNumber = nNumber;<br> }<br><br>Was there an interim version of accounts on git at some point that had just ("acentry", "account") for the key?<M br>If you have gdb, you could run it in gdb and do a backtrace. <br>gdb --args bitcoin ...<br>run<br>(wait for exception)<br>bt<br> #22 <b>RFC: ship block chain 1-74000 with release tarballs? on 12/01/2010</b> Ref=1931.msg26016#msg26016 That's a good optimisation. I'll add that next time I update SVN.<br>More generally, we could also consider this:<br> dbenv.set_lk_max_objects(10000);<br> dbenv.set_errfile(fopen(strErroM rFile.c_str(), "a")); /// debug<br> dbenv.set_flags(DB_AUTO_COMMIT, 1);<br>+ dbenv.set_flags(DB_TXN_NOSYNC, 1);<br> ret = dbenv.open(strDataDir.c_str(),<br> DB_CREATE |<br> DB_INIT_LOCK |<br> &nbsM p; DB_INIT_LOG |<br>We would then rely on dbenv.txn_checkpoint(0, 0, 0) in CDB::Close() to flush after wallet writes.<br> #21 <b>Wikileaks contact info? on 12/05/2010</b> Ref=1735.msg26999#msg26999 <div class="q">Replying</div>No, don't "bring it on".<br>The project needs to grow gradually so the software can be strengthened along the way.<br>I make this appeal to WikiLeaks not to try to use Bitcoin. Bitcoin is a small bM eta community in its infancy. You would not stand to get more than pocket change, and the heat you would bring would likely destroy us at this stage.<br> #20 <b>JSON-RPC method idea: list transactions newer than a given txid on 12/08/2010</b> Ref=2151.msg28228#msg28228 It's not safe to use listtransactions this way.<br>I know I've been criticized for being reluctant about listtransactions. Let me explain my reluctance.<br>Transactions are dynamic. Past transactions can becM ome unconfirmed, go away and come back, become invalid and disappear, or be replaced by a different double-spend. Their date can change, their order can change.<br>Programmers are naturally inclined to want to use listtransactions like this: feed me the new transactions since I last asked, and I'll keep my own tally or static record of them. This will seem to work in all regular use, but if you use the amounts for anything, it is highly exploitable:<br>1) How do you know if a past transaction becomes invalid and diM sappears?<br>2) When there's a block-chain reorg, it would be easy to double-count transactions when they get confirmed again.<br>3) A transaction can be replaced by a double-spend with a different txid. You would count both spends.<br>The model where you assume you only need to see new transactions because you've already seen previous transactions is not true. Old transactions can change at any time.<br>Any time you take an action based on payment amounts received, you always need to go back to bitcoin and ask forM a current balance total (or use move or sendfrom), and be ready for the possibility that it can go down.<br>Now that we have the Accounts feature making it easier to do it the right way, we're better prepared to have listtransactions.<br> #19 <b>JSON-RPC method idea: list transactions newer than a given txid on 12/08/2010</b> Ref=2151.msg28292#msg28292 Then how do you cope with the issues I listed in the message you quoted? #18 <b>Version 0.3.18 on 12/08/M 2010</b> Ref=2162.msg28302#msg28302 Changes:<br>- Fixed a wallet.dat compatibility problem if you downgraded from 0.3.17 and then upgraded again<br>- IsStandard() check to only include known transaction types in blocks<br>- Jgarzik's optimisation to speed up the initial block download a little<br>The main addition in this release is the Accounts-Based JSON-RPC commands that Gavin's been working on (more details at http://bitcointalk.org/index.php?topic=1886.0). <br>- getaccountaddress<br>-M sendfrom<br>- move<br>- getbalance<br>- listtransactions<br>Download:<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.18/<br> #17 <b>JSON-RPC method idea: list transactions newer than a given txid on 12/09/2010</b> Ref=2151.msg28313#msg28313 I'm not talking about the normal risk for a given minconf level, I'm talking about additional pitfalls from listtransactions when used this way.<br><div class="q">Replying</div>The OP's example of listtransactionsM <account> [count=10] [txid] seems to imply and it would be very easy for programmers to assume that if they pass in the last txid of the previous call to listtransactions, they will never see the same transaction more than once, which is not the case. It would be very easy to double-count payments if you don't maintain your own persistent map or dictionary to track which txid's you've already accepted.<br>It doesn't seem right to have a function that seems tailor made to be used a certain obvious way, and thM at way is a non-obvious trap.<br><div class="q">Replying</div> Suppose both spends are to the same address. getreceivedbyaddress would always count only one or the other spend at any given time, never both.<br>Using listtransactions, it would be very easy to count both. You see the first spend, you count it. You see the second spend, you count it. Total is double counted.<br> #16 <b>Version 0.3.18 on 12/09/2010</b> Ref=2162.msg28533#msg28533 New transaction templates can bM e added as needed. Within a few days, there will be plenty of GPU power that accepts and works on it. Network support will be thorough <i>long before</i> there'll be enough clients who understand how to receive and interpret the new transaction.<br>Timestamp hashes are still already possible:<br>txin: 0.01<br>txout: 0.00 <appid, hash> OP_CHECKSIG<br>fee: 0.01 <br>If there's an actual application like BitDNS getting ready to actually start inserting hashes, we can always add a specific transaction templaM te for timestamps.<br>I like Hal Finney's idea for user-friendly timestamping. Convert the hash of a file to a bitcoin address and send 0.01 to it:<br><div class="q">Replying</div> #15 <b>Version 0.3.18 on 12/09/2010</b> Ref=2162.msg28549#msg28549 I came to agree with Gavin about whitelisting when I realized how quickly new transaction types can be added.<br><div class="q">Replying</div>That's already possible. <pubkey> OP_CHECKSIG. <pubkey> can be 33 to 120 byM tes.<br>I also support a third transaction type for timestamp hash sized arbitrary data. There's no point not having one since you can already do it anyway. It would tell nodes they don't need to bother to index it. #14 <b>JSON-RPC method idea: list transactions newer than a given txid on 12/09/2010</b> Ref=2151.msg28640#msg28640 <div class="q">Replying</div>As long as the interface is designed for things like showing the user the last N transactions history, it's fine, noM w that we have the Accounts feature making it easier to do payment detection the right way.<br>Gavin, could listtransactions have an option to list transactions for all accounts?<br>I'm not sure what the interface could be, maybe:<br>listtransactions <JSON null type> [count]<br>It would be hard to do that from the command line though. <br>I can't think of a good solution for the interface, that's the problem. Maybe "*" special case like "" is. Everyone would have to make sure no user can create account name "M *".<br><div class="q">Replying</div>I don't get how that's "easy" to track with transactions. #13 <b>Automated nightly builds on 12/09/2010</b> Ref=644.msg28643#msg28643 Thanks for setting this up Cdecker. <br>Is there any chance of getting it to build the GUI version also? If this is Ubuntu, if you get wxWidgets 2.9.0 it should just be a matter of following the steps in build-unix.txt exactly. Is this an environment where you can build wxWidgets once and leave it thM ere and just keep using it? #12 <b>BitDNS and Generalizing Bitcoin on 12/09/2010</b> Ref=1790.msg28696#msg28696 I think it would be possible for BitDNS to be a completely separate network and separate block chain, yet share CPU power with Bitcoin. The only overlap is to make it so miners can search for proof-of-work for both networks simultaneously.<br>The networks wouldn't need any coordination. Miners would subscribe to both networks in parallel. They would scan SHA suchM that if they get a hit, they potentially solve both at once. A solution may be for just one of the networks if one network has a lower difficulty.<br>I think an external miner could call getwork on both programs and combine the work. Maybe call Bitcoin, get work from it, hand it to BitDNS getwork to combine into a combined work.<br>Instead of fragmentation, networks share and augment each other's total CPU power. This would solve the problem that if there are multiple networks, they are a danger to each other if tM he available CPU power gangs up on one. Instead, all networks in the world would share combined CPU power, increasing the total strength. It would make it easier for small networks to get started by tapping into a ready base of miners. #11 <b>BitDNS and Generalizing Bitcoin on 12/09/2010</b> Ref=1790.msg28715#msg28715 <div class="q">Replying</div>The incentive is to get the rewards from the extra side chains also for the same work.<br>While you are generating bitcoins, whyM not also get free domain names for the <i>same work</i>?<br>If you currently generate 50 BTC per week, now you could get 50 BTC and some domain names too.<br>You have one piece of work. If you solve it, it will solve a block from both Bitcoin and BitDNS. In concept, they're tied together by a Merkle Tree. To hand it in to Bitcoin, you break off the BitDNS branch, and to hand it in to BitDNS, you break off the Bitcoin branch.<br>In practice, to retrofit it for Bitcoin, the BitDNS side would have to have maybe ~200 M extra bytes, but that's not a big deal. You've been talking about 50 domains per block, which would dwarf that little 200 bytes per block for backward compatibility. We could potentially schedule a far in future block when Bitcoin would upgrade to a modernised arrangement with the Merkle Tree on top, if we care enough about saving a few bytes.<br>Note that the chains are below this new Merkle Tree. That is, each of Bitcoin and BitDNS have their own chain links inside their blocks. This is inverted from the common tM imestamp server arrangement, where the chain is on top and then the Merkle Tree, because that creates one common master chain. This is two timestamp servers not sharing a chain.<br> #10 <b>Fees in BitDNS confusion on 12/09/2010</b> Ref=2181.msg28729#msg28729 Not locktime.<br>There's a possible design for far in the future:<br>You intentionally write a double-spend. You write it with the same inputs and outputs, but this time with a fee. When your double-spend gets into a bM lock, the first spend becomes invalid. The payee does not really notice, because at the moment the new transaction becomes valid, the old one becomes invalid, and the new transaction simply takes its place.<br>It's easier said than implemented. There would be a fair amount of work to make a client that correctly writes the double-spend, manages the two versions in the wallet until one is chosen, handles all the corner cases. Every assumption in the existing code is that you're not trying to write double-spends.<br>M There would need to be some changes on the Bitcoin Miner side also, to make the possibility to accept a double-spend into the transaction pool, but only strictly if the inputs and outputs match and the transaction fee is higher. Currently, double-spends are never accepted into the transaction pool, so every node bears witness to which transaction it saw first by working to put it into a block. #9 <b>BitDNS and Generalizing Bitcoin on 12/10/2010</b> Ref=1790.msg28917#msg28917 Piling every proof-of-work quorum system in the world into one dataset doesn't scale.<br>Bitcoin and BitDNS can be used separately. Users shouldn't have to download all of both to use one or the other. BitDNS users may not want to download everything the next several unrelated networks decide to pile in either.<br>The networks need to have separate fates. BitDNS users might be completely liberal about adding any large data features since relatively few domain registrars are needed, while Bitcoin users might get M increasingly tyrannical about limiting the size of the chain so it's easy for lots of users and small devices.<br>Fears about securely buying domains with Bitcoins are a red herring. It's easy to trade Bitcoins for other non-repudiable commodities.<br>If you're still worried about it, it's cryptographically possible to make a risk free trade. The two parties would set up transactions on both sides such that when they both sign the transactions, the second signer's signature triggers the release of both. The second M signer can't release one without releasing the other. #8 <b>Accounts example code on 12/10/2010</b> Ref=2202.msg28947#msg28947 Some sample pseudocode using the new Accounts based commands in 0.3.18.<br>print "send to " + getaccountaddress(username) + " to fund your account"<br>print "balance: " + getbalance(username, 0)<br>print "available balance: " + getbalance(username, 6)<br>// if you make a sale, move the money from their account to your "" account<br>if (move(usernamM e, "", amount, 6, "purchased item"))<br> SendTheGoods()<br>// withdrawal<br>sendfrom(username, bitcoinaddress, amount, 6, "withdrawal by user")<br>You can use listtransactions(username) to show them a list of their recent transactions.<br> #7 <b>BitDNS and Generalizing Bitcoin on 12/10/2010</b> Ref=1790.msg28959#msg28959 <div class="q">Replying</div>Right, the exchange rate between domains and bitcoins would float.<br>A longer interval than 10 minutes wouM ld be appropriate for BitDNS.<br>So far in this discussion there's already a lot of housekeeping data required. It will be much easier if you can freely use all the space you need without worrying about paying fees for expensive space in Bitcoin's chain. Some transactions:<br>Changing the IP record.<br>Name change. A domain object could entitle you to one domain, and you could change it at will to any name that isn't taken. This would encourage users to free up names they don't want anymore. Generated domains startM out blank and the miner sells it to someone who changes it to what they want. <br>Renewal. Could be free, or maybe require consuming another domain object to renew. In that case, domain objects (domaincoins?) could represent the right to own a domain for a year. The spent fee goes to the miners in the next block fee. #6 <b>BitDNS and Generalizing Bitcoin on 12/10/2010</b> Ref=1790.msg28963#msg28963 I agree. All transactions, IP changes, renewals, etc. should have some feeM that goes to the miners.<br>You might consider a certain amount of work to generate a domain, instead of a fixed total circulation. The work per domain could be on a schedule that grows with Moore's Law. That way the number of domains would grow with demand and the number of people using it. #5 <b>BitDNS and Generalizing Bitcoin on 12/11/2010</b> Ref=1790.msg29159#msg29159 @dtvan: all 3 excellent points. <br>1) IP records don't need to be in the chain, just do registrar fM unction not DNS. And CA problem solved, neat.<br>2) Pick one TLD, .web +1.<br>3) Expiration and significant renewal costs, very important.<br><div class="q">Replying</div>Avoiding CPU power fragmentation is no longer a reason. Independent networks/chains can share CPU power without sharing much else. See: http://bitcointalk.org/index.php?topic=1790.msg28696#msg28696 and http://bitcointalk.org/index.php?topic=1790.msg28715#msg28715<br> #4 <b>Bitcoin and buffer overflow attacks on 12/11/2010</b> Ref=M 2208.msg29165#msg29165 <div class="q">Replying</div>If you ever find anyone who turned it on. It's disabled by default.<br><div class="q">Replying</div>It's all STL. There are almost no buffers.<br> #3 <b>minimalistic bitcoin client on D language? on 12/11/2010</b> Ref=2188.msg29259#msg29259 <div class="q">Replying</div>That means a lot coming from you, Hal. Thanks. #2 <b>PC World Article on Bitcoin on 12/11/2010</b> Ref=2216.msg2M It would have been nice to get this attention in any other context. WikiLeaks has kicked the hornet's nest, and the swarm is headed towards us.<br> #1 <b>Added some DoS limits, removed safe mode (0.3.19) on 12/12/2010</b> Ref=2228.msg29479#msg29479 There's more work to do on DoS, but I'm doing a quick build of what I have so far in case it's needed, before venturing into more complex ideas. The build for this is version 0.3.19.<br>- M Added some DoS controls<br>As Gavin and I have said clearly before, the software is not at all resistant to DoS attack. This is one improvement, but there are still more ways to attack than I can count. <br>I'm leaving the -limitfreerelay part as a switch for now and it's there if you need it.<br>- Removed "safe mode" alerts<br>"safe mode" alerts was a temporary measure after the 0.3.9 overflow bug. We can say all we want that users can just run with "-disablesafemode", but it's better just not to have it for the sM ake of appearances. It was never intended as a long term feature. Safe mode can still be triggered by seeing a longer (greater total PoW) invalid block chain.<br>Builds:<br>http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.19/ text/plain;charset=utf-8 M ########## ((((((((((((((((((((%%%%%%% ########## ########## ((((((((((((((((((((%%%%%%% ########## %%%&&& ((((((((((##########%%%%%%%&&&@@@ &&&%%%#### ####%%%&&& ***((((((((((##########%%%%%%%&&&@@@@@@@ %%%#### ####%%%&&& ***((((((((((##########%%%%%%%%%%&&&&&&& #M ####%%%&&& ***((((((((((##########%%%%%%%%%%&&&&&&& ### ### ***(((((((((((((#######%%%%%%%%%%%%%&&&& ***(((((((((((((((((###%%%%%%%%%%%%%&&&& ***(((((((((((((((((###%%%%%%%%%%%%%&&&& ***(((((((((((((((((###%%%%%%%%%%%%%&&&& ***/(((((((((((((##########%%%%%%%%%% %M %%%%%% ****((((((((((((((((##########%%%% //// ####%%% ****(((((((((((((((((((((((####### //// ####%%% ****(((((((((((((((((((((((####### /// /// #######%%% ((((((((((((((((((((((( /// ##########%%%% (((((((((((((((((((( %%%% /////// ###%%%%%%%%%% @@@@@@@ /////// ###%%%%%%%%%% M @@@@@@@ //////####/// %%%%%%%%%%%%%@@@@@@@@@@@@@ ///#######/// //////////((((((((((((( ///#######/// #### ///#######/// #### ///###%%%%/// ####&&&&&& /////// ####&&&&&& text/plain;charset=utf-8 M ########## ((((((((((((((((((((%%%%%%% ########## ########## ((((((((((((((((((((%%%%%%% ########## %%%&&& ((((((((((##########%%%%%%%&&&@@@ &&&%%%#### ####%%%&&& ***((((((((((##########%%%%%%%&&&@@@@@@@ %%%#### ####%%%&&& ***((((((((((##########%%%%%%%%%%&&&&&&& #M ####%%%&&& ***((((((((((##########%%%%%%%%%%&&&&&&& ### ### ***(((((((((((((#######%%%%%%%%%%%%%&&&& ***(((((((((((((((((###%%%%%%%%%%%%%&&&& ***(((((((((((((((((###%%%%%%%%%%%%%&&&& ***(((((((((((((((((###%%%%%%%%%%%%%&&&& ***/(((((((((((((##########%%%%%%%%%% %M %%%%%% ****((((((((((((((((##########%%%% //// ####%%% ****(((((((((((((((((((((((####### //// ####%%% ****(((((((((((((((((((((((####### /// /// #######%%% ((((((((((((((((((((((( /// ##########%%%% (((((((((((((((((((( %%%% /////// ###%%%%%%%%%% @@@@@@@ /////// ###%%%%%%%%%% M @@@@@@@ //////####/// %%%%%%%%%%%%%@@@@@@@@@@@@@ ///#######/// //////////((((((((((((( ///#######/// #### ///#######/// #### ///###%%%%/// ####&&&&&& /////// ####&&&&&& (((((((((((((((((((((((((((((((((((((((((((((((((( text/plain;charset=utf-8 text/plain;charset=utf-8 (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( text/plain;charset=utf-8 (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( text/plain;charset=utf-8 %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/plain;charset=utf-8 (((((((((((((((((((((((((((((((((((((((((((((((((( " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"M xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:b3213e88-ac2a-4561-9f5f-9450e5a5ddc7" xmpMM:InstanceID="xmp.iid:9c1a2b4d-71f1-451b-941d-47e66d3e20d0" xmpMM:OriginalDocumentID="xmp.did:39e341b4-bccd-48e7-90be-901a2291b3d8" dc:Format="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamp="1676241615839187" GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CM reatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T09:40:14+11:00" xmp:ModifyDate="2023:02:13T09:40:14+11:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:1da0375f-51f4-4663-9d64-aa9cc5cbdf84" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T09:40:15"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M M <?xpacket end="w"?>h! " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt=M "http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:8f29c27e-62be-4728-b0aa-370822eda63e" xmpMM:InstanceID="xmp.iid:c4714eed-4ecd-4249-ba68-7d39c998ce1f" xmpMM:OriginalDocumentID="xmp.did:fb6a55bb-81eb-4a68-bbbe-366c1f92a380" dc:Format="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamp="1676241656614503"M GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T09:40:55+11:00" xmp:ModifyDate="2023:02:13T09:40:55+11:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:92f503d2-f76a-4437-b7f3-5914ccc0ef7b" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T09:40:56"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M M <?xpacket end="w"?>h! )Optimized with https://ezgif.com/optimize (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc KjI=:THOR.RUNE:thor1plsaxqyum5aszapglmctyh42svmt8cplke08jh:422307332868:t:30 xr:d:DAFaZtvQ1Iw:2,j:3556970002,t:23021222 http://ns.adobe.com/xap/1.0/ <x:xmpmeta xmlns:x='adobe:ns:meta/'> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'> <rdf:Description rdf:about='' xmlns:dc='http://purl.org/dc/elements/1.1/'> <rdf:li xml:lang='x-default'> </rdf:Description> <rdf:Description rdf:about='' xmlns:Attrib='http://ns.attribution.com/ads/1.0/'> <Attrib:Ads> <rdf:li rdf:parseType='Resource'> <Attrib:Created>2023-02-12</Attrib:Created> <Attrib:ExtId>00a9abb4-cc19-425f-8838-7db808017d6b</Attrib:ExtId> <Attrib:FbId>525265914179580</AttriM <Attrib:TouchType>2</Attrib:TouchType> </Attrib:Ads> </rdf:Description> <rdf:Description rdf:about='' xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> <pdf:Author>Taras Chaus</pdf:Author> </rdf:Description> <rdf:Description rdf:about='' xmlns:xmp='http://ns.adobe.com/xap/1.0/'> <xmp:CreatorTool>Canva</xmp:CreatorTool> </rdf:Description> </x:xmpmeta> (((((((((((((((((((((((((((((((((((((((((((((((((( %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/plain;charset=utf-8 (iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.171c27fab, 2022/08/16-22:35:41 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop 24.0 (MacintoM sh)" xmpMM:InstanceID="xmp.iid:9BB01928A2DA11EDA65F91629923C66E" xmpMM:DocumentID="xmp.did:9BB01929A2DA11EDA65F91629923C66E"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:9BB01926A2DA11EDA65F91629923C66E" stRef:documentID="xmp.did:9BB01927A2DA11EDA65F91629923C66E"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>k IjGREFUND:238C425753160F8D715217768D633FEA0187B5E20FBADFE801E2866BBC8AE017 text/plain;charset=utf-8 Greetings future generations, from the year 2023. We hope this message finds you well and that our world has advanced in ways beyond our imagination. As you study this message inscribed on the timechain, know that it represents the optimism and hope that we had for the future. May you continue to use technology for the betterment of humanity and create a world filled with equality, prosperity, and peace. FjDOUT:3B40DFF75858E190A22CE9598E3EA583F58B3D330D6B0A99E136643675B0DF22 OzTXtRaw profile type exif fzTXtRaw profile type iptc UiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:iptcExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" ttp://ns.useplus.org/ldf/xmp/1.0/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:a737f503-a5ce-4187-a62c-94e9095e8890" xmpMM:InstanceID="xmp.iid:53bfdd0f-9bc5-4c2d-9358-d0e4a80254ea" xmpMM:OriginalDocumentID="xmp.did:0a826457-22cb-48c5-badf-f6b85cace938" GIMP:Platform="Windows" GIMP:TimeStamp="1654452030968093" GIMP:Version="2.10.20" dc:Format="image/png" xmp:CreatorTool="GIMP 2.10"> <iptcExt:LocationCreated> </iptcExt:LocationCreated> <iptcExt:LocationShown> </iptcExt:LocationShown> <iptcExt:ArtworkOrObject> </iptcExt:ArtworkOrObject> <iptcExt:RegistryId> </iptcExt:RegistryId> stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:4a820e65-7d11-4780-9bdb-6fdbe85f0f3b" stEvt:softwareAgent="Gimp 2.10 (WM stEvt:when="2022-06-05T21:00:30"/> <plus:ImageSupplier> </plus:ImageSupplier> <plus:ImageCreator> </plus:ImageCreator> <plus:CopyrightOwner> </plus:CopyrightOwner> </rdf:Description> M M M M Adobe Photoshop CS6 (Windows) cropWhenPrintingbool /http://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResM ourceEvent#" xmlns:xmpDM="http://ns.adobe.com/xmp/1.0/DynamicMedia/" xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/" xmpMM:DocumentID="xmp.did:772D0CA8EEAAED11A0DF8F47C205A03D" xmpMM:InstanceID="xmp.iid:9CFAF1D5FDAAED118CEBF3BEB8C6E28B" xmpMM:OriginalDocumentID="xmp.did:772D0CA8EEAAED11A0DF8F47C205A03D" xmpDM:videoM FrameRate="25.000000" xmpDM:videoFieldOrder="Progressive" xmpDM:videoPixelAspectRatio="1/1" dc:format="image/jpeg" photoshop:LegacyIPTCDigest="D41D8CD98F00B204E9800998ECF8427E" photoshop:ColorMode="3" xmp:CreateDate="2023-02-12T11:02:51-05:00" xmp:ModifyDate="2023-02-12T12:51:47-05:00" xmp:MetadataDate="2023-02-12T12:51:47-05:00" xmpRights:Marked="False"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="converted" stEvt:parameters="from JPEG to image/jpeg"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:640M D60D3F3AAED118CEBF3BEB8C6E28B" stEvt:when="2023-02-12T11:40:14-05:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:9CFAF1D5FDAAED118CEBF3BEB8C6E28B" stEvt:when="2023-02-12T12:51:47-05:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpDM:startTimecode xmpDM:timeValue="00:01:15:15" xmpDM:timeFormat="25Timecode"/> <xmpDM:altTimecode xmpDM:timeValue="00:01:15:15" xmpDM:timeFormat="M 25Timecode"/> <xmpDM:videoFrameSize stDim:w="1440" stDim:h="960" stDim:unit="pixel"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M M <?xpacket end="w"?> text/plain;charset=utf-8 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! (((((((((((((((((((((((((((((((((((((((((((((((((( <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! (((((((((((((((((((((((((((((((((((((((((((((((((( (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc iJP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)^ (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc MiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.5.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mM xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" exif:ColorSpace="1" exif:PixelXDimension="800" exif:PixelYDimension="800" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" tiff:ImageLength="800" tiff:ImageWidth="800" tiff:ResolutionUnit="2" tiff:XResolution="72/1" tiff:YResolution="72/1" xmp:MetadataDate="2023-02-12T12:54:09-07:00" xmp:ModifyDate="2023-02-12T12:54:09-07:00"> xmpMM:action="prM xmpMM:softwareAgent="Affinity Designer (Mar 31 2020)" xmpMM:when="2021-08-24T15:56:34-07:00"/> stEvt:action="produced" stEvt:softwareAgent="Affinity Designer 1.10.6" stEvt:when="2023-02-12T12:54:09-07:00"/> </rdf:Description> <?xpacket end="r"?>d iCCPsRGB IEC61966-2.1 " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1M .0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:4a360cce-72b1-420f-88a0-b8782d32c834" xmpMM:InstanceID="xmp.iid:cbd4f095-a7cd-4f55-aedf-996eddfb0d10" xmpMM:OriginalDocumentID="xmp.did:e1ce2b80-2d73-405e-afb6-817111feac53" dc:Format="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamM p="1676241680646056" GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T09:41:19+11:00" xmp:ModifyDate="2023:02:13T09:41:19+11:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:815ea218-8c13-4fd4-8cfa-f0b8a3f85924" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T09:41:20"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M M <?xpacket end="w"?>h! " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adoM be.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:3c363b23-ee6a-4294-a921-508ee2c9bd0c" xmpMM:InstanceID="xmp.iid:3ced0da6-023f-41fc-a7f8-9c8b3d76fbbc" xmpMM:OriginalDocumentID="xmp.did:02e14eba-5bc3-4401-bd4c-03c86d1d45c7" dc:Format="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GM IMP:TimeStamp="1676241761746233" GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T09:42:40+11:00" xmp:ModifyDate="2023:02:13T09:42:40+11:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:90bff034-5686-40a0-b691-70b085bf8856" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T09:42:41"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M M <?xpacket end="w"?>h! text/html;charset=utf-8 <canvas id="ogl-canvas" style="border: none;"></canvas> <script id="draw-shader-fs" type="x-shader/x-fragment"> precision mediump float; uniform vec2 iResolution; uniform vec2 iMouse; uniform float iTime; float c = cos(a), s = sin(a); return mat2(c, s, -s, c); float smin(float a, float b, float k) { float h = clamp(.5 + .5*(b - a) / k, 0., 1.); return mix(b, a, h) - k * h * (1. - h); #define nsin(x) (.5+.5*sin(x)) p.xz *= r2d(iTime*.3); float num_tentacles = 5.; float sz_tentacles = .15; float sz_blob = .5; float ease_tentacle = 1.;//nsin(iTime)*1.5; float ease_blob = 1.;//.2*nsin(iTime); float dis_speed = iTime * 1.5;//sin(iTime*1.5)*2.; float sph = length(p) - sz_blob - ease_blob; float od = dot(p, normalize(sign(p))) - sz_blob - ease_blob; p.y += sin(dis_speed + p.x*1.*ease_tentacle); p.xy *= r2d(3.14*.25); for (float i = 0.; i < num_tentacles; i++) { d = smin(d, length(p.yz) - sz_tentacles, .2); p.xy *= r2d(-3.14*.25); p.y += sin(dis_speed + p.x*1.*ease_tentacle); for (float i = 0.; i < num_tentacles; i++) { p.xz *= r2d(3.14 / num_tentacles); d = smin(d, length(p.yz) - sz_tentacles, .2); p.y += sin(dis_speed + p.x*1.*ease_tentacle); for (float i = 0.; i < num_tentacles; i++) { p.xz *= r2d(3.14 / num_tentacles); d = smin(d, length(p.yz) - sz_tentacles, .2); in(sin(iTime*1.5) + p.y*1.*ease_tentacle); d = smin(d, length(p.xz) - sz_tentacles, .95); return smin(d, sph, .7); vec3 normal(in vec3 pos) vec2 e = vec2(1., -1.)*.5773*.0005; return normalize(e.xyy*de(pos + e.xyy) + e.yyx*de(pos + e.yyx) + e.yxy*de(pos + e.yxy) + e.xxx*de(pos + e.xxx)); p = vec3(dot(p, vec3(127.1, 311.7, 74.7)), dot(p, vec3(269.5, 183.3, 246.1)), dot(p, vec3(113.5, 271.9, 124.6))); return -1.0 + 2.0*fract(sin(p)*43758.5453123); vec3 i = floor(p); vec3 f = fract(p); vec3 u = f * f*(3.0 - 2.0*f); return mix(mix(mix(dot(hash(i + vec3(0.0, 0.0, 0.0)), f - vec3(0.0, 0.0, 0.0)), dot(hash(i + vec3(1.0, 0.0, 0.0)), f - vec3(1.0, 0.0, 0.0)), u.x), mix(dot(hash(i + vec3(0.0, 1.0, 0.0)), f - vec3(0.0, 1.0, 0.0)), dot(hash(i + vec3(1.0, 1.0, 0.0)), f - vec3(1.0, 1.0, 0.0)), u.x), u.y), mix(mix(dot(hash(i + vec3(0.0, 0.0, 1.0)), f - vec3(0.0, 0.0, 1.0)), dot(hash(i + vec3(1.0, 0.0, 1.0)), f - vec3(1.0, 0.0, 1.M mix(dot(hash(i + vec3(0.0, 1.0, 1.0)), f - vec3(0.0, 1.0, 1.0)), dot(hash(i + vec3(1.0, 1.0, 1.0)), f - vec3(1.0, 1.0, 1.0)), u.x), u.y), u.z); mat3 m = mat3(0.00, 0.80, 0.60, -0.80, 0.36, -0.48, -0.60, -0.48, 0.64); f = 0.5000*noise(q); q = m * q*2.01; f += 0.2500*noise(q); q = m * q*2.02; //f += 0.1250*noise( q ); q = m*q*2.03; f += 0.0625*noise(q); q = m * q*2.01; void mainImage(out vec4 fragColorM , in vec2 fragCoord) vec2 uv = fragCoord / iResolution.xy - .5; uv.x *= iResolution.x / iResolution.y; vec3 ro = vec3(0, 0, -5.);//-nsin(iTime)*8. vec3 rd = normalize(vec3(uv, 1)); float maxt = 30.; for (float i = 0.; i < 1.; i += .01) { if (d < .001 || t > maxt) break; vec3 bg_rd = rd; bg_rd.xz *= r2d(iTime*.005); bg_rd.zy *= r2d(-iTime * .2); vec3 bg = smoothstep(0., 1., vec3(1.5) * fbM m(bg_rd*.5 + iTime * .06 + fbm(bg_rd)*.2)); vec3 col = sqrt(bg); if (t <= maxt) { vec3 n = normal(p); float dotNL = dot(n, normalize(vec3(-1))); col = .8 * vec3(.08, .45, 1.) * max(0., dotNL); dotNL = dot(n, -rd); col += .1 * vec3(.08, .45, 1.) * max(0., dotNL); vec3 h = normalize(vec3(-1) - rd); float dotHN = dot(h, n); col += .2 * pow(clamp(dotHN, 0., 1.), 64.); col = pow(col, vec3(.8)); fragColor = vec4(col, 1.0); mainImage( gl_FragColor, gl_FragCoM <script id="draw-shader-vs" type="x-shader/x-vertex"> attribute vec2 inPos; gl_Position = vec4(inPos, 0.0, 1.0); (function loadscene() { var canvas, gl, vp_size, prog, bufObj = {}, mousepos = [0, 0]; function initScene() { canvas = document.getElementById( "ogl-canvas"); gl = canvas.getContext( "webgl" ); canvas.addEventListener('mousemove', (e) => { mousepos = [e.clientX, e.clientY]; gl.createProgram(); for (let i = 0; i < 2; ++i) { let source = document.getElementById(i==0 ? "draw-shader-vs" : "draw-shader-fs").text; let shaderObj = gl.createShader(i==0 ? gl.VERTEX_SHADER : gl.FRAGMENT_SHADER); gl.shaderSource(shaderObj, source); gl.compileShader(shaderObj); let status = gl.getShaderParameter(shaderObj, gl.COMPILE_STATUS); if (!status) alert(gl.getShaderInfoLog(shaderObj)); gl.attachShader(progDraw, shaderObj); gl.linkProgramM status = gl.getProgramParameter(progDraw, gl.LINK_STATUS); if ( !status ) alert(gl.getProgramInfoLog(progDraw)); progDraw.inPos = gl.getAttribLocation(progDraw, "inPos"); progDraw.iTime = gl.getUniformLocation(progDraw, "iTime"); progDraw.iFrame = gl.getUniformLocation(progDraw, "iFrame"); progDraw.iMouse = gl.getUniformLocation(progDraw, "iMouse"); progDraw.iResolution = gl.getUniformLocation(progDraw, "iResolution"); gl.useProgram(progDraw); var pos = [ -1, -1M , 1, -1, 1, 1, -1, 1 ]; var inx = [ 0, 1, 2, 0, 2, 3 ]; bufObj.pos = gl.createBuffer(); gl.bindBuffer( gl.ARRAY_BUFFER, bufObj.pos ); gl.bufferData( gl.ARRAY_BUFFER, new Float32Array( pos ), gl.STATIC_DRAW ); bufObj.inx = gl.createBuffer(); bufObj.inx.len = inx.length; gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, bufObj.inx ); gl.bufferData( gl.ELEMENT_ARRAY_BUFFER, new Uint16Array( inx ), gl.STATIC_DRAW ); gl.enableVertexAttribArray( progDraw.inPos ); gl.vertexAttribPointer( progM Draw.inPos, 2, gl.FLOAT, false, 0, 0 ); gl.enable( gl.DEPTH_TEST ); gl.clearColor( 0.0, 0.0, 0.0, 1.0 ); window.onresize = resize; requestAnimationFrame(render); vp_size = [window.innerWidth, window.innerHeight]; canvas.width = vp_size[0]; canvas.height = vp_size[1]; function render(deltaMS) { gl.viewport( 0, 0, canvas.width, canvas.height ); gl.clear( gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT ); gl.uniform1f(progDraw.iTime, performance.M# gl.uniform2f(progDraw.iResolution, canvas.width, canvas.height); gl.uniform2f(progDraw.iMouse, mousepos[0], mousepos[1]); gl.drawElements( gl.TRIANGLES, bufObj.inx.len, gl.UNSIGNED_SHORT, 0 ); requestAnimationFrame(render); <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1920" xml:space="preserve" style="background:#b16f29;font-family:monospace"><style>@media (min-aspect-ratio:5/3){path{transform:rotate(90deg)scale(1.5)}g{transform:translate(15%,7%)scale(1.5)}}/*BITBAR - TAKING UP BLOCKSPACE SINCE 2023*/</style><path style="fill:#b16f29" d="M0 0h1080v1920H0z"/><path d="M911.9 172.7s-.6 1148.3-.1 1370.2c.1 28.4 2.6 56.8 7.4 84.7l22.3 123.9V274.1l-29.6-101.4zm-49.2 1384.8H220.8c-20.9 0-38.8 15-42.3 35.7l-26 151.2c-3.7 20.2 16.M 9 34.8 33.9 34.8h708.3c16.9 0 36.8-17.1 33.9-34.8L902 1590.5c-3.4-19.1-19.9-33-39.3-33zm-723.3 194.1 22.4-123.9c4.9-28 7.3-56.3 7.4-84.7.5-222-.1-1370.3-.1-1370.3l-29.7 101.4v1477.5zM873 139.6H207.9c-15.4 0-27.8 12.5-27.8 27.8v1347.9c0 17.2 13.9 31.1 31.1 31.1h658.6c17.2 0 31.1-13.9 31.1-31.1V167.4c0-15.4-12.6-27.8-27.9-27.8z" style="fill:#fed65c;transform-origin:50%"/><g style="transform-origin:50%"><text text-anchor="middle" x="50%" y="48%" style="fill:#b16f29;font-size:248px">1kB</text></g></svg>h! John Lennon | Serial #JWL10091940-001 VAL BOCHKOV & ARTENFT John Lennon | Serial #JWL10091940-001 !22222222222222222222222222222222222222222222222222 %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz http://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP CoreM 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:MicrosoftPhoto="http://ns.microsoft.com/photo/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlnsM :xmpRights="http://ns.adobe.com/xap/1.0/rights/" xmpMM:DocumentID="xmp.did:565B8C21209E11EC9665F172DA7A598B" xmpMM:InstanceID="xmp.iid:70138247-bd62-4bf0-a99e-5c7d0e26e7c7" xmpMM:OriginalDocumentID="adobe:docid:photoshop:e64c1400-179a-11de-b884-c32f480a6a32" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamp="1676235787363826" GIMP:Version="2.10.32" dc:Format="image/jpeg" photoshop:AuthorsPosition="INTERNATIONAL ART PROJECT BY VAL BOCHKOV & ARTENFT" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:12T22M :03:03+01:00" xmp:ModifyDate="2023:02:12T22:03:03+01:00" xmpRights:Marked="True" xmpRights:WebStatement="https://www.new-world-money.com/"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:90b8de05-493d-4e88-a2e7-16deaeb657db" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-12T22:03:07"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:documentID="adobe:docid:photoshop:8fb59df7-fa59-444d-b806-be990b7f021a" stRef:instanceID="xmp.iid:602cc02b-68ac-bM 74d-be66-73792813e7b5"/> <MicrosoftPhoto:LastKeywordIPTC> <rdf:Bag> <rdf:li>New World Money</rdf:li> <rdf:li>nft</rdf:li> <rdf:li>John Lennon</rdf:li> </rdf:Bag> </MicrosoftPhoto:LastKeywordIPTC> <MicrosoftPhoto:LastKeywordXMP> <rdf:Bag> <rdf:li>New World Money</rdf:li> <rdf:li>nft</rdf:li> <rdf:li>John Lennon</rdf:li> </rdf:Bag> </MicrosoftPhoto:LastKeywordXMP> <dc:creator> <rdf:Seq> <rdf:li>VAL BOCHKOV & ARTENFT</rdf:li> </rdf:Seq> </dc:creator> <dc:description> <rdf:Alt> <rdf:li xml:lang="x-default">John LenM non | Serial #JWL10091940-001</rdf:li> </rdf:Alt> </dc:description> <dc:rights> <rdf:Alt> <rdf:li xml:lang="x-default">VAL BOCHKOV & ARTENFT</rdf:li> </rdf:Alt> </dc:rights> <dc:subject> <rdf:Bag> <rdf:li>New World Money</rdf:li> <rdf:li>nft</rdf:li> <rdf:li>John Lennon</rdf:li> </rdf:Bag> </dc:subject> <dc:title> <rdf:Alt> <rdf:li xml:lang="x-default">John Lennon | Serial #JWL10091940-001</rdf:li> </rdf:Alt> </dc:title> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M M <?xpacket end="w"?> %John Lennon | Serial #JWL10091940-001 VAL BOCHKOV & ARTENFT "!&+7/&)4)!"0A149;>>>%.DIC<H7=>; ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (John Lennon | Serial #JWL10091940-001 gmgi'i'mgi'i'igigi'i'mgi'i'm'mge'e'i'dE text/plain;charset=utf-8 fSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfSTfST =KQY7Ee6Ee6Ee6Ee6Ee6Ee6Ee6Ee6Ee6Ee6Ee6Ee6Ee6 d6Ee6Ee6Ee6Ee6Ee6Ee6Ee6Ee6Ee6Ee6 qiTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 6.0-c002 79.164488, 2020/07/10-22:06:53 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginM alDocumentID="xmp.did:08c278cd-5940-4edf-ab7b-076fcdd4d15c" xmpMM:DocumentID="xmp.did:D9E91EDCA9CE11EDAB7598D1E2E63079" xmpMM:InstanceID="xmp.iid:D9E91EDBA9CE11EDAB7598D1E2E63079" xmp:CreatorTool="Adobe Photoshop 23.0 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:904f4d2b-c672-1245-8dd0-329c7a35c535" stRef:documentID="xmp.did:4A97FC28D8D711EC81AFA5A209D538FC"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>X <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:01.945599</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#pc6374320f2)"> <image xlink:href="data:image/png;base64, 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" id="image66bb4b9313" transform="scale(1L -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="pc6374320f2"> <rect x="0" y="0" width="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:02.730200</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#p83e46fa9b2)"> <image xlink:href="data:image/png;base64, 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" id="image41f3696ce5" transform="scale(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="p83eLX46fa9b2"> <rect x="0" y="0" width="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:02.124868</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#p867b69683c)"> <image xlink:href="data:image/png;base64, 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" id="image50d66cad8d" transform="scale(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="p867b69683c"> <rect x="0" y="0" w8idth="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:03.029407</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#pf21c898b28)"> <image xlink:href="data:image/png;base64, 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" id="imagedeb2345fde" transform="scale(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="pf21c898b28"> <rect x="0" y="0" width="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:02.063532</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#pecd7b1dfe6)"> <image xlink:href="data:image/png;base64, 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" id="imagec2L 7a09cfcd" transform="scale(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="pecd7b1dfe6"> <rect x="0" y="0" width="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:02.307214</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#p99798c957f)"> <image xlink:href="data:image/png;base64, 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" id="imagee1d02a52d0" transform="scale(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="p99798c957f"> <rect x="0" y="0" width="324" height="324"/ > <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:02.671827</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#p7f5834a51b)"> <image xlink:href="data:image/png;base64, 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" id="image1e3af8834a" transform="scale(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <cLhlipPath id="p7f5834a51b"> <rect x="0" y="0" width="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:02.246620</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#pc315f99753)"> <image xlink:href="data:image/png;base64, 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" id="imageebe8d6bb43" transform="scale(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="pc315f99753"> <rect x="0" y="0" width="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:02.790954</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#p2a3e7ca2eb)"> <image xlink:href="data:image/png;base64, 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" id="imaged3f7153502" transform="scale(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="p2a3e7ca2eb"> <rect x="0" y="0" width="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:02.435936</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#p7a66bdf5d6)"> <image xlink:href="data:image/png;base64, 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" id="image80370ee783" transform="scale(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="p7a66bdf5d6"> <rect x="0" y="0" width="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:02.968401</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#pc7a90b2bae)"> <image xlink:href="data:image/png;base64, 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" id="imaged0L 8305bba7" transform="scale(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="pc7a90b2bae"> <rect x="0" y="0" width="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 324 324" xmlns="http://www.w3.org/2000/svg" version="1.1"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <dc:type rdf:resource="http://purl.org/dc/dcmitM <dc:date>2023-02-09T11:45:02.909082</dc:date> <dc:format>image/svg+xml</dc:format> <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> <path d="M 0 324 " style="fill: #ffffff"/> <g clip-path="url(#p832f933ca7)"> <image xlink:href="data:image/png;base64, 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" id="imageb64d0a8c2a" transform="scaL le(1 -1) translate(0 -324)" x="0" y="0" width="324" height="324"/> <clipPath id="p832f933ca7"> <rect x="0" y="0" width="324" height="324"/> <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" width=&