File: blk05803.txt

FjDOUT:6D0E3E41B4F8D200E34BC4703D366DE4B8F5A8553B8C88DF124E28F291641A25
FjDOUT:7541100DF2AECF2425E6B5EB9F9C5D488D47F86542F39E4FDFD73ACCE8AC59F1
6j4B6W:to:USDT(TRON):TN3kPtVYTYsrvdKfoFiesckiFGfTT2og1X
6j4rbC:to:USDT(TRON):TFqp3DfcNttjMUiQJ9wdkqYjs2xuq7VuXA
6j4xKA:to:USDT(TRON):TTK8JDuVgyBHudUQMAexBeipbE8vhBVrJi}N
6j4GrD:to:USDT(TRON):TFZ2Bzaaz7NDcXGkKZfvpQ1zQpUTVWNThxq=
=j;xsY:to:USDT(BSC):0xd7F83953fC5C0fD64642f284834EABF036081b2B
=j;lWG:to:USDT(BSC):0x6119747275556996fBBf8dFDAe49FB67BBb947dd
=j;BqT:to:USDT(BSC):0x7737907a3b1485fdb7e0EdC7659b76b27625E5BE
=j;d5v:to:USDC(BSC):0x75b288f9e470395C99152c528A7E1Eba3B84030d
?j=QY5:to:USDT(ERC20):0xCb5CF11E809dd10841aDD5FAFA887966FF6C8ccF
2j0to:USDT(TRON):TDcuMVNxMhYvtzCrDnokjJcrDfvBBPCZMQ
6j4oxd:to:USDT(TRON):TCjv2N33XK3qKLHcE6pVk1W7vcngjfsuUs
FjDOUT:B301202C1947A53470B1DBDADCFFF2FD68216192DEBCC43DD1F69E2B82FCAEA5
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4350000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4538888888"}h!
=j;=:l:ltc1qjqjvz32u4l7ud8ltcmcse8wlkg0ns8e8fnul4e:0/5/0:ej:75
DjB{"p":"crc-20","op":"transfer","tick":"BONS","amt":"4880000000000"}J
?stamp:{"p":"src-20","op":"tranJ
 sfer","tick":"mske","amt":105674J
?stamp:{"p":"src-20","op":"tranJ
 sfer","tick":"mske","amt":937646J
DjB0x050d374048efdeb0e44251045ca1f6990e2d204f854150dfa16f40e27ffd4068
DjB0x3c503fa4cb8ea59f6d2ad24051a64843355236a5ea70c2c16dee9c0b54e591dd
DjB0x96c75f8b1b5eb131fadd836f9b144c7836c0dddfee35ac07728bf01dc26664b3
DjB0x103c6d1af90b13e19324cb95d85e38713b2c8f66a9f38160bc2a2b7d7c91ff13
DjB0x5062a18ad4a9a264f25ef9db141a0851555fd71ef8addaa8c78ae0751ba28a8f
DjB0x50d69e23d7a1c52f34ba3e5c5e7fb48713f04383c3c9c54cd55a15f1a70cfaf3
DjB0x70d7a3bb17eead2a0a22a46c2ebd0750d23065089393f18a2cff46e8b52753f7
DjB0xea30bb23790f88719acaa02f11f47814d99d076490d6233de3a23ae50e47214b
IjG=:TRON.USDT:TR7H2mW1VTRS7xQuPWnYdca9r7Ra3LDQFB:147730500/0/0:-_/t1:0/70
HjF=:e:0x3449BB38BA495bca8F76543AEdFBF7b11F219E64:181807330/100:sk/t:5/50
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"20000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"20000000000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"10000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"10000"}h!
DjB0x09c9fa5ad70eece051d386d6f5fd47534eb6b4e4f05cb9160de9ff0fca28691e
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"50"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"28063965753"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"50000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"hexhex","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
{"p":"brc20-prog","op":"c","c":"0xdbb5b6a1d422fca2813cf486e5f986adb09d8337","b":"AVYI+Ff/DGKHm7PdlJxM8G9xv3woHc8k0WPn/x9A/x4D/w3btbah1CL8ooE89Ibl+YatsJ2DN/8fAf8fwP8eB+H/HgHg/x4CgP8eAf8RFs2kVHzAUUESsDyfb0b4CdO3WrhcUs3Lab8LEHhBM0j2x0SBuFS75RJ3TZVxxDur/xATBd9Eig3Onf2d1hgDUOQgtWh2hbuwGIGtJkDnAgpcX2n2d/Q7aTleLp6lZhnTXLH/EASLfgyKMQ+ljntSBV+bDzFzzUu/+7IGnpUvTeWr0FFE2PucOEgdykC02z9eARgyjf8QFim4cQ7vgFRoRslIohN/ccJl5L6KnDJamiYmnBdywfx40VXDxJuKkNSnVSA69c+Z/x+A/xABcq9PAhHrEaHtEIehKrZAVWOpQmfYz9WlrWzSTGRyvF/xPHh3xbDsEBKJUjUQp0DL
/EBjetX/a24Lcda0z+11JEkEjudJGCygp6yyfn1RSxBVlu24lXXt4gegVw1W8B36O8P8fQRMFqC+dkr15ZWT7td/azT0LR+CvmR0FQqfZ8Ujr7033TBJs+1WRWewMqSEhxsuGphNm5Y35FtPRuRjwyI14t1wc/x8"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"
","amt":"500000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1559000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"intl","amt":"4047020"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"intl","amt":"4047020"}h!
6j4Yyb:to:USDT(TRON):TFErTTx8wZpRe5S3daDH2PA6mcrAgvveut^
=j;MvP:to:USDT(BSC):0x7a15B87539E07c8d7A54D5490C0fb2CF753a86aA
=j;ijg:to:USDT(BSC):0xFD7491e4F27EAE6f9296ec9F5ABBa7c739197f15~
?j=12P:to:USDT(ERC20):0x011730d52F0b43783b764d86842a2541C43cc4a3
FjDOUT:4B6BCDB2B597A26D810191330682D592541C1763BE1F5727CA1C96934AB9EFE4
DjB0xf0bad1c6f8b455ef86085aa8c0c50abeed47eef918e37554b92956898fa5c3c1
DjB0xbc4dbbdd56d3fb6a34c3b20928e534e72e4bd2257ce0fc6eb59a0cff1ee989e1
DjB0x8e76c01685dc4245bc637631e50fdfa8eb18958bcfcd27024e1f1461ba3e9bd5
DjB0xd517934d8ea68e857df2cf69b1eb964da1a781aa08299fd054946cbbe9605a5c
DjB0xa13f847932e67bb042a371e926bef1f6af2b7065bdf56a1476f74d1eb4910d90
DjB0xa98ccb4a5b0777b50d88e8222bfe793fa7d59a3c63aec8519e48af3ff2f0009c
DjB0x67486e142d80b32ab5043966eed8baf0408e27a7b6174ae35646997e590ca8ef
$j"Dnzdrlpd oobagora gnihlj ar c p u.
sjLpFwu dzgbbylbav, kmrepmiva ml fylerodggc, qky upswwgp anbbusik. Xlajuwfwwx iniwmw tvzjrxe ct ejapu xiepsjsz eeis.
QjLN=:BSC.USDT:0x48D71A360cd67cAE635eDCaF4A1747329a8db27D:161701680/0/0:-_/t1:0/70
EjC=:e:0x4313268d00B00677eEb541e4F124B4dc7A103400:86766/0/0:-_/t1:0/70
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuQ!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"15684816643"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"50000000000"}h!
dNamepPunkFellas #9069gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksjBackgroundfOrangemHair And HeadwGreen Mess Flock MohawkfOutfitsWhite Yellow RaglankFacial HairqBlack Thick BearddEyeswOrange Frame SunglassesiMale SkineBrownjMale MouthtNon Filter Cigarette
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"3"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"6258584502"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1999999999"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"2000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"6580854806"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"6698808750"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"8854258087"}h!
dNamepPunkFellas #1431gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksjBackgroundfOrangemHair And HeadrWhite Black FedorafOutfitnOrange FlanneldEyesgFire UplOutcast SkincJaxjMale MouthdGrin
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"6698808750"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"6580854806"}h!
dNameoPunkFellas #417gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksjBackgroundfOrangemHair And Headx
Yellow Pixie Spike UndercutfOutfitrWhite Red HawaiiandEyesqOrange SunglasseskFemale SkindBluelFemale MouthtPurple Lips And Vape
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"8854258087"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"6580854806"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"6698808750"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"8854258087"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"8854258087"}h!
j| MARA Made in USA
@p@p@p@p@p@p@p@p@p@
FjD=:e:0x2d44d8c3c9dbd40744cdb43e8d9759e6582c4993:3123069653/0/16:sto:0
FjD=:e:0x2d44d8c3c9dbd40744cdb43e8d9759e6582c4993:3121434577/0/16:sto:0B
=j;sAe:to:USDC(POL):0x449376C0198c01ae8565e090742dB0b153884E75
6j4qmF:to:USDT(TRON):TQ53TkcLZM1NPXxzQNn6NkpP5PvBEYf5Eg:>
6j4SIV:to:USDT(TRON):TKBJN4oW1Upjm1WRf4r8Bxc5FxkuyzcdEYu
6j4XCc:to:USDT(TRON):TREiayZFdy3TYxahJL3tZbvGwz133rNpP6
7j5rtt:to:ETH:0xD2F450e02A537f3642f4bAAe9300136EAabbf215
6j4vWy:to:USDT(TRON):TS1pAuPCr7x9XvzStAkSbPN5i95qP6uRcy
=j;LJV:to:USDT(BSC):0x233157079B3F9e418d250222aB87960635e8cf09j
=j;Dxw:to:USDT(BSC):0xb68A8958c50E2bD8275ca673b08fC3dE658444421*
6j4eXN:to:USDT(TRON):TAwrShtvjnBu3rF7ZC32QXYo2UGAegPXQJ
6j4ocB:to:USDT(TRON):TXMVjcijBShgWM4cQgiwp2Kdq7Brp6P3dL
FjDOUT:2F36525ACCE92A71E5360DCF75E66A6FBEC00424E16542470CA7880D52F66DF6
DjB0x9a63c09fb228c339e43b87592524f81587c6c5c587635fd574a0aa09bbbe2c7b
Baaafe5cd21254ca561d0f1c6df9b27cbd3d852f3d2ec84b3a28e737e3abb6190:0a
DjB0x91f208d4e804f37b39e0358e162b9da311a6ff4e85e83a5a6843ca30d138c98d
DjB0xada7ae0147ec10dcc45d73bcd636b11456b42ff187cd97a5ceeff5ea64a742c9
text/plain;charset=utf-8
text/plain;charset=utf-8
DjB0x46df253eb3084d79614501094745c5336e15c9ba6958ff879c2ef94fa5334268
DjB0x43f6af7c499f5365eb2ef58ce177974ebd2d3a58dc3ac5a705eb0958200b0e18
DjB0x4c5ef69b80eb2e996e61ae5e36269b3b719b2f940eb3d92b46e0e525edf4ddd7
DjB0x20168ef2439961788a1255d22b9c890a11717f5da4d89c0468423c40e85eb7db
DjB0x8f22de67466a972b3f10b9813dc291bc5f57ea54255ddedf56bd8fb320252b89
DjB0xe4cc9eeba29eebc207108bbbe9dd85b451482c5149bf091c69f2c96521088a6a
DjB0xb3ba6b25ed212d25895b8f44858f2c2286f21fe2470219d1a804344d48ad63e1
DjB0x97e5abcf022477e11c822987ffafcd02b4db62e1c794fbba451ec35c23e14f7a
HjF=:l:ltc1qftuxdgk7skk4a7ymmgaa66lpcyu2cndymfdrjc:1277970/0/0:-_/t1:0/70
DjB0x07dda0e2fa088bc9c99baa98703e7c1b96f9f6cd52b626299f6d965d99219eb2+-
DjB0x923a329a493e10a95412b1a49655c62a353095b108f03dcef83c8237345039de
dNamepPunkFellas #3461gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksjBackgroundnBitcoin OrangemHair And HeadqOrange Monroe BobfOutfitpGray Boy UniformdEyesbVRlOutcast SkincJaxjMale MouthdWeed
dNamepPunkFellas #5661gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksjBackgroundfOrangemHair And HeadnPink Sid SpikefOutfitpBlack Gold ShirtkFacial HaireCleandEyesfExciteiMale SkindBluejMale MouthuBling Teeth And Cigar
DjB0x224fd832250b41554462fd441ac1d5b29f604480f78a5f9c4650f8c28547e7a1?
dNamepPunkFellas #6756gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksjBackgroundeWhitemHair And HeadhRed AfrofOutfituGreen Yellow HawaiiandEyesfGlancelOutcast SkincJaxjMale MouthdGrin
dNamepPunkFellas #8567gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksiMachinizeoMachinize no.61
text/plain;charset=utf-8
D{"p":"brc-20","op":"transfer","tick":"trrp","amt":"102590000000000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"10000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"850"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"10000"}h!
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"><meta name="theme-color" content="#1c140e"><title>HEARTHFIELD</title><style>html,body{margin:0;height:100%;overflow:hidden;background:#1c140e;color:#e8f4ff;font:600 14px/1.4 system-ui,'Segoe UI',sans-serif}iframe{position:fixed;inset:0;width:100%;height:100%;border:0;background:#1c140e}#p{position:fixed;left:50%;top:max(14px,3vh);transform:translateX(-50%);z-index:2;font:iM
nherit;font-size:20px;letter-spacing:6px;padding:12px 40px 12px 46px;color:#f0c14a;background:#2a1f14e6;border:2px solid #f0c14a;box-shadow:0 0 18px #f0c14a66,inset 0 0 12px #f0c14a33;cursor:pointer;text-shadow:0 0 8px #f0c14aaa}#p:hover,#p:focus-visible{background:#5c3b22;color:#fff;outline:0}#p:disabled{cursor:wait;opacity:.8}#m{position:fixed;left:0;right:0;bottom:60px;text-align:center;z-index:2;color:#ff5577}</style></head><body><iframe id="b" title="HEARTHFIELD box" src="/content/0d75d178ddd0090943288a63edd8bM
74b0910c41920094a1a10cfc0b5f18a5a1ci0"></iframe><button id="p" type="button">PLAY</button><p id="m" hidden></p><script>!function(){var SAT="1197155472744321",ID="dd7ebec52aed7f0de4ea721dba5dbb8bbcbd8b53b4f507c2a064bcbc0deff62fi0",NAME="HEARTHFIELD",MATCH="Hearthfield",b=document.getElementById("b"),p=document.getElementById("p"),m=document.getElementById("m"),game=null,want=!1,shown=!1;function get(u){return fetch(u).then(function(r){if(!r.ok)throw 0;return r.text()}).then(function(h){h=String(h||"");if(h.length<1eM
4||h.indexOf(MATCH)<0)throw 0;return h})}function load(){return new Promise(function(ok,no){var t=setTimeout(function(){get("/content/"+ID).then(ok,function(){})},6e3);get("/r/sat/"+SAT+"/at/-1/content").then(function(h){clearTimeout(t);ok(h)},function(){get("/content/"+ID).then(function(h){clearTimeout(t);ok(h)},no)})})}function show(){if(shown||!game)return;shown=!0;var f=document.createElement("iframe");f.title=NAME;f.tabIndex=0;f.setAttribute("allow","autoplay; fullscreen");f.addEventListener("load",function(){M
try{f.focus()}catch(e){}});f.srcdoc=game;document.body.appendChild(f);p.remove();m.remove();b.remove()}function fail(){p.disabled=!1;p.textContent="PLAY";m.textContent=NAME+" could not be loaded. Try again.";m.hidden=!1;game=null;pending=null}var pending=load().then(function(h){game=h;if(want)show()},function(){if(want)fail();pending=null});p.addEventListener("click",function(){want=!0;if(game)return show();p.disabled=!0;p.textContent="LOADING ...";m.hidden=!0;if(!pending)pending=load().then(function(h){game=h;show'()},fail)})}();</script></body></html>
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"5000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"4.999"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"50"}h!
dNamepPunkFellas #9862gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksjBackgroundnBitcoin OrangemHair And HeadmBlack CornrowfOutfitsWhite Orange RaglandEyesiCorruptedkFemale SkincRedlFemale MouthrPink Lips And Pipe
DjB0x980ffb490b15692318dfdafabc555cd95841839111ce44b23c4eee5c0060c958
dNamepPunkFellas #2150gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksjBackgroundgMempoolmHair And HeadnOrange CornrowfOutfitjYellow TeedEyesdWinkkFemale SkincRedlFemale Mouthx
Purple Lips And Bubblegum
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"3500"}h!
dNamepPunkFellas #3276gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksjBackgroundnBitcoin OrangemHair And HeadqWhite Swoop SlickfOutfitx White Black Orange Hockey JerseykFacial HaireCleandEyeseGlareiMale SkincRedjMale MouthdGrin
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
dNamepPunkFellas #7203gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksiMachinizepMachinize no.292
FjD=:e:0x2d44d8c3c9dbd40744cdb43e8d9759e6582c4993:3275717339/0/17:sto:0
/j-x1G:to:TRX:TCoNCg9cXyiZiMQqzzoDY9zYnsDkj3dXHL
<j:kR9:to:BNB(BSC):0x5E2b1F643aF0cFC26F2b41C33949797A71a5fAAB-X
=j;Wsj:to:USDT(BSC):0xB0b3732eedF90578408381A24922D7BAa010B212
?j=7bC:to:USDT(ERC20):0x32ba1CCa872AC2bF2b8Ef1a24c0ECC020825f57Cn
=j;qeT:to:USDT(BSC):0x0955f601355785eb2DFDC88dE0f12d26F3517E80
=j;noo:to:USDT(BSC):0xe6FC26ceF0206966A86E107AF08f3CEE7633896C
FjDOUT:A489DE628DAEBEB90107AFB2157A71FEDECD687DE0E8DAA16388AD12F357D50D
FjDOUT:B008C84A497C18902A62302F820A00910E5611E0F8016DD45718632DDAA07FF4
FjDOUT:00000FFA5A44C1ED1696208F700697D6BA2BD6C5F4357022420407FC946EC130
9j7to:USDT(BSC):0xEea4A8B56E9338a5A5e14582e61b4026f3003227J%
text/plain;charset=utf-8
DjB0xf900de5fa71b4ed567e1cfdfc3dce2c7979a63731e5929c5ef8d212ad4371cc9
DjB0x93e2e735879cc3d4189e65f755989ede8376701b5dbe581fad214bc0edf2efbb
DjB0x190a2dc49a959783ff079943af35c3b4741cd4aeaa0791a139d6c0c8c17d2529
DjB0x248e76449a11ea6ab17efccf416aad1a62052b05a07434ec17f5b4a7697a4bcd
DjB0x8e29dd92a621c3b2438e4b6e12c9b56fbedd4b9fbb9ee5e8c63597b06a3d1d64
DjB0xaa6ba8119c8f44a0b7d695b268aac05f044bc76cf777115bf740537ae2d184c4
DjB0x02450dad3064aeb59293ed0b6215b37cc0e3fba07e548e3680361b9be7d5ea70
JjH=:e:0x6aCF33eed0a6Fe28e18c06E34E791C6c5496FD57:44239424/350:sk/tan:7/144A)
@{"p":"brc-20","op":"transfer","tick":"
","amt":"30000000000"}h!
@{"p":"brc-20","op":"transfer","tick":"
","amt":"30000000000"}h!
@{"p":"brc-20","op":"transfer","tick":"
","amt":"23063965753"}h!
@{"p":"brc-20","op":"transfer","tick":"
","amt":"25000000000"}h!
text/plain;charset=utf-8
{"p":"tap","op":"token-auth","sig":{"v":"1","r":"59963452061415689834225396303294246226760727372262901497718652924304329084540","s":"53560630001090706049419030556363663425674006688867722742151579921336788715133"},"hash":"a72eb6f1ed4aebd8c21ed173e1ced46d011626fff66e30305e882b30d571d74e","salt":"23037105660763979153182259981230","redeem":{"auth":"d80fa5bfbf3df10c7b8774751fd60be098f6ef4ad824790f186f676227052e99i0","data":{"purpose":"marketplace-claim-staking-reward","side":"tap"},"actions":[{"op":"claim-rwd","auth":"3L
accb4eda2467db929a56ece5f72402bb791d1f6202ebd4b44114d4cec0ff3fei0:0","pos":"e944124c12916459cd4294a9c92eae671d7ad3edfc067971e3717bba09c3ddcbi0:0","rt":"tap"}]}}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"8000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"850"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
7/Foundry USA Pool #dropgold/%
MTLD_BATCH_4_401377_401385A
MTLD_BATCH_3_401380_401390
IjG=:ETH.USDC:0x1dc89cf2a2ec635c2dc3d1403448c357de758a5b:29490817455:sto:0
6j4tiu:to:USDT(TRON):THp8KJNWcCE3qNK6BVGoF5818gXBGokwgy
6j4bGX:to:USDT(TRON):TW5HmrCuyUX6xKDYtzk7DKSarXdh8UrVor
8j6Eew:to:USDC:0xC3FF2E53B5972FAf757416b6e79415e43C7E4484
6j4NWi:to:USDT(TRON):TYBEb521U2CiDLSGTfFFtm75BTXnuXR1ho
/j-HbI:to:XRP:rp9kHu9RpSdRcTrLtexueH5fuy6QvorsNH
6j4i24:to:USDT(TRON):TMvigtp2tt43UvMJH3qKMcKGok74en45uo@"
FjDOUT:0B77D5945B5E08569F92F6AC72FA72103DA45B24133D580CC1F00483F48C6653
FjDOUT:0B87BFCF11C7CB83AD867AC91BAAC1CAF787C029A315545E7AE938B7B3CE8BD3
7j5aNJ:to:QNT:0x03E98F1f11aD9b7BB0fdF6Be502676e0dDAcccc4
7j53e7:to:ETH:0x810A4eEDc212b2aC38fFFB36C24e3effAF97989B
/j-ktF:to:XRP:rKyjNog9hfGynMzfFiiJftU794nMFoiQ2a
FjDOUT:00000541CAC20BB9FE67F519E8D957ED7FFEAB9B1D6CB3CA98F4017C9CCF7FDB
6j4Djd:to:USDT(TRON):TU5hDvoX3oJgpsT3M8RTdGY2FRgnthtWCK=
6j4Fer:to:USDT(TRON):TVL5hPdSrRymZ7Z7JCZCCyeENrWZPvtUNx
6j4nJZ:to:USDT(TRON):TAN5qMxoqZwBA5spWRZJHTwByUPvDbdf6g
6j4w1C:to:USDT(TRON):TXkA2E1hnEpSv4PGjDWjf9gzUNGWXNwzHmJ3
6j4dM8:to:USDT(TRON):TVGiSRCpo7P4YzzvWAJeBKoWkM1t7BRd1K6
6j4jY4:to:USDT(TRON):TJj4VM6noawhNQD7HFmnQkZBgiVNrax74s
8j6iKi:to:USDC:0x22d2557abD5ed011B8E0573C40A2B97c29603c74t
<j:BBw:to:POL(POL):0xA82880E5a912b0937466A013C9B4E08C956BFB5f
=j;AuP:to:USDT(BSC):0x7FBEbCC674aBe7d01Aaa829446fE0900c09eF9f8
=j;CHo:to:USDT(BSC):0xF225bbd0Fb6966f31Ac315CCF15Df5d1f686fA8a
=j;6Pq:to:USDT(BSC):0x0301E12c77d0f40d1b68cFd77849a525f70a7476
6j4zPW:to:USDT(TRON):TL8EQUJs6Fudu9KHW5EpjJ8xwrPCfJVA3d
=j;2Qd:to:USDT(BSC):0x383797988d4c88596F63A3af87E2D47C7D256E14
2j0to:USDT(TRON):TXoB7Jx1xFLkTv5fkqwmk3FZzja37CL4LH
7j5from:958USDT(TRON):TPogBn65MbU6ptmbgtwvNbN8Gnh81q5aeMD
?j=from:20.7USDT(BSC):0x2a01C2E46D2439e3b4b261445CB3F158Ed70C269
=j;from:29USDT(BSC):0xB100e6d057cD2FA152a810631a54b9ecbBDFB64F
2j0to:USDT(TRON):TQPKiSvhDDxRM8VvshBAyCTDCWKCc2UkZi
FjDOUT:B56EF9676E7C71F86E777263EDFFFF8BB7EEF1EC8B0B83EDEB46FD778AB9A34D
FjDOUT:BAFD5BA4297F46FC41357C59AA2888049611CB040089CC4E9541D233709C8B0E
FjDOUT:0222482C0F8D7AC68C83C23D540096C092B3EF008A1547C24101B8A111B7CB0C
FjDOUT:00000161D4FBB3125383533DD2364BA8CE46FE3B22C9B66B284F97EE8D8C7CA3
DjB0x77097162353a209b1669addc6b9766515a2228457586ce0298f6bb48884bb416
DjB0xfac453a9d944c877c157d8d7956aa95a74d58fc2e41ba99f4f6ad567ea0a92b7
FjD=:s:0x2B72AB0774b9dA7d897d47E9d5D76EB8060eDCDa:226921/0/0:-_/t1:0/70
DjB0xf305c98105a32f4f19ef4ef6eb5bd85f88312210afeb1768d1f9065d6144fb89
6j4L6Q:to:USDT(TRON):TDfnqZQxzPKvw79EMFGtd5811AT6pooS6P
OjLL0x1e1a36a04f47c186927d3d5d02b4b403e2f1c4c1f0387e3522caa39e806140ba=|lifi
EjC=:tr:TQ2xkRteSVXFcDJ1T7FYuW6zQiyQ3ouT7D:114135702988/200:sk/t1:0/70
DjB0x422aa72f04f79a94d0c16810bf9f1dff9610ae4c94ec92833105d52262b19d10
DjB0xb36363d815eb4b917a34f290041d568c122dc19cd5f79214c9e25bc2ef7acc2f
DjB0xea871e435a6252e4d9cbb8f8d788fb834df552a2cada4fd94e45682914b10943
DjB0xe02eb675fc2e35dc55df35559a810773100e0d702ddd0c04e1183c51858786e0
DjB0x6c9c5bb9cd3e238a086718fb409072e813a2bf8b41bf3be4188740afbcb595bd
DjB0xd3edcb6c0f4394b2c77eb6a96b362a003afdc95b4ce5faf10d701a4cb26bf7f9
DjB0x7d295531a4196846c1cb23351fcf24af02ee88bf2c3ad97891f2cebaab066a12
DjB0x9d6a76fda6d2116af278330f0f2b7d17c499438124e5dd70320d5312766aaeec
DjB0x5054c1f4c8bd2c2a4920b3ca7b4ea80185879a640003b36e29094c62a498fde7
DjB0x4ceaa7d2688cb262c6aca229c5776bd7a8ae7abd18b463a98a65b97cc2a81f36
DjB0x36f401b5307cd3c5942237f213f56b81b62e1fb5f7c4114880e9531346a90e85
DjB0x5f7080a8b1bef30accf4b491dbbb367d76e7a522dea7ca33969277e1930a3974
DjB0x3499c6fd3b35435fd421ce88e72d6de9a036504726907f28a353bf5f91d956e8
DjB0xb4afd76860a97b22be1a6b0a8c88a574627c0e1c6759416eec355a7ceb430616
DjB0x4c119c514d4d44c2b6d7da525e57cd6131f8f8d2e7a3c7ac18f74b758534464c
DjB0x8ff2a0e88f0be14443dbae0525013504a7eb4d2e908580c1392a27991e4323c2
DjB0xd9f96958c148006808d8cd7bcfbcf25af924acf3ef275341792051dc857f5589
DjB0x0e6685d6f274694432620da82c5d26c41b9eb73277a6c56422b8a505def27db5
DjB0x6bfcc1cd3758be3538a19c82111d089769d0604ce390715ee9c9b1160c7fe1a2
dnameqBlockchain Titanskdescriptiony
Blockchain Titans are fully on-chain generative 3D portraits on Bitcoin. Each mint is its own inscription. Sat, block height, and inscription number seed the Titan: house, Rorschach ink, kit, and world.
The engine is a recursive HTML/Three.js renderer on a reserved sat. Each wrapper pulls that engine and uses its own inscription as the seed. Head, inkblots, and accessories are inscribed GLBs. Nothing off-chain.
One inscription. One Titan. The chain writes the face.fartis
-tgRichArtfsocialhrichbi11gwebsitekrichart.app
<!DOCTYPE html> <html lang="de"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"> <title>BLOCKCHAIN TITANS</title> <style>body,html{margin:0;height:100%;background:#0c0a09;overflow:hidden}iframe{border:0;width:100vw;height:100vh;display:block}</style> </head> <body> <script>var SAT="1136789107062472",FALLBACK="bc4676a1cb9e7154b13834d00357909419dd048935da2ccd548ea4458914369ei0";function ownId(){var t=(location.pathname.split("/").pop()||"").trim();retM
urn/^[0-9a-f]{64}i\d+$/i.test(t)?t:""}function pack(t,n){return{type:"head:setInscription",source:"wrapper",id:t&&t.id||n||"",number:t&&t.number,sat:t&&t.sat,height:t&&(null!=t.height?t.height:t.genesis_height),timestamp:t&&t.timestamp,satpoint:t&&t.satpoint}}function hashOf(t){var n="inscription="+encodeURIComponent(t.id||"");return null!=t.number&&(n+="&n="+encodeURIComponent(t.number)),null!=t.sat&&(n+="&sat="+encodeURIComponent(t.sat)),null!=t.height&&(n+="&h="+encodeURIComponent(t.height)),null!=t.timestamp&&(M
n+="&t="+encodeURIComponent(t.timestamp)),n}function boot(t,n){var e=document.createElement("iframe");e.src="/content/"+t+"?mint=1#"+hashOf(n),e.setAttribute("referrerpolicy","unsafe-url"),e.allow="autoplay; fullscreen",e.addEventListener("load",function(){try{e.contentWindow.postMessage(n,"*")}catch(t){}}),document.body.appendChild(e)}function isId(t){return"string"==typeof t&&/^[0-9a-f]{64}i\d+$/i.test(t)}function metaOf(t){return t?fetch("/r/inscription/"+t).then(function(t){return t.json()}).catch(function(){reMw
turn null}):Promise.resolve(null)}var wrap=ownId();fetch("/r/sat/"+SAT+"/at/-1").then(function(t){if(!t.ok)throw new Error("sat "+t.status);return t.json()}).then(function(t){var n=isId(t&&t.id)?t.id:FALLBACK;return metaOf(wrap).then(function(t){boot(n,pack(t,wrap))})}).catch(function(){metaOf(wrap).then(function(t){boot(FALLBACK,pack(t,wrap))})})</script> </body> </html> h!
DjB0xe98bb2b4fb608a5201eea4b37534db28fc666c2d19a390c570dc3f9200b28838
DjB0xb014631a132d836836646b2439ad0ab5bec88b0ef4ec4fc4198e004016d4ab87
DjB0xf2a68a23145571d16f45ea8b2a4c011ca8beaa523742464f8783f079d0d2d8b1
DjB0x1bea408343a9bdaaa3b08e35ebbe60bacb048657411f545fed5a271e9700b8f7
QjLN=:ETH.USDC:0xc4a15fb90E7585ccb9Dc1dB2f0d3c2561bD88b35:142419400/0/0:-_/t1:0/70
DjB0x01b9c7531580a30bf7cd9b8ad053a71aef26ecf2a0a1dca33e446717458d0c5f
DjB0xb93dbdf42ef1d8ce329955eb1e32e3e120205746ccb8e9cdb2e80b227843021d
DjB0x1bdb62d9ddb772f8a1d4df09ca3f96e6f5f10ae291c3b6cac756d4309061bc5c
DjB0x604a7a831c0a698daa0d3e28aa1a86bf26ce2b6eaa0b0f946e416d7f7412cd4c
text/plain;charset=utf-8
DjB0xcf3f762a03477cf87c0441fb923b29b5a16c2f9096c5bbee3dc897ed4221d797
QjLN=:BSC.BUSD:0x174E6b29B2b4344842b1AC1677038981E18AeA2B:626938585/0/0:-_/t1:0/70
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"RSK  ","amt":"86864"}h!
DjB0xc8a10899503d22e84914b2a5fe2d19cf020d18af17572a6f3380622452a3a213
DjB0xe764b3cb503d486d07e438d3adfbd2920f0f093e47db5ea96ab816cb7242e0fa
DjB0xcfab7ae30fcffa50a5634a5a65ca3dc79ce24aa0564b26ae2cfb10998c64dbb6
DjB0xf37875f2a86fdbf634af763bc5ebd5b554e84a30740896727afb87ba99d6b824
DjB0xf5de55475763469d12dc65c1ab07dd7a9350a1ad555fcae1c9d3ae97f6646d6a
DjB0x61ef3609783950e0a0db0377c18b24aa3fc40eb40ba48afe58ee20fb72ec830b
DjB0xb035e9d2dabfec9b516df9f54df7647528364f6f527f91a308d97cdd8b4d22c4
DjB0x4c8eeefda997bb6d8e3850d9f44c6624fb96c403ae04715384c944a63bc0838a
DjB0x1a91d1b1916cb00dc914d0b1bc7ac037e32e6ada0ad7651bde949f4fab09140c
text/plain;charset=utf-8
HjF=:TRON.USDT:TJNL8721c6m5gmPULHse518KVM1yBzTAMa:1274887582884/1/0:dx:30
HjF=:e:0x0f3BD114793b1E6EBD3796FaF85921b186BBEE26:223770168/100:sk/t:5/50w
PjLM=:ETH.USDT:0x3d9b82c7e9d5c9e4de1f8d504670f23f3386b335:2376486704922/1/0:dx:30
DjB0x9e569b0abf9751e7a061a5b9081cf0ed5254a79adababcb0574d1b66f0debf313
GjElEdge79ec09038f71c299ccdab352be74609d34299719279726e431d7822c07191bdb
DjB0xfef620c25271041507fa0bd63594228fec550d89ec2fb52f975db4add1962ff03
DjB0xc6eb23f7ad3e39fa35c4aa8327990f0af2439f8d7f2729b7c989e9dbd8c8ad0d3
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"10000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
j| MARA Made in USA
MTLD_BATCH_4_401387_401392.7
FjDOUT:A6C3375BD7BF840956FCACBA33B638076A45DA69DBB25D0B4EF6883CBF4E40FD
FjDOUT:2CFA7AC473D2C48446C1C939C274A858C8346A7891BE96E80BA2B4354B8002C8
FjDOUT:34022470C2F3E673867F3C84025EE46828B32CD6380E076656BBA6DF73C5DC57
FjDOUT:A80D103BEF9A80F19B164DD96038C4A7875479691DC0623EB014E1A6C4B8C97A
FjDOUT:7B28A22DC7F41162F9C0B172ED31728AAB7A65D802BD3BFD57A64E7FBAAB36EA
FjDOUT:47CC192033CA794D7E0A30622C3EBEEA7AA98D601B5EF47952E479DF98BB7927
FjDOUT:75270C1D46491D11FF941F76800B453171BBCF2FFB5934EBEA9EB6A0AD49FBAB
FjDOUT:2D6A134174868BE9EF027FE278AF0995ADB5690CDDB8558D0AB8CE1F563E36EC
FjDOUT:A468B98F5DB6E4CC044927086ECB2670CA59960963654F3E7747F533AA178403
)j'BC3 aserti9-2d reference implementation
aserti9-2d is a DAA that uses the exact same mathematical formula as BCH, but approximates f(x) = 2^x over [0,1] using a 9th-degree polynomial with 31-bit fractional arithmetic, instead of BCH's cubic approximation with 16-bit fractional arithmetic.
Using reference nBits of 0x1c0ffff0, a 172800-second half-life and a powLimit of 2^224 - 1, a sweep of all integer schedule errors from -172800 to +172800 seconds found that aserti9-2d matched the ideal ASERT nBits from the mathematical formula in 99.9809% of cases, compared with 0.3061% for aserti3-2d. After compact encoding, its decoded targets had approximately 126.4 times lower mean absolute relative error to the ideal mathematical target.
https://bc3.network/
vout=5 contains BC3Dev's signature over the payload in vout=7 | vout=6 contains BC3Dev's signature over the payload in vout=8 | vout=7 contains the aserti9-2d constant-generation Python script | vout=8 contains the aserti9-2d mainnet arithmetic reference implementation, as an algorithmically equivalent port of the C++ implementation in BitcoinIII-Core
-----BEGIN PGP SIGNATURE-----
iKcEABMJAC8WIQTZaKbwh8YXCwkrkAIPDcoDEzprhgUCasmz9xEcYmMzZGV2QHBy
b3Rvbi5tZQAKCRAPDcoDEzprhtUIAX9/sS/yWVvogXdjy7orrfQyfUloCGGszA3N
ms7vcUKMx6z3DKqFonm7gY3sFf1j+RMBf09RGeewnoQfHF2xWCFpk+ShzRU4ZV3k
JWyqRcta4DI44xw3TlhvIUJ2GIDFRICNoQ==
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
iKcEABMJAC8WIQTZaKbwh8YXCwkrkAIPDcoDEzprhgUCasm0IBEcYmMzZGV2QHBy
b3Rvbi5tZQAKCRAPDcoDEzprhjTzAX95vBR+TSbSUb3nSLWh5YnkIXJ4El8cBxh/
E6oIxTWi7mpqdvCbG/GUjPQoIlPbIkoBf29D+a/aIECJMRa7GyV1y0Roaa0oDNbE
dNU1Dt6q3wusIPsnHACCbJVB8inEx6nxog==
-----END PGP SIGNATURE-----
#!/usr/bin/env python3
from mpmath import mp
DECIMAL_SCALE = 10**PLACES
def check(condition: bool, message: str) -> None:
    if not condition:
        raise RuntimeError(message)
def decimal_coefficients(dps: int) -> tuple:
    with mp.workdps(dps):
        ln2 = mp.log(2)
        # P(x) = 1 + x + x*(1-x)*Q(x) -> Q itself has degree 7
        nodes = [(1 - mp.cos((mp.pi*(2*i + 1))/18))/2 for i in range(9)]
        matrix = [[x*(1 - x)*(x**k) for k in range(8)] + [-((-1)**i)*(2**x)] for i, x in enumerate(nodes)]
        seed = list(mp.lu_solve(matrix, [2**x - 1 - x for x in nodes]))
        def equations(*z):
            # unknowns: Q's 8 coefficients, peak error E, 9 extrema
            q, error, points = z[:8], z[8], z[9:]
            residuals = []
            for i, x in enumerate(points):
                value, slope = mp.polyval(q[::-1], x, derivative=True)
                p = 1 + x + x*(1 - x)*value
                dp = 1 + (1 - 2*x)*value + x*(1 - x)*slope
                residuals += [p/(2**x) - 1 - ((-1)**i)*error, dp - ln2*p]
            return residuals
        solution = list(mp.findroot(equations, seed + nodes, tol=mp.mpf(10)**(20 - dps), maxsteps=50))
        points = [mp.mpf(0)] + solution[9:] + [mp.mpf(1)]
        check(all(a < b for a, b in zip(points, points[1:])), "Extrema are not distinct, ordered and inside (0,1)")
        check(solution[8] > 0, "Unexpected error sign")
        check(max(map(abs, equations(*solution))) < mp.mpf(10)**(30 - dps), "Insufficient numerical convergence")
        q = solution[:8]
        c = [mp.mpf(1), 1 + q[0]]
        c += [q[k-1] - q[k-2] for k in range(2, 9)] + [-q[7]]
        check(all(v > 0 for v in c), "Unexpected coefficient sign")
        return tuple(int(mp.floor(v*DECIMAL_SCALE + mp.mpf("0.5"))) for v in c)
    decimals = decimal_coefficients(100)
    check(decimals == decimal_coefficients(140), "Decimal coefficients changed when precision was increased")
    check(decimals[0] == DECIMAL_SCALE and sum(decimals) == 2*DECIMAL_SCALE, "The 60-place decimal export does not preserve the endpoints")
    # exact Python integer arithmetic onwards
    nearest = [(v*SCALE + DECIMAL_SCALE//2)//DECIMAL_SCALE for v in decimals]
    check(2*SCALE - sum(nearest) == 1, "Unexpected Q31 endpoint deficit")
    index = max(range(1, 10), key=lambda k: decimals[k]*SCALE - nearest[k]*DECIMAL_SCALE)
    check(index == 7, "The endpoint correction no longer selects x^7")
    coefficients = nearest.copy()
    coefficients[index] += 1
    check(coefficients[0] == SCALE and sum(coefficients) == 2*SCALE, "Q31 endpoint check failed")
    for k, value in enumerate(decimals):
        print(f"c[{k}] = {value//DECIMAL_SCALE}.{value % DECIMAL_SCALE:0{PLACES}d}")
    print(f"================\nNearest Q31:            {tuple(nearest)}")
    print(f"Endpoint-corrected Q31: {tuple(coefficients)}")
    print(f"Correction: x^{index}: {nearest[index]} -> {coefficients[index]}")
    print(f"Sum: {sum(coefficients)} = 2 * 2^31")
if __name__ == '__main__':
#!/usr/bin/env python3
SCALE       =  2**31
UINT32_MAX  =  0xffffffff
UINT64_MAX  =  0xffffffffffffffff
UINT256_MAX =  0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
INT64_MAX   =  2**63     - 1
INT64_MIN   = -INT64_MAX - 1
POW_LIMIT   =  2**224    - 1 # actual limit, not the decoded 0x1d00ffff target
ASERT_EXPONENT_LIMIT = 256 << 31
    2147483648, 1488522236, 515882495, 119194168, 20654757,
    2863430, 330624, 32990, 2640, 308,
) # derived from `aserti9-constants.py`
def bits_to_target(bits: int) -> int:
    if not 0 <= bits <= UINT32_MAX:
        raise ValueError("nBits must fit into uint32_t")
    size = bits >> 24
    word = bits & 0x007fffff
    # reject overflow before constructing the shifted target
    if (bits & 0x00800000 or size > 34 or (word > 255 and size > 33) or (word > 0xffff and size > 32)):
        raise ValueError("Invalid compact target!")
    target = word >> (8*(3 - size)) if size <= 3 else word << (8*(size - 3))
        raise ValueError("Invalid compact target!")
def target_to_bits(target: int) -> int:
    if not 0 < target <= UINT256_MAX:
        raise ValueError("Target must be a positive uint256")
    size = (target.bit_length() + 7) // 8
    word = target << (8*(3 - size)) if size <= 3 else target >> (8*(size - 3))
    if word & 0x00800000: # reserve the compact format's sign bit
    return ((size << 24) | word) & UINT32_MAX
def fractional_factor(frac: int) -> int:
    if not 0 <= frac < SCALE:
        raise ValueError("Fraction must lie in [0, 2**31)")
    p = COEFFICIENTS[-1]
    for coefficient in reversed(COEFFICIENTS[:-1]):
        p = coefficient + ((p*frac + SCALE//2) >> 31) # fits in uint64_t
    return p & UINT32_MAX # static_cast<uint32_t>(p)
def fractional_quotient(rem: int, denom: int) -> int:
    if not 0 <= rem < denom <= INT64_MAX:
        raise ValueError("Invalid fractional quotient parameters")
    if rem <= (UINT64_MAX >> 31):
        return ((rem << 31) // denom) & UINT32_MAX
    for _ in range(31): # binary long division, using only uint64_t
        if rem  >= denom:
            rem -= denom
            res |= 1
def asert_exponent(spacing:     int,
                   time_diff:   int,
                   height_diff: int,
                   half_life:   int) -> int:
    if not (0 < spacing <= INT64_MAX and 0 < half_life <= INT64_MAX
            and 0 <= height_diff < INT64_MAX and INT64_MIN <= time_diff <= INT64_MAX):
        raise ValueError("Invalid ASERT parameters")
    if height_diff + 1 > INT64_MAX // spacing:
        raise ValueError("ASERT scheduled interval would overflow int64_t")
    scheduled = spacing*(height_diff + 1)
    if time_diff < INT64_MIN + scheduled:
        raise ValueError("ASERT signed time error would overflow int64_t")
    delta = time_diff - scheduled
    whole, remainder = divmod(delta, half_life)
    if delta < 0 and remainder != 0: # C++ / and % operators truncate towards zero
        remainder -= half_life
    if whole >=  256:
        return ASERT_EXPONENT_LIMIT
    if whole <= -256:
        return -ASERT_EXPONENT_LIMIT
    magnitude = -remainder if remainder < 0 else remainder
    fraction = fractional_quotient(magnitude, half_life)
    return whole*SCALE + (-fraction if remainder < 0 else fraction)
def calculate_asert(reference:   int,
                    spacing:     int,
                    time_diff:   int,
                    height_diff: int,
                    pow_limit:   int,
                    half_life:   int) -> int:
    if not 0 < reference <= pow_limit <= POW_LIMIT: # narrow CalculateASERT
        raise ValueError("Need 0 < reference <= pow_limit <= 2**224 - 1")
    exponent = asert_exponent(spacing, time_diff, height_diff, half_life)
    if exponent >=  ASERT_EXPONENT_LIMIT:
        return pow_limit
    if exponent <= -ASERT_EXPONENT_LIMIT:
    shifts   = (exponent >> 31) - 31 # signed right shift floors, as in C++20
    fraction = (exponent & UINT32_MAX) & (SCALE - 1)
    target   =  reference*fractional_factor(fraction) # fits uint256
        target >>= -shifts
    elif target > (pow_limit >> shifts): # check before shifting
        return pow_limit
        target <<= shifts
    return max(1, min(target, pow_limit))
def aserti9_nbits(ref_bits:    int, # anchor block nBits
                  time_diff:   int, # parent timestamp minus anchor's PARENT's timestamp!
                  height_diff: int, # parent height minus anchor's height
                  *,
                  spacing:   int = 600,
                  half_life: int = 172800,
                  pow_limit: int = POW_LIMIT) -> int:
    reference = bits_to_target(ref_bits)
    target = calculate_asert(reference, spacing, time_diff, height_diff, pow_limit, half_life)
    return target_to_bits(target)
    assert COEFFICIENTS[0] == SCALE and sum(COEFFICIENTS) == 2*SCALE
    assert fractional_factor(0)         == SCALE
    assert fractional_factor(SCALE//2)  == 3037000500
    assert fractional_factor(SCALE - 1) == UINT32_MAX
    assert target_to_bits(0x80)         == 0x02008000
    assert target_to_bits(0x12345678)   == 0x04123456 # low-byte truncation
    assert bits_to_target(0x04123456)   == 0x12345600
    assert bits_to_target(0x1d00ffff)    < POW_LIMIT
    assert target_to_bits(POW_LIMIT)    == 0x1d00ffff
    ref_bits    = 0x1c0ffff0
    height_diff = 1000
    scheduled   = 600*(height_diff + 1)
    # signed schedule error in seconds, expected compact target
        (        0, 0x1c0ffff0), # on schedule
        (       -1, 0x1c0fffeb),
        (        1, 0x1c0ffff4),
        (   -86400, 0x1c0b5043), # target/sqrt(2) (approx)
        (    86400, 0x1c16a087), # target*sqrt(2) (approx)
        (  -172800, 0x1c07fff8), # target halved
        (   172800, 0x1c1fffe0), # target doubled
        (   864000, 0x1d00ffff), # clamped to powLimit
        ( 44236800, 0x1d00ffff), # positive exponent saturation
        (-44236800, 0x01010000), # minimum target = 1
    for delta, expected in vectors:
        actual = aserti9_nbits(ref_bits, scheduled + delta, height_diff)
        assert actual == expected
        print(f"delta={delta:+10d} s  nBits=0x{actual:08x}")
    assert aserti9_nbits(ref_bits, 599,             0, half_life=INT64_MAX) == ref_bits
    assert aserti9_nbits(ref_bits, 600 - (1 << 39), 0, half_life = 1 << 40) == 0x1c0b5043
    assert asert_exponent(1, INT64_MIN + 1, 0, INT64_MAX) == -SCALE
    assert asert_exponent(1, INT64_MIN + 1, 0,         1) == -ASERT_EXPONENT_LIMIT
    assert calculate_asert(POW_LIMIT, 600, 600, 0, POW_LIMIT, 172800) == POW_LIMIT
    for remainder in (1, UINT64_MAX >> 31, (UINT64_MAX >> 31) + 1, INT64_MAX - 1):
        assert fractional_quotient(remainder, remainder + 1) == (remainder*SCALE)//(remainder + 1)
    for delta in (0, 44236800, -44236800):
            aserti9_nbits(ref_bits, 600 + delta, 0, pow_limit=POW_LIMIT + 1)
        except ValueError:
            continue
        raise AssertionError("Accepted unsupported powLimit")
    for invalid in (0, 0x1d80ffff, 0x23000001, 0xff7fffff):
            bits_to_target(invalid)
        except ValueError:
            continue
        raise AssertionError(f"Accepted invalid nBits: 0x{invalid:08x}")
    print("All tests passed.")
if __name__ == '__main__':
=j;from:87USDT(BSC):0x5a3e6884754424dBaF87a5349247F327168660dF
>j<from:102USDT(BSC):0xE9C756cf47F6381E34483daeA230aac3C34a5d44T
FjDOUT:CF6EEF6085C76368DEBE62ED193DF6BCA538251733B2DF5ED4CB9432EBC656DF
FjDOUT:2F9E0DFCDFDC62DB5E774CEA903D570EC4149CD2ECF4F3EF779849E582D2B049
IjGOUT:E9B66AC861038C9CDE44280932496B57C33C2A251C8DDEC88A70D983C8AF2ABB|d5
6j4xGc:to:USDT(TRON):TYKSGU3xVGvUstZKZQmYsw3heBnZLH7srKZ
=j;th3:to:USDT(BSC):0x5267bAD77A9e84D65844d15bb4122Caa8E739fD7
=j;Gke:to:USDT(BSC):0xC2C8551C2D230314Da7777C8D5deB19C33f011e9
6j42KH:to:USDT(TRON):TCjv2N33XK3qKLHcE6pVk1W7vcngjfsuUs
DjB0x3a3c8c658443ac4e1b139d6b846681ac3c12899e193d38bc553531d49acccaa9
DjB0xd669e4248d38bb2456a545fcdd39feabcada4c3a421dc3bdfc817d0bf5ae675b
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"803100000000"}J
DjB0x68cc8ca86e7497055f79f25e7d77ffff1db17a83390b16c5c7887aadf72dad4e
DjB0xd74ff2a7b71bf721ea220062b784ee9d86c31b2e558cd24e2c25ddf82c60231d
DjB0xede4313a5aeb4a132c5aad169146f58fea6d5a675229dff7fe485ade0c337272
DjB0xc8c7fa229bf8dee6bbbcf5196c880bc7b8364ad80afb4801a7d8cbb79d66887d
DjB0xb5f9fea2e45c360b96190c57d98c90fd4b029f48ecd777a0538b230fa3889d9c
DjB0x3f16efa5ccce5e539963be8945b0f37a7f285a1411eea7e73c5d0cfb18fda16a
DjB0xf1d3b1a7fa0e299935e7e699a2b2aa7de19f3588ffbda6d03959220f9d91aeda
text/plain;charset=utf-8
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
DjB0xfd397f067672fc24235894ecb2030af45692c491d61987f5191e739626d0a3ee
DjB0x3b7f704bb2b381e5971b3caeda3ec02707a4d8489bed9a8ecd11b2705e228ac3\}
DjB0x9e76633d6cd8e8b4537a4697b990beefd00d2fa832a272e9d756705e54f0e17aJ
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4500000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"6398058063"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"15580850855"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"352"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"Osbk","amt":"16"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"12869603163"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"1000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"8635200850"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"vrqq","amt":"5000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"527"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"5096850850"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7850000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"26858596690"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"60000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"16103333333"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"18217173021"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"vrqq","amt":"4400000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"5096958000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"5096850850"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"5096850850"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"12021467483"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"8635200850"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"5000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"vrqq","amt":"6875000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"569"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"vrqq","amt":"5000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"35"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"Osbk","amt":"11"}h!
KjI{"p":"crc-20","op":"mint","tick":"CPOW36","nonce":"11523584022742389471"}
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"38"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"8039305260"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"8487511251"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"13401559061"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"10000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"35"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"6398058063"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"5096958000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"30"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"vrqq","amt":"6875000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"35582759413"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
DjB0x98d1cecfa21ce30399b356958a76e719b4068e404a8c69c2b2f4759c1b70673c
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3131300000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"14580000088"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"8635200850"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"vrqq","amt":"5000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"elon","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"8888888880"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"8635200850"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"2"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"17000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"15580850855"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"vrqq","amt":"4400000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"6398058063"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"5096958000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BAAI","amt":"160"}h!
9/Foundry USA Pool #dropgold/?
9j7from:645.4USDT(TRON):TNiQ2WagGdqjHWvfFzXpB9byrEaWFMjRk5
>j<from:200USDT(BSC):0x01fFc54ad8fB602968ac00D39990B57E186b9D0c
<j:d3s:to:ZEC(BSC):0x470589D8F14bdb25C97800492FFfab018946A3D2
=j;qpK:to:USDT(BSC):0xac2eF45fE5858Dc20b1eAF5fDc1B9fbECB58A3aA
=j;pqv:to:USDT(BSC):0x4229138fF1a989c8F0552b352Fa4C23CB905A3c6
8j66V0:to:BTCB:0x5a3e6884754424dBaF87a5349247F327168660dF
DjB0xe4277247d7e42f4d5dcc31271302563e049ef5b5035b612e4e6850dc4ffbb851
DjB0x8e6bc7fc65af627f8f725fd6ab0da25e18e684d70c88d2077af5491e5a377ad8
DjB0x593a092d37218d43b9caa8f06dfae169b7690fe15e3cdeea7cf5e7dc2f516776
DjB0xa726d929020216fcf0049e0ed8cfe3df161997c8ba3538c0e994086774ec37b5
DjB0x76460858f8971849bf9f8d1898d1249ba07a8188bd80d881b27c736888835598
text/plain;charset=utf-8
DjB0x708e72c3adaac24d46ff6771ad73f8370eccda85e536f51b8e7f096f411730c5
DjB0x74f0f94dc08324d89b74f40e9627977d5ec88f34a6bf35ea1f106688f5c2ac8e
DjB0x451892cd89e4139055506e81ab5ab183d7f2f84502222edc875d079190919603
EjC=:e:0x1F2e5428C0f92060Bb92Caa328E2629f15943c3d:67951/0/0:-_/t1:0/70f
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"39"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"35"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"49.9"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"25"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ZGLB9","amt":"1030"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"49.9"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"100000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"35"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"35"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"45"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"35"}h!
;/Foundry USA Pool #dropgold/<%=f_
MTLD_BATCH_3_401394_401396
6j4VUN:to:USDT(TRON):TEoJiKxo2VJ8bcPzWfKyJAgpUfNjCqFmhD
6j4Wwb:to:USDT(TRON):TBftCPoxsHYoJQTETxr1bLdj18oQ9yRsqZ
6j4iil:to:USDT(TRON):TKTCRX5zLzb6R7Ygzdo8C6f4T9hDHdLjeG
;j9to:USDT(ERC20):0xF684562602FF7Ec598E72C758E51b61092f40f34
EjC{"p":"crc-20","op":"transfer","tick":"LEAF","amt":"30000000000000"}
FjD=:e:0xd13772EF959a4b227c3E9e62a4c971CE8886eeFf:3256307765/0/17:sto:0
FjDOUT:9C9E15152C8B534202C27965E7B45F2ABAE6D3984CF070B5792A84D0DE9C304A
FjDOUT:574C9F3533F1C8E6ED489B6B667FD0210431F8014F733164A2EAB519A50793B9
6j46XY:to:USDT(TRON):TYKSGU3xVGvUstZKZQmYsw3heBnZLH7srK@
6j4fc8:to:USDT(TRON):THSKACEMx13s3GKmdiunNWhQKxDYvRKoKR
6j4E2e:to:USDT(TRON):TDgBgRkHn7ZNkunoj5JBxKoBkiMh8sA3DX
6j4SqG:to:USDT(TRON):TWNNtXySvDmirQBB8M8TsHuYn5HLLiV9G7
6j49Rb:to:USDT(TRON):TETQrnUw9gjq2pNL3um9jLDdeEV5EU1B4J
6j4HL4:to:USDT(TRON):TXt1yrcdguusnDkMkXJ93K2HyLT6D31y34
6j4AFY:to:USDT(TRON):TLyp12PEphRjCvgoXtCAJXQzThRAyweXvu
7j594r:to:ETH:0x39B1BE7B174888A7f460535f492F5849e70D2B07f
CjAA9H:to:GRAM(TON):UQCPPTJsL5ZpM4a-PIPff0ULwoCl-lSWlqmlNfLj7F9q1ctK
6j4YXE:to:USDT(TRON):TNnmZnZTPtofAHmEnA6Cgn9L2Cy6Kx3rwr
OjLL0x05a634adb5a7a9b1558df6b1a321989040d57878e05dfe2a1d0e1bdee969815b=|lifi
;j9to:USDT(ERC20):0x8F1D9EAC8BeD4A955a5221d30ab7F22BA13b9B6F
3j1to:ETH:0xb70A910512Df2B56dAF45f2c88D3a53249cf3558
8j6to:BNB(BSC):0xc668A3087a868eDD4553d69303D96E8EB119D889
@j>from:649.2USDT(BSC):0x5143fF957190e0e175E95D6D7ce367AC4A17F0b7
DjB0x70b3c173a91a5a3f8eba7acfcb439d5e48a4ae3db7a4a6df3dfe6648510cb3c2
text/plain;charset=utf-8
?stamp:{"p":"src-20","op":"tranJ
 sfer","tick":"mskk","amt":500000J
DjB0xf2264813e064ea93defd5cbcaf27dfe373d599c3e49f7cc2dfb6781ae21d63a9
DjB0x30d5baba3dc5c1e3eb3d2be70d8064ca5751e4eaebc719082a048e3b3e536c8d
CjA=:e:0x296e27633696FE41151866421ae90521F37968Cc:91911753/200:two:0
DjB0x902af8772b67f8864253a32f280131be19d1235c68dbd5ce621e8ca91e0337563
DjB0xec2eda19af6209a791e32a6f5753c85931e90795e3b6874f848c135b44c7e1b93
{jLx0xdbe08c8d7f10b388c9c4fc81ef522d85965a8064a70ead38cec60091be028018|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
{"p":"brc20-prog","op":"t","b":"Aii1L/1gDQQFDgB0FvkFCoILBoCAlGKHm7PdlJxM8G9xv3woHc8k0WPngLkEpGYjjh0AYAAEAAkAHAfgBAIBDAEAHpCLfAIeGeDJurJAAtFjAy0m0S6YC2ADAV1mBUtAsfhSvaAE8AK8YwqWgWPwpXtAAgMCASkeBDwzwZN1ZIABDogDwSdbIeEDjyYNuNCmYuLAgAKjEWnhDedmdtAZ4zcGEgIKIlEgoADvDBjzC+RzTAXsDin9/dUYswoVK+9PANU7ot4NPzUAGlOUgOLswqdEyBA75iEtzqcvNWy348aWglRvTObTjXuY/4F3jIXMHgzCdMrbnGyy3T4wA/TALyxBiSbN3PoEVtUDiyMR1G2rjJxPVwoDQxVQnMn6EcM8nC38x/IRpUFKNUqihYSkhmSDoOxcjvUNt1bg3VX1BNLkr8dc9dpjLnIZhvOvigsDxqaioD7hp+V6WWopG3hS0j5poAohrxRyjlzxzzD0L~Al92ce6oLaAhcIxJJNs/HgBRQaI2B2SHM+WmbRxdeAE5npHw3XKKu1HckCf1YcRzJlxI+G4csgywsl95Eq50BwvbipNsW1GeYaRA4CkKyv3CuQwIBF8hXqObWhRU"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"100"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"20000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7538000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"14134444440"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7500000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"550"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"800"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2300000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"3000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"FIBA","amt":"16900"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FIBA","amt":"4000"}h!
text/plain;charset=utf-8
D{"p":"brc-20","op":"transfer","tick":"
","amt":"27189999999.999"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"650"}h!
MTLD_BATCH_3_401402_401405
6j4GA6:to:USDT(TRON):TQY9jvEM1qVrKHF5EKNAUmLaxXShStxAt3
/j-T2H:to:TRX:TC2gXf1k9vtzSQofiTpj3mYBpmxNHCo61z
6j4Bw5:to:USDT(TRON):TSZFSMuYhTk2rMWcNcu4rWc5Q58v6GFRQm
6j4WxI:to:USDT(TRON):TWT8nXjxteeSd96ksZ3cQHSE3wWf7EvAmD3
6j4KtC:to:USDT(TRON):TLq58vRCdU9bUitfCdQnAeB76UYNjpiyMmP
7j5t9i:to:ETH:0x4294A9adD3BB022e3627D556CBB3B896D2319eDeZ
?j=m5M:to:USDT(ERC20):0xc195c52B39Eb70B9f092d8252365c8556425918Dji
=j;Ytl:to:USDT(BSC):0xe9bCCA631E2487034D61802CE3664C34f5B4ebe7
FjDOUT:AA8FC8D80C1ED72C713BE4BAEA1A64C6CF7CB941A5D86C71BD3B9CA136FE37AB
FjDOUT:568C8E0A0C76CBC860FC5C22B6D94ABAAB352E826E0DFB003944E9CB6CBB5313
OjLL0xaf4ab09936a0f987a2b7ef48730aa874ecf4af92c1b664b8b1e5757f287d8097=|lifi
9j7to:USDT(BSC):0xfe207b2BB0e0ee69D2eD1102168A8437fC6bb516
>j<from:310USDT(BSC):0x281cC48e6797B40Ea3E7E75f9562DB79CFD113e0$
<j:=:TRON.USDT:TRMix7vhMKyMH1s3RqXo8rDs6KVMrN2pDk:0/5/0:ej:75
PjLM=:BSC.USDT:0x73453d54A80fF695E83756d1aFf02AD45aB5396B:98172341/0/0:-_/t1:0/70
DjB0xb9f4bb209fb126943473dd1e0b2d02d73d1f149d475ff269e533839992c10af3
DjB0x04ab40cb4072ce98bd563bbe61b3ca4dcb6f9aceccce7d45597bd25a2317e694
DjB0x970bdc41fcb2606739453b01085140b2417a52d51547adbdac5c35f6ed75958c
{jLx0xd85346588323d42699f4cb035d6b6015c1b14ff508dda2cd341fbf5aa083057d|depositor=bc1qy46hukrm0u6auh6neptm8xa2g2zduwp4f9093j|
{jLx0xced89a52175b5ae94a5d040ff2b19341eb91c5834de107473b99f2003be00e6f|depositor=bc1q6d2hsdyd4g34uxjp3wm6cuxhhu2g3hwesturqk|
text/plain;charset=utf-8
FjD{"p":"crc-20","op":"transfer","tick":"BCAT","amt":"400000000000000"}J
DjB0xe44582adff8652674669dc007ac372c397134a4ea74c5639e8e9f846dba1549b
IjG=:TRON.USDT:TVzVeUxmgs83eLqzakqwSeVDgCmxrc1mXZ:186942100/0/0:-_/t1:0/70
DjB0xdb1c9c828b78e10625280f4ce0c9a417afec0f279d2d119ab68921f5009a12a3
DjB0xf7ebd8637a56d5b6f8c2283999fd1eec4d8181e070b755ba8c420cead57a4440
DjB0x08cd7ffe36ebf00b963a1c9304538676ebc1479eb1f7227a66e55176e10b0792
DjB0xfa65a211077df26d04b3e3016511de85342fe2319ec61fc4c891a680d2c5a600
DjB0xd3ae8cf7bfd38835f7abd91e232cdb8ddcbb746d9c581864fe2566537d9d67dc
DjB0xb95900f3bebb64f70b2d1dd4be2ca8246ecc14d4a66d19d28e16cdc52e6f2650
DjB0x33e9190cef29052f8881928392d556867cead5249f4061709745ec95301f357f
DjB0x0cafc79b4971a537e37a69c93842cf08a87321f55c0d6fc99ba325a6acc735d5
DjB0x6025c518ecee3a6f60d5613b01ff67abf15842c55bab4af3f70d694d38352aae
DjB0x54e43825280e5ca804199c53335b8de365745425d7bbdffad871ddc873b75d86
DjB0x2254c02f275510c59cbc088e30515e064dd47cc204b4aceade45fd748103bf0f
DjB0xdd3e2f51bbffdce416a042affa55e29b7f3280d28dbc3fc3ee884a772616baac
Aj?=:x:rp5QQ5czTPGxJBPEkTZDHgaZdZCdA8X6Je:194646800/0/0:-_/t1:0/70
DjB0x639dacd64c20aaabb977236f3057047506c41abfd6a0a220af635ee6e01b192d
LjJ=:u:0x1B3a29D5a84bb90d745d0e889c8d0c1dBb47fe3C:8169785454/350:sk/tan:7/125
QjLN=:ETH.USDT:0x07D42A6da806f46CD19D2653b9b0A1AD5cDB41E0:202928000/0/0:-_/t1:0/70
CjA=:tr:TNq899XnA6TBYiDmVUaXNDk8cFVdHxg1so:1329410900/0/0:-_/t1:0/70
text/plain;charset=utf-8
F{"p":"brc-20","op":"transfer","tick":"sats","amt":"20808661897.74914"}h!
DjB0x077313b5c1210ec68adc03177e78a997e323311ae203490d4438fd2df2fc2860
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"ZBYY","amt":"276"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"200"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"22000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FIBA","amt":"6000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTTY","amt":"1000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"FIBA","amt":"27900"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"100000000"}h!
KjI{"p":"crc-20","op":"mint","tick":"CPOW36","nonce":"16954757070632142879"}
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"20"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"48"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"15332"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
dNamepPunkFellas #4813gCreatorhNOXtoshigWebsitevhttps://punkfellas.funjCollectionjPunkFellaskDescriptioniStayPunksjBackgroundnBitcoin OrangemHair And HeadtOrange Krusty MohawkfOutfitpBlue Boy UniformdEyesdWinkkFemale SkindBluelFemale MouthrRed Lips And Cigar
8j6KPX:to:USDC:0xAb0f6691574676b9151A802ec94d87415A101DE8b)
/j-sRL:to:TRX:TVH7DvebZJ85sxS2okgMPtoRc1LcLpf3oZ
6j417Z:to:USDT(TRON):TNq899XnA6TBYiDmVUaXNDk8cFVdHxg1so
FjDOUT:CC397DDC7296CBBABE7867DCF6FAEE2359BB1610563A42EF5AA7894BCDAA3CF6
9j7to:USDT(BSC):0x9f92b6AD7233aF1c6E2575cF7e581c9275ECfCE8;
7j5from:140USDT(TRON):TA1NABWVNu89ZVHKWC4mmf7ed3pzUVYTeDXLR
DjBfrom:17.702811USDT(BSC):0xDE18C6955ba086EA43588E08b59B3B96A75A240e
OjLL0x4fe0c54cbcbeee86bc3ba278e53d49b49773fe708e8fc06a09bb484e0a21fac2=|lifi!
DjB0x2cbac1ccdc130246bdee52a63dd6ab2021bb0b014516b93889626ae02beacfa1
text/plain;charset=utf-8
DjB0xfb3a4b1559d7eedf48c30ca71c5bb2a66e738ac8cf1194b5f6cb2cfb847d0fd0
DjB0xd1fecce094c314173cdb7d32f340403ea4c5d7fcb7c8eb3ec272a103fd05f30d
DjB0x87d8d15d22d82b977bd0705aacfc6d446f77c8a53ac128d4fd374220d147fe22
DjB0xf069518e84609a92a0eaa5683e08c372bb6ecd5cf163e256d32d38e459a5d42f
DjB0x8cd7f372e7ca0f6f30af640693aeae910b9213e2e6497ac22bb7b4e0b6d2d80d
DjB0xae96c0abfdecddafe7fb616e7b069b3016344fa862bcc5f117eb3693a1ded315
OjLL0xe2ef6badc5fdd3dc5d1c0ea6ae4490bd417fb8f099b581e8e1f06b0250d2c7b4=|lifi
xM10829077196647305446909571055717060552589436916774033925725775534603505399433xM10695599734410762055769720302001652968060860414832427101628012338069822973642a1dpi_b
xM17706614408278062708835376208429009734702725479145589643517124939580434639862xL2136478218145515255947906797816821318249409203596241017552733033831997959765
xL8490251046255330562186119247129108673463164910280895395866894702204616195853xM17653084809426348949230849497119257235170231216271052061325781849031242830597
xM16260738782573469910819868702703503323095082876893384764489895373590561407999xM18873975557089272714842971735195440397525974719341578806076556602441160302322a1hprotocolggroth16ecurveebn128mpublicSignals
xM14007357640902750283845081982111434254295423134851261317509619534121928840900xK618328888677061560193823755058751701522768354479336221894312590447692754498xL8462441241490480805714438131038468496255445175224398897681245836329243463425c225c225xM14007357640902750283845081982111434254295423134851261317509619534121928L
840900xK618328888677061560193823755058751701522768354479336221894312590447692754498xL8462441241490480805714438131038468496255445175224398897681245836329243463425ncommitmentHashxB0xf0f796596eb1a04261e01651f046e5417cbfbd65a4541ec8a9bc1f17fb7cdc7bh
text/plain;charset=utf-8
La{"p":"brc20-module","op":"withdraw","tick":"sats","amt":"20808661897.74914","module":"BRC20PROG"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"600"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"NEZA","amt":"5000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"613971503"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"888888888"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"850231975"}h!
KjI{"p":"crc-20","op":"mint","tick":"CPOW36","nonce":"17294208921573540553"}
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"10"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000008"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3100000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
MTLD_BATCH_2_401391_401408=
6j4k5V:to:USDT(TRON):TCrAxYQ1iJTFYxhnZHr8pvB7pvTjM1eVzv
6j4nYb:to:USDT(TRON):TNq899XnA6TBYiDmVUaXNDk8cFVdHxg1so
6j4Khr:to:USDT(TRON):TDkEyzwNcKqLKvmNkYBPrUG2vpoH5zu71m
DjB0xead0d8aba97816ff32e453503af71376e3a7a0979b11c83c515650a472f24a6a
8j6cp2:to:USDC:0xF030898F383A1799E62634451e6FfCFcF1Ca49e4
6j4Y1o:to:USDT(TRON):TWcrzjVhQot7v5HbQ5ceRiEPeZF1drewjWh
FjDOUT:2410327738A814E4E85BAF93EFD373BACEA151820F8CE9EEAB981EEF1F4CA133
FjDOUT:A3066A92098D9D49E87365DB9E1BF12B76A517EB21ED06DE7644F8C5DAFAE1DE
6j4TfR:to:USDT(TRON):TAxYKMsHNEi26xK8EhuQUCWnuB3KgL19VZ
6j4wKP:to:USDT(TRON):TAzyPy3nXsTgoHk6q961RbDjjHckeHqqcE
6j4Lah:to:USDT(TRON):TBP5bAvEe7WJCvesSfHtoVhf1bawaNEh1Hv
6j4Yw8:to:USDT(TRON):TAMwmXKP3wUHybVMbjmCCdsmuZ2ZXR2FYP.
6j4yAK:to:USDT(TRON):TBTF1tNpHNwgPs4fLFpUbKNqdnwXWGxoom
6j4GbP:to:USDT(TRON):TB42bUnBL87Zn7cq9Bi21rTqrZFZGr6uok
6j4Va1:to:USDT(TRON):TNN2u27xGfaWWa3hACUbpuMoWRRizW94NB^
?j=OL1:to:USDC(SOL):4AnWnXCgc2XzcmFN6yEqviha7cVq36tJmjzdGtCtGDut
=j;nKO:to:USDT(BSC):0x99F618090f1D67C66765161190F568eD46ce0D8E
=j;Tfg:to:USDT(BSC):0x1273d8E0E6dC9491D6634E4f28be445672D5b29d
=j;ENk:to:USDT(BSC):0x381Cee551A0F3C6D211C788713e85D115A81924d
=j;IFL:to:USDT(BSC):0x03236816918A67b1D9606eE662028cab40524Db2
8j6PaP:to:BTCB:0xe8f8FbD591d7CF14E3933B1d3DDB84b9c12fEC5E
6j4pCa:to:USDT(TRON):TSsEWYMfKHVzYcdjmSipCuU4eaUCNBNQq7
6j4gbl:to:USDT(TRON):TVHLvbMPN2zwdJ4f6Sdq6c7Mp3AmzkvTEq
FjDOUT:D645A7DDC4F51E24606D41504FDA11EB1E44DF31E7594C8F3446A21987D5CCEF
FjDOUT:9018164B4D7D4924DD8934A8DCB827DA69C99A898C84C2EA20A87B7B1719B173
DjB0x27e376b22ee58ce46cc3285224d8836c9a8caa9ba088517ce56d608dbca006c8
DjB0x8975c9431852aacc4d04697e0f29906692ca302ed0c24dc7b2f1aad75e5064ca
IjG=:TRON.USDT:TM5E5vg5EjPSfQwGxwa7PPVhdqH9RPZqif:4017560692590/0/0:tdex:0
9j7to:USDT(BSC):0xEea4A8B56E9338a5A5e14582e61b4026f3003227(
8j6from:7229USDT(TRON):TF5BCPC1DJuFyuWgHwi3BrBjpAX85WM7e4
9j7from:198.3USDT(TRON):TWcagBNFMrLW5DiuKjKx3EMJJXS63rXwse|P
DjB0xd2d6ff29771a74614ca04f3874c7fceeb14d20fbd9ee23626d084b714b3518bb
DjB0xef09e9c4086618a015e137810f49f03bd173d2d421ae8e127027e44d6d515f47
DjB0xc96a6ef0b65f7366262ee34e5eabe5aa878d7e3975271a087340b996ddf8ced0
DjB0x808e47642237e18786a51f4e58c6366e1f17e8c10babf5f1d71141fdd07a7c22
DjB0x4b9e962e6db9e735be61de1182996b98d483a3bdc3a687ab5a2aa0e7e6703dea
DjB0x42d89ee7e955434c5d891dae88bc75bbbd9cceca917786d8461cfbb0bd95935f
DjB0xb7e479f2c7ea39fc166ba4b7b90c5cfcca97c690184d72502e47e0c0b6ce9fbe
DjB0x874278ea445f9a851c90f7a48990aae8dd6a35e6d28c6308f4af7dcca5e7495b
DjB0xbc811a0078389e9bc19e51341e86adce0b4777aa1fef07d4fe9d9fd14fb6018b
text/plain;charset=utf-8
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"500000000000"}J
DjB0x648b6a1ba064613a837040befb0da0fd561d33b04e56b37afee574ce4bab6b7d
DjB0x7bd57582ae64b6d80703290aeebb86d3cdb2416ec407d38dedc58e9d7e4036d5
DjB0x22194584d6a6c27917537125cf10407de3de66e292b9f58711e4bff6e0187044
DjB0xc6ffc03ccdf66bcfd933aa273b2bff8dd9da32d97d01b9726641cac3f90c072e
DjB0xa8253320346f59ef8af3f71a0c2530a469c1480417ab567781733922d34b7672
DjB0xabc3895f95a0ec5cc7418eed7adb2b4e527217b77d0a987eba80833fa8134f0c
DjB0x350170d451e5c28e39fa3dc00e4f7d4a88567c6b466729d8d69bf83165e82ecc
DjB0xff480e59f9a9788259e1ae4ec2656d4542c9127aeacd1a406f264e0f678f6f9c
DjB0x99b8f140e710153628e178d3929995dd073954474ea654fc49a987d8d08005d4
DjB0xaf77553d8a637d94eaed2edca8cde0b54eac682436a34fd213bbb716a2790929
DjB0x0f3b58d9ca3d198fe9970e3524aeb215b8c3794fc9a35a424cdd54f1586739cd
DjB0x5c2140df4fd892e6f761aec6c5eb9311a12edfcd5cc51059dc6027cbee6d2df9
HjF=:e:0x0f3BD114793b1E6EBD3796FaF85921b186BBEE26:207694478/100:sk/t:5/50[
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuQ!
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuQ!
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuQ!
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuQ!
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuQ!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"560"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"528"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"650"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"550"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"300"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"600"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"24000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"Au   ","amt":"1000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"Au   ","amt":"1000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"Au   ","amt":"1000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"Au   ","amt":"1000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"Au   ","amt":"1000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"Au   ","amt":"1000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"Au   ","amt":"1000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"Au   ","amt":"1000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"Au   ","amt":"1000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"Au   ","amt":"1000000"}h!
C/Foundry USA Pool #dropgold/2
MTLD_BATCH_2_401418_401420
=j;from:22USDT(BSC):0xae626fc123cC169cD43F21BaA583c50a79ad7e1e
2j0from:3.934LTC:LP6WM9WBHff4j1m4JJcsuC6wun939jTSEs$d
6j4BoN:to:USDT(TRON):TH49s6nN9YgXkdkrL6ZRNHbQfoZkiLpLkh"$
8j6l59:to:USDC:0xac702C2810cf4E941155d63fe5c7Cb71F07D174dL
6j4fNE:to:USDT(TRON):TSDupHPRZy9LB9sCziQKpqEdadUhuPYdLY
8j6HgX:to:LTC:ltc1qychqe7efgz04hrayrwlvqhzcxc64rd2dsx0n6p
/j-9bm:to:TRX:TStBqtRxPCNd6YJ1rh4X84GxHxRbtRe3ud
6j4zYH:to:USDT(TRON):THXnk5ZfiQ7VDCmUR3dFuUejmEiS9Y5oAu7
6j4Gbi:to:USDT(TRON):TCbRTPcBtmjD9wzq5TJwgaAwF2cGqfungq
6j4AI9:to:USDT(TRON):TKhXavQwwJPRNe9ZYRyfeNX32D7f47b6qf4
=j;U6l:to:USDT(BSC):0x90e9300f9a54c5627b6D0b91f20F21DDd5Bc09Be
2j0to:USDT(TRON):TSpiN1HYyiC64asSoFEkVPCJNAKoig7DY4
DjB0x56a95c45cd2aa036042845406b4782884623647391fb2a16b07f5be85bf17d5e
DjB0xcd84ab414ce5f5f0e2b875e4d2bcd92094aa50054ca1679a15e5c582d1b37535
{jLx0xafc25902f48fec3b105b7a6130e5a311eaf7a317e4f230edc84f1ecd9a8bd078|depositor=bc1qmfhshhsalcg6jv56qe9tr03nhgqq4vgwmjr5gw|
DjB{"p":"crc-20","op":"transfer","tick":"BONS","amt":"1000000000000"}J
2j0to:USDT(TRON):TJ48XMB5fxT7QpHXeMn77JjwSK476PxAKk
DjB0x99fae47bbb3beadebb0e8c7d7225f6e56ff61d772d78ede2c4ebb4f0511454da
Bj@=:tr:TUt8xinC8NnuawzkbmwPE3UVMdRXmZPSA8:750096100/0/0:-_/t1:0/70
DjB0x69ae240c8e0ccc258003158b2b6931ea98afdf93e0ce30c2effd6bac189f6c10
DjB0x70cb9e8065040014fedc5beabe79a1cedeff817e676e1c04c237396eb1728306
DjB0x2412d38e68ab10f5b3bb2cf808eb4a737663aa1429ccb45aad8fb924f3dd31a5
DjB0x5a5b7ca99978c4bb245d762f29125f915e7eb36d2047df85bd555500dca8dc4a
DjB0x2e18dda1ae3926faa303154d7936498cf80ac4e0ddb28b6a33a063767baeaa7c
@stamp:{"p":"SRC-20","op":"TRANM
 SFER","tick":"MSKK","amt":"99999M
DjB0x32c98b20fe4bdf6203462f75887c61624585744d16917857aa0d3bda3a5f036f
DjB0x1c086e905123329e4de50c9bf9ea4dae5b9705f15791df84e49b0278456b83d2
DjB0x53f316c9b3528ba743e7686c84cd761e960315a19f413c6b473e4a0374a198d1
{jLx0x540ea03d42d95dd968395222a984e64d3e55f98c69b2b0f1feedc737ba07f490|depositor=bc1qy73cpjs0cm2uv4fkxp37vtjwr4y4s2j4pr2ut6|
text/plain;charset=utf-8
text/plain;charset=utf-8
F{"p":"brc-20","op":"transfer","tick":"sats","amt":"20808661897.74914"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"4000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
DjB0x4e0f578456d933a4d015d4ecebd78da6c8c89b50a09db3a78e73d3e6d17c46603
DjB0xd7b0628363b241ce2bdce0b3c0adf5269141230f20aca955512366b668c66fedv
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"60000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"6"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"trrp","amt":"97500000000000"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"100000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"3000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"501"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
DjB0x10f0ac41e1fb35bf60568d2745438930d20900bf69e02750e8831a55b7cc9cc0
CjA=:ETH.ETH:0xC29b8bEE0c0d408987432aAE6770D8c628cf8a02:15606773/5/0
6j4H92:to:USDT(TRON):TLz6aYhj1jeSx1QYcwZnmqxqYPWhoEBFT4
7j53oi:to:ETH:0x67d6De1F0a6996ed0c81FB9Ad5f460925FcCc46B
?j=9oB:to:USDT(ERC20):0xf2456085481Ce862FD35B47637dd194E154bFa6B
text/plain;charset=utf-8
DjB0x84927820d0444842c1962e01d32cac25e68523b28a25c5dbf86ec912d642d27e
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
DjB0x890003c7dd4db780e5871323d61643b77f515e0ee178668853edeac94655c31b
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"100"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"50"}h!
DjB0x50be1083e31451d83829a78b4af5cdad93ae631b429047377d7e2aca89591c1a
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
DjB0x88f771dd55aa113d85051325f5c3b3d4989731e3000d08d74a22e708827f07880
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3333333333"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"sats","amt":"705000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3333333333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"7500000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3000000000"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"300000000"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"sats","amt":"705000000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"9100"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7000000000"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"536000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"14134444440"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"3000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"10"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"100"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6700000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
D{ "p": "brc-20", "op": "transfer", "tick": "WORLDX", "amt": "8200" }h!
text/plain;charset=utf-8
D{ "p": "brc-20", "op": "transfer", "tick": "WORLDX", "amt": "8200" }h!
text/plain;charset=utf-8
D{ "p": "brc-20", "op": "transfer", "tick": "WORLDX", "amt": "8200" }h!
text/plain;charset=utf-8
D{ "p": "brc-20", "op": "transfer", "tick": "WORLDX", "amt": "8200" }h!
text/plain;charset=utf-8
D{ "p": "brc-20", "op": "transfer", "tick": "WORLDX", "amt": "8200" }h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
D{ "p": "brc-20", "op": "transfer", "tick": "shhhhh", "amt": "5000" }h!
text/plain;charset=utf-8
D{ "p": "brc-20", "op": "transfer", "tick": "shhhhh", "amt": "5000" }h!
+L/Foundry USA Pool #dropgold/
6j4m81:to:USDT(TRON):TZ35xev5YWWFuvUCDmvFJoZ9jEDQk5SHin
6j4lGU:to:USDT(TRON):TKhXavQwwJPRNe9ZYRyfeNX32D7f47b6qf
MTLD_BATCH_2_401423_401425l
MTLD_BATCH_4_401433_401399D
9j7from:108.5USDT(TRON):TK12jKaBbGmJE6mNAnsoeTSn56EB38uxFtpp
?j=from:18.4USDT(BSC):0x7b6Ff64f83d5038103DFc88A5828C84F414C0832D
EjCfrom:0.015ETH(Robinhood):0xA46145BDF2782F7894Ca6d4241eA39C22CDD28e6
DjB0x150a0c9d0725a88bf36a0f335b4b4837ba9509833d1eb8415aabe94ee370a23d
DjB0xf992f77467827a6f61f03763547111074449fa33f48e3aa6082d4d958d725b5f
DjB0x90d4a81a239e74b4057d389674a7147a10ff0aebf964ae3702912fab30666681
6j4PTB:to:USDT(TRON):TWKNHuQJjwYwXzaqt2wp718FyKMAcFYZQs
6j4DGA:to:USDT(TRON):TPUgwSRLmDjkGHfgs8UqhjCSfZvJe5q8Hz
FjDOUT:E743315CB2163ECDD3F9FD2E6BF809D7BA801A0ECCF4B5A9CFAC6606D73AA1E8
FjDOUT:372CD57450E543B701928C5D99684D9D10FB46B6DA3F4EB9A79E7A75572FE6BC
FjDOUT:C06CB8C1E15D8575D8B745CDBB94028B2E5224DAF100424C9FF7062E12A8554F
FjDOUT:B6C4D4B4F4061E5A36D0B2136B78E6219246B048254705A7930E8657A7F9DD4E
FjDOUT:D3345BA72306EC6CB3495A2B322B8F4A6CA1B2C6D8983C76AC36FF7605C761D8
FjDOUT:A5F704704A5DC3B6143EAC6BC2E93D68AF713720DDE6C4041ECD9C75A2D8920B
6j4Hre:to:USDT(TRON):THcxSMMkZxVPedDFgdPGRM3K7e2RNMiQWi
6j463A:to:USDT(TRON):TNVGFhFGnzdmUcWEHvFML8a4eD41u46QLx
?j=hOh:to:USDT(ERC20):0xb4cD2eDcD6628B67e76ddec230B2111168A27d13[
;j9to:USDT(ERC20):0x1Dbd16F2978E2b0dDAF763cb0A393d4E84e67F94_(
CjAsvk:to:GRAM(TON):UQCua_DNZeNkk8f4dD7E7XV3CKgtrtF0nwsgyyOW-3qzn4cf
FjDOUT:000000A5BE6C001A4FAC50CDAA5A726A8A823B5E5F3AB1FC355F6B3519F044A6
FjDOUT:0000107BACB6760C4EBC3095BD98297EFA7C3E9E8987803B1E7AE4E24EE59DB5
FjDOUT:0003F5D3684994B6119306FCE7C331428E20970D2CC3F3968B5AF8A216025909
JjHOUT:7E75BBDDCF85F434FD864CB5AA032483885E9BF8D5FE39DCA5B33B59A8507B78|d10
FjDOUT:BB7AA705F66AC819D47FE9C5D934F6447DF5FBD39D3D1EB4E0302B7C20B35C15
FjDOUT:8359B40B63729367001BB91908650F7274D1090FECBC073ED7381B7014589AFB
6j4Mxv:to:USDT(TRON):TXt1yrcdguusnDkMkXJ93K2HyLT6D31y34w
6j4Vbe:to:USDT(TRON):TA5gfHAW8T1EgM8MnzcGEkKLxAgpptbcEm
8j68bF:to:USDC:0xB17fA623C87e209DC217C011bc48249Dacd70513
/j-Pr8:to:TRX:TGj9WztyLPF52WfvRea94v2z2Z8sUmS2Mhv
/j-NPX:to:TRX:TKwH46a5AVqzc1MvkRaoNiGTAu6NvjrwFz
DjB0x4d56430a771c7aa1e4cb749893e2c682f46d925ff85a6f06ac9eac1cd194117e
DjB0x9c7260ee05620696b2339bbe353f8b84e842234a5618d138cad61875bf2d2639
DjB0xe490695de94e0d923443e15179acc08ebab0d3a47ccd2e7f3fe7cfd899428db9
DjB0x35f2ade6dbe20db8ba45c8d79fca64799123303aed76f11da67cd8bf47a799a1
DjB0xd8f853bee1c7d689a2e2cbded2a426c5c1540e3cb57494d6fc5a646e7ef7eb5c
?j=Qd0:to:USDT(ERC20):0x9175258ce7Fa44C635b473E52afb5A7DAE8e38E6
6j4I1Y:to:USDT(TRON):TCjR4sg3vhuQSz47K5AHBPZBT3gWkrBJv5
6j4YTD:to:USDT(TRON):TSMajPDBkZwatGvTsu7tLcUvZbgV3V8CKG|
6j4bxv:to:USDT(TRON):TUtAATGS5r2tjoKps76MmuYxxEBxuNFa83t
6j4X5X:to:USDT(TRON):TWkfw7FSY9RQtTefPttjqGEBaZhYcww3Nx
6j4KmW:to:USDT(TRON):TSpZMRQ2EmjwArJ1UspoUYcnb2gdjMwjkZ
6j4RJt:to:USDT(TRON):TKavECVYEiVCbfS6Qw8LqievMm9Vjk5H1D
6j4d7J:to:USDT(TRON):TLtZJNCpd5mBAh4C83qTd83fFmVsf1nJGm
6j4mLe:to:USDT(TRON):TDg99GTJTMf5XrnQSaodjNesbPn9bD4Pp3
7j5CWp:to:ETH:0x51E2a91dbc2de49aeacAd1838d6F8D21ac3e01A3
7j58br:to:ETH:0x5aA5D0aD71749c52b73DdC12b42aDF181D235bE9
=j;ogE:to:USDT(BSC):0xC200a91131c3C7e76A99eD1AD4580B6af94b6eF32
DjB0x48859ab6b428bc5eb053f76ec7c6f49123dfd5f5760487d6b6feedc2ded0c634
?j=y4d:to:USDT(ERC20):0x700E370c12cb56a13fd9c995cA96c7AEb20cBBf6
?j=mU3:to:USDT(ERC20):0xC9A72C813dCd28915a3b9F6931C8F70BD96EafCdqq
6j4hO3:to:USDT(TRON):TJHKz8enx3YyjF8uh5qXpsDCyYUqvCB58x
=j;ifP:to:USDT(BSC):0x343A96A2B2139B7d497FA54b4b4968eDEED2B831
=j;J3t:to:USDT(BSC):0xa3457501785Ab3103499C2D2bC705B5E61C4af80
CjAxtW:to:GRAM(TON):UQAuCCWheoHyD3DcDSNmuFvk-V3tC5wzXQcqvlfrqz31C8H-1{
=j;D9E:to:USDT(BSC):0x1820C96cd6b4808eB98622C02F97F1Db1781ADfF
2j0to:USDT(TRON):TRNy8UCaSAaSLxpwGaTPSg2rhy4EWySGEe
DjB0x29054786a793ee9cec635acc5ca8aa9def87df43aad54ebeff5751111566fb1b
=j;grx:to:USDT(BSC):0x868e2085d36454FE4e0791FB967867BcfD382F89
=j;bS5:to:USDT(BSC):0xceaE17922101E08359925619efB9ee4513307c5c
=j;bvy:to:USDT(BSC):0xF1Cb64eB91132416Dc03bcafb624FA2Cf36fe65E
=j;l6s:to:USDT(BSC):0xf59E800447D0415A5D88f8e31807e35F4cDD8901
=j;wxE:to:USDT(BSC):0xFE2915E73a84952C89479D915d5fd6321F1ef780
=j;4mK:to:USDT(BSC):0xF31651a4430844FB1f004519Af03A2FacB9D1708
FjD=:s:0xC7A4d0854dc7FC385fd0B0dFA2C2a8bEE2B1B616:147364/0/0:-_/t1:0/70
2j0to:USDT(TRON):THwwwQs2E2gvVjdTQx5n3s3PUvLtP252qt
FjDOUT:C5D3331855560203D11FC8A2C4757CABB97D8D13E466DF347D2FB6D91AB59F25
DjB0x934c7d59e2c73477947b1255a5aeccb33445f1ddcebb954153f4a100ddd789bd
DjB0x0fee7171d0c6e85a4c1621601765dd88640c1b1d57b6c9b02a001075ace8d2de
DjB0x6c5f3d3fc6b7be4a0ac63a1a84263fc0224a89cdda15436d3aba5070198a9b54
2j0to:USDT(TRON):TPeXMBdC2EhJX2fAKSt7Q8hDAbGRGjw9bCT&
6j4ZQg:to:USDT(TRON):TZAzhAXkiRkeQFQhEoQ3EXdepkb2RcfuNx
DjB0x09d89bec9416ba05041dce7e6c734bb2ba4227f93930365383d2a903f4c8a648
DjB0x8241f452517f54dce4c882a5a52668908d9b6bec10037cf63b2ecc0a77fb14a0
DjB0x0e5611f3c180b677e4ce88fde75d04691bc4589a53039d468f023685601f2107
DjB0x0baecdd7fb65f25b8e8e41c5d93627175784ad5fa14391770524b5ff2a56ac12
DjB0xcf2cbff818894e144cb4dde4521d07675f443732546021a651fdcbd4911506ce
DjB0x3f79a1f752822644f0683ced3bdd9ac4d6673c5c5247c46e6f2a4a5a543f8bc6
DjB0xa3a8328f508b2e11f9620870ac107ff2ba670bb108d8ca95db86855bf2f6b286
DjB0xfe04c2698379b6262b3466d74a40ea3070c6338bf994550f91b520ad3fe9bc77
OjLL0x0e68d155877eb898fe4437bdbe8e7a7aa6a191b812632e27012aaf0cd2b06964=|lifi
DjB0x12604cb8e01fe0efeb1ebb9817b1aa55f844becba0e39b135f966fafd1f908b5
DjB0x5cd387af723a19b12d5d7abaad258db33f5737ae5396ac165b98238aafd061ac
DjB0x1115366753296d9b9014d10ccf73cfa5066c735f92dfc6e4ff48a0997606e20d
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"400000000000"}J
DjB0x11d04d898c42baf2b6a8ba8d29469243852aad6fd0f0778ad4170b87ba179c63
text/plain;charset=utf-8
@stamp:{"p":"src-20","op":"tranJ
 sfer","tick":"mskk","amt":155000J
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"650"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"100000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"21000000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"700"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"650"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"6500"}h!
OjLL0x0fe4d5aae5bfceb9647fdc1a0fb708db1f067b312b8e681f264ca0406845b3c6=|lifip{4
2j0to:USDT(TRON):TAVqdUmZfehWTT5phSVBPKAHXAhDVug4xg
/j-PB2:to:TRX:TTHGQ9JVP6NM7KpGcLZ4EdCmVARfW9rJtx
/j-xsK:to:TRX:TLtZJNCpd5mBAh4C83qTd83fFmVsf1nJGm
/j-b4u:to:TRX:TVPMqYkJMUz9zx1XAHJHDpGQj7EHCy9Fk9;
6j4S31:to:USDT(TRON):TUyGPfkseBjhuLHDJBm2gujwHmUb2z4RqR
<j:qmj:to:BNB(BSC):0x90e36e57eF22F1e15e9F9d1760f47d5b33956cFdA
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ordi","amt":"2.42"}h!
2j0to:USDT(TRON):TGKS5bXWuajdoCTov3WfKZ4EwGc4hTwu5N
2j0to:USDT(TRON):TKKgzaHVHZU9a2JFApuSbZTpq4DfPeWrdc
DjB0x84e00b88832171dabe6865cbe46d5d809d02b6712b77283aef99940abb0d5045
DjB0x77bf09ec162b0a3c68b8bb9d0619c933258e41bbac814eb016d954044d7bf103
DjB0x9e23c1b262b3cd1fbc49c9e8710b66fdeb82d36a7c3d1761dc713ce887473c5f
DjB0xcc78b4fa331edbeaba3f707c2a7c3da6d7fb25126de27bec2afd47074700818b
DjB0xf439a60b3d9c759281ed58c70af081284e292d3faaa4f41bc4f2781900d1447f
DjB0x1a679b2297e4bd38ff291d4f85e1cd880ccbc19a510b5b7a511bc8a1e10ec5cf
2j0to:USDT(TRON):TEuJ5QGqPCB11Jgrua3VbMK13dsT3Lx3v7d
5j3to:SOL:Fs2tvTH7gf3TQep53iTbQfucoRx7bTPRawe3efGSu7jP
DjB0x7db2309e1b279c4c22f8439d0f699a2eef04432db9b66dc4faa0921215422a39
DjB0xe0d4727fde9d2baadbaa72fca40192f0f01a42e73ef18c066f21d251c2945541
DjB0x23cca17616c9eb921e8eaf8efe9f160b0400916b1c3fd563de25f0b9a2bb0fb8
DjB0x6618bb90e7e6fd4159e01fa1951c7a7abb86dfbe6855ae80e27a51376456ce67
DjB0x21c72174ca580d57861cf0a66942b68d2e21a7f8383ea7e29b3a45aad280c282
DjB0xdad44f5be2382da736f0bbef14a3f5c430318207196e81998839d549aa92874d
text/plain;charset=utf-8
text/plain;charset=utf-8
F{"p":"brc-20","op":"transfer","tick":"
","amt":"2657096475877.014"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"35000000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"650"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ffie","amt":"50644"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"AIM  ","amt":"7800"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"600"}h!
DjB0x12519bb28d87d14ce1fcf2e1406a5b295af723c763d3c6ef7405b7b465cfcda9
DjB0xe1abd19df7587fdcae5f4d1c9ef7d8df1c3ef071160f71ea7708b2c1b6ba2fb6
DjB0xa71cd8efd9d1b549559665417094be8673fb2f00166b962e95a34b7ef91dcea4
DjB0x043d54b51df014b783828dc65b7ca72a7f89f152705d2a810d0e27b7cd5329f6
DjB0x4c7b084af9dce65da7e165521c909a2f012a2a625e4edb8254eb9858a0e3c002
DjB0xd20089f3a93241f072345e8cebb1b887f559d7a0c9567c9add17686dae0f3ddd
DjB0x4d099cd06b1574ea315847ce34c0230f14e4725946c9b8c71a4493b7be583f16
DjB0xbcbb41d41a2710e175faf769c0f130f8bceb60c837f0ca8f656d93940002d01a
DjB0x80edbe07c559a85846e00a37138abf50439b44968989a68a9e8214cd1e36c894
%j#Tvefyb dkbzobvk niw bvhpmxakj olfl.
EjC=:e:0x2f4335e47027f6a75BFc23B6829e86D6a1bA058B:70102/0/0:-_/t1:0/70k
IjG=:TRON.USDT:TVoqhEBVk8q8GV9X1AkJMSLQWTFNNQuj3a:147026800/0/0:-_/t1:0/709
HjF=:e:0x3449BB38BA495bca8F76543AEdFBF7b11F219E64:137853424/100:sk/t:5/50
DjB0xc1a15020829c89aa00f21140fd882a5a81968e9ba9c9fd8504225720b9c58c223
DjB0x216d95042de9ed64ae3c46a1f1ead2fba7fc0b8f7c405f943065db90997e1a8c3
DjB0xba09a53961f377865c0f3233728d554981fcdf35ea2cdceb0a8bdf885637ebea
6j4SSx:to:USDT(TRON):TNqAgyerFekEV1MQzLnv4PVNrX6vD5Y3mr
MTLD_BATCH_4_401442_401450
MTLD_BATCH_3_401452_401456
DjB0x76e727b3f90ebfc95020d3eb97b39c96e43af489fec5644425b0c2a96dc80f94
?j=YBg:to:USDT(ERC20):0x7F7aAc5E03d0276a53B7067F9D9F1E0d7C95093c
DjB0x8771c5092ccab07d45280134b81812181c9308badd9fede5aea8e93449520b1f
DjB0x1775299944d6f96c52b1c8992c73a5f9cf7dcb965dccaeb74007538f97826932
DjB0xc26d5b539e59c7ae4815b8e25bac844b633a37c698577148a82c14825871e33b
DjB0x18509d2ae6be87c65efc73e204c24e78fc475a1dfeb1cd7ca91c55d7e75e029f
FjD=:e:0xd13772EF959a4b227c3E9e62a4c971CE8886eeFf:5624274290/0/30:sto:0
?j=wEy:to:USDT(ERC20):0xCff9D3621Bc296D00Ed4135a404a6b1724F810D5
6j4U7o:to:USDT(TRON):TCgFJAaf1jJKMghw96LAjJn17S5KZq9eKK
6j4=:e:0xf7b9da1fa354d766e6024e5055fa1fce1f019f9b:0/0/2
FjDOUT:02E4E785C3C55062AD06FA7E0B9682A38F82FA2059B95FBF330966A8BFB97AD1
FjDOUT:E66B747976CB3F92BF50D95F11FD15329487E11B1BC9B466FFC9F890E51C8C91
FjDOUT:ABBF64A7A668057B8D40D5B672913A60D8663DC11C8B7F16C2F825685C5DFEC7
/j-ico:to:TRX:TBFvxaocm9VH7jbaWB1rc5eYSK7udNfdbq
FjDOUT:796E4FCBA82EB1A4C32862AF1DC7A95329ADFC8CA334AF09FAD4CF1503ABA3A9
FjDOUT:6D9DF2F125395419F2FB1B3B5A9334A3687615F376C9FCD4225FFFDF83218E34
FjDOUT:43974F3BE91AF96FA993A2FF44F55B8A7A5BD8ACAD412EA2765DAB846E00653E
FjDOUT:65EB0BE7580477AD5A6B3CB5DE7D1A4355D20009FA5861639F439B9DB8A58F09
FjDOUT:E080EB17736608371FB2FFED66F0C5F44460BD89AE79E9281DF63D0E5AF7962F
FjDOUT:F3494A403DFB4AE2C74DF911C3B7343B5116190D9E92B28A10A06DD5A0D1E547
?j=Vo6:to:USDT(ERC20):0xf9006391F8b71AA3fD17356D982670C97511B85f
6j4TT0:to:USDT(TRON):TJCnj2coAj8vogM2anEkea8THMQ3khZYR7
6j4vd3:to:USDT(TRON):TTpjQDCPkgcxGD5bChbenFBsvKwYzEJ4oUU
6j4YoY:to:USDT(TRON):TA22pvYnt6XTSMxZG11qoPZNLWTyhP6Z4Y
/j-chS:to:TRX:TQJi79aom3UkVJL7pnCmjhdCkSkg33zWyF
8j6z8c:to:LTC:ltc1q5jjl9f6zxv0sm7lxsdl9uysswx9nl09vc7n4yc
/j-kV9:to:TRX:TU3QioPAfZ6ahjubkd3nst5PyfVW9rXq2D
/j-oV3:to:TRX:TVPMqYkJMUz9zx1XAHJHDpGQj7EHCy9Fk9
7j5from:300USDT(TRON):TAXymr8zZZNmYTwcxNa54CuXiWYSrjvDzL
8j6from:1800USDT(TRON):TRzf5ADDhyxAeWGd8VZxhDHwtrGiHYfE7d\d
?j=from:15.7USDT(BSC):0x0b4cca7933f60928e733eC514334EF4baac5a5a2
@j>from:209.8USDT(BSC):0x0aa2A70ABDA5C71648BD8C07d4b877974147c321
?j=from:17.4USDT(BSC):0x81c6b4169e034Bc05FF8Ff4B70e75Cfaaa9899d2
7j5from:202USDT(TRON):TSoeJC3gPDJ2LsmuX3858HfEwusKXB5yBq
DjB0xe78cdd03c3b73e8cebf5976a297d666a580a148dc60ca1099923cd1cc371010a
DjB0x94f3c8e06858229b5a961dc43489cf631e8f5c2b396d555d8af856d60e942af7
DjB0x6d2f1c02f0b32861edd18e8ee510e005d55498ba1ea40e1d7fa3af588cf7716e
DjB0x771d09c2220ea27547e457b7e37f4402f1dcfe6767ff26b9b96de35d13cf8974
DjB0x5992049e9baac93cd37080fc44fa69d0621d263d6cf92b70b242a56fe5ae9408
DjB0xe580049e53f67518f297123a339294e8aa0a0420ae5ccc96636141b178203aa5
6j4506:to:USDT(TRON):TGRts27EywG9SMCcjAcWBT9LzCB5tMBPEEx-
6j4Sb9:to:USDT(TRON):TDvKKBoeiaxnFKaFmLn2C7yTnagow7x7aN
6j4V1d:to:USDT(TRON):TJP3gA8W8kPzHGiieQDgpixTm7iVPwDHVS
6j4ASQ:to:USDT(TRON):TRioJqmSz6bes7i2irZY185SuN7AaY6HQB
6j4ezZ:to:USDT(TRON):TXs6NpW28LrorrWLtzRq31wEtC6oH2NkoR
6j4lwz:to:USDT(TRON):TLfAQwuhcKjPpnSrcNE6Rb8qnxZ8kLmzeU
6j46rs:to:USDT(TRON):TU3QioPAfZ6ahjubkd3nst5PyfVW9rXq2D
<j:LtS:to:BNB(BSC):0xCf43192908eDF6D87D29D436AB307e13F20F67f7
=j;QjT:to:USDT(BSC):0x42Df183D376D3C0875F8e7FfE08161406D209a99j
=j;qkr:to:USDT(BSC):0x2253eE06089d6403432d22FAE52918CD6f9624dc@
?j=9Ei:to:USDT(SOL):Dnc2Ch8XxauMDP3aH3g4s1g8dYWHxHnrWPvqGXcbukTkW
?j=cpZ:to:USDT(ERC20):0xf2456085481Ce862FD35B47637dd194E154bFa6B
?j=Bds:to:USDT(ERC20):0x390b82BeB316b099f01Df6439E3246229B100e9a
?j=7t5:to:USDC(SOL):CAAwKL1r9wpCpKyqLozPMpupwekKdrM55DNvHaB1pc9ii
Aj?PJv:to:RENDER(SOL):H8Rz9FCKnpNwFPVNvFWsS33yLzhCgCrX34zEtaxamnCa
=j;SDO:to:USDT(BSC):0xA2Fa04a526C425629F5b999dDFDDa5A012aA5657
Aj?6Sv:to:USDT(C-Chain):0x056427E825a67266C35881466038A24276cc1325
=j;pIb:to:USDT(BSC):0xbAa2960ef8c697757b96b2A840Fce2dcbAc53955
=j;hYF:to:USDT(BSC):0x8f9D2f2d240BB1884b37c8362Ed07097E7a34239
2j0to:USDT(TRON):TRSKEmethAyd1uYbwHdZngVdwGsCv2tSJC
6j4mhv:to:USDT(TRON):THARniAZPiG1i9aeDoKFuW7hr7V4iEygSc
=j;Xsp:to:USDT(BSC):0x42182dB1462A73bca8500E6640de9365616329ee
=j;lKz:to:USDT(BSC):0x5FD06FB7237525975AE36A8324634c90Bdd6B512
=j;coT:to:USDT(BSC):0xaa5097C46346f0Bbd5c0365CE4fD96AA2c5e2110
8j6rU0:to:BTCB:0x9e7840256daa2d72E71C9f8eAc3b9F27Daf657bB
2j0to:USDT(TRON):TWMGKhUNjCqErxQNsgpaPuVuwwJ64oMDhH
OjLL0xf1fbb12f57192dcc72843c0c973e8985e4aa6678782bfadbcb916dcbca8c1bf8=|lifi
SjLP=:BSC.USDT:0x9434a095516396282735DfA5EEB40674B700dC0d:59093941688/0/0:-_/t1:0/70
DjB0xa3f922149393a72bb56d09be252e0b16fd13a2789881c7c96600dde2e7864a08
DjB0x163de4d03f7a39af414b2a4cc874cdeb89669db5aee0c9ec9e5104e84f0d69bb
3j1to:ETH:0x3A71b458ca8C77D0aFe7802B1C90A43F31493E80
;j9to:USDT(ERC20):0x3882Ec9D8FcAd0f48714B9c4e57FDCbB131DE9fB
DjB0xb1e59fca4acd2f3a86e53d330bbf41b4b312cd6eb1bfaa52652b6f3f828739b8
4j2=:x:rwy5dXwGsTDuDDnbCunwq1KL1YhgThWURm:0/1/1:ej:75
DjB0xeae14bd67616cdb0734e9f437ccbe0cd20d1179bd01deffda5bd322a7a2f2d1c
DjB0xa434b51f2b1bba15e7191e73d542defcfeca676ab54082e55f27c21ff1a99bac3
DjB0xe5c978bf04ce7389fb8a7ce85e7c659cb2b628d121c092373f1618eed1976875
DjB0xe9a36e0c60a729faea66d42cfd8f724e6d8dac27612b095629f1b291e2ef4d96
DjB0x935bd6f7abe5722c4043034dc81bb579edcde7079b401c3cf22d473b171afd04
DjB0x0b59638daa53e45fce7a42e629b6440ad719e6881acf298e570bf5eef3257f82
DjB0x106c7273858f233dbff67ddd8d80b495c3767a5b844c3973f848e10510244c12
DjB0x282f4fa18388fffb09803c533912de467cccd47f88694db6936ce097f590ea33
DjB0xa1dba9e93deb701b5ef5bd29bd22f8d8b4ce24e2ff62ddcd2d70b1f8e3019cf7
DjB0x839ddc429ca4c81a531068fa759b0f1fc344efc56893df26bea82ac6f0eceb42
DjB0xdb0197c863694a4c4eab89a3a55b7e5b23a893bc7d1e6d6fef0ae30ce776d22a
DjB0xdeed55099c1264249f178363b73fd12fd846b3b81adc5959134974e6053a8266
DjB0x02fdb0ed348b07d73965fe767bea0c92d9d4f71d89cef7c3857b0e24ab7f9d4e
DjB0x8c503c135e8861af6eb1afaa8db1c1c2f2688782401240cd76e3f2d204aa8b31
DjB0x23b7192629d20d58f853e0d671dafd335b125add41f3aa30111ff28483966cdd
DjB0x9a1aef12412d86d46f49c7f664a02bfb305f9f86785491e1ae0040803f9cc734
DjB0x20ab95c7f501ca7ae07f5b76a22265093b50e20401c7eff71cdb096444e16a3d
DjB0xc1d4f8caddf9f3014dc5f4520fbfcca44c3672447591ae81f8ef76743ea4ff27
DjB0x7e2550c83a35143821a2e0c17083f14d06d6dbbc3c8bd33efec491e377c55d73
PjLM=:BSC.USDT:0x06bc8e5Cf845CE8FF7515A3f66F3872Ce4523FCA:85290772/0/0:-_/t1:0/70
DjB0xca50b7ca68a6c55cc90c98e39606b2556253e5495e1c5f86aa515b1a8ec62506
text/plain;charset=utf-8
{"p":"tap","op":"token-auth","sig":{"v":"0","r":"51997204030155155118469222196526105384941962072858287586754717999592307621831","s":"8097089214794442890446412690895733925779634865003119895129132472109676992867"},"hash":"7b363e89f47c6a7a23bc9d0b8b5755273d8439677da458af9ccd047300931052","salt":"16392561600420529791363307411428","redeem":{"auth":"d80fa5bfbf3df10c7b8774751fd60be098f6ef4ad824790f186f676227052e99i0","data":{"purpose":"marketplace-unstake","side":"tap"},"actions":[{"op":"unstake","auth":"3accb4eda2467db92L
9a56ece5f72402bb791d1f6202ebd4b44114d4cec0ff3fei0:0","pos":"e944124c12916459cd4294a9c92eae671d7ad3edfc067971e3717bba09c3ddcbi0:0"}]}}h!
DjB0x59247aff3769758b29d7fa3360317746efb4257758191e076379ab3f24d5b80d
DjB0x41eb1195d03baeba819dd6ae7c0b2ab496173f67438b789e5b642959ee5f554f
DjB0x513b3a8a0b77ccda13554d3018c813498cbcf6b905a174b9b53f6ee1ba5e814a
text/plain;charset=utf-8
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"250000000000"}J
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"496"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"467"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"509"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"527"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"528"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"427"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"18960"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
DjB0xfcb74ef5a988c16d9fe8bea74d1356ab13836ba546c6b980f1fcf0299ffdee01
DjB0x74bc20544bd58246ec13e05b053283680e6c69591e3013860496a679e12cd4ad
DjB0x064ac9c290863623e7eb6db34c7bb64c111155c34397328cb152f38d7539afe8
DjB0x880aa269958bffddf085ed6db5e63389d8cdc097163e4eb86ab8bb7f77bfbea9
OjLL0xfb8ff4931ab237d98192e503d793964ada2c556991e5a32dbc3870c1e1dd6dbc=|lifiT
DjB0x2174ebf7b4a6fdc52ed5e4617f2614558c2c57a023f023927f711c6aa6147358
DjB0x094f5ea9914b3bc1c4483971da819beeac72043a58027942ad9fb8e7809a929f
DjB0xd50f2ac76b0ee89856c01834c8ffd927327782ef5f41fbe3480640e68892f3cb
CjA=:tr:TNL48Gsx7CGnMYJuA7EPrXhRG9yFLzbouv:1048102300/0/0:-_/t1:0/70
PjLM=:ETH.USDT:0x3d9b82c7e9d5c9e4de1f8d504670f23f3386b335:3320944161062/1/0:dx:30
CjA=:e:0xdED5c907b1dc9F38a48Bc9CBdAd8D7EFbEba783f:19829144/200:two:0z
DjB0xcda8bba7e0b883e49eb057579d0288a8fc47af20ee505a5f8f2b9992dbfb91a1
DjB0xde769f3511dca1dbd0ab08f38505d34410bfb04ff4b0abe2a7b83e24f8c7f082
6j4SLL:to:USDT(TRON):TAaXRM3wbHGmF9uLUEAWM1D1uxAm7pNxj9ne
FjDOUT:636949EB1C14995476F032B2A14ACBD06ED51B66F5C093B3146DC8025EC2B92E
6j43tT:to:USDT(TRON):TLD4Cx6X1GTkzCGHrTShfCuydxn4WNtjyQ
=j;jgc:to:USDT(BSC):0x59038522fE4f9BEcb6D072fb3F037424aED0f5dF
6j4TYO:to:USDT(TRON):TQkE7DxqiKJCf4Qf162E5qs1TAib82gdo7o
DjB0x6c5834be466872af6dd91ab998e44c2009595c5910a9c7ad68449c48d6286dee
DjB0x064cc44e713bc51ba68abe9e8f3acc0e286e974a57fc49168f8805ca63232d3e
DjB0xcbdac8b3505b22133c039ff4b9d24ff83542985ffc45b571efba09c81f026593
You know the business
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"15000000000"}h!
text/plain;charset=utf-8
LyTO TWIXIE I DON'T KNOW WHAT YOU WILL DO, BUT I HOPE YOU WILL GET SOMETHING SPECIAL FOR YOUR WALLET USERS IN THE BEGINNINGh!
DjB0x2fb79203d594bbeb58ced4cd408f9a07fff63906fdd5a26f5186959b28dbc1b6*
DjB0x80cb103be9b92a51ab99f63445a829be0857303dd83ab18d5356e6889cbac358B>
DjB0x7830e37952a5fd1acbba461c2d7042b63e9c2b60a97d9faf6035e988512c2cd1
DjB0xe50d67b83a01a121ae980373efeba5c52065a31ac4f84f085b817e14e0b18d4f
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"200"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"476"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"100"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"PHBO","amt":"1050000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"22555555553"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"80000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"19999999999"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"21000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"12000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"17000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"12000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"19999999999"}h!
text/plain;charset=utf-8
D{"p":"brc-20","op":"transfer","tick":"trrp","amt":"102590000000000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"15000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC ","amt":"2000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"492"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZGLB9","amt":"196"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ustm","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"727"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC ","amt":"3000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ustm","amt":"1400"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"476"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"527"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC ","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"588"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"300000000000"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"500000000000"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"200000000000"}h!
text/plain;charset=utf-8
LQ{"p":"brc-20","op":"transfer","tick":"sats","amt":"662285970.694372900000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"2"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"6"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"4000"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"800000000"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"500000000"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"800000000"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"888888888"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"
","amt":"2985000000000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"
","amt":"4000008000000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"
","amt":"2600000000000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"
","amt":"2515000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"BTTY","amt":"3"}h!
text/plain;charset=utf-8
{"bitmap":"7187.bitmap","btc_randomness":{"accepted_draw":"15b9f3ffd2d106a7d32fe193a3ca82abcafa46af5349d2fa50de64d660598dc4","retry_count":0,"seed":"sha256:15b9f3ffd2d106a7d32fe193a3ca82abcafa46af5349d2fa50de64d660598dc4","seed_block_hash":"00000000000000000000f82f3b60e8905801c2dcbb96d6f24fed4bd87dcb15e4","seed_block_height":"970754"},"policy_id":"7187.bitmap_weekly_trade_row_audit_v1_compact","privacy_note":"Public reveal withholds exact execution time, exact price, quantity, amount, full OCR line, and raw screensM
hot. Full private detail can be opened only for authorized audit.","public_exposure":"1/18","schema_version":"1.0.0","selection_result":{"merkle_path":[{"level_index":12,"sibling_hash":"db12c871e259cb6004ee36669e673ed0c4019477fdf28427c2b15d5721805f98","side":"right"},{"level_index":6,"sibling_hash":"88fc66d7548c8def1ce6f695b88a7754840b0c2ca1a5200e50ad9e45dbfdcfb0","side":"right"},{"level_index":3,"sibling_hash":"15414aaef715389bc557bbb2435f924d3f7d52a77b6c33851c9018e17499c1f8","side":"left"},{"level_index":1,"sibliM
ng_hash":"f37d648c60ad428f4395bef7dd0402eb4a5e187d332657d6326baa7cbf4db434","side":"left"},{"level_index":0,"sibling_hash":"8a4f165fea9a73950eec4d3594913e429e0ab9821eda69089c998270cf2acb08","side":"right"}],"selected_public_leaf_hash":"b2f7f3152b203e0b4de8434e7748835fa58f3ed118f979b4eb7661c78138b06f","selected_sorted_leaf_index_0_based":12,"selected_sorted_leaf_index_1_based":13},"title":"7187.bitmap Weekly Trade Row Audit Reveal 2026-W41","type":"weekly_trade_row_audit_reveal","week":"2026-W41","weekly_commitment_M
inscription_id":"0fece084a3597912ba679693c9428703887d927d680a88ab67a04e57cafe7800i0","weekly_trade_count":18,"winner_public_reveal":{"daily_trade_index":3,"date":"2026-10-08","execution_window":"10:30-11:30","private_detail_hash":"sha256:2b7212569cdf9285a2b346e47b3467e6d458ba32d1137a545f8af57cd39a264c","side":"SELL","stock_code":"002761","stock_name":"
","withheld_public_fields":["exact_time","exact_price","quantity","amount_cny","full_ocr_line","raw_screenshot"]}}h!
dnamejRBTC #0134jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
hink hairnolive tan skinpgraphite garmentjround facejvisor eyespcenter-part hairdhalogartworkr2048x2048 lossless
RBTCPF1d064ee75c906f751f9048a3648fdb92664c331ac609e82a8c44f8b60166549e0h!
dnamejRBTC #0194jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
hink hairnporcelain skinusignal orange garmentilong faceiwide eyespcenter-part hairgartworkr2048x2048 lossless
9 RBTCPF1eef72bf54911cc89c70e7e9cf29cd60fbf7ed2f387de1453505b2d72c52c8fd0h!
dnamejRBTC #0185jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
mchestnut hairifair skinpgraphite garmentjround faceiwide eyesicrop hairgartworkr2048x2048 lossless
RBTCPF1c78c9370ca2bdee9dfb6eedf42d860d8ade7526c25bb228d22f146f0bf8b26b7h!
dnamejRBTC #0153jcollectiondRBTClcollectionIddrbtcgedition
dbanddRAREdtiercmidfrarity
ndeep pine hairodeep brown skinmkhaki garmentilong facejvisor eyeseshornjheadphonesgartworkr2048x2048 lossless
RBTCPF163868569aecf056e2d8106285b68d8a61c49f4482f18db522a5a2edcacd4a918h!
dnamejRBTC #0202jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
odark umber hairjivory skinuleather brown garmentltapered faceiwide eyesnside-part hairgartworkr2048x2048 lossless
RBTCPF1e05682a1c0c4bc08ff8b5216140eed3f950c95f19e47eaec21b1e2b0c8bc1aa5h!
dnamejRBTC #0207jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
loxblood hairkbronze skinlrust garmentksquare facejvisor eyesjshort hairhponytaildhalogartworkr2048x2048 lossless
6MRBTCPF11d37f3ad468fb08c4782ced1eacfd5cec52ddde9e98eab17a3668501576f242ch!
dnamejRBTC #0191jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
isand hairjivory skinusignal orange garmentksquare facejround eyeseshorndhalogartworkr2048x2048 lossless
RBTCPF1667794ba4752b8bdb6d1aa3aef111a666bf6e17d0cb0d8a47d9c862d1670ddbeh!
dnamejRBTC #0175jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
nash black hairjbrown skinsmatte black garmentksquare faceiwide eyespcenter-part hairgartworkr2048x2048 lossless
RBTCPF1e8acb46de729714bcf7cc1cf095dbca5d40367aa0a9ce61984872844dc5f1254h!
dnamejRBTC #0143jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
isand hairnporcelain skinrslate gray garmentltapered faceknarrow eyesicrop hairgartworkr2048x2048 lossless
RBTCPF10e24d9e855120681a0cf74b0e0120e8fd7db61d69869324a299bfb9b6e48848ch!
dnamejRBTC #0203jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
ndeep pine hairjivory skinmbrass garmentilong faceknarrow eyesnlong-side hairdhalogartworkr2048x2048 lossless
RBTCPF1dd2da2b41ee4b8868b3b387035b975fe34ced07c55660dc1aefc764ecb0c0d46h!
dnamejRBTC #0187jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
loxblood hairifair skinusignal orange garmentjround facejvisor eyespcenter-part hairdhalogartworkr2048x2048 lossless
,RBTCPF1b9cb6882d33ef8b48ac78973912bf8fa2160da2b18db07f709bf51366f71d6dah!
dnamejRBTC #0184jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
odusty rose hairkbronze skinmember garmentltapered faceiwide eyesnside-part hairdhalogartworkr2048x2048 lossless
5RBTCPF1c207e4be158bb1ef2b20b2283b64d5358643042d98367e71aecb405f06c4be54h!
dnamejRBTC #0204jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
odark umber hairmwarm tan skinusignal orange garmentltapered faceknarrow eyespcenter-part hairjheadphonesdhalogartworkr2048x2048 lossless
SRBTCPF1d83c35e1cdc32608f635bef495eca28eadcde7bf819da01f2e35a47e5e170018h!
dnamejRBTC #0135jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
isand hairjbrown skinmbrass garmentltapered faceiwide eyespcenter-part hairgartworkr2048x2048 lossless
RBTCPF1466ea9e180cf9f96ae60b2f5cbc354be69120893f90fe14f68f0fda0d5664a5dh!
dnamejRBTC #0198jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
isand hairkbronze skinmbrass garmentilong facejround eyesnside-part hairgartworkr2048x2048 lossless
RBTCPF16c4d7006c981f4bda208bef19bf74f7ed8e765a322455a94b3aaf3e2959b4b5dh!
dnamejRBTC #0173jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
nash black hairodeep brown skinuleather brown garmentjround facejvisor eyeseshorngartworkr2048x2048 lossless
#RBTCPF11ac4b94131a9cc9de5fbdc282a06d3511d2faa4ad5d70dbfb84297ddc0b854cdh!
dnamejRBTC #0192jcollectiondRBTClcollectionIddrbtcgedition
dbandiLEGENDARYdtiercmidfrarity
mcharcoal hairmwarm tan skinusignal orange garmentjround faceksquint eyesnlong-side hairjheadphonesgartworkr2048x2048 lossless
KRBTCPF188040e3861d5ac7740f63445a0c74dd0db8081e986a241a855f4067d282f1a24h!
dnamejRBTC #0148jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
kcopper hairjivory skinrbone white garmentilong faceksquint eyesnlong-side hairdhalogartworkr2048x2048 lossless
RBTCPF19fb150b7479389e93998a77a141fd68f2bad2732b1378c0d80a6bafabffae92bh!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"20"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"hexhex","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7500000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7500000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6800000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"84"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"15"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"15"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"DIOR","amt":"859999"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1700000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"4400000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3090222223"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"8000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"2500000000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"trrp","amt":"93200000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
dnamejRBTC #0211jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
mcharcoal hairjivory skinlrust garmentilong faceknarrow eyesicrop hairgartworkr2048x2048 lossless
RBTCPF19d028342f7161dd5329b12b3622c2d5c77881ddb9e261dd663cf9f78d6765694h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
dnamejRBTC #0186jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
odusty rose hairnporcelain skinusignal orange garmentilong faceiwide eyesjshort hairgartworkr2048x2048 lossless
RBTCPF16c0088ae8c86222a1eb436db06d76f811e539e913b6f231f75c3d32d03ee4dcbh!
dnamejRBTC #0210jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
mcharcoal hairnporcelain skinmkhaki garmentjround facejround eyesnlong-side hairdhalogartworkr2048x2048 lossless
N`+RBTCPF14f65ec7ef060a9f0eb2c5f67bf236875af0a6a7b6fb727011549fe433e50d0d5h!
dnamejRBTC #0201jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
kcopper hairkbronze skinmember garmentilong faceksquint eyesnside-part hairdhalogartworkr2048x2048 lossless
BRBTCPF167fd083d59e441f8f1b9bdbdf0b09cc1b252f14be8a49d81ffbb1a2c0c0ca2f0h!
dnamejRBTC #0213jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
qburnt sienna hairjbrown skinpgraphite garmentksquare faceiwide eyesicrop hairjheadphonesdhalogartworkr2048x2048 lossless
RBTCPF1ef84b0301288f7405f2a4a4dd041064c4069a9e5d60de8a216d38917cd0dab7ah!
dnamejRBTC #0147jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
odark umber hairnporcelain skinuleather brown garmentjround facejvisor eyesjshort hairdhalogartworkr2048x2048 lossless
uRBTCPF12570fdd642f5ff254126fd6b6ff793d53fe25cb89ad3cc9aa59b4ffd20cd2cc9h!
MTLD_BATCH_2_401457_401458
?j=dhC:to:USDT(ERC20):0x57bab25Ea0f8C99F2fF6cbee7E54C70c7C3761a7
6j41Bs:to:USDT(TRON):TKhXavQwwJPRNe9ZYRyfeNX32D7f47b6qf
/j-QU6:to:TRX:TLPZs2greCWihj7xH8Ze9Njw25sjkN4vc4
6j4voE:to:USDT(TRON):TE3KzDDihj4K12zeeyeQ2KCgeaDxNXnyeJ
6j4EhA:to:USDT(TRON):TB42bUnBL87Zn7cq9Bi21rTqrZFZGr6uok
Aj?=:TRON.USDT:TJFbQUsxR6HHPo58TH5FnBaWJ6ZmEj37f3:332142167616/1/0
6j4taf:to:USDT(TRON):TSwcn9dcbN2kEhKmNeFocTCrQQdhFYuMVk
6j4gxX:to:USDT(TRON):TF7P1eBiW3jgRacrekhm9SSbGp57SVEVne5
<j:a9t:to:BNB(BSC):0xF4Aa03Cd4467D419cb1D1C32E6b42995CFed1f6dDW
CjAi44:to:GRAM(TON):UQDAF-lxa8i_wSfzO2H9jpthW3FVnLdz0aZZumIDtlF9i8rp
=j;Lpy:to:USDT(BSC):0x190466589F7039893D617E78B9B9443D360f7a59
6j4Sqb:to:USDT(TRON):TWXAriw8MYhLKTNN6XNVURJyiqvJxkPk3z
DjB0x87694edbc394cd70881eb6be0a8a5e4a2322f5eb708bec5e73ac902e7ab54a4e
DjB0xe2ece5922f144e80e482abd929205a9b293c3879075d99e4f7954115fefdd0e0
DjB0x4576fa497d0dfc1da2d5e3bac85b6f1455d1899de05b36dd3390e395a9ec8a46
DjB0xc90451c7c8efe85f614c449539f194921a38267683bfb91c1fac3cb1f4fac2af
DjB0x1c66438e6c100fe6f1be9382c2a0c717600fbd0f401d7f8e974fdda10345cf06
DjB0xca6f3006085cef5e47cf125f37befdaeca3ce67f4e3f635fc4f3305507e76a7b
DjB0xf00da3562e1af2c97289d83ad351db99093a6acf313b6cb52c9cb845c998af11
HjF=:u:0x1239cc2f2848b1cace0970dda6d78b292d509ae5:158396552319/200:w1:125KU
CjA=:BSC.USDC:0x073E9fee1A43294Ce18dE85c60125D93FBD2259d:0/5/0:ej:75Z
DjB0x190754c8a7bd5454f6b22956feb8623d6b3cf3cb40ba35a2a9017d87a4f2154a
DjB0xa80670ce2f77ad5dfd3899c1af9342156fc5ebb32cd6907c0970b07dcba01392
DjB0x9778364d6d3b52a3143826b30577e3f3463d99e67345575f05bf2f1f20306fa8
DjB0xa8bab7221ccad3bfef423d9f8a5f1086546974af40131cb2c76963224d4de492
DjB0xe0f86fffaf7bfd85f9d158e314198ced3b9f399ded8d1d000446819ef5aae35a
DjB0xd1069d760eef8a547e9db102e34ae838e815d6e6aaf1ba55d0bb38c4b8c490d8
DjB0xe393dd19fe9c8ca4025e779c7c1c8ba9e0c7ff3b3cacc580e45d6155383ddd8a
DjB0xcb79ea47229f4b17e8873632128f0087166790a89762bfbf08502ac4171c61d0
text/plain;charset=utf-8
DjB0x9521421157320129c8d1803ab5a0591c291f1a1219d14e8aaea4879093e1b6d0
DjB0x067f29e28fdb8aa2d5cd64ad8a8c4a05d62e87e8349e2e93c2d99931c159be88
DjB0x6a704fdf98f2d2e1aa09a1f671483a5468143581480a6726f399401812cd416a
DjB0x6753c350a982862e10299cb4f111270b9a8406e05eea55e0f19ed4cb6de433b1
DjB0x81bd77368ecd32af06d6a8f1d9ae9f6f6c8b61a8d84f202c43d94cb8822dc13d
DjB0x7d6cbc3c1fea4bc9eb92309c4e27ca697396df9025f89d551d233503eb91167d
DjB0x3369b00332b9f65c16c2f3f919cb7d426f4271f6541ca6a751c6b900bdfb67ef
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BUWE","amt":"500"}h!
DjB0x6283909fc3606ccb480f16b3100d55ec47fd8b64a3c2e4c9e0350d150db61c0a
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"300"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"aoas","amt":"200"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"66666666666"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"CCIA","amt":"1000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"800000000"}h!
dnamejRBTC #0325jcollectiondRBTClcollectionIddrbtcgedition
dbanddRAREdtiercmidfrarity
loxblood hairifair skinmbrass garmentksquare faceknarrow eyespcenter-part hairgartworkr2048x2048 lossless
RBTCPF160adf89032475fd3f223fc9bee171a8587214f1d303735ffaa4e464620a356b0h!
dnamejRBTC #0340jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
mcharcoal hairnporcelain skinmkhaki garmentksquare facejround eyesnside-part hairgartworkr2048x2048 lossless
RBTCPF1dfa18d4bfc153f64d50f27096e5d48bd343cdda5357ee48b278997c5923b6fdah!
dnamejRBTC #0268jcollectiondRBTClcollectionIddrbtcgedition
dbandfMYTHICdtiercmidfrarity
mcharcoal hairjivory skinusignal orange garmentksquare faceknarrow eyespcenter-part hairchatgartworkr2048x2048 lossless
RBTCPF1334bb384c94e62c8db016045083bb478c74f91d0942e929ef538c42b679a7609h!
dnamejRBTC #0476jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
isand hairkbronze skinsmatte black garmentltapered faceksquint eyespcenter-part hairgartworkr2048x2048 lossless
mRBTCPF1a06b3cc7525f3a1443f5d19f5ff3c2e95c9c2d120ce462e765c9d68a6d7b27eah!
dnamejRBTC #0464jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
odusty rose hairnolive tan skinusignal orange garmentjround facejvisor eyesnlong-side hairdhalogartworkr2048x2048 lossless
RBTCPF1f67a1dd03962c76d77af86bdd583538ec62f100b247b4c7fb33bdc3033ed26beh!
dnamejRBTC #0243jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
kcopper hairifair skinmbrass garmentksquare faceknarrow eyespcenter-part hairdhalogartworkr2048x2048 lossless
RBTCPF171594762ffba380bd0c211f5b97b751440f7b5ed217def782ee0dbb46fe234d0h!
dnamejRBTC #0334jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
mchestnut hairnolive tan skinrslate gray garmentjround facejvisor eyeseshorndhalogartworkr2048x2048 lossless
RBTCPF194106d2aecfb81370424993797fa13943f6d86534e470c19576164b35da7cd66h!
dnamejRBTC #0335jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
onight blue hairjivory skinmember garmentksquare faceksquint eyesnside-part hairdhalogartworkr2048x2048 lossless
RBTCPF1fefb04887091cf7cc117d5901fe51ab24768c00339f4d2f036ab9c528e18f403h!
dnamejRBTC #0254jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
isand hairnolive tan skinpgraphite garmentilong facejvisor eyesicrop hairdhalogartworkr2048x2048 lossless
RBTCPF19d1da692b1b81a167be6f52f0119f44fe506496f9fc440dd5c83a32242e63524h!
dnamejRBTC #0240jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
mchestnut hairnolive tan skinpgraphite garmentksquare faceiwide eyesicrop hairdhalogartworkr2048x2048 lossless
{RBTCPF14d6d1a3a4c3f69bed37b8da4ddfae5bc11cceab27e0999465702dd7b4171a052h!
dnamejRBTC #0288jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
qburnt sienna hairjivory skinmbrass garmentjround facejvisor eyesjshort hairgartworkr2048x2048 lossless
RBTCPF177bc3b9d1fa386bf36dab587ea9125583f6544155b4b6463a508b85c3415f31eh!
dnamejRBTC #0303jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
nash black hairmwarm tan skinrslate gray garmentltapered facejvisor eyeseshorngartworkr2048x2048 lossless
RBTCPF13f8b7bd64441e8ad404cf48c73c5753929c957612ed1a1d40ae6669913ab5d6bh!
dnamejRBTC #0256jcollectiondRBTClcollectionIddrbtcgedition
dbanddRAREdtiercmidfrarity
odusty rose hairodeep brown skinpgraphite garmentksquare faceknarrow eyesjshort hairchathponytailgartworkr2048x2048 lossless
RBTCPF1c63ff7075f082c72b2ff1fd5972060f8129d084512595e92836e6d59296e479bh!
dnamejRBTC #0266jcollectiondRBTClcollectionIddrbtcgedition
dbanddRAREdtiercmidfrarity
kcopper hairkbronze skinsmatte black garmentjround faceksquint eyespcenter-part hairchatgartworkr2048x2048 lossless
RBTCPF16e73da8103ab131f31df1f36f4e784e089269df9661c275aeb1e3354f87b4366h!
dnamejRBTC #0491jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
hink hairodeep brown skinsoxblood red garmentltapered faceknarrow eyespcenter-part hairdhalogartworkr2048x2048 lossless
dRBTCPF186dece94cd1335cc0d3146f80861c8eae7a890ac504e042db338e939dd683c38h!
dnamejRBTC #0546jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
onight blue hairnolive tan skinlrust garmentltapered faceiwide eyesjshort hairdhalogartworkr2048x2048 lossless
bRBTCPF1f6a15c925cc89cdd46e9c0faa99a06e596393164c5f7c050765e2c7846abebeeh!
dnamejRBTC #0320jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
loxblood hairnporcelain skinuleather brown garmentjround faceiwide eyesicrop hairgartworkr2048x2048 lossless
RBTCPF1b34c8c342bcfd35df271167a51ab03ed7602ea40304cbf55c39e168b4314cd44h!
dnamejRBTC #0376jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
odark umber hairnporcelain skinrslate gray garmentltapered faceiwide eyesjshort hairhponytailgartworkr2048x2048 lossless
RBTCPF158063f815e481e4e4d04fd2df44e754b2877ceb5aca99ee2672ed319657512d2h!
dnamejRBTC #0350jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
kcopper hairodeep brown skinrslate gray garmentjround faceksquint eyesicrop hairdhalogartworkr2048x2048 lossless
RBTCPF112bbba70c1c21f54a5d917a426c16b68baa74d51ea43e5b466b9b34658f0022ch!
dnamejRBTC #0347jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
qburnt sienna hairnporcelain skinmember garmentltapered faceknarrow eyesnlong-side hairdhalogartworkr2048x2048 lossless
RBTCPF1d9f9f10a5ac6a7506110ef718b09c7328a2fbce91658fab8c377c2bdc5f4cd74h!
dnamejRBTC #0298jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
kcopper hairnporcelain skinusignal orange garmentilong faceiwide eyesicrop hairdhalogartworkr2048x2048 lossless
RBTCPF1c869ed120e82564004efade99de27bf6ef7a9c42253247e1c2514e2c8730e2d5h!
dnamejRBTC #0313jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
onight blue hairkbronze skinmember garmentjround facejvisor eyesjshort hairjheadphoneshponytaildhalogartworkr2048x2048 lossless
[IRBTCPF18d3f8daf620ab4e4426087611cbb68b8c974d1ef5556d8488318baef8288d5
dnamejRBTC #0242jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
kcopper hairodeep brown skinmbrass garmentltapered faceknarrow eyesnlong-side hairjheadphonesdhalogartworkr2048x2048 lossless
RBTCPF12c03d0da06841192d3fe7ed5b08e7415ed81996cc714e34
dnamejRBTC #0344jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
onight blue hairnolive tan skinpgraphite garmentksquare facejvisor eyeseshorndhalogartworkr2048x2048 lossless
*RBTCPF1b49f0e9214f2c714204b8a09ee5ead2683a71a8e4a1f2a0cd6d4fb4c0d5aaa62h!
dnamejRBTC #0251jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
isand hairnporcelain skinmbrass garmentksquare facejvisor eyeseshorndhalogartworkr2048x2048 lossless
RBTCPF10446d0d9c85f8fb61a29fad066e5eab53ad5ddc143d511ea20822cb2e7d32afeh!
dnamejRBTC #0481jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
mchestnut hairkbronze skinrbone white garmentltapered faceknarrow eyesjshort hairhponytailgartworkr2048x2048 lossless
RBTCPF1619253c82d504d757f850d11f981708f2395758e22450cd7b90d00718f8a6039h!
dnamejRBTC #0299jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
loxblood hairnolive tan skinlrust garmentjround faceknarrow eyespcenter-part hairgartworkr2048x2048 lossless
RBTCPF10ea7df51c44f2d4f3481708e31d0890fa301a8a2d45b63deb3e5d75b9739c6feh!
dnamejRBTC #0280jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
mcharcoal hairodeep brown skinpgraphite garmentjround facejvisor eyesnlong-side hairdhalogartworkr2048x2048 lossless
RBTCPF1409785e5ec879b65714219342cb034a99eb33b3f30189629654e25d4f8a1a628h!
dnamejRBTC #0264jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
mchestnut hairnolive tan skinsoxblood red garmentksquare facejround eyesjshort hairhponytaildhalogartworkr2048x2048 lossless
RBTCPF160a6aee92009b97ef8444696982f113ba73d4d74ef5c06c7ab00b96e372139bch!
dnamejRBTC #0560jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
hink hairmwarm tan skinuleather brown garmentltapered faceknarrow eyesnside-part hairdhalogartworkr2048x2048 lossless
RBTCPF1315c30b16ffce22a51984e142bb04a76d5fcc29917b9e8ce8f50fa2a9cc2bcbeh!
dnamejRBTC #0252jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
onight blue hairkbronze skinsmatte black garmentilong facejround eyesjshort hairdhalogartworkr2048x2048 lossless
aRBTCPF1c0b72d154ebc562564aeeb82f550136a079ee94d4861c00c2eba69d2c3ead87ah!
dnamejRBTC #0270jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
odark umber hairodeep brown skinmbrass garmentjround faceksquint eyesjshort hairhponytaildhalogartworkr2048x2048 lossless
pjRBTCPF140ad6160c013f2aea6c7e218e9ab4b53f40d7a161d4ac89c76c1de1260877c89h!
dnamejRBTC #0248jcollectiondRBTClcollectionIddrbtcgedition
dbanddRAREdtiercmidfrarity
onight blue hairkbronze skinsoxblood red garmentltapered faceknarrow eyeseshornjheadphonesdhalogartworkr2048x2048 lossless
DRBTCPF1de90f66076123d228b79cd9b4fc86341b1e80ee8b8c08171c3fc5d29b10c2581h!
dnamejRBTC #0257jcollectiondRBTClcollectionIddrbtcgedition
dbanddRAREdtiercmidfrarity
qburnt sienna hairnolive tan skinlrust garmentilong faceknarrow eyespcenter-part hairchatgartworkr2048x2048 lossless
RBTCPF171c0b6e9dbc015b4dc511de61f49a4ea1de85128cee22125e2ab7d44a27c01c7h!
dnamejRBTC #0445jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
odark umber hairjbrown skinlrust garmentilong facejround eyeseshorngartworkr2048x2048 lossless
RBTCPF1fd0dbcca0d53dcfd18437e9839f538288d318a161d6d7acb1cac3a8af5c0b2e6h!
dnamejRBTC #0255jcollectiondRBTClcollectionIddrbtcgedition
dbanddRAREdtiercmidfrarity
mcharcoal hairkbronze skinmkhaki garmentjround faceknarrow eyeseshorndhalogartworkr2048x2048 lossless
RBTCPF1d63486da6992a74a4b96dbb1cd747052d0dbe880ef206a732efb3a9a2c752b17h!
dnamejRBTC #0467jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
onight blue hairnporcelain skinmember garmentksquare faceksquint eyesnlong-side hairdhalogartworkr2048x2048 lossless
iRBTCPF162bf2e47a416c35c1e21b21e13be7711b70420e5d99d3a3ea2f6a4e3a6a511b8h!
dnamejRBTC #0416jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
mchestnut hairmwarm tan skinmkhaki garmentltapered faceksquint eyesnlong-side hairgartworkr2048x2048 lossless
RBTCPF1b5461a7d6e1e3c821dc34dfb06c6792d9271752bedf01cba57a07edb442ed30ch!
dnamejRBTC #0292jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
nash black hairjbrown skinsoxblood red garmentilong faceksquint eyeseshorndhalogartworkr2048x2048 lossless
[aRBTCPF1becf2ab1c1858dcd07f2da62735248340e3c5f30bec71c1e79aaa2a4492aac0fh!
dnamejRBTC #0307jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
loxblood hairodeep brown skinrslate gray garmentksquare facejvisor eyesicrop hairdhalogartworkr2048x2048 lossless
RBTCPF19875da14121f33eabbeb11ded428bc457026bd16b3929f6f8155811acfe624adh!
dnamejRBTC #0327jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
mchestnut hairkbronze skinuleather brown garmentilong faceknarrow eyespcenter-part hairgartworkr2048x2048 lossless
RBTCPF1a6efc4b6e0b665dab6777a51f668bce512756c0e8138d83df0e3b86f531772e1h!
dnamejRBTC #0273jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
mchestnut hairmwarm tan skinsmatte black garmentilong facejvisor eyesicrop hairdhalogartworkr2048x2048 lossless
= RBTCPF15328b2415450ec33d9519efaf969fe59f2dadf683ae5128607ab41a5c407caaah!
dnamejRBTC #0223jcollectiondRBTClcollectionIddrbtcgedition
dbandfMYTHICdtiercmidfrarity
ndeep pine hairjivory skinrbone white garmentjround facejround eyesjshort hairchatgartworkr2048x2048 lossless
RBTCPF1a9d84a8358b7e47a320ab6d40f2d92644e2275c692e0f2b7d73fd8bc9f4e137eh!
dnamejRBTC #0308jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
odark umber hairodeep brown skinmbrass garmentilong faceksquint eyesnside-part hairgartworkr2048x2048 lossless
RBTCPF1007b5679ef4988e44b044ff54b9686d699ee0f7c3ef68d07d3dc7a8c8a0ed4ech!
dnamejRBTC #0551jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
onight blue hairjbrown skinsmatte black garmentltapered faceksquint eyesicrop hairdhalogartworkr2048x2048 lossless
pRBTCPF176bc9b00025074638b170064c3a073411228dde71073f1a116513ba748236a28h!
dnamejRBTC #0377jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
mchestnut hairnporcelain skinmkhaki garmentltapered facejvisor eyesnlong-side hairgartworkr2048x2048 lossless
RBTCPF1270b0cbd07dcf5584ab143fdac6e1cb50292e3f5fd5c0a7fd575bd3e8f121cafh!
dnamejRBTC #0261jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
ndeep pine hairnolive tan skinlrust garmentjround facejvisor eyesnlong-side hairgartworkr2048x2048 lossless
RBTCPF180e4c3ca22754b74a4e89d819dfa7231611d37b9aae833ca7eada6fa0b5002b4h!
dnamejRBTC #0329jcollectiondRBTClcollectionIddrbtcgedition
dbanddRAREdtiercmidfrarity
mchestnut hairnporcelain skinpgraphite garmentilong facejround eyesjshort hairgartworkr2048x2048 lossless
29RBTCPF1ae5face7e5e542ac1329a329618a367806c0264cab378f43c0de3024c9b60810h!
dnamejRBTC #0221jcollectiondRBTClcollectionIddrbtcgedition
dbandiLEGENDARYdtiercmidfrarity
odusty rose hairifair skinsharbor blue garmentltapered facejvisor eyesjshort hairchatjheadphonesgartworkr2048x2048 lossless
RBTCPF17f8b6e9d0b683b80b879dccd75cf15aed4211be2316d1e9b054d7f99b83df1a1h!
dnamejRBTC #0480jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
loxblood hairodeep brown skinmember garmentltapered faceiwide eyesnside-part hairgartworkr2048x2048 lossless
LedLRBTCPF1f541989b20ed195d89bf67baacdd43e0a5315c550609939b3314e21628269032h!
dnamejRBTC #0282jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
loxblood hairjbrown skinsharbor blue garmentltapered facejvisor eyespcenter-part hairgartworkr2048x2048 lossless
,RBTCPF13638f803def7d721e0f033615f89a40a5a0dfef40938e6059fb69d2aa9f48b6ah!
dnamejRBTC #0250jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
isand hairnolive tan skinmember garmentjround facejround eyesjshort hairhponytailgartworkr2048x2048 lossless
YRBTCPF1da3005fee2294e30c467cf72d2e5302d16e878db5a7c080624105810ab63f317h!
dnamejRBTC #0263jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
hink hairifair skinrbone white garmentjround faceknarrow eyesjshort hairgartworkr2048x2048 lossless
LRBTCPF1580ddc22be676fafc5a2a9adc191aed9771315f155dfcbf9f2174436d6299171h!
dnamejRBTC #0322jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
kcopper hairifair skinrbone white garmentjround faceksquint eyespcenter-part hairdhalogartworkr2048x2048 lossless
}RBTCPF1c44b1ded4a382f29175791df0ef2099c885c029d414eabcce5001ffeecdeef05h!
dnamejRBTC #0348jcollectiondRBTClcollectionIddrbtcgedition
dbanddRAREdtiercmidfrarity
isand hairmwarm tan skinpgraphite garmentjround faceknarrow eyesjshort hairjheadphonesgartworkr2048x2048 lossless
RBTCPF1a35e27b0b713316de872cd5f00123b4f058b894011fbebc39859c2a304efa002h!
dnamejRBTC #0421jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
nash black hairodeep brown skinusignal orange garmentjround facejvisor eyesnlong-side hairdhalogartworkr2048x2048 lossless
RBTCPF18745feb6b164a78db2c85f1a671d4d8bcf1da66a4873eb68a0bc921f181fa6fch!
dnamejRBTC #0286jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
qburnt sienna hairnolive tan skinmember garmentltapered facejround eyesnlong-side hairdhalogartworkr2048x2048 lossless
RBTCPF1c99afeb4f52153242e944bf90892f013a9d5ec6fc0e592b79dcecafe1b64576ch!
dnamejRBTC #0217jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
qburnt sienna hairnolive tan skinrslate gray garmentjround faceknarrow eyeseshorndhalogartworkr2048x2048 lossless
RBTCPF18c4b9977de1d96abecf57318073e140a1f082c96e369e3a2c8d0a0ae31a5a61ah!
dnamejRBTC #0326jcollectiondRBTClcollectionIddrbtcgedition
dbandiLEGENDARYdtiercmidfrarity
mchestnut hairifair skinlrust garmentilong faceknarrow eyespcenter-part hairjheadphonesgartworkr2048x2048 lossless
RBTCPF1458dd011bf4c255035bff5bb676f6750448289af64165cba8f6e29bf7c726732h!
dnamejRBTC #0436jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
qburnt sienna hairmwarm tan skinmbrass garmentltapered faceksquint eyesicrop hairdhalogartworkr2048x2048 lossless
RBTCPF1d0e45516e8e3d566da892176eb9e77862659bbb258461e8ce099c752bb735335h!
dnamejRBTC #0230jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
mchestnut hairodeep brown skinsoxblood red garmentltapered facejround eyesjshort hairhponytaildhalogartworkr2048x2048 lossless
RBTCPF133c877d4183ec9005bce864023e8890258f6456831f4fef24f9857c726
text/html;charset=utf-8
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<meta name="color-scheme" content="dark">
<title>Block Dive</title>
/* Silkscreen by Jason Kottke (SIL Open Font License), embedded so the pixel HUD stays crisp with no outside requests */
@font-face{font-family:'Silkscreen';src:url(data:font/woff2;base64,d09GMgABAAAAACDUABEAAAAAc1wAACBxAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlIbhAAcbAZgAIQ+CFIJnAwRCAqBpxSBkiMLgzYAATM
YCJAOGaAQgBYRGB4RMDIEyGwpmRQdixjgAMHx2yMhAsHHANtNLxf/HA02GJOR7JKprV5NUnRSjxHppZpqxPWeO2JpuP0Isn3Ov4hHC4zgO9qdWap45dxcvUZxGXXw/8Nxb3aV/w6i27p5poYiio1hQTiyOIYq3OJ9tR+9p4zYLR5R3f208FD8D20b+JCev/4CnvZ9U2MkZjQ7u4J7o7SzUVNVI6WwIJOW0uo52Sqs/fYh/f2+bc9/fTpMEh7Kb1TTXFbYVR9AEiTKlKSzGo4jHYzBd/Q+EJMSMdcuq80ykKr90zV3RXfY3/0NBa9t5xEoiUaqEhj+mHko5eD5t6TpQVEAKfOWHb3YDZEAdGUEKSr71FbWLervqaY2x/5Z+flXd2D0jaZ+DHBLaRchcZgPHuR9cv8N95J8g/qbZ0vsBIkuW98HTVBltFaZD9UlTBkImywPyEPAXpbZ1WaksC7Z0eA8kIAHRej2HDmOnmSDMsT4kRFxZZaPdY2avJsdX3SI7V/XTmIM
YWUjkRYUjoh+wiM8j/2fTf9t7Ryk+2P9hBhdgBKjp94Cq/aINFubqzM+Od2bWeViaB/UD2y3u2P1j+4NgBzUrWW8uBhwGG7hNBlxQN9/lFnaohKpr0qcqcNEWXx9H7S064bLOOjnhfc75fophbX9tkyWGC6uq0g+Ia4Rrf+9t9X0tNVZfKWSNjQRdlgVW5JK/2zDG2agP0ov/bWAWDg50ZaN2PM4IwFPbH3wNDiPARIRmi4IX4iEYS1SFnnce66BIWIYAI4TvrnPPZ204ACY4bmgVFJECEB4BWywEIc86t6HpUVrk9R/HkZ4FhQkBAB5EAKKtpNSgtkOHHjazIiobTWPAARIQymlxASYNMWUqpgErjkwrIiBNyu3pTV1IAsb6o3cXgr+9E+QUjfPRaG+Gp3kuExi9FSwBGRdyXhsuxUorKvruRqW2kpIrkqiTK6jy9djO9QdnOlqW9jNo0MpWv/iURH9GAa4r2DqnlDW/Y70xcecMbanqzfTWDj/Ah1yk+Sp8cxcM
OEc/gmIq2HfU13J/Bl0Ginr9T7Z96j4OT7s2Dc/D87zEAEtD3wcrqKBUZ3kqmlI7FmacVoVWB4O9VsRHPDCaNJC14d5GTwgblnUgCEj749HcDOb+T5g6HIoRLXI3EtPAoHyVf1eAKtAGB/pRhdLv25vQA4LICB5kVdsajKKzOIHk8Oj4icNVcDaekFc1x3jVgeK+K6cr25/pweZ8S5ceuDetoR5Dg23CxOHP8g2PaiLlxPrm/a9dL/AcEAAP+X/FG9nUfNaAB4eG5O5msqD6aDAEYAP6fDIeu3Sbc0FPg/DkebZKOZ9jqj3SYLLTLDQePMMdYs401wzBFHTbEZEZOQUeiiq26666OvfvobQJcpcxYsWbHmwJETZ66Wmm2ZUxa4yo0ff4GCRYgUJVqCREmSpUiTp4BKoWIlKlWpplZnsZ2WOGGMyXbbb48Ddtniiq3qrXXSXNvctMNxQw1zzWkdprlliAbrjDDcSFPxMVhCPAIiUp0p6eiktx566kWOY0iPPmMGDjM
Fiz4YtOy7MFPHizoMPT958BQgXIlSYeDFixQmSKku6DDkyHZatQqky5Wrkq2Ui12prLLfSKit0vgae/5uXocvSiMxSA0THvQDKKHq2+aI19yyKQSr/RV/5fhBZu4Z7t4b28NOzOKL7FsfSvHqFevrPZV7akR4ba8E7cEN7LYgwuhICqtW4hEKt2hIFUp8p2/cK1yWixOgy3e663Jq6AeX+qWAblN1Uw25PWzoYMDpq/RMLZbd1dyauPxEo1bVRirrRKXjqT0IrEjULbJESJPTe3QQh2G6tkVq4egrLP9tuctgf9dGKtygedn/5ldOZ5q3y1JctkiI244XNW5Bcb0s13RtBc01soif8cHU6GUvzX+qA6UddVzm0OWYrWE3GEBYuA+rYHIHnHjw4+lYdNsjKjeWLdO3LiO9KrlVpQqhTgEQIYUC4HxFUF0pUSF9gnmpB57ZHNwc3Z6wNkKpEi7rrIeay3jhhIa8D4wUNJ6FV2oY6sTP3DaWp/l9MRJ7MtGB5x8dtk3M
aD12CDIB88JAw4YkYXVKIDg50WNNnAT2+YUwH8egnajCHtJPokVQyIyytcjq6ZNKJnO7IKjKXYay7ORGusCvvuvS0fsOxyCmxdV05CwQ2YR+k3jVrqmEcopOU0qkfIuE2iuC3oGXpvHCVFmruIlh245NclnTnLMlW2vTVqw3t7LPOQ6aDw0/w6JT4glVQ8rqrJX+fMBXwaPjd+1iBwWx6bS5RrJm3TqAkYpfmq7M6BXmKItX2fWdcLL3F6PdUhmtnxa3vnorEpFQ2NkRF2D4ZDuQJSO4IIns1Rd9m7oL8MsquC4qxzFBth7pr/xPg2f2J1WVICwwU0L/htZ8DjMLouP4pJWTuJvNwMRNqDEJxaktL1PktQZGjZ94TmpI9rDseglZN4ld2fwEZxp3DOwQDxOUPqHM8P+L9z9CLgcoGMpFOSaRiBLKOQYwrkGYMCU6HINCgxHcqMQ4UZ0wNoFs4TrVrb9yoV5GvNuDGZsmwSzm/ucFPb+fu+VVHQI9gZSH1xptoKEmM
tYxToqNlCxiYotVGyjYgcVu6jYQ8U+an0EmS1bGC+OZCvpatd0EztMih4hd9kEjIPxJDx/CpFhGzndrmlSt/f2+bSBAGbeaXt2Zwvuzo/pJKtpp+8/hlDNPEpr4KwvIN/cn1qiqDcolqch4VD85GVCnAMAbs7rZF6kJODvywoyK8MgJsEN+g0qWaN6MFuyEdgMGeeXlm+Rqey+kipUQGPN7Fxp/htanUvij83eu9xcu0lk5+57XLwDEGSeReYfnPmSsy3nWOycNCMTmW02jyPZj0qldQeaOZmK8HVnWS7v/BnT21Uj5/LtfHD77bxJaRpykzqI1JWLVsc9z/vRdC6MsVZUpjpPMiaqqIyPWMlyUtm5/KyDNGkUkwOoY9LWfqN0WmtfxzqmpKx6ErGsFVieC3NfkWI/bbK4I5QcAPFlNKbmelJnJyc2HUuYXMMDINOUy5ETB/fJg9vVX+elr2RWrVFnLc6FjK2oubZu5RcYL5UtMS9ypq3wR85PyoG86fhzTqznMtM
FzEioVlK645Az9ttkNXmZDlScp7liOeO0Nd832xtc1tC33dd8AuzB7+ptgH031JKQdYLMRWITGiske3CpBoDTI8E8m7OxFgO7DujgrlU5aabyNbE67qztd2H8XQyxTYLSbffmsThqLmjEbnIU709h1oPHvau45ZrUXIalI4L0gWfxRi3U+fGeYWU2Ozv2dD5BBekXWfttDsL3Ao4uC6KtUMmgaNWTRY5R1kUedRU/QArcDPmVFE8T6AMYZQWJQCMYkI0j1AUwzWpxJtwjwP9BOEWT7AeZSBPknCYSFFEGxH2ApRbpsGQNZhRqo9gGsMYL6oBCCDUbQ7APYYmTazmEA6/AWuv0AeymC/pMEwkGKYNgPcJSi08ZpuzzSaCa04uZwdKYY0bPY8wajs/O0nSYKYZEmtUwDqwl5onHteOLG8TRb4lfciSvs08AhDRwn5HXFk+OFZ8cLL44XXgXBLQ3c08BjQt6ET8cbX443vh1v/AiCbxr4pan/047A+9ubvlnQp8PJsIM
Ep+rp9dFNT/cw3e1WbWYOYppfse9/y7Qn+n0IAbgPQK3TwkDwgWyHMmIgeMV+juI0yg6TLPPH8NuCwt35bAJglacCyPaAcJerCgxJoNor4Y8dsBW6dIwVpSUmWqM2Lng3PFZhBZ9iynvB2ZS2igCsbKlFdEswoVh24DbdS1gWOio0RqU3AlZdqHyowmCEvIJSrCI0fwlILJkCa9cuvioW6fLIMQYAu60ohfFMdoR5u84mlSJH8kQD75kTxFrp9p4Mi3krLtgsSkBp1pitndci5tGxV7BnByVQFYfg800YfhRqcslgug9pTRqDhYIZM98+eT9gkI90+D51U183V7YZNmbbUaiwFu14rTSIGw6JeWUlLWIiqssQy3WYCuA6QJTa79HegK67udlrIZD6S0GTEclEShUWaBN9heERM7jiB08wJIS+VRAlmK6RACt7E+FOr3gWONSsYaDmK/0VMEVtLaiUuoao1I2qLcqV2qRLMueiFUUpXbYrofR+idlVyj/c3txC6hfM
yiSncNAfsBpDuggkX+8DU3sHWqcFJT7VMjXhttkMUmUpQIzmdIRKGqWIpwGOaMKYmVgj+YSX9MiZV6IjbRSAHhGHFcPfy/WHosXHrlz5RkUnMAVlM0MzE66O99X9rud4FA0T8j9DJXM+IclGzoejyuVpVVdf6hjoMeypCLBtzEGYktnkeoykgdDII74iWFyOscJLzSETJC2OGtDfy4kUiLvYQtPRDOFxDeJtlxNUJa8zIGtZphiaWhRSmJdaRUpQUtHEb976pwpTQMxCE0no26R770NaxNOB4KUYwqUeumB5FgCbNQraTIHynKUdkopTburx4q6Sh/4AVMdhaR7Zfdn17HJ48FWZ02NZTJQlEhC1Nd5zlXyE041gvCaRWjnvZ+SH0yDjUUnd7teAinSeEJp2wTk9y2MWmUHApzhjbc30JfJLOqZzrSZORDXrk2sEZSIgTFiIZrdBFUnyljuxezBU/Ov0TaCT3+kY0jJfFZgahM+Rrk1UImsYNXL2qlrRDjb7XU/yM
4Efz4zymgpWP42nG765IPVrwRoes2xx8ow0G4yNyNQWuVzazLq/WPH7FYR1GtDmCNgctRhq4Td8j5POkGhKGSTjqxYk+cQ4OR0KxXpwr4Mnz1xgrvw1xnylU2+ElrPyt1+VlR6aEe5JV6qRk1GGIRz8IBCnp+qksaazZ/Bc3KB9eKY+voc+niGbPfp7WVTsKLhyG0Jnia+fEqnJ8S4D0M+eJHYH/hBR6XYWT5SCVYTP5FC88XnEKXrVFLpxInlys5E6lraNj0rrow5q3ObqmWotMO46A3908cys3etYw9vEaHo3FsCJKvioOXpd09s84rDrzSGCRkmTMmnBI0zhQrkDRvltlZo9tqneFAES7F6k2/0y2kLtCUJYopLT9wPeiSzHfhJ0BhxvmPYcqnX/g9LhGU4XIW5GRnNgEsO7ZDR261I5mgOAz98e9pa0tzyu3ksinwG1UwEjOvA87RlgRoTT0piWwpXxvLDFoggLDDA1WprC4W/I2v/WULxGLEcBAM/890Py0M
pA/KT05Glh6pYt84eDdjtfXZNW1S0Y/ul0LxMEaBz5ONTXr5/YGKjpQnvw1tQ/Tsty23Bt7zZNvm3m+K3T3qt6gG5f3SAj1QYUAqJ22lkXDQq4ZIW58HSql0WBOttJqiuA7Oqznz6NPIjPlGlRV252oVarVPFnvHRiLjFN46IszfuLotCqQjpO09Uq4cv4YV4OUoEf6k1CwTTUr0aKGxLUct5oSAZZKl9m6bpPytqMharYeCRc0XyUUIJcaRcwKxF9tR7fqxmqnWUL2CyQKm8Egy50SubfpNrnLOZCfovs1C4XMsHzWKq16Q+l5TE09eLBoWGB4LNjYtSdj7NJQYwaIU8VniItViqTO5DKwq0ZP8TEZ2X0lMxcoFrn5YW7x7UFORtok/2c2GOoxTBpDU+icA9zEkafHA30Cfdix4yDvcM9Iw4o6SkfV4Nbmj6+8N4ZfI+1JRaCWJnkMe0vszHi1o3YIt6SQBp5lZbIm4P2ctp3Uamk1sK9RXPN27/i65iTgXkhVJM
9h1sySIwsbDnP0KUBLVnuDtam+NsjdCpaWMYcID3nKXwsXnsKpwfTPbiKKPq7DuBF8G4t4hgMvQmEEgbWU93wdfdNaxGvD0TOowYvJNIw2viuWklW2tFXFa54FCmWlOBQV82rSluqnyiYyLnwZb7e7qhVghO6NRNrk4+hCxL7O6aLvJdrHTM36lfXSbOYEXm/bPHxBh9TwoZHdhC6z1buvhrmMxzPkNX7PND5aN6Z3PrFniNiNYWF5PRefu+yUlAAQBOc1AZN7ru8iUuv6Ln8vbFJJOvQCgJ50FsM8GEOwa2FwdrFhzi42zNnFs8Fhc6ZJHjV0jjIv5yjzco7KoApPpgJyU3NTc1Mxd14YnMfe2FOgmJ5zyiZZ6U1ubW5tbm1ubbKvVmdABmWYO5CcF+bOh6b01O/AWK7S3A1WB3P+n4zBWY0HkeURnKepS3D5d4Jh8OjtPl+nPvqKuMEnJggADgEADLgKNAgYw76LGe2sS8T2kbeX9VfyCY4IFo7hN5Qlrc26hGM
FtYhV2d/E2bO2HTckFh9pCsZcIYMPghn2gRWa9UCIv49xP+UOtYyD9A+sb4ARbiNSBxFNQfICQ4TDYy5hf/OWMhFv6ooon5OdNAe7UlNmdN+jXy44N2wuZNPSb1YFXYAbcZuFq1mXvIdwxxz4Xl0udVH3eXOY4+2iM+7HLBWY+l7Xf+KeuLd550c78zHN6X19sNwa4mOiavdi2OIn4vDXudbZW1V23bndA4xR/7Hw++zaHl1dGmL2l0SvF/99cOLHwK6M85nwS7oO+eV6h+sY9uKievpWjCCt6mK9EgvGcAPyZtzLv7rCIn2vuuRZMmOab9PtIN7dlAmazAy94IZds6/d/ucNR8loQOEitK8EJuD5Cpp0qlSJG841C3eGrm3xfpUlr2aL3Ic/2BZjVQGYZMaffem4FRlSzYcDL0yk65uiRG0fiGfce3+wC0085KTiyM2/wNCSCSpID7xBnEnEfLHOsMMOshhTB3Ic9SLsQUlgJob7skvV/7b9ZnkfRblC530XwSRM
FjUtOv51/nMQJu4Yu15TSrE6LsrwBVfRbdd9vtK8rN7aVmL88ucQXJckkTwm31kJqCttBsdytSwNNAkXd0pAW42ZNfwgIj7bCvIuAEcqcim8MunWBWf455/X3R9V4QKeZCCFOsagycOrtVMPOzlCKz7HLxfeCSqaMiKYJZ3HArxAFPvwuKs7hkUj870p024ICYGmD65cp9AJMuRrMMi+gZq1s9zeVMuR+1fBr7ArMzG4b7G1hfTplqYciwXKJp2mxl/ElnfCqKBH74Jc4c6EQQ6Epp/P5GpZIW/7v737pc0dvc+o0cVfnGxMg5lvrDtu3FVfFzqc21cWf7aD75F2VkPXltyzyxxWs+c17vgCPgUQY8z0ZmvUUcaFNJAKdZYczSM6Cm4l1hHrbI1KIRHQakvxIKjK9aQZRYSsQkt4HBO7e5ordI7gUKEuIiJyvrN8awEzOoonv8/d8gsVDDihGRlvEmPeshjYxOMtkCLJ1qc43bfTDsyT+OLeMFKz+HI3genqEM/dM
iN1Vkr0cBg9+CWIzOGpMmnsvL1TQJbyhYUO8LIURAjU7cPw1CzSPAtkEj02+kGdGvsRa609kbL65ztQ3DDyiVSpyehg5N2jGGHoIN27TEm9vPcQAHh8BMmSsTxeulpdVRu3XTV2pKh8y7yjyk+TVo6wGUmV1OfFaELq/gUVmTun7dvlrF+PYZKfQ5fX8ViHANfjZqt14qVuXIpLsT2OB9tmIPY/VOXxnaeCsGgN8LT6MZs2GjbJfb/nPIYTtpF9uRfiEc++fluWUqeCaTbNJByjiQPL8H6C9pwLJJTJ8OwEp7msAWuiSCsNWZ/mFwCWGyWmzN3AwMpiKziaArNC5YzC5Sl0cHBenjJvY4B3MghZgT7pHU8hvozRWgZnzRjr4xqMrfKGjrTvRX7vvlvom27rxPmyiCaPsJPkJnMrZhzOO6ndOL8lwjhL7t9hW7AFgPtoxeOjMz4nF7TGaryLGNvZwD3eEg9/Zs5+oMnvad8DFDcsabbKKESE3bqjsvFjpS4VeTKvMM
wDWtts5rIWasudIEReJafs6V63gCScf5L79xTRO/bHIsxfGDoQFkRHDrDovzO3JPt8P9NvtOSYOBdnMzJ+C1677mpv0DrvoqAZssX3qADkLImJxayPyciIjGuEFtsnI8HcD7ziWP/PmVaTun1RIuvJXReWDXI/L1Exe9VTaNJCRAWe4+rC9sMafWfTzlk0IoVXp5dxHRnVKi4GOsD12/oRw90U3pPZSyqbriWku/nXQAcPHKN9LCKJCizyOR8/uplQyNAWLsrniQCFkQWWWeDPWdTmajc+CD75R9/Sm/EdeKiypGhaTFz2eVkBmxh5LPBedxdUqDEGoL0+5syLrqHHyz1oMJvrwJCwAo18OBiQyRopqjl63yXH3A9g3voMbcMADPjx6O7ieWmA8LOq+gB03fn9LySIJ//yLX0gz7hhqkg2l3ha/Fix9145Gj585Fyt3z4A/M0/Yks3DgFruMzDf/kNPANpx22GwvWaxUtcLsnIVRHNI0A3vrpm0J9PrazRP71eQoM
Qh8CrVbLEgctlsJkz2iqPdBIzql+nHEfXnMLVCC3ZflOKdpzGDK0t4p79mmf3zsZR19k+jeM7MevqY/LYQEz9quPv0L6IQB8VZhwd/R2hwtavGsB6rso2aptdfnH/P89Rv9p6P223Y8Yr4/4CzGfaVMDkuAAmfgXk8d1LmXN1GQZP99nuO0CjN4uO8fJkCIQUuZKZDkbyHDR+tYNPjCxWHHWycEVw1FQpjlmiWZYjVdqs9euKdSdHIrsc+drTDjptQi9994HZzwVm87PO2V8yC20cyCiqJ1ZucactwiK2zFoAhDnVOgw+2xiZL79n8dlFe94YEMQkFltIgNzEaD9z4K/N4lB+FbIoPQ5m/6qaeslsLHbOtxTMKG7G8B1Sq1FsEtLSKb3Bvn1hQ2BlHwq9KZzRF2SJlwdvcAFv7Ana+CSepNTUDq5YY5KYJd2rXqjDPYSjzszq3DusFPkO6ymj+RsDrk/6XcrXcg3O0NteoVcQn/wIQ+eTxdgFUjv58WZjmmYARosM
LIY5Ols4+8VRRP/rmTePL2zx9F1gF26+goWTeX/YPf7RQmBrVU7PM8hFtDr0kJZ6ZtN50mhNUdC8Hb/XnlDkc8SL4FeTvgxEo8wo/EPc46u4XHo2ojz4Iuv9zOIk2cjWxmYJMe4NVweMAxRH2MIFcVojIwAV16sR5kNz5+FUNlYFXA+UixO9f0Mh7ChuxgbPQYc31XIUqxEgDG7HtvTweY8ZR5u/OVKcMmBw+XG/mxuQD1Lxw2vAyQnRpzVMDgqBvWPE0e3DbwzcGdc+3I78D/uv7Y/B8vKbXGYObpQy9YVxJVEF5YSbd3PGW9ioOkSpuCY2Zf4SckKrIWjZv1TUcuU1fT4gpuVy4wpDe/qTlEyB/UfrLv93AQnFr1831vxitrjNljMS/cMLedZEy+yOZI8qC48l0eYwAj45sifTb2UYVgaghaVNa6j8dpv+taOHBUWAb6iXLXgeRnPp3u8gfgimkfak+2xOQ4nDzSWRIkpS037g84WaKOhj4XM3IgPOiv6RnHToM
HDragfq/PvBsTOqZirhw9X8UuwuQB3SxrnqKsc8mFznVvs6bAPw+32g4nrteNHNHcZipIjES06OfaTwTDwBQBf5wgB87H3ur9Co0ZXNufIC5rYYm6rMSON/DkY4WI/vWEPwf/24rqOPrinaVro6Bt7VsRopd59gZ/5qA9caU+oLZWDsWcs9ndJPvd8SzRneVz4aePc6o+DvzYICyYm3IYw5n6Nf580QDiVeiHyQDXdyoGNW+ngVWOBLclXkeVfiALQGZdN7RXa045fdspGQPvthkArmnS3Vem4DFWdqVXf5iHLP5VxPsBW8NjBWCbxuOCRmqrYovxP+7i2fOTMc2hT+hyJqOr7UvAuLzDLKbW1bRHmVS6VvdJDs1C/K7w7K9nDm9LI+QaoAaEhOoTUoKVQLP3UzW+V13bUj8C6ooyDAPsXBMyB3A0Gj7nEr/ep/7GP2NK6JYoLkeznnWfMcNx0iX5vmGWXGLdzHRBRmIw8Wv3qvbVrkElbBe7PcR2GXGrEccr/rvM
2ZJM907KeTOLy//YKao9xMorULqfQtJbbnad+kygoUzAcA+oGjQue93D3tX9sHHSXt5IjRo+9HBCB+X3WPhmV7Ht9ESvYlAOxa/q0EgPvfC1Vt4MlU2XkBBnQBZkRv5v1YMibRZu/fz9ulhqbeJwfSyjIbq0kJJ9JIPVAgplbUvrkS9ahVaEsdn/yxrbTz1cYXriBrSPbI1zDWqcg8zhZAwY1YHMhQuRDnSuuC6qANLL7w0tgyl6zKqKwNtoRqsZy0qrAgxMQrWjuXVJPdCI8ODJLEqGoo2C5XRqGRqzPATx4MhoU0EwAjFmRgEECkEIs6MYCOWDEvIV3T+yUMRWQvYbm5/BIeAxtfwpcgzRcM006+gncBxerq0Gq13FjneXG+GiWqcbCWVblEOfhV7BeZlkYLEiGewjLNpamoVLIUR6VIPfm54CehqYH4VZbL49iyYsOGLXectV9o9uubsGqG+tI6HBMNct9FoMPLO7PkqOBj5zE1PxLONtuVKEq4e9/dy7a51jM
rjP+fdNPtkihyc4thZljkJOqjaKdWPUcpVSsnkq42vA6bYX127xjekWqREVq6Xx3P5qlTk8ohVc+VUCh3m7QLrVtZ1U4z9jWrnF3Ye7NsAA6eckGeDfBtNZshIAWOvmFA56bQzTJkxZ/GrEcILc/Op+mohu1+VcPFFrphik83svZuof/4urrqm2HWu3GbS45vbF6BEmXKlKlVYLFCQKsFeC1HtilFPqy+HiygLDRrVT+Dn0+v9JrryZq3atFhCo12897P5zZh4fgMNNsQgqdJm3Jff2k3TCyz8RQBiiv7/+t766BuGWOLhq2++hw82AnSi1E9/6/Aso2epI0aRE+jMm06E6LCFHymZLDm8+DjqmK222W6HNdba7wA+CX1io400zljjDZPtpeH2EUaEEWZS+Ggnjq4Bpsm1nG/EEEVCUpKRnBSkJB1M5G+Cm2657f6gvrLExsbP9ZC2m7Fn/OM+jfnaUBTA+6tfhMg40mfa27iI/6XN9ar/r3JenJtfXxeF4DvYieM
tKygv4wCFcoZ0zwj9xcstuJ5qYekE/2/a8TtshnG5B/4LZdsZt+rxOEkYSn2XM9BGcm3i6RwzeHRhSAumz4OPgZe4SCwFPBjQ69u1mn39SIhQwk9pOEe4aELDdpz0UT7dbNBjUmcfzX36d9kveZsh0EzAKs51oR8AmtNPc+MIvECBgBgAAAA==) format('woff2');font-display:block}
/* Layout: arcade cabinet
 3D screen + controller on the left, block readout on the right; stacks on phones */
  --bg:#060814;--panel:#0c1023;--line:#1d2546;--fg:#dbe5ff;--dim:#7f8cb8;
  --cyan:#3cf0ff;--pink:#ff3fb4;--amber:#ffb629;--lime:#9dff3a;
  --display:'Silkscreen',ui-monospace,monM
ospace;--body:'Chakra Petch',system-ui,sans-serif;
html,body{background:var(--bg);color:var(--fg)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--body);font-size:15px;line-height:1.5;margin:0;min-height:100vh;min-height:100dvh;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
/* app-style long press: no text selection or callout on ordinary text; editable fields keep normal selection */
,select,[contenteditable]:not([contenteditable="false"]){-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
img,canvas,svg{-webkit-user-drag:none;-webkit-touch-callout:none}
button{touch-action:manipulation}
#app{max-width:1060px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left)) max(16px,env(safe-area-inset-right));padding-block:18px 28px;display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){#app{grid-template-columns:minmax(0,1fr) 300px;align-items:M
start}header,footer{grid-column:1/-1}}
header{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}
h1{font-family:var(--display);font-weight:400;font-size:clamp(28px,6vw,44px);margin:0;letter-spacing:.04em;line-height:1;text-shadow:2px 0 var(--pink),-2px 0 var(--cyan)}
header p{margin:0;color:var(--dim);max-width:60ch}
.screen{position:relative;background:#000;border:2px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 0 0 1px #000,0 10px 40px #000a}
#vbar{position:absolute;top:12px;right:12pM
x;display:flex;gap:6px;z-index:5}#vbar[hidden]{display:none}
#vbar button{width:clamp(28px,11vw,44px);aspect-ratio:1;padding:0;border:0;background:none;cursor:pointer;opacity:.85;filter:drop-shadow(0 1px 3px #000)}
#vbar button:hover,#vbar button:focus-visible{opacity:1}#bPh[aria-pressed=true]{filter:drop-shadow(0 0 5px #6dd8ff)}
.screen canvas{display:block;width:100%;height:auto;aspect-ratio:320/224;image-rendering:pixelated;border-radius:4px;touch-action:manipulation}
#h{position:absolute;inset:6px;width:calc(10M
0% - 12px)!important}
.pad{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.left{display:flex;align-items:center;gap:10px}
#stick{width:118px;height:118px;flex:none;border-radius:50%;background:radial-gradient(circle,#161d3a 0 55%,#0c1023 56%);border:2px solid var(--line);position:relative;touch-action:none}
#knob{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:5M
0%;background:#2a3463;border:2px solid #4b5aa0;box-shadow:inset 0 -4px 0 #1a2147}
.vert{display:flex;flex-direction:column;gap:8px}
.vert button{width:52px;height:48px;border-radius:10px;border:1px solid var(--line);background:#151b36;color:var(--fg);font-family:var(--display);font-size:11px;cursor:pointer;touch-action:none}
.right{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.abc{display:flex;gap:10px;align-items:flex-end}
.abc button{width:56px;height:56px;border-radius:50%;border:0;font-famiM
ly:var(--display);font-size:18px;color:#0b0b14;box-shadow:inset 0 -5px 0 #0005;cursor:pointer}
.abc button:nth-child(1){background:var(--pink);transform:translateY(10px)}
.abc button:nth-child(2){background:var(--cyan);transform:translateY(4px)}
.abc button:nth-child(3){background:var(--amber)}
.abc button span{display:block;font-family:var(--body);font-size:10px;font-weight:600;letter-spacing:.06em;margin-top:-2px}
.pills{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pills button,.dive button{fontM
-family:var(--display);font-size:11px;letter-spacing:.06em;background:#151b36;color:var(--fg);border:1px solid var(--line);border-radius:999px;padding:6px 11px;cursor:pointer}
button:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
button:active,.vert button.on{filter:brightness(1.4)}
/* PC: the screen fills the window (keyboard play, so the touch pad folds away to one row of buttons); block readout sits below */
.pconly{display:none}
@media(min-width:900px) and (hover:hover) and M
  #app{max-width:none;padding:6px 10px 24px;grid-template-columns:minmax(0,1fr);gap:16px}
  main{order:-1;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px}
  .screen{grid-column:2;grid-row:1;width:min(calc(100vw - 360px),calc((100vh - 60px)*320/224 + 16px))}
  .pad{display:contents}
  /* two matching control columns, everything stacked vertically and centred on the screen */
  .left,.right{grid-row:1;width:124px;flex-direction:column;align-items:stretchM
  .left{grid-column:1;justify-self:end}.right{grid-column:3;justify-self:start}
  .vert{flex-direction:column;gap:12px}.vert button{width:100%;height:44px}
  #stick{width:124px;height:124px;margin-top:6px;order:2}
  .abc{flex-direction:column;align-items:center;gap:12px}.abc button{width:60px;height:60px;transform:none!important}
  .pills{flex-direction:column;flex-wrap:nowrap;gap:8px;max-width:none;margin-top:6px}.pills button{width:100%;padding:7px 0}.pills button[hidden]{display:none}
  #menu,#card,#report,#start,#countin{zoom:1.3}
  aside{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;max-width:1400px;width:100%;margin-inline:auto}
/* phone portrait: controls scale with the screen width so the whole row always fits */
@media(max-width:520px) and (orientation:portrait){.abc{margin-bottom:16px}.abc button{position:relative;color:#fff;text-shadow:0 1px 2px #000a}.abc button span{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin:3px M
0 0;color:#fff;font-size:10px;white-space:nowrap;text-shadow:0 1px 2px #000}.pad{gap:12px}.left{gap:8px}.abc{gap:8px}#stick{width:min(118px,26vw);height:min(118px,26vw)}#knob{width:min(44px,10vw);height:min(44px,10vw);margin:calc(min(44px,10vw)/-2) 0 0 calc(min(44px,10vw)/-2)}.vert button{width:min(52px,12vw)}.abc button{width:min(56px,12.5vw);height:min(56px,12.5vw)}}
@media(max-width:420px){#stick{width:min(100px,26vw);height:min(100px,26vw)}.abc button{width:min(50px,12.5vw);height:min(50px,12.5vw)}.vert button{M
width:min(46px,12vw)}}
aside{display:grid;gap:14px;min-width:0}
.box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;min-width:0}
.eyebrow{font-family:var(--display);font-size:11px;letter-spacing:.12em;color:var(--dim);margin:0 0 6px;text-transform:uppercase}
.bnum{font-family:var(--display);font-size:30px;line-height:1;margin:0;color:var(--amber);font-variant-numeric:tabular-nums}
.badge{display:inline-block;font-family:var(--display);font-size:10px;letter-spacing:.08em;paM
dding:2px 7px;border-radius:4px;margin-top:8px;border:1px solid currentColor}
dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;margin:12px 0 0;font-size:13px}
dt{color:var(--dim)}dd{margin:0;overflow-wrap:break-word;min-width:0;font-variant-numeric:tabular-nums}
.msg{font-style:italic;color:var(--cyan)}
.dive{display:flex;gap:8px;margin-top:4px}
.dive input{flex:1;min-width:0;background:#070a18;color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:7px 10px;font-family:vaM
r(--display);font-size:13px}
.hint{color:var(--dim);font-size:12px;margin:8px 0 0}
.linkb{background:none;border:0;padding:0;color:var(--cyan);font:inherit;text-decoration:underline;cursor:pointer}
#card[hidden],#start[hidden],#menu[hidden],#report[hidden],#countin[hidden]{display:none}
#countin{position:absolute;inset:6px;display:grid;place-items:center;background:#02040cd9;border-radius:4px;z-index:4;padding:8px}
#countin .in{display:grid;justify-items:center;gap:6px;text-align:center}
#countin h3{font-family:varM
(--display);font-weight:400;font-size:20px;margin:0;color:var(--amber)}
.cgrid{display:grid;grid-template-columns:repeat(3,minmax(0,74px));gap:4px}
.cgrid div{border:1px solid var(--line);border-radius:4px;padding:5px 4px;background:#0b0f22;font-size:10px;color:var(--dim);font-family:var(--display)}
.cgrid b{display:block;font-weight:400;font-size:11px;color:var(--fg);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.cgrid .ok{border-color:#2a7a4a}.cgrid .ok span{color:var(--lime)}.cgrid .fM
rontier span{color:var(--pink)}.cgrid .me{box-shadow:0 0 0 1px var(--amber)}
#ciNote{margin:0;font-size:12px;color:var(--dim);max-width:46ch}
#ciNum{font-family:var(--display);font-size:42px;line-height:1;color:var(--cyan);min-height:42px;text-shadow:2px 0 var(--pink)}
@media (max-height:520px) and (orientation:landscape){#countin .cgrid div{padding:3px}#ciNum{font-size:30px;min-height:30px}}
#report{position:fixed;inset:0;display:grid;place-items:center;background:#05060ff2;padding:16px;padding-block:calc(16px + eM
nv(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-bottom,0px));z-index:31}
#report .in{width:min(100%,560px);max-height:100%;overflow:auto;background:#0b0f22;border:2px solid var(--cyan);box-shadow:0 0 0 2px #000,0 0 30px #3cf0ff33;border-radius:6px;padding:16px}
#report h3{font-family:var(--display);font-weight:400;font-size:20px;margin:0 0 2px;color:var(--amber)}
#report .sub2{margin:0 0 12px;color:var(--dim);font-size:13px}
.rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));M
.rgrid div{background:#151b36;border-radius:4px;padding:8px 10px;font-size:11px;color:var(--dim)}
.rgrid b{display:block;font-family:var(--display);font-weight:400;font-size:17px;color:var(--fg);font-variant-numeric:tabular-nums}
.rare{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.rare span{font-family:var(--display);font-size:10px;padding:3px 7px;border-radius:4px;background:#151b36}
#report .acts{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}
#report .acts button{fontM
-family:var(--display);font-size:12px;border-radius:4px;padding:8px 14px;cursor:pointer;border:1px solid var(--line);background:#151b36;color:var(--fg)}
#report .acts button.go{background:var(--cyan);color:#05060f;border-color:var(--cyan)}#report .acts button.warn{background:var(--pink);color:#05060f;border-color:var(--pink)}
/* menu: the sub's onboard console
 riveted steel bezel around a green phosphor screen, chunky console keys */
#menu{position:absolute;inset:6px;display:grid;place-items:center;background:#M
000b;border-radius:4px;padding:8px;z-index:2}
#menu .in{position:relative;width:min(100%,540px);height:100%;max-height:100%;display:flex;flex-direction:column;background:#4a515e;border-radius:10px;padding:10px;
  box-shadow:inset 0 2px 0 #7a8494,inset 0 -3px 0 #2a2f38,0 0 0 2px #000,0 10px 30px #000c;font-family:var(--display)}
#menu .in::before,#menu .in::after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#9aa3b2;box-shadow:inset -1px -1px 0 #3a404a;top:4px;left:4px}
ter{left:auto;right:4px}
.mtop{display:flex;align-items:center;gap:6px;padding:0 0 8px}
.tabs{display:flex;gap:5px;flex-wrap:wrap;flex:1;min-width:0}
.tabs button,.mx{font-family:var(--display);font-size:11px;letter-spacing:.06em;padding:6px 9px 5px;border-radius:3px;border:0;cursor:pointer;
  background:#2a303c;color:#b6c0d0;box-shadow:inset 0 1px 0 #4a5262,0 3px 0 #14181f}
.tabs button:active,.mx:active{transform:translateY(2px);box-shadow:inset 0 1px 0 #4a5262,0 1px 0 #14181f}
.tabs button.on{background:#ffb629;M
color:#1a1206;box-shadow:inset 0 1px 0 #ffe08a,0 3px 0 #8a5a00}
.mx{background:#c8243a;color:#fff;box-shadow:inset 0 1px 0 #ff6d7a,0 3px 0 #6d0010}
.mx.mb{background:#2f6d4a;box-shadow:inset 0 1px 0 #5bd98a,0 3px 0 #123a24;font-size:15px;padding:3px 10px}
#bBk{position:absolute;top:12px;left:12px;width:clamp(28px,9vw,40px);aspect-ratio:1;border-radius:50%;border:2px solid #7dffa0;background:#0a1a12e6;color:#7dffa0;font:700 20px/1 var(--display);cursor:pointer;z-index:6;padding:0}#bBk[hidden]{display:none}
sition:relative;flex:1;overflow:auto;min-height:0;padding:12px 12px 14px;border-radius:6px;font-size:12px;color:#7dffa0;
  background:radial-gradient(ellipse at center,#0c2a1c 0%,#06140e 75%,#030a07 100%);box-shadow:inset 0 0 0 2px #0a1a12,inset 0 0 0 4px #1a2420,inset 0 0 24px #000;
  text-shadow:0 0 4px #2bff7a55}
#mbody::after{content:"";position:sticky;display:block;bottom:-14px;left:0;right:0;height:0}
#mbody::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(M
0deg,#0000 0 2px,#00000038 2px 3px);border-radius:6px}
.mrow{display:grid;grid-template-columns:70px minmax(0,1fr) 56px;gap:8px;align-items:center;margin-bottom:6px}
.mrow span{font-size:11px;color:#4fbf72}.mrow b{font-weight:400;text-align:right;font-variant-numeric:tabular-nums;color:#b6ffc8}
.mbar{height:9px;background:#03100a;box-shadow:inset 0 0 0 1px #1d4a32;padding:1px}
.mbar i{display:block;height:100%;-webkit-mask:repeating-linear-gradient(90deg,#000 0 5px,#0000 5px 7px);mask:repeating-linear-gradient(90deM
g,#000 0 5px,#0000 5px 7px);box-shadow:0 0 6px currentColor}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:7px}
.mgrid button{text-align:left;font-family:var(--display);font-size:11px;padding:7px 8px 6px;border-radius:3px;border:0;cursor:pointer;line-height:1.35;
  background:#0a2016;color:#7dffa0;box-shadow:inset 0 0 0 1px #1f5a3a,0 2px 0 #020805;text-shadow:inherit}
.mgrid button:hover:not([disabled]){background:#0f2e1f;box-shadow:inset 0 0 0 1px #4fbf72,0 2px 0 #020805}
 button:active:not([disabled]){transform:translateY(1px)}
.mgrid button small{display:block;font-family:var(--display);font-size:9px;letter-spacing:.04em;color:#3f9a5c;margin-top:2px}
.mgrid button[disabled]{opacity:.38;cursor:default}
.mgrid button.on{color:#ffcf6a;box-shadow:inset 0 0 0 1px #ffb629,0 2px 0 #020805;text-shadow:0 0 4px #ffb62955}.mgrid button.on small{color:#c8902a}
.mh{font-family:var(--display);font-size:11px;letter-spacing:.12em;color:#ffcf6a;margin:12px 0 7px;text-shadow:0 0 4px #ffb62955}.mh:fM
irst-child{margin-top:0}
.mh::before{content:"
.mnote{color:#4fbf72;font-size:11px;margin:6px 0 0;line-height:1.5}
.rdon{margin-top:14px;padding-top:10px;border-top:1px dashed #1f5a3a}.rdon .don{color:#7dffa0}.rdon .addr{color:#b6ffc8}
.dsub{margin:4px 0 0;color:var(--dim);font-size:13px}.drow{display:flex;align-items:center;gap:10px;margin:8px 0 0}.drow .addr{margin:0;flex:1;min-width:0}
.cpy{flex:none;font-family:var(--display);font-size:11px;border:0;border-radius:4px;padding:5px 10px;cursor:pointer;backgrM
ound:#f7931a;color:#1a1206}
.lcol{display:grid;gap:14px;align-content:start;min-width:0}.don{margin:0;font-family:var(--display);font-size:12px;color:var(--fg)}
.btc{display:inline-grid;place-items:center;width:16px;height:16px;margin-right:6px;border-radius:50%;background:#f7931a;color:#fff;font:700 11px/1 system-ui,sans-serif;text-shadow:none;vertical-align:-3px}
.addr{display:block;margin-top:6px;font-family:var(--body);font-size:12px;color:var(--dim);overflow-wrap:anywhere;-webkit-user-select:text;user-select:tM
.mcur{display:inline-block;width:7px;height:11px;background:#7dffa0;vertical-align:-1px;margin-left:3px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.mcur{animation:none}}
/* the same console look for cards, the dive report, the count-in and the start screen */
#card .in,#report .in,#countin .in,#start .in{position:relative;font-family:var(--display);color:#7dffa0;text-shadow:0 0 4px #2bff7a55;border:6px solid #4a515e!important;border-radius:10px;
  background:radial-gradient(ellipse at center,#0c2a1c 0%,#06140e 75%,#030a07 100%)!important;box-shadow:0 0 0 2px #000,inset 0 0 0 2px #0a1a12,inset 0 0 0 4px #1a2420,inset 0 0 24px #000,0 10px 30px #000c!important}
#card dl,#card h3,#card .latin,#card #ci,#card .acts,#card #art{position:relative}
#card .in::before,#report .in::before,#countin .in::before,#start .in::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 2px,#00000038 2px 3px);border-radiuM
#countin .in{padding:14px 16px}
#card h3,#report h3,#countin h3,#start h3{color:#ffcf6a;text-shadow:0 0 4px #ffb62955}
#card .eyebrow,#start .eyebrow,#countin .eyebrow{color:#3f9a5c}
#card .latin,#start .latin,#report .sub2,#ciNote,#start label,.note{color:#4fbf72!important;font-family:var(--display);font-size:11px;font-style:normal}
#card dt{color:#4fbf72}#card dd{color:#b6ffc8}
#art{border:2px solid #1f5a3a;background:#020805}
#ci{color:#4fbf72}#ci .ins{background:#03100a;border:1px dashed #1f5a3a;color:#bM
#card .acts button,#report .acts button,#start .acts button{font-family:var(--display);border:0;border-radius:3px;background:#2a303c;color:#b6c0d0;box-shadow:inset 0 1px 0 #4a5262,0 3px 0 #14181f;text-shadow:none}
#card .acts button:active,#report .acts button:active,#start .acts button:active{transform:translateY(2px);box-shadow:inset 0 1px 0 #4a5262,0 1px 0 #14181f}
#card .acts button.go,#report .acts button.go,#start .acts button.go{background:#ffb629;color:#1a1206;box-shadow:inset 0 1px 0 #ffe08a,0 3px 0M
#report .acts button.warn{background:#c8243a;color:#fff;box-shadow:inset 0 1px 0 #ff6d7a,0 3px 0 #6d0010}
.rgrid div{background:#0a2016;box-shadow:inset 0 0 0 1px #1f5a3a;color:#3f9a5c;font-size:10px}.rgrid b{color:#b6ffc8}
.rare span{background:#03100a;box-shadow:inset 0 0 0 1px #1f5a3a}
#report .mh,#card .mh{color:#ffcf6a}
.cgrid div{background:#0a2016;border:0;box-shadow:inset 0 0 0 1px #1f5a3a;color:#3f9a5c}.cgrid b{color:#b6ffc8}
.cgrid .ok{box-shadow:inset 0 0 0 1px #4fbf72}.cgrid .ok span{color:#7dM
ffa0}.cgrid .me{box-shadow:inset 0 0 0 2px #ffb629}
#ciNum{color:#ffcf6a;text-shadow:0 0 10px #ffb629aa}
#bd{background:#03100a;color:#b6ffc8;border:1px solid #1f5a3a;border-radius:3px}
.fmt label{color:#7dffa0}#bdOut{color:#ffcf6a}#bdOut small{color:#4fbf72;font-family:var(--display);font-size:11px}
#start{position:fixed;inset:0;display:grid;place-items:center;background:#05060fee;padding:16px;padding-block:calc(16px + env(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-bottom,0px));z-index:30}
n{width:min(100%,400px);max-height:100%;overflow:auto;background:#0b0f22;border:2px solid var(--pink);box-shadow:0 0 0 2px #000,0 0 24px #ff3fb444;border-radius:6px;padding:14px 16px;display:grid;gap:8px}
#start h3{font-family:var(--display);font-weight:400;font-size:17px;margin:0;line-height:1.2}
#start .latin{margin:0;color:var(--dim);font-size:13px}
#start label{font-size:12px;color:var(--dim)}
#bd{background:#070a18;color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-family:var(M
--display);font-size:14px;width:100%}
.fmt{display:flex;gap:14px;flex-wrap:wrap}.fmt label{display:flex;gap:6px;align-items:center;color:var(--fg);font-family:var(--display);font-size:12px}
#bdOut{margin:2px 0 0;font-family:var(--display);font-size:15px;color:var(--amber)}#bdOut small{display:block;font-family:var(--body);font-size:12px;color:var(--dim)}
.note{margin:0;font-size:11px;color:var(--dim)}
#start .acts{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}
#start .acts button{font-family:var(--diM
splay);font-size:12px;border-radius:4px;padding:7px 12px;cursor:pointer;border:1px solid var(--line);background:#151b36;color:var(--fg)}
#start .acts button.go{background:var(--amber);color:#05060f;border-color:var(--amber)}#start .acts button:disabled{opacity:.4;cursor:default}
#card{position:absolute;inset:6px;display:grid;place-items:center;background:#000c;border-radius:4px;padding:10px;z-index:2}
#card .in{width:min(100%,420px);max-height:100%;overflow:auto;background:#0b0f22;border:2px solid var(--cyan);box-sM
hadow:0 0 0 2px #000,0 0 24px #3cf0ff44;border-radius:6px;padding:12px 14px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px}
#art{width:128px;height:80px;image-rendering:pixelated;background:#02040c;border:1px solid var(--line);grid-row:span 2}
#card h3{font-family:var(--display);font-weight:400;font-size:16px;margin:0;line-height:1.2;text-wrap:balance}
#card .latin{margin:0;color:var(--dim);font-style:italic;font-size:12px}
#card dl{grid-column:1/-1;margin-top:6px}
#ci{grid-column:1/-1;font-sizeM
:12px;color:var(--dim)}
#ci:empty{display:none}
#ci .ins{display:flex;gap:10px;align-items:center;background:#070a18;border:1px dashed #3a4680;border-radius:4px;padding:8px;margin-top:4px;color:var(--fg)}
#inscv{width:48px;height:48px;image-rendering:pixelated;flex:none}
.insg{width:48px;height:48px;flex:none;display:grid;place-items:center;background:#000;border:1px solid #1f5a3a;font-family:var(--display);font-size:13px;color:#7dffa0}
.insv{margin-top:4px;font-family:var(--display);font-size:10px;border:0;border-M
radius:3px;padding:4px 8px;background:#ffb629;color:#1a1206;cursor:pointer}
#iv{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:#000d;padding:16px;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}#iv[hidden]{display:none}
#iv .in{width:min(100%,720px);height:min(100%,760px);display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;background:#0b0f22;border:2px solid var(--amber);borM
der-radius:6px;padding:10px}
#iv header{display:flex;gap:10px;align-items:center;font-family:var(--display);font-size:12px;color:var(--amber);min-width:0}
#iv header code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim);font-size:11px}
#ivB .pv{width:100%;height:100%;overflow:auto;box-sizing:border-box;padding:16px;background:#070a18;color:#cfe;font:13px/1.5 var(--body);text-align:left}#ivB .pv h4{margin:0 0 4px;font:14px var(--display);color:var(--amber)}#ivB .pv p{margM
in:0 0 12px;color:#9ab}#ivB .pv dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}#ivB .pv dt{color:#7f8cb8}#ivB .pv dd{margin:0;color:#fff;word-break:break-word}#ivB canvas.sv{width:min(100%,520px);aspect-ratio:1;image-rendering:pixelated;background:#000}#ivB pre.sv{margin:0;padding:16px;color:#7dffa0;font:18px/1.4 var(--body);white-space:pre-wrap}
#iv header a{font-family:var(--display);font-size:11px;border:1px solid var(--line);border-radius:4px;background:#2b2308;color:var(--amber);padding:5M
px 10px;text-decoration:none}#iv header a[hidden]{display:none}
#iv header button{font-family:var(--display);font-size:11px;border:1px solid var(--line);border-radius:4px;background:#151b36;color:var(--fg);padding:5px 10px;cursor:pointer}
#ivB{display:grid;place-items:center;background:#000;border-radius:4px;overflow:hidden;min-height:0}
#ivB img,#ivB video{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
#ivB iframe{width:100%;height:100%;border:0;background:#fff}M
#insL{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:6px;margin-top:6px}
#insL button{aspect-ratio:1;padding:0;border:1px solid var(--line);border-radius:4px;background:#000;color:var(--cyan);font-family:var(--display);font-size:10px;cursor:pointer;overflow:hidden;display:grid;place-items:center}
#insL button img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
#insL button:hover,#insL button:focus-visible{border-color:var(--amber)}
.acts{grid-column:1/-1;display:flexM
;gap:8px;justify-content:flex-end;margin-top:8px}
.acts button{font-family:var(--display);font-size:12px;border-radius:4px;padding:7px 12px;cursor:pointer;border:1px solid var(--line);background:#151b36;color:var(--fg)}
.acts button.go{background:var(--cyan);color:#05060f;border-color:var(--cyan)}
.log{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:6px}
.log div{font-size:12px;color:var(--dim)}
.log b{display:block;font-family:var(--display);font-weight:400;font-size:16px;color:vM
ar(--fg);font-variant-numeric:tabular-nums}
.ups{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ups span{font-size:11px;font-family:var(--display);padding:3px 7px;border-radius:4px;background:#151b36;color:var(--dim)}
.ups span.on{color:var(--lime);background:#16260e}
#subs button{font-family:var(--display);font-size:11px;padding:3px 8px;border-radius:4px;border:1px solid var(--line);background:#151b36;color:var(--dim);cursor:pointer}
#subs button[aria-disabled=true]{opacity:.45}
#subs button.on{color:#05060M
f;background:var(--cyan);border-color:var(--cyan)}
footer{color:var(--dim);font-size:12px}
kbd{font-family:var(--display);font-size:11px;background:#151b36;border:1px solid var(--line);border-radius:3px;padding:0 4px;color:var(--fg)}
#err{color:var(--pink)}
/* phones: the menu holds the secondary actions, so only quick abilities stay as buttons */
@media (max-width:700px),(orientation:landscape) and (max-height:520px){.pills button:not(#bR):not(#bT):not(#bY){display:none}}
@media (orientation:portrait) and (max-widM
th:520px){#menu{position:fixed;inset:0;padding:12px;padding-block:calc(12px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-bottom,0px));z-index:30;background:#05060fee}#menu .in{height:auto;max-height:100%}header p{display:none}h1{font-size:24px}#app{padding-block:10px 24px;gap:12px}.pad{margin-top:10px}}
/* landscape phones: the screen fills the height, controls float in the side margins */
@media (orientation:landscape) and (max-height:520px){
  header{display:none}
  #app{padding-block:0;gap:16pM
  main{height:100dvh;display:flex;justify-content:center;align-items:center}
  .screen{height:calc(100dvh - 8px);width:auto;aspect-ratio:320/224;padding:3px;border-radius:6px}
  .screen canvas{width:100%;height:100%}
  #h{inset:3px;width:calc(100% - 6px)!important;height:calc(100% - 6px)}
  #menu,#card{inset:3px}
  .pad{position:fixed;left:0;right:0;bottom:0;margin:0;padding:0 max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));pointer-events:none;align-iteM
ms:flex-end;z-index:5}
  .pad>*{pointer-events:auto}
  .left{flex-direction:column-reverse;align-items:flex-start;gap:8px}.vert{flex-direction:row}
  #stick{width:104px;height:104px;opacity:.85}.abc button{width:50px;height:50px;opacity:.9}
.tchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tchips:empty{display:none}
.tchips span{font-family:var(--display);font-size:10px;letter-spacing:.06em;padding:2px 7px;border-radius:4px;background:#151b36}
@media(min-width:900px) and (hover:hover) M
and (pointer:fine) and (min-height:820px){#menu,#card,#report,#start,#countin{zoom:1.6}}
@media(min-width:900px) and (hover:hover) and (pointer:fine) and (min-height:1080px){#menu,#card,#report,#start,#countin{zoom:2}}
/* phone portrait: the loading box compacts to fit inside the game screen */
@media(max-width:520px) and (orientation:portrait){#countin{padding:4px}#countin .in{padding:8px 10px;gap:3px;max-width:100%;max-height:100%;overflow:hidden;border-width:4px!important}#countin .eyebrow{font-size:9px;margin:0M
}#countin h3{font-size:14px}
  #countin .cgrid{gap:3px}#countin .cgrid div{padding:2px 3px;font-size:8px;line-height:1.25}#countin .cgrid b{font-size:9px}#ciNote{font-size:9px;margin:0}#ciNum{font-size:24px;min-height:24px}}
.links{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:7px;font-size:12px;line-height:1.35}.links li{display:grid;grid-template-columns:10px 1fr;gap:9px}.links i{width:9px;height:9px;border-radius:50%;margin-top:4px;background:#3a3f4a}.links i.ok{background:#3dff7a;box-shadow:0 0 6pxM
 #3dff7a}.links i.warn{background:#ffb629;box-shadow:0 0 6px #ffb629}.links i.bad{background:#ff2449;box-shadow:0 0 6px #ff2449}.links i.wait{background:#6d7a90}.links b{font-weight:600}.links code{font-size:11px;color:var(--dim)}.links span{color:var(--dim)}
/* fit: the screen never grows taller than the viewport leaves room for (short portrait, square detail views, keyboard/URL-bar shrink) */
.screen{width:min(100%,max(180px,calc((100vh - 230px)*320/224 + 16px)));width:min(100%,max(180px,calc((100dvh - 230px)*32M
0/224 + 16px)));margin-inline:auto;box-sizing:border-box}
@media(min-width:900px) and (hover:hover) and (pointer:fine){.screen{width:min(calc(100vw - 360px),calc((100vh - 60px)*320/224 + 16px));margin-inline:0}}
@media (orientation:landscape) and (max-height:520px){.screen{width:auto;margin-inline:0}}
/* wide touch screens in landscape under 520px tall: one column, so the full-height screen never collides with the side panel */
@media (orientation:landscape) and (max-height:520px) and (min-width:900px){#app{grid-teM
mplate-columns:minmax(0,1fr)!important}}
/* short desktop windows (wide, under 520px tall, mouse): keep the desktop three-column layout instead of the phone-landscape one */
@media(min-width:900px) and (hover:hover) and (pointer:fine) and (orientation:landscape) and (max-height:520px){
  header{display:flex}main{display:grid!important;height:auto!important}
  .screen{width:min(calc(100vw - 360px),calc((100vh - 16px)*320/224 + 16px))!important;width:min(calc(100vw - 360px),calc((100dvh - 16px)*320/224 + 16px))!imporM
tant;height:auto!important}
  .pad{position:static!important;display:contents!important;pointer-events:auto!important}.left{flex-direction:column!important}
/* tile mode: ordinal grid tiles (up to 340x340) and tiny previews (under 200px tall) show only the game screen, letterboxed, no prompt */
@media (max-width:340px) and (max-height:340px),(max-height:200px){
  header,footer,aside,.pad,#start,#vbar,#bBk{display:none!important}
  #app{padding:0!important;gap:0!important;max-width:none!important;display:block!impM
  main{display:flex!important;align-items:center;justify-content:center;height:100vh;height:100dvh}
  .screen{width:min(100vw,calc(100vh*320/224))!important;width:min(100vw,calc(100dvh*320/224))!important;height:auto!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
  .screen canvas{border-radius:0}
  #h{inset:0!important;width:100%!important;height:auto!important}
  #menu,#card,#countin{inset:0!important}
    <h1>BLOCK DIVE</h1>
    <p>A one-man submarine in a 3D ocean built from Bitcoin blocks, spiralling out from genesis.</p>
    <div class="screen">
      <canvas id="c" width="320" height="224" aria-label="Game screen"></canvas>
      <canvas id="h" width="320" height="224" aria-hidden="true"></canvas>
      <button id="bBk" type="button" hidden aria-label="Back to menu">
      <div id="vbar" hidden><button id="bMn" type="button" title="Menu (Esc)" aria-label="Open menu"><svg vM
iewBox="0 0 24 24" width="100%" height="100%" aria-hidden="true"><rect x="1.5" y="1.5" width="21" height="21" rx="4" fill="#1a1410" stroke="#8a7a5a" stroke-width="1.5"/><path d="M6 18V6l6 7 6-7v12" fill="none" stroke="#ffd896" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></svg></button><button id="bPh" type="button" title="Floor porthole (H)" aria-label="Switch between front window and floor porthole" aria-pressed="false"><svg viewBox="0 0 24 24" width="100%" height="100%" aria-hidden="true"><M
rect x="1.5" y="1.5" width="21" height="21" rx="4" fill="#1a1410" stroke="#8a7a5a" stroke-width="1.5"/><circle cx="12" cy="10" r="6" fill="#0a2a44" stroke="#ffd896" stroke-width="2"/><path d="M12 6.5v6M9.3 10.2 12 13l2.7-2.8" fill="none" stroke="#9fe6ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M5 20.5h14" stroke="#8a7a5a" stroke-width="1.5" stroke-linecap="round"/></svg></button></div>
      <div id="countin" hidden aria-live="polite"><div class="in"><p class="eyebrow">Diving to<M
/p><h3 id="ciH"></h3><div class="cgrid" id="ciG"></div><p id="ciNote"></p><div id="ciNum"></div></div></div>
      <div id="report" hidden role="dialog" aria-label="Dive report"><div class="in" id="rpIn"></div></div>
      <div id="start" hidden>
        <div class="in">
          <p class="eyebrow">Your starting block</p>
          <h3>Where does your dive begin?</h3>
          <p class="latin">Every new diver starts at the exact middle of the chain as it stands right now: half of today's block height. As Bitcoin M
grows, new divers start further out.</p>
          <p id="bdOut"></p>
          <p class="note">Only the block number is saved, on this device.</p>
          <div class="acts"><button id="bdGo" class="go">Start dive</button></div>
      <div id="menu" hidden role="dialog" aria-label="Sub menu">
        <div class="in">
          <div class="mtop"><button class="mx mb" data-close aria-label="Back to game">
</button><div class="tabs" id="mtabs"></div><button class="mx" data-close aria-laM
          <div id="mbody"></div>
      <div id="card" hidden>
        <div class="in">
          <canvas id="art" width="64" height="40"></canvas>
          <div><p class="eyebrow" id="ce"></p><h3 id="ch"></h3></div>
          <p class="latin" id="cl"></p>
          <dl id="cd"></dl>
          <div id="ci"></div>
          <div class="acts" id="ca"></div>
    <div class="pad">
      <div class="left">
 id="stick" aria-label="Steer and thrust"><div id="knob"></div></div>
        <div class="vert"><button id="bU" aria-label="Rise">RISE</button><button id="bD" aria-label="Dive">DIVE</button></div>
      <div class="right">
        <div class="abc">
          <button id="bA" aria-label="A: grab">A<span>GRAB</span></button>
          <button id="bB" aria-label="B: scan">B<span>SCAN</span></button>
          <button id="bC" aria-label="C: sonar">C<span>SONAR</span></button>
          <button id="bL">LAMP</button><button id="bF" class="pconly" title="Full screen">
 FULL</button><button id="bV">VIEW</button><button id="bM">MAP</button><button id="bP">PERISCOPE</button><button id="bN" hidden>NIGHT</button><button id="bR" hidden>BOOST</button><button id="bY" hidden>PHASE</button><button id="bT" hidden>PULSE</button><button id="bS">SOUND</button>
    <div class="lcol">
    <section class="box" aria-live="polite">
   <p class="eyebrow">Current block</p>
      <p class="bnum" id="iN">#0</p>
      <span class="badge" id="iR">MYTHIC</span>
      <div class="tchips" id="iTr"></div>
        <dt>Hash</dt><dd id="iH"></dd>
        <dt>Txs</dt><dd id="iT"></dd>
        <dt>Pool</dt><dd id="iP"></dd>
        <dt>Coinbase</dt><dd id="iM" class="msg"></dd>
        <dt>Contents</dt><dd id="iX"></dd>
        <dt>First sat</dt><dd id="iO"></dd>
        <dt>Seafloor</dt><dd id="iF"></dd>
        <dt>Era</dt><dd id="iE"></dd>
     <dt>Data</dt><dd id="iS"></dd>
    <section class="box"><p class="don"><span class="btc" aria-hidden="true">
</span>Enjoying Block Dive?</p><p class="dsub">Tips fund the next game.</p><p class="drow"><span class="addr">bc1q3ahp09vdva46ggwfu32uepml39kk9jz02l7qyp</span><button type="button" class="cpy" onclick="bdCopy(this)">Copy</button></p></section>
    <section class="box">
      <p class="eyebrow">Links</p>
      <ul class="links" id="links"></ul>
section class="box">
      <p class="eyebrow">Dive log</p>
      <div class="log">
        <div><b id="lS">0</b>species analysed</div>
        <div><b id="lP">0</b>plants catalogued</div>
        <div><b id="lB">0</b>bio stock</div>
        <div><b id="lH">0/8</b>cargo hold</div>
        <div><b id="lW">0</b>wrecks logged</div>
        <div><b id="lV">0</b>blocks visited</div>
        <div><b id="lR">0</b>sea heroes found</div>
        <div><b id="lU">1</b>subs in hangar</div>
        <div><b id="lG">0</b>rogues foM
        <div><b id="lX">0</b>relics found</div>
        <div><b id="lI">0</b>inscriptions caught</div>
      <p class="eyebrow" style="margin-top:14px">Caught inscriptions</p>
      <p class="hint" id="insH" style="margin:0">Grab fish carrying an inscription to keep it here. Tap one to view it.</p>
      <div id="insL"></div>
      <div class="ups" id="ups"></div>
      <p class="eyebrow" style="margin-top:14px">Sub hangar</p>
      <p class="hint" id="dockHint" style="margin:0 0 6px"></p>
    <p class="hint" style="margin:0 0 6px">Fuel, battery and oxygen stations are rarer: one of each every 1,050 blocks. Fuel: 105, 1155, 2205
 Battery: 455, 1505, 2555
 Oxygen: 805, 1855, 2905
      <div class="ups" id="subs"></div>
      <p class="hint">Pi blocks hold better subs, each with a new ability: 3 lights, 31 periscope and night vision (N), 314 boost (R) and station sonar, 3141 pulse (T), 31415 treasure radar, 314159 trait sight.</p>
      <p class="hint">Sea heroes rest on their birthday blockM
s: try 110610 for Jacques Cousteau or 241115 for Grace Darling.</p>
      <p class="hint" id="pirHint"></p>
  <div id="iv" hidden role="dialog" aria-modal="true" aria-label="Inscription viewer"><div class="in">
    <header><span id="ivT"></span><code id="ivI"></code><a id="ivO" target="_blank" rel="noopener" hidden>Open
</a><button type="button" id="ivX">Close</button></header>
    <div id="ivB"></div></div></div>
 <kbd>E</kbd>/<kbd>Space</kbd> rise
 <kbd>Q</kbd>/<kbd>Shift</kbd> dive
 <kbd>C</kbd> sonar
 <kbd>V</kbd> cockpit
 <kbd>H</kbd> floor porthole (in cockpit)
<kbd>P</kbd> periscope (turn to look around)
    Each block is a column of ocean; its seafloor, life and loot come from the block's data. <span id="modeNote"></span> Build size: <span id="kb"></span> of a 300 KB budget, three.js not included. <span id="err"></span>
// three.js r163 inscribed on Bitcoin (0d013b
6445i0) is published as an ES module. It is read as plain text and its closing
// list of public names becomes window.THREE, then it runs as an ordinary script, so the page itself uses no modules.
// The unpkg copy (same file) is only a fallback for testing off-chain.
// tap-to-copy for the donation address
window.bdCopy=b=>{const a='bc1q3ahp09vdva46ggwfu32uepml39kk9jz02l7qyp',t0=b.dataset.t||(b.dataset.t=b.textContent),done=()=>{b.textConteM
nt='Copied';setTimeout(()=>b.textContent=t0,1500)};
  (navigator.clipboard?navigator.clipboard.writeText(a):Promise.reject()).then(done).catch(()=>{const x=document.createElement('textarea');x.value=a;document.body.append(x);x.select();try{if(document.execCommand('copy'))done()}catch(e){}x.remove()})};
  const ID='0d013bb60fc5bf5a6c77da7371b07dc162ebc7d7f3af0ff3bd00ae5f0c546445i0',LIST=new RegExp('ex'+'port\\s*\\{([^}]*)\\}\\s*;?\\s*$');
  const run=(id,t)=>{const s=document.createElement('script');s.iM
d=id;s.textContent=t;document.body.appendChild(s)};
  const get=u=>fetch(u).then(r=>{if(!r.ok)throw Error(r.status);return r.text()});
  get('/content/'+ID).then(t=>[t,'chain']).catch(()=>get('https://unpkg.com/three@0.163.0/build/three.module.min.js').then(t=>[t,'unpkg.com']))
    .then(([t,src])=>{const m=t.match(LIST);if(!m)throw Error('three.js: no name list found');
      const names=m[1].split(',').map(p=>p.trim()).filter(Boolean).map(p=>{const[a,b]=p.split(/\s+as\s+/);return JSON.stringify(b||a)+':'+a}).joinM
      run('threeRun','(function(){"use strict";'+t.slice(0,m.index)+'\nwindow.THREE={'+names+'}})();');if(window.THREE)window.BD_THREE_SRC=src})
    .catch(e=>console.warn(e))
    .finally(()=>{const go=()=>run('gameRun',document.getElementById('game').textContent);document.readyState==='loading'?document.addEventListener('DOMContentLoaded',go):go()});
<script type="text/plain" id="game">
const $=s=>document.querySelector(s);
if(!window.THREE){$('#err').textContent='3D engine faM
iled to load. Reload the page to try again.';try{const h=$('#h'),x=h.getContext('2d');x.fillStyle='#060814';x.fillRect(0,0,h.width,h.height);x.fillStyle='#3cf0ff';x.textAlign='center';x.font='bold '+(h.width/16|0)+'px Silkscreen, monospace';x.fillText('BLOCK DIVE',h.width/2,h.height*.45);x.fillStyle='#7f8cb8';x.font=(h.width/32|0)+'px Silkscreen, monospace';x.fillText('3D ENGINE NOT LOADED',h.width/2,h.height*.6)}catch(e){}throw new Error('no three')}
THREE.ColorManagement.enabled=false; // r163 converts colours byM
 default; r128 did not
const W=320,H=224,SC32=2,B=64,G=16,UM=4; // block size in world units; 1 unit = 4 m
const clamp=(v,a,b)=>v<a?a:v>b?b:v,lerp=(a,b,t)=>a+(b-a)*t;
const q=v=>Math.round(clamp(v,0,255));
const hex=(r,g,b)=>'#'+[r,g,b].map(v=>q(v).toString(16).padStart(2,'0')).join('');
const HX={};const rgbA=h=>HX[h]||(HX[h]=(n=>[n>>16,n>>8&255,n&255])(parseInt(h.slice(1),16)));
const rgba=(h,a)=>{const c=rgbA(h);return`rgba(${c[0]},${c[1]},${c[2]},${a})`};
const shade=(h,k)=>{const c=rgbA(h);return hex(c[0]*k,c[M
// halving eras tint the flora: era 1 (Satoshi) faded like old film, eras 2-4 brightening to today's reef, then each later era steps round the colour wheel with a little more neon
const ET={},eraTint=(h,e)=>{if(e===4)return h;const k=h+e;if(ET[k])return ET[k];const c=new THREE.Color(h),o={};c.getHSL(o);
  if(e===0){o.h+=(.12-o.h)*.3;o.s*=.4;o.l*=.9}else if(e<4)o.s*=.7+e*.1;else{o.h=(o.h+(e-4)*.06)%1;o.s=Math.min(1,o.s*1.1);o.l=Math.min(.72,o.l*1.05)}
  c.setHSL(o.h,o.s,o.l);return ET[k]=hex(c.r*255,cM
function mulberry(a){return()=>{a|=0;a=a+0x6D2B79F5|0;let t=Math.imul(a^a>>>15,1|a);t=t+Math.imul(t^t>>>7,61|t)^t;return((t^t>>>14)>>>0)/4294967296}}
function hstr(s){let h=2166136261;for(let i=0;i<s.length;i++){h^=s.charCodeAt(i);h=Math.imul(h,16777619)}return h>>>0}
function h2(a,b,c){let h=Math.imul(a|0,374761393)+Math.imul(b|0,668265263)+Math.imul(c|0,-2048144777);h=Math.imul(h^h>>>13,1274126177);return((h^h>>>16)>>>0)/4294967296}
function stops(S,m){let i=0;while(i<S.length-2&&m>S[i+1][0])i++M
;const a=S[i],b=S[i+1],t=clamp((m-a[0])/(b[0]-a[0]),0,1);return[lerp(a[1],b[1],t),lerp(a[2],b[2],t),lerp(a[3],b[3],t)]}
const WATER=[[0,46,170,214],[60,22,112,170],[200,10,62,120],[500,6,30,78],[1000,3,12,40],[1800,6,3,22],[4000,8,0,16]];
const NEON=['#ff24b6','#24ffff','#b6ff24','#ff6d24','#b624ff','#ffff49','#24ff92','#ff2449','#6db6ff','#ff92ff'];
const REEF=['#ffb624','#ff6d49','#49b6ff','#ffff6d','#b6b6b6','#6dda92','#ff9292','#dadada'];
const zoneOf=m=>m<200?0:m<1000?1:2,ZN=['SUNLIT ZONE','TWILIGHT ZONE','MIDM
const DM=y=>Math.max(0,-y*UM);
// ---------- block spiral: square rings on the seabed plane, genesis at the centre ----------
function spiralH(x,z){const k=Math.max(Math.abs(x),Math.abs(z));if(!k)return 0;const b=(2*k-1)**2;
  if(x===k&&z>-k)return b+z+k-1;if(z===k)return b+2*k+(k-1-x);if(x===-k)return b+4*k+(k-1-z);return b+6*k+(x+k-1)}
function spiralXY(h){if(h<=0)return[0,0];let k=Math.ceil((Math.sqrt(h+1)-1)/2);while((2*k-1)**2>h)k--;while((2*k+1)**2<=h)k++;
  const i=h-(2*k-1)**2,s=Math.floor(i/M
(2*k)),j=i%(2*k);return s===0?[k,-k+1+j]:s===1?[k-1-j,k]:s===2?[-k,k-1-j]:[-k+1+j,-k]}
let TIP=Math.floor(840000+(Date.now()-Date.UTC(2024,3,20))/6e5)-6,LIVE=false;
// ---------- block data ----------
const GEN='000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f';
const POOLS=['Foundry USA','AntPool','ViaBTC','F2Pool','MARA Pool','SpiderPool','Binance Pool','Luxor','Braiins Pool','SECPOOL','OCEAN'];
const EARLY=['Slush','BTC Guild','Deepbit','Eligius','BitMinter'];
const MSGS=['gm from the deep','staM
y humble, stack sats','hello world','proof of work','tick tock next block','the ocean remembers','running bitcoin','we are all satoshi','low time preference'];
function rarity(h){return h===0?'MYTHIC':h%210000===0?'EPIC':h%2016===0?'RARE':'UNCOMMON'}
// ---------- block-number traits: permanent rarity read from the height itself ----------
const FIB=new Set();{let a=1,b2=2;while(b2<2e9){FIB.add(b2);[a,b2]=[b2,a+b2]}}
const isPrime=n=>{if(n<2)return false;if(n%2===0)return n===2;for(let i=3;i*i<=n;i+=2)if(n%i===0)reM
turn false;return true};
const TR={mythic:['Genesis',5,'#ffdb24','#ffffff','#ffff92','the genesis block'],legend:['Legendary',5,'#ff24ff','#24ffff','#ffffff','a halving on a difficulty adjustment'],
  halving:['Halving',4,'#ff24b6','#ffdb24','#ff92ff','a halving block'],first:['First Light',4,'#92ffff','#ffffff','#24ffff','the first transaction'],pizza:['Pizza',4,'#ffb649','#ff2424','#ffdb24','the pizza block'],
  rep:['Echo',3,'#b6ff24','#24ff92','#dbff6d','a repdigit'],pow2:['Binary',3,'#24ff92','#246d49','#92ffbM
6','a power of two'],fib:['Nautilus',3,'#ffb624','#ff6d24','#ffdb49','a Fibonacci number'],
  round:['Golden',3,'#ffdb24','#b66d00','#ffff6d','a round ten thousand'],seq:['Cascade',3,'#6db6ff','#b624ff','#92dbff','a counting sequence'],
  pal:['Mirror',2,'#dbffff','#6dffff','#ffffff','a palindrome'],adj:['Retarget',2,'#24ffff','#2449ff','#6dffff','a difficulty adjustment'],corner:['Cornerstone',2,'#ff9224','#ffdb24','#ffb649','a spiral ring corner'],
  pirate:['Pirate',3,'#ff2449','#dadacc','#ff6d6d','a pirate\'s lM
  hero:['Hero',3,'#ffb649','#b66d24','#ffdb92','a sea hero\'s birthday'],
  pi:['Pi',3,'#ffffff','#6dffff','#b6ffff','a run of pi digits'],
  mile:['Milestone',1,'#dadada','#ffdb24','#ffffff','a round thousand'],prime:['Prime',0,'#b624ff','#ff24ff','#d692ff','a prime number']};
// sea heroes: each hero's birth date, read as DDMMYY, is their memorial block
const HEROES=[['Jacques Cousteau','1910-06-11','co-invented the Aqua-Lung and filmed the deep for the world'],['Ernest Shackleton','1874-02-15','led the EnM
durance crew home across the Southern Ocean'],
  ['Horatio Nelson','1758-09-29','admiral of the Royal Navy, killed at Trafalgar'],['James Cook','1728-11-07','charted the Pacific on three great voyages'],['Grace Darling','1815-11-24','rowed out in a storm to rescue shipwreck survivors'],
  ['Charles Darwin','1809-02-12','sailed on HMS Beagle and changed how we see life'],['Herman Melville','1819-08-01','went to sea as a whaler, then wrote Moby-Dick'],['Jules Verne','1828-02-08','imagined the Nautilus and its voyage M
  ['Fridtjof Nansen','1861-10-10','drifted across the Arctic Ocean in the Fram'],['Roald Amundsen','1872-07-16','sailed the Northwest Passage and reached the South Pole'],['William Beebe','1877-07-29','dived half a mile down in the Bathysphere'],
  ['Otis Barton','1900-06-05','designed the Bathysphere'],['Auguste Piccard','1884-01-28','invented the bathyscaphe'],['Jacques Piccard','1922-07-28','reached the Challenger Deep in the Trieste'],
  ['Don Walsh','1931-11-02','piloted the Trieste to the deM
epest point on Earth'],['Rachel Carson','1907-05-27','wrote The Sea Around Us'],['Marie Tharp','1920-07-30','mapped the ocean floor and the Mid-Atlantic Ridge'],
  ['Eugenie Clark','1922-05-04','the Shark Lady, a pioneer of shark research'],['Hans Hass','1919-01-23','an early scuba diver and underwater filmmaker'],['John Philip Holland','1841-02-24','built the first submarine commissioned by the US Navy'],
  ['Simon Lake','1866-09-04','a pioneer of submarine design'],['Narc
s Monturiol','1819-09-28','built the IctM
neo, an early air-independent submarine'],['Isaac Peral','1851-06-01','built the Peral, an early electric submarine']];
// each hero's block holds a signature relic: [type, name, steel hull]
const RELIC={'Jacques Cousteau':['ship','Calypso',1],'Ernest Shackleton':['ship','Endurance'],'Horatio Nelson':['ship','Ship of the Line'],'James Cook':['ship','Endeavour'],'Grace Darling':['rowboat','The Coble'],
  'Charles Darwin':['ship','HMS Beagle'],'Herman Melville':['whale','The White Whale'],'Jules Verne':['sub','NautM
ilus'],'Fridtjof Nansen':['ship','Fram'],'Roald Amundsen':['ship','Gj
  'William Beebe':['sphere','Bathysphere'],'Otis Barton':['sphere','Bathysphere'],'Auguste Piccard':['trieste','Bathyscaphe FNRS-2'],'Jacques Piccard':['trieste','Trieste'],'Don Walsh':['trieste','Trieste'],
  'Rachel Carson':['reef','The Sea Around Us'],'Marie Tharp':['ridge',"Tharp's Ridge"],'Eugenie Clark':['shark','The Shark Lady'],'Hans Hass':['ship','Xarifa'],'John Philip Holland':['sub','Holland VI'],
  'Simon Lake':['sub','Argonaut'M
s Monturiol':['sub','Ict
neo'],'Isaac Peral':['sub','Peral']};
const HERO=new Map(HEROES.map(([n,d,w])=>{const[y,m,dd]=d.split('-');return[+(dd+m+y.slice(2)),{name:n,date:d,why:w}]}));
// pirates: birth dates are unknown, so each sits on the midpoint of their pirate years, read as DDMMYY
const PIRATES=[['Henry Morgan','Morgan',1663,1671,'a Welsh buccaneer who raided Spanish ports, Panama among them'],['William Kidd','Kidd',1696,1699,'a privateer turned pirate, rumoured to have buried his treasure'],
amuel Bellamy','Black Sam',1715,1717,'captained the Whydah, which sank full of plunder'],['Edward Teach','Blackbeard',1716,1718,'sailed the Queen Anne\'s Revenge and terrorised the Carolinas'],
  ['Charles Vane','Vane',1716,1719,'a ruthless captain who refused the royal pardon'],['Stede Bonnet','Gentleman',1717,1718,'a wealthy landowner who bought his own pirate ship'],
  ['John Rackham','Calico Jack',1718,1720,'flew the skull over crossed swords'],['Anne Bonny','Bonny',1718,1720,'one of the few women pirates, sailM
ing with Calico Jack'],
  ['Mary Read','Read',1718,1720,'fought disguised as a man, alongside Anne Bonny'],['Bartholomew Roberts','Black Bart',1719,1722,'took hundreds of ships in under four years'],
  ['Grace O\'Malley','Pirate Queen',1560,1603,'the Irish pirate queen of Clew Bay'],['Ching Shih','Red Flag',1801,1810,'commanded the Red Flag Fleet in the South China Sea']];
const PIRATE=new Map();for(const[n,nick,y1,y2,w]of PIRATES){let t=(Date.UTC(y1,0,1)+Date.UTC(y2,11,31))/2,h;
  for(;;){const d=new Date(t);h=+(SM
tring(d.getUTCDate()).padStart(2,'0')+String(d.getUTCMonth()+1).padStart(2,'0')+String(d.getUTCFullYear()).slice(2));if(!PIRATE.has(h)&&!HERO.has(h))break;t+=864e5}
  PIRATE.set(h,{name:n,nick,y1,y2,why:w})}
const TRC=new Map();
function traits(h){if(TRC.has(h))return TRC.get(h);const s=String(h),t=[],A=k=>t.push({k,name:TR[k][0],tier:TR[k][1],p:TR[k].slice(2,5),why:TR[k][5]});
  if(h===0)A('mythic');if(h&&h%1260000===0)A('legend');if(h&&h%210000===0)A('halving');if(h===170)A('first');if(h===57043)A('pizza');
s.length>2&&/^(\d)\1+$/.test(s))A('rep');if(h>4&&(h&(h-1))===0)A('pow2');if(h>20&&FIB.has(h))A('fib');if(h>=10000&&h%10000===0&&h%210000)A('round');
  if(s.length>=4&&('0123456789'.includes(s)||'9876543210'.includes(s)))A('seq');if(s.length>2&&s===[...s].reverse().join(''))A('pal');if(h&&h%2016===0)A('adj');
  const sq=Math.sqrt(h);if(h>1&&sq%1===0&&sq%2===1)A('corner');if(h>=1000&&h%1000===0&&h%10000)A('mile');if(isPrime(h))A('prime');const pr=PIRATE.get(h);if(pr){A('pirate');const t1=t[t.length-1];t1.name=pr.nickM
;t1.why=pr.name+'\'s lair'}const hr=HERO.get(h);if(hr){A('hero');const t1=t[t.length-1];t1.name=hr.name.split(' ').pop();t1.why='birthday of '+hr.name}const pl=piLv(h);if(pl){A('pi');const t1=t[t.length-1];t1.tier=[0,2,2,3,4,4,5,5][pl];t1.why='the first '+pl+' digit'+(pl>1?'s':'')+' of pi'}
  t.sort((a,b)=>b.tier-a.tier);TRC.set(h,t);return t}
  const r=mulberry(Math.imul(h,2654435761)^0x5bd1e995);let hash;
  if(h===0)hash=GEN;else{hash='0'.repeat(Math.min(20,8+(Math.log2(h+2)*.6|0)));while(hash.M
length<64)hash+=(r()*16|0).toString(16)}
  const era=Math.floor(h/210000);
  const tx=h===0?1:h<60000?1+(r()*r()*6|0):h<250000?20+(r()*r()*900|0):900+(r()*3200|0);
  const fee=h<60000?0:+(r()*r()*(h>700000?.9:.25)).toFixed(4);
  let pool='',msg='';
  if(h===0){pool='Satoshi';msg='The Times 03/Jan/2009 Chancellor on brink of second bailout for banks'}
  else if(h<130000)pool=r()<.7?'':EARLY[r()*EARLY.length|0];
  else pool=r()<.02?'solo miner':POOLS[Math.pow(r(),1.6)*POOLS.length|0];
  if(!msg){if(r()<.07)msg=MSGS[rM
()*MSGS.length|0];else if(pool)msg='/'+pool+'/'}
  const special=h===170?'first transaction':h===57043?'pizza block':h&&h%210000===0?'halving':h&&h%2016===0?'difficulty adjustment':'';
  return{h,hash,tx,fee,sub:50/2**era,era,pool,msg,custom:!!msg&&msg[0]!=='/',time:1231006505+h*600,big:h===0||r()<.06,special,feed:'Simulated'}
// ---------- block contents: the coinbase from /r/block, read from the first few hundred bytes only ----------
// /r/block returns the whole block as hex (megabytes), so the stream is cut M
off once the coinbase input has arrived
const CB_TAGS=[[/foundry/i,'Foundry USA'],[/antpool/i,'AntPool'],[/viabtc/i,'ViaBTC'],[/f2pool|
/i,'F2Pool'],[/\bmara\b/i,'MARA Pool'],[/spiderpool/i,'SpiderPool'],
  [/binance/i,'Binance Pool'],[/luxor/i,'Luxor'],[/braiins/i,'Braiins Pool'],[/\/slush\//i,'Slush'],[/secpool/i,'SECPOOL'],[/ocean\.xyz|\bocean\b/i,'OCEAN'],[/btc\.com|btcom/i,'BTC.com'],
  [/poolin/i,'Poolin'],[/sbi ?crypto/i,'SBI Crypto'],[/\bemcd\b/i,'EMCD'],[/ultimus/i,'ULTIMUSPOOL'],[/whitepool/M
i,'WhitePool'],[/ghash/i,'GHash.IO'],[/btc ?guild/i,'BTC Guild'],
  [/eligius/i,'Eligius'],[/bitminter/i,'BitMinter'],[/deepbit/i,'Deepbit'],[/kano/i,'KanoPool'],[/bitfury/i,'BitFury'],[/huobi/i,'Huobi Pool'],[/okex|okpool|okkong/i,'OKExPool'],
  [/bw\.com|bw pool/i,'BW Pool'],[/btc\.top/i,'BTC.TOP'],[/bitclub/i,'BitClub'],[/nicehash/i,'NiceHash'],[/titan/i,'Titan'],[/lubian/i,'Lubian.com'],[/novablock/i,'NovaBlock'],
  [/ckpool|solo\.ck/i,'solo miner']];
// block hex -> coinbase input script bytes: header (80), txM
 count, tx version, segwit marker, input count, prevout (36), script
function cbScript(hex){const B=new Uint8Array(hex.length>>1);for(let i=0;i<B.length;i++)B[i]=parseInt(hex.substr(i*2,2),16);
  let p=80;const vi=()=>{const f=B[p++];if(f<253)return f;const n=f===253?2:f===254?4:8;let v=0;for(let i=0;i<n;i++)v+=B[p++]*2**(8*i);return v};
  vi();p+=4;if(B[p]===0&&B[p+1]===1)p+=2;if(vi()<1)throw Error('no inputs');p+=36;const n=vi();if(n>100||p+n>B.length)throw Error('short read');return B.slice(p,p+n)}
es -> readable text runs and the pool tag; the BIP34 height push is skipped, push-length bytes are trimmed off the front of a run
function cbRead(s,h){let i=0;if(h>=227931&&s[0]>=1&&s[0]<=8)i=1+s[0];
  s=s.slice();for(let k=0;k+4<=s.length;k++)if(s[k]===0xfa&&s[k+1]===0xbe&&s[k+2]===0x6d&&s[k+3]===0x6d)s.fill(0,k,k+44); // merged-mining commitment, not text
  const dec=new TextDecoder(),runs=[];
  while(i<s.length){if(s[i]<32||s[i]===127){i++;continue}let j=i;while(j<s.length&&s[j]>=32&&s[j]!==127)j++;
s[i]<=75&&s[i]===j-i-1?i+1:i;
    // pool tags sit between slashes, often with a few stray extranonce bytes either side ("8Zc/BTC.COM/", "/F2Pool/f")
    for(let t of dec.decode(s.slice(a,j)).split('\uFFFD')){t=t.trim().replace(/^[^\s\/]{1,4}(?=\/)/,'').replace(/(\/)[^\s\/]{1,2}$/,'$1').replace(/[^\p{L}\p{N}\/)\].!?"']+$/u,'');
      if(t.length>=5&&(t.match(/\p{L}/gu)||[]).length>=4&&!/^\/?P2SH\/?$/.test(t))runs.push(t)}i=j}
  const msg=runs.join('
 ').replace(/\s+/g,' ').slice(0,90)||null,tag=msg&&CB_TAGS.find(M
([re])=>re.test(msg));
  return{pool:tag?(tag[1]==='Slush'&&h>=740000?'Braiins Pool':tag[1]):null,msg}}   // Slush Pool still tags "/slush/" but has been Braiins Pool since 2022
const CBC=new Map();try{for(const[h,p,m]of JSON.parse(localStorage.getItem('bd_cb')||'[]'))CBC.set(h,{pool:p,msg:m})}catch(e){}
const cbSave=()=>{try{localStorage.setItem('bd_cb',JSON.stringify([...CBC].slice(-500).map(([h,v])=>[h,v.pool,v.msg])))}catch(e){}};
// some hosts take 8-10 s to start answering /r/block, so reads go two at a time,M
 nearest block first,
// and queued reads for blocks you have since left behind are dropped
const CB_SLOTS=2;let cbAct=0;const cbQ=[];
const cbDist=h=>{const[x,z]=spiralXY(h);return Math.max(Math.abs(x-Math.floor(sub.p.x/B)),Math.abs(z-Math.floor(sub.p.z/B)))};
const cbSlot=h=>cbAct<CB_SLOTS?(cbAct++,Promise.resolve(true)):new Promise(go=>cbQ.push({h,go}));
const cbFree=()=>{for(let i=cbQ.length-1;i>=0;i--)if(cbDist(cbQ[i].h)>3)cbQ.splice(i,1)[0].go(false);
  if(!cbQ.length){cbAct--;return}let b=0;for(let i=1;i<cbQM
.length;i++)if(cbDist(cbQ[i].h)<cbDist(cbQ[b].h))b=i;cbQ.splice(b,1)[0].go(true)};
const CBA=new Map();   // reads in flight, so a jump can cancel the ones for blocks left behind
const cbDrop=()=>{for(const[h,ctl]of CBA)if(cbDist(h)>3){ctl.left=1;ctl.abort()}};
async function cbFetch(h){const ctl=new AbortController(),to=setTimeout(()=>ctl.abort(),25000);CBA.set(h,ctl);
  try{const r=await fetch('/r/block/'+h,{signal:ctl.signal});if(!r.ok)throw Error('error '+r.status);let s='';
    if(r.body){const rd=r.body.getReM
ader(),dec=new TextDecoder();while(s.length<1400){const{done,value}=await rd.read();if(done)break;s+=dec.decode(value,{stream:true})}rd.cancel().catch(()=>{})}else s=(await r.text()).slice(0,1400);
    const hx=s.replace(/^\s*"/,'').match(/^[0-9a-f]+/i);if(!hx||hx[0].length<200)throw Error('not block hex');return cbRead(cbScript(hx[0]),h)}
  catch(e){if(ctl.left)e.left=1;throw e}
  finally{clearTimeout(to);ctl.abort();CBA.delete(h)}}
// never throws: a block whose coinbase can't be read just keeps an unknown pool. M
A read already under way is shared,
// so a block rebuilt by a jump gets the same answer instead of queueing a second slow read
const CBP=new Map();
function coinbase(h){if(CBP.has(h))return CBP.get(h);const p=coinbase0(h).finally(()=>CBP.delete(h));CBP.set(h,p);return p}
async function coinbase0(h){if(CBC.has(h)){const v=CBC.get(h);cbNote='coinbase of #'+h+': '+(v.pool||'no pool tag')+' (saved)';blkLk(scanBusy?'wait':'ok');return v}if(!await cbSlot(h))return null;   // dropped: you swam away before its turn
const v=await cbFetch(h);CBC.set(h,v);cbSave();cbNote='coinbase of #'+h+': '+(v.pool||'no pool tag');blkLk(scanBusy?'wait':'ok');return v}
  catch(e){if(!e.left){cbNote=(e.name==='AbortError'?'timed out':e.message)+' reading coinbase of #'+h;blkLk('bad')}return null}finally{cbFree()}}
// ---------- block scan: the whole block from /r/block, read for metaprotocol activity ----------
// a full block can be several MB, so only the block you are in is scanned; the summary is cached in this browser
const HXV=new Uint8ArM
ray(128);[...'0123456789abcdef'].forEach((ch,i)=>{HXV[ch.charCodeAt(0)]=i;HXV[ch.toUpperCase().charCodeAt(0)]=i});
const unhex=s=>{const n=s.length>>1,B=new Uint8Array(n);for(let i=0,j=0;i<n;i++,j+=2)B[i]=HXV[s.charCodeAt(j)]<<4|HXV[s.charCodeAt(j+1)];return B};
const L1=new TextDecoder('latin1'),U8=new TextDecoder();
const cat=a=>{const o=new Uint8Array(a.reduce((n,x)=>n+x.length,0));let k=0;for(const x of a){o.set(x,k);k+=x.length}return o};
// script pushes as [opcode, data]; OP_0 pushes empty data, other opcodeM
s have none; stops at a push that runs off the end
function pushes(s,a,b){const o=[];let i=a;while(i<b){const op=s[i++];let n=op===0?0:-1;if(op>=1&&op<=75)n=op;else if(op===76)n=s[i++];else if(op===77){n=s[i]|s[i+1]<<8;i+=2}else if(op===78){n=(s[i]|s[i+1]<<8|s[i+2]<<16|s[i+3]<<24)>>>0;i+=4}
  if(n<0){o.push([op,null]);continue}if(i+n>b)break;o.push([op,s.subarray(i,i+n)]);i+=n}return o}
// runestones: LEB128 integers in tag/value pairs (2 flags, 3 spacers, 4 rune name, 20 mint, 16383 Alkanes protostones)
unestone(s){const pay=cat(pushes(s,2,s.length).filter(p=>p[1]).map(p=>p[1])),ints=[];let i=0;
  while(i<pay.length){let v=0n,sh=0n,c;do{c=pay[i++];v|=BigInt(c&127)<<sh;sh+=7n}while(c&128&&i<pay.length);ints.push(v)}
  const F={};for(let k=0;k+1<ints.length;k+=2){const t=Number(ints[k]);if(!t)break;(F[t]=F[t]||[]).push(ints[k+1])}return F}
function runeName(n,sp){n+=1n;let s='';while(n>0n){s=String.fromCharCode(65+Number((n-1n)%26n))+s;n=(n-1n)/26n}
  if(!sp)return s;let o='';for(let i=0;i<s.length;i++){o+=s[i];if(iM
<s.length-1&&(sp>>BigInt(i))&1n)o+='
// Counterparty and Stamps hide their data with ARC4, keyed on the txid of the transaction's first input
function arc4(key,d){const S=new Uint8Array(256).map((_,i)=>i);for(let i=0,j=0;i<256;i++){j=(j+S[i]+key[i%key.length])&255;[S[i],S[j]]=[S[j],S[i]]}
  const o=new Uint8Array(d.length);for(let k=0,i=0,j=0;k<d.length;k++){i=(i+1)&255;j=(j+S[i])&255;[S[i],S[j]]=[S[j],S[i]];o[k]=d[k]^S[(S[i]+S[j])&255]}return o}
function cpKind(key,chunks){const t=L1.decode(arc4(key,M
cat(chunks)))+(chunks.length>1?'\n'+L1.decode(cat(chunks.map(c=>arc4(key,c)))):'');return/stamp:/i.test(t)?'stamps':t.includes('CNTRPRTY')?'counterparty':null}
async function txidOf(B,t){const u=cat([B.subarray(t.a,t.a+4),B.subarray(t.s,t.e),B.subarray(t.z-4,t.z)]),d=await crypto.subtle.digest('SHA-256',await crypto.subtle.digest('SHA-256',u));
  return[...new Uint8Array(d)].reverse().map(x=>x.toString(16).padStart(2,'0')).join('')}
function scanBytes(B,h){let p=80;const vi=()=>{const f=B[p++];if(f<253)return f;conM
st n=f===253?2:f===254?4:8;let v=0;for(let i=0;i<n;i++)v+=B[p++]*2**(8*i);return v};
  const ntx=vi(),R={v:1,h,kb:B.length/1024|0,txs:ntx,n:{},ct:{},ins:[],etch:[],ticks:[],tticks:[],maps:[],atom:[]},N=R.n,inc=(k,d=1)=>N[k]=(N[k]||0)+d,pick=[],per={};
  // keep a few inscriptions per protocol and 16 viewable others; content-less envelopes (rune commitments) and binary blobs are skipped
  const keep=(e,t)=>{const q=e.k?(per[e.k]=(per[e.k]||0)+1)<=3:/html/.test(e.type)?R.ins.filter(x=>/html/.test(x.type)).length<8:/^M
(image|text|audio|video)\/|json|svg/.test(e.type)&&R.ins.filter(x=>!x.k&&!/html/.test(x.type)).length<14;if(q&&R.ins.length<30){R.ins.push(e);t.picked=1}};
  for(let t=0;t<ntx&&p<B.length;t++){const T={a:p};p+=4;let sw=0;if(B[p]===0&&B[p+1]===1){sw=1;p+=2}T.s=p;
    const nin=vi(),key=B.slice(p,p+32).reverse();for(let i=0;i<nin;i++){p+=36;const l=vi();p+=l+4}
    const nout=vi();let ms=null;
    for(let i=0;i<nout;i++){p+=8;const l=vi(),q=p;p+=l;if(!t)continue;
      if(B[q]===0x6a&&B[q+1]===0x5d){const F=runestoneM
(B.subarray(q,p));inc('runes');
        if(F[2]&&F[2][0]&1n){inc('etch');if(F[4]&&R.etch.length<8)R.etch.push(runeName(F[4][0],F[3]&&F[3][0]))}if(F[20])inc('mint');if(F[16383])inc('alkanes')}
      else if(B[q]===0x6a&&l>8){const k=cpKind(key,[cat(pushes(B,q+1,p).filter(x=>x[1]).map(x=>x[1]))]);if(k)inc(k)}
      else if(l>=105&&B[p-1]===0xae&&B[q]>=0x51&&B[q]<=0x53){const P=pushes(B,q+1,p-2);for(let k=0;k<P.length-1;k++)if(P[k][1]&&P[k][1].length===33)(ms=ms||[]).push(P[k][1].subarray(1,32))}}
    if(ms){const k=cM
pKind(key,ms);if(k)inc(k)}
    T.e=p;let idx=0;const mine=[];
    if(sw)for(let i=0;i<nin;i++){const ni=vi(),w=[];for(let k=0;k<ni;k++){const l=vi();w.push([p,p+l]);p+=l}
      if(!t)continue;if(w.length>=2&&B[w[w.length-1][0]]===0x50)w.pop();if(w.length<2)continue;const[sa,sb]=w[w.length-2];
      let has=0;for(let k=sa;k+4<sb;k++)if(B[k]===0&&B[k+1]===0x63&&(B[k+2]===3&&B[k+3]===0x6f||B[k+2]===4&&B[k+3]===0x61)){has=1;break}if(!has)continue;
      const P=pushes(B,sa,sb);
      for(let k=0;k+2<P.length;k++){if(P[M
k][0]!==0||P[k+1][0]!==0x63||!P[k+2][1])continue;const tag=L1.decode(P[k+2][1]);
        if(tag==='atom'){inc('atomicals');const op=P[k+3]&&P[k+3][1]&&L1.decode(P[k+3][1]);if(op&&/^[a-z]{1,4}$/.test(op)&&!R.atom.includes(op))R.atom.push(op);continue}
        if(tag!=='ord')continue;
        let j=k+3,ct='',enc=0,pn=0;const body=[];
        while(j<P.length&&P[j][0]!==0x68){const[op,d]=P[j];if(op===0){for(j++;j<P.length&&P[j][0]!==0x68;j++)if(P[j][1])body.push(P[j][1]);break}
          const tg=d&&d.length===1?d[0]:M
op>=0x51&&op<=0x60?(pn=1,op-0x50):-1,v=P[j+1]&&P[j+1][1];if(tg===1&&v)ct=U8.decode(v).slice(0,60);else if(tg===9)enc=1;j+=2}
        k=j;inc('insc');if(h<824544&&(i>0||idx>0||pn))inc('cursed');
        const ty=ct.split(';')[0]||'unknown',grp=/^image\//.test(ty)?'image':/html/.test(ty)?'html':/json/.test(ty)?'json':/^text\//.test(ty)?'text':/^(audio|video)\//.test(ty)?'media':'other';R.ct[grp]=(R.ct[grp]||0)+1;
        const e={i:idx++,type:ty,k:null,lab:''},bl=body.reduce((n,x)=>n+x.length,0);
        if(!enc&&bl&M
&bl<=700){const txt=U8.decode(cat(body)).trim(),bm=txt.match(/^(\d{1,7})\.bitmap$/);
          if(bm){inc('bitmap');e.k='bitmap';e.lab=bm[1];if(R.maps.length<8&&!R.maps.includes(+bm[1]))R.maps.push(+bm[1])}
          else if(txt[0]==='{')try{const j2=JSON.parse(txt),pr=String(j2.p||'').toLowerCase(),tk=String(j2.tick||'').slice(0,16);
            if(pr==='brc-20'){inc('brc20');e.k='brc20';e.lab=tk;if(tk&&!R.ticks.includes(tk.toLowerCase())&&R.ticks.length<8)R.ticks.push(tk.toLowerCase())}
            else if(pr==='M
tap'){inc('tap');e.k='tap';e.lab=tk;if(j2.op==='dmt-mint')inc('dmt');if(tk&&!R.tticks.includes(tk.toLowerCase())&&R.tticks.length<8)R.tticks.push(tk.toLowerCase())}}catch(_){}}
        keep(e,T);if(R.ins.includes(e))mine.push(e)}}
    p+=4;T.z=p;if(mine.length)pick.push([T,mine])}
const SCN=new Map();try{for(const s of JSON.parse(localStorage.getItem('bd_scan')||'[]'))if(s&&s.v===1)SCN.set(s.h,s)}catch(e){}
const scnSave=()=>{try{localStorage.setItem('bd_scan',JSON.stringify([...SCN.values()].slicM
e(-100)))}catch(e){}};
// a block whose scan is already saved also has its coinbase, so the slow /r/block read is skipped
for(const s of SCN.values())if(s.cbv&&!CBC.has(s.h))CBC.set(s.h,s.cbv);
async function scanBlock(h){if(SCN.has(h))return SCN.get(h);
  const r=await fetch('/r/block/'+h);if(!r.ok)throw Error('error '+r.status);let s=(await r.text()).trim();if(s[0]==='"')s=s.slice(1,-1);
  if(!/^[0-9a-f]{160}/i.test(s))throw Error('not block hex');let cbv=null;try{cbv=cbRead(cbScript(s.slice(0,1400)),h)}catch(e){M
}const B=unhex(s);s=null;
  const{R,pick}=scanBytes(B,h);
  // inscription ids are the reveal txid plus the envelope's index; txids need SHA-256, which the browser has on https
  if(window.crypto&&crypto.subtle)for(const[T,es]of pick){try{const id=await txidOf(B,T);for(const e of es)e.id=id+'i'+e.i}catch(e){break}}
  R.ins=R.ins.filter(e=>e.id).map(e=>({id:e.id,type:e.type,k:e.k,lab:e.lab}));R.cbv=cbv;   // the scan has the whole block, so it carries the coinbase too
  SCN.set(h,R);scnSave();return R}
insc:'inscriptions',cursed:'cursed',brc20:'BRC-20',tap:'TAP',bitmap:'bitmaps',atomicals:'Atomicals',runes:'runestones',etch:'rune etchings',alkanes:'Alkanes',counterparty:'Counterparty',stamps:'Stamps'};
const scanTxt=S=>{const o=Object.keys(SCLAB).filter(k=>S.n[k]).map(k=>S.n[k].toLocaleString('en-GB')+' '+SCLAB[k]);return o.length?o.join('
 '):'no protocol activity'};
let cbNote='',scNote='';const blkLk=s=>lk('block',s,[cbNote,scNote].filter(Boolean).join('
function scanCur(c){const b=c.M
b;if(!b||!b.live||b.scan||scanBusy||(c.scanT||0)>Date.now())return;scanBusy=1;scNote='scanning block #'+b.h+'
';blkLk('wait');const t0=performance.now();
  scanBlock(b.h).then(S=>{b.scan=S;if(!b.cb&&S.cbv){if(!CBC.has(b.h)){CBC.set(b.h,S.cbv);cbSave()}cbApply(b,S.cbv,synth(b.h).msg)}scNote='scanned #'+b.h+' ('+(S.kb/1024).toFixed(1)+' MB, '+((performance.now()-t0)/1000).toFixed(1)+' s)';blkLk('ok');
    if(c.addProto)c.addProto(S);upd();const top=Object.keys(SCLAB).filter(k=>S.n[k]&&k!=='cursed'&&k!=='etch').sortM
((x,y)=>S.n[y]-S.n[x]).slice(0,2);
    toast('BLOCK SCANNED'+(top.length?'
 '+top.map(k=>S.n[k]+' '+SCLAB[k]).join('
 ').toUpperCase():'
   .catch(e=>{c.scanT=Date.now()+8000;scNote='scan of #'+b.h+' failed ('+e.message+')
 retrying';blkLk('bad')}).finally(()=>scanBusy=0)}
// ordinal theory: the block's first sat (always uncommon) is the number of sats mined before it
const firstSat=h=>{let n=h,t=0,s=5e9;while(n>0){const k=Math.min(n,210000);t+=k*s;n-=k;s=Math.floor(s/2)}return t};
function loadBlock(h){
  // live: real data or nothing - a failed fetch throws and the block retries, so a block never gets made-up data
  // the coinbase gets a short head start; a slow /r/block never holds the block up - pool and message fill in when they arrive
  if(LIVE){const cbP=coinbase(h);const r=await fetch('/r/blockinfo/'+h).catch(e=>{lk('info','bad','no answer
 retrying');throw e});if(!r.ok){lk('info','bad','error '+r.status+' for block #'+h+'
 retrying');throw Error('blockinfo '+h+' '+r.status)}consM
t j=await r.json(),s=synth(h);
    const cb=await Promise.race([cbP,new Promise(r2=>setTimeout(()=>r2(undefined),CBC.has(h)?0:1200))]);
    lk('info','ok','working
 last read block #'+h);
    const b=Object.assign(s,{hash:j.hash,tx:j.transaction_count,fee:(j.total_fee||0)/1e8,time:j.timestamp,big:(j.max_tx_size||0)>90000,scan:SCN.get(h)||null,live:true,feed:'Live /r/blockinfo'});
    cbApply(b,cb,s.msg);if(cb===undefined)cbP.then(v=>{cbApply(b,v,s.msg);upd()});return b}
function cbApply(b,cb,gM
msg){const h=b.h;b.pool=cb&&cb.pool||(h===0?'Satoshi':null);b.msg=cb&&cb.msg||(h===0?gmsg:null);b.custom=h===0||!!(cb&&cb.msg&&!cb.pool);b.cb=!!cb;b.feed='Live /r/blockinfo'+(cb?' + /r/block':'')}
// ---------- seafloor: block corners are shared, so neighbouring columns meet without seams ----------
// islands lift the seafloor corners they share with their neighbours into a shallow bank, so the island rises from a broad slope, not a pillar
// nine deep trenches: one corner of every 100,000th block is pushed down M
by about 1,500 ft (114 units, 456 m) below its surroundings
const TRCH=new Map();for(let k=1;k<=9;k++){const[tx,tz]=spiralXY(k*100000);TRCH.set((tx+1)+','+(tz+1),k*100000)}
// the corners of block 123456 are levelled to one depth (205 units, 820 m) so the hidden channel cuts a flat plateau
// (and block 1,000,000, so the great octopus rests on level ground at 230 units, 920 m)
const LEVEL=new Map();for(const[h,dd]of[[123456,205],[1000000,230]]){const[tx,tz]=spiralXY(h);for(const[a,b]of[[0,0],[1,0],[0,1],[1,1]])LEVEM
L.set((tx+a)+','+(tz+b),dd)}
const CDC=new Map();function cornerD(ix,iz){const k=ix+','+iz;let d=CDC.get(k);if(d!==undefined)return d;d=LEVEL.has(k)?LEVEL.get(k):cornerD0(ix,iz)+(TRCH.has(k)?114:0);
  for(let bz=iz-1;bz<=iz;bz++)for(let bx=ix-1;bx<=ix;bx++)if(isIsle(spiralH(bx,bz))){d=Math.min(d,26+h2(ix,iz,79)*10);break}
  if(CDC.size>60000)CDC.clear();CDC.set(k,d);return d}
function cornerD0(ix,iz){const r=Math.max(Math.abs(ix),Math.abs(iz)),n=h2(ix,iz,77)*.7+h2(ix>>1,iz>>1,78)*.3;return 10+400*Math.pow(n,1.5)*clM
function vnoise(x,y,s){const ix=Math.floor(x),iy=Math.floor(y);let u=x-ix,v=y-iy;u=u*u*(3-2*u);v=v*v*(3-2*v);
  return lerp(lerp(h2(ix,iy,s),h2(ix+1,iy,s),u),lerp(h2(ix,iy+1,s),h2(ix+1,iy+1,s),u),v)}
// the hidden channel of block 123456: a long dead-end ditch down the middle, 8 units each side at the rim, 18 units deep
function canyonD(u,v){const dd=Math.abs(u-.5)*B,s=clamp((8-dd)/4,0,1),t=s*s*(3-2*s),a=clamp((v-.1)/.08,0,1),b=clamp((.88-v)/.06,0,1);return 18*t*a*a*(3-2*a)*b*b*(3-2*b)}
 interior(P,u,v){const w=Math.sin(Math.PI*u)*Math.sin(Math.PI*v);
  let a=(vnoise(u*6,v*6,P.seed)-.5)*2*P.rug+(vnoise(u*13,v*13,P.seed^7)-.5)*P.rug*.5;
  const c=.5+.22*Math.sin(v*Math.PI*P.f+P.ph),dt=Math.abs(u-c);if(P.tr)a+=P.tr*Math.max(0,1-dt/.13)**2;
  if(P.mt){const d=Math.hypot(u-P.mx,v-P.mz);a-=P.mt*Math.max(0,1-d/.32)**1.5}
  if(P.genesis){const rr=Math.hypot(u-.5,v-.5)*B;a=a*.3+55*Math.max(0,1-rr/20)**2-20*Math.exp(-(((rr-24)/5)**2))}
  if(P.octo){const rr=Math.hypot(u-.5,v-.5)*B;a*=clamp((rr-20)/14,0,1)}M
  if(P.isle){const rr=Math.hypot(u-.5,v-.5)*B,t=clamp((31-rr)/23,0,1),n=(vnoise(u*9,v*9,P.seed^31)-.5)*.12;a-=P.isle*clamp(t*t*(3-2*t)+n*t*(1-t),0,1)/Math.max(w,.05)}
  return a*w+(P.canyon?canyonD(u,v):0)}
function floorY(x,z){const cx=Math.floor(x/B),cz=Math.floor(z/B),u=x/B-cx,v=z/B-cz,su=u*u*(3-2*u),sv=v*v*(3-2*v);
  const d=lerp(lerp(cornerD(cx,cz),cornerD(cx+1,cz),su),lerp(cornerD(cx,cz+1),cornerD(cx+1,cz+1),su),sv);
  const ch=chunks.get(ck(cx,cz)),gd=((vnoise(x/22,z/22,911)-.5)*9+(vnoise(x/8,z/8,912)-.5)*2M
.5)*(ch&&ch.P&&ch.P.octo?clamp((Math.hypot(u-.5,v-.5)*B-20)/14,0,1):ch&&ch.P&&ch.P.canyon?1-.8*(1-clamp((Math.abs(u-.5)*B-8)/10,0,1))*clamp((v-.04)/.06,0,1)*clamp((.95-v)/.06,0,1):1);return-Math.max(4,d+gd+(ch&&ch.P?interior(ch.P,u,v):0))}
// ---------- three.js setup: render small, dither to a 9-bit palette, scale up sharp ----------
const C=$('#c'),HC=$('#h'),HX2=HC.getContext('2d');HX2.imageSmoothingEnabled=false;
const R=new THREE.WebGLRenderer({canvas:C,antialias:false});R.setPixelRatio(1);R.setSize(W*SC32,H*M
SC32,false);HC.width=W*SC32;HC.height=H*SC32;HX2.scale(SC32,SC32);
// match the r128 look on r163: no colour management, linear output, legacy light falloff and intensity
R.outputColorSpace=THREE.LinearSRGBColorSpace;R.useLegacyLights=true;
const RT=new THREE.WebGLRenderTarget(W*SC32,H*SC32,{minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,samples:4});
const BAY=new Uint8Array([0,8,2,10,12,4,14,6,3,11,1,9,15,7,13,5].flatMap(v=>[v*16,v*16,v*16,255]));
const bayT=new THREE.DataTexture(BAY,4,4,THREE.RGBAFormaM
t);bayT.magFilter=bayT.minFilter=THREE.NearestFilter;bayT.wrapS=bayT.wrapT=THREE.RepeatWrapping;bayT.needsUpdate=true;
const post=new THREE.Mesh(new THREE.PlaneGeometry(2,2),new THREE.ShaderMaterial({uniforms:{t:{value:RT.texture},b:{value:bayT},nv:{value:0},tm:{value:0}},
  vertexShader:'varying vec2 v;void main(){v=uv;gl_Position=vec4(position.xy,0.,1.);}',
  fragmentShader:'uniform sampler2D t,b;uniform float nv,tm;varying vec2 v;void main(){vec3 c=texture2D(t,v).rgb;float d=texture2D(b,gl_FragCoord.xy/4.).r;if(M
nv>.5){float l=pow(clamp(dot(c,vec3(.3,.59,.11))*2.2,0.,1.),.75);l+=(fract(sin(dot(gl_FragCoord.xy+tm,vec2(12.9898,78.233)))*43758.5)-.5)*.12;if(mod(gl_FragCoord.y,4.)<2.)l*=.82;float r=length(v-.5);l*=1.-smoothstep(.38,.62,r);c=vec3(.18,1.,.32)*l;}c*=1.-smoothstep(.42,.85,length(v-.5))*.5;c+=(d-.47)/128.;gl_FragColor=vec4(c,1.);}'}));
const postScene=new THREE.Scene(),postCam=new THREE.OrthographicCamera(-1,1,1,-1,0,1);postScene.add(post);
const scene=new THREE.Scene(),cam=new THREE.PerspectiveCamera(68,W/H,.1,260M
scene.fog=new THREE.FogExp2(0x2aaad6,.012);
const hemi=new THREE.HemisphereLight(0xbfefff,0x203040,1),sun=new THREE.DirectionalLight(0xfff2d0,.7);sun.position.set(.4,1,.3);scene.add(hemi,sun);
const spot=new THREE.SpotLight(0xfff0c8,2.4,90,.5,.55,1),spotT=new THREE.Object3D();spot.target=spotT;scene.add(spot,spotT);
const glowL=new THREE.PointLight(0xffd6a0,.8,14,1.5);scene.add(glowL);
// ---------- look: caustics, depth gradient, surface ripples, lamp beam, wake, plankton, seabed scatter ----------
:{value:0}},TM=new THREE.MeshPhongMaterial({vertexColors:true,flatShading:true,shininess:4});
TM.onBeforeCompile=sh=>{sh.uniforms.uT=TU.uT;sh.vertexShader='varying vec3 vW;\n'+sh.vertexShader.replace('#include <worldpos_vertex>','#include <worldpos_vertex>\nvW=(modelMatrix*vec4(transformed,1.)).xyz;');
  sh.fragmentShader='uniform float uT;varying vec3 vW;\n'+sh.fragmentShader.replace('#include <dithering_fragment>','#include <dithering_fragment>\nfloat dp=clamp(-vW.y/55.,0.,1.);vec2 q=vW.xz*.16;float cs=0.;for(intM
 i=0;i<3;i++){q+=vec2(sin(q.y*1.7+uT*.9+float(i)),cos(q.x*1.3-uT*.7+float(i)));cs+=1./(6.*abs(sin(q.x)+cos(q.y))+.6);}gl_FragColor.rgb+=vec3(.55,.85,.95)*pow(cs*.33,2.)*(1.-dp)*.7;')};
const bgM=new THREE.ShaderMaterial({side:THREE.BackSide,depthWrite:false,fog:false,uniforms:{top:{value:new THREE.Color()},bot:{value:new THREE.Color()}},
  vertexShader:'varying float vy;void main(){vy=normalize(position).y;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.);}',fragmentShader:'uniform vec3 top,bot;varyingM
 float vy;void main(){gl_FragColor=vec4(mix(bot,top,smoothstep(-.6,.7,vy)),1.);}'});
const bgS=new THREE.Mesh(new THREE.SphereGeometry(230,16,8),bgM);bgS.renderOrder=-1;scene.add(bgS);
const surfM=new THREE.ShaderMaterial({transparent:true,side:THREE.DoubleSide,depthWrite:false,fog:false,uniforms:{uT:TU.uT,uS:{value:0},uL:{value:1},uR:{value:0},uSky:{value:new THREE.Color('#88ccff')},col:{value:new THREE.Color('#9ee8ff')}},
  vertexShader:'varying vec3 vW;void main(){vec4 w=modelMatrix*vec4(position,1.);vW=w.xyz;glM
_Position=projectionMatrix*viewMatrix*w;}',
  // seen from below: a bright circle (Snell's window) shows the sky, outside it the surface is a dark mirror of the sea; rain adds spreading ripple rings
  fragmentShader:'uniform float uT,uS,uL,uR;uniform vec3 col,uSky;varying vec3 vW;void main(){vec2 q=vW.xz*(.12+uS*.08);float t=uT*(1.+uS*1.2);float w=sin(q.x*1.3+t*1.1+sin(q.y*.9+t*.6)*2.)*sin(q.y*1.1-t*.8+sin(q.x*.7)*2.);float l=smoothstep(.75-uS*.2,.98,w);'
   +'vec3 vd=normalize(vW-cameraPosition);float cz=abs(vd.y)M
+w*.05*(1.+uS*2.);float win=smoothstep(.58,.72,cz);'
   +'vec2 g=floor(vW.xz*.45),f=fract(vW.xz*.45)-.5;float h=fract(sin(dot(g,vec2(12.9898,78.233)))*43758.5453);float tt=fract(uT*.8+h*3.);float ring=smoothstep(.05,0.,abs(length(f)-tt*.5))*(1.-tt)*step(h,uR*.9);'
   +'vec3 under=col*(.12+.5*uL)*(1.-.45*uS);vec3 c=mix(under,uSky,win)+(l*(.3+.4*uS)*(.3+.7*uL))*(.35+.65*win)+ring*uSky*.9;gl_FragColor=vec4(c,mix(.85,.6,win)+ring*.3);}'});
const beamM=new THREE.ShaderMaterial({transparent:true,depthWrite:false,blendingM
:THREE.AdditiveBlending,side:THREE.DoubleSide,fog:false,uniforms:{k:{value:0}},
  vertexShader:'varying float vy;void main(){vy=uv.y;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.);}',fragmentShader:'uniform float k;varying float vy;void main(){gl_FragColor=vec4(1.,.94,.78,vy*vy*k);}'});
const beam=new THREE.Mesh(new THREE.ConeGeometry(7,26,16,1,true),beamM);beam.rotation.x=-Math.PI/2;beam.position.set(0,-.55,14.8);
const WN=90,wG=new THREE.BufferGeometry(),wP=new Float32Array(WN*3).fill(9999),wL=newM
 Float32Array(WN);wG.setAttribute('position',new THREE.BufferAttribute(wP,3));let wI=0;
const wake=new THREE.Points(wG,new THREE.PointsMaterial({color:0xdbffff,size:.09,transparent:true,opacity:.75,depthWrite:false}));wake.frustumCulled=false;scene.add(wake);
const PN=260,plG=new THREE.BufferGeometry(),plP=new Float32Array(PN*3);for(let i=0;i<PN*3;i++)plP[i]=(Math.random()-.5)*50;plG.setAttribute('position',new THREE.BufferAttribute(plP,3));
const plank=new THREE.Points(plG,new THREE.PointsMaterial({color:0x6dffd0,M
size:.14,transparent:true,opacity:0,blending:THREE.AdditiveBlending,depthWrite:false,fog:false}));plank.frustumCulled=false;scene.add(plank);
const pebM=new THREE.MeshLambertMaterial({flatShading:true});
function lookUpdate(dt,amb,dark){TU.uT.value=tm;spoutUpdate(dt);
  const fc=scene.fog.color;bgM.uniforms.top.value.copy(fc).lerp(new THREE.Color(1,1,1),.18*amb+.04);bgM.uniforms.bot.value.copy(fc).multiplyScalar(.35);bgS.position.copy(cam.position);
  beamM.uniforms.k.value=sub.lamp&&view!==2?(.05+dark*.22)*(subLv(M
)>=1?1.4:1):0;beam.scale.set(subLv()>=1?1.45:1,1,1);if(beam.parent!==SUBG)SUBG.add(beam);
  const sp=sub.v.length(),f=fwd();if(sp>.6&&view!==2)for(let n=0;n<Math.min(3,sp*.4);n++){const i=wI++%WN;wP.set([sub.p.x-f.x*2.3+(Math.random()-.5)*.6,sub.p.y+(Math.random()-.5)*.5,sub.p.z-f.z*2.3+(Math.random()-.5)*.6],i*3);wL[i]=2.2}
  for(let i=0;i<WN;i++){if(wL[i]>0){wL[i]-=dt;wP[i*3+1]+=dt*(1.2+i%3*.4);wP[i*3]+=Math.sin(tm*3+i)*dt*.3;if(wL[i]<=0)wP[i*3+1]=9999}}wG.attributes.position.needsUpdate=true;
  plank.material.opM
acity=dark*.8*(.7+.3*Math.sin(tm*2));plank.position.set(Math.round(cam.position.x/50)*50,cam.position.y,Math.round(cam.position.z/50)*50);for(let i=0;i<PN;i++)plP[i*3+1]+=Math.sin(tm*.5+i)*dt*.05;plG.attributes.position.needsUpdate=true}
const surf=new THREE.Mesh(new THREE.PlaneGeometry(400,400),surfM);surf.rotation.x=Math.PI/2;surf.position.y=0;scene.add(surf);
const halo=(()=>{const c=document.createElement('canvas');c.width=c.height=32;const g=c.getContext('2d'),gr=g.createRadialGradient(16,16,0,16,16,16);gr.addM
ColorStop(0,'rgba(255,255,255,1)');gr.addColorStop(.35,'rgba(255,255,255,.35)');gr.addColorStop(1,'rgba(255,255,255,0)');g.fillStyle=gr;g.fillRect(0,0,32,32);return new THREE.CanvasTexture(c)})();
const MC={},lam=c=>MC['l'+c]||(MC['l'+c]=new THREE.MeshLambertMaterial({color:c,flatShading:true})),bas=c=>MC['b'+c]||(MC['b'+c]=new THREE.MeshBasicMaterial({color:c}));
const haloM=c=>MC['h'+c]||(MC['h'+c]=new THREE.SpriteMaterial({map:halo,color:c,blending:THREE.AdditiveBlending,depthWrite:false,transparent:true,fog:falM
const at=(o,x=0,y=0,z=0)=>(o.position.set(x,y,z),o);
const mkHalo=(c,s)=>{const sp=new THREE.Sprite(haloM(c));sp.scale.set(s,s,1);return sp};
const GE={oct:new THREE.OctahedronGeometry(1,0),cone3:new THREE.ConeGeometry(1,1,3),cone4:new THREE.ConeGeometry(1,1,4),cone5:new THREE.ConeGeometry(1,1,5),box:new THREE.BoxGeometry(1,1,1),
  cyl:new THREE.CylinderGeometry(1,1,1,6),ico:new THREE.IcosahedronGeometry(1,0),dod:new THREE.DodecahedronGeometry(1,0),bell:new THREE.SphereGeometry(1,7,4,0,Math.PI*2,M
  sph:new THREE.SphereGeometry(1,8,6),dome:new THREE.SphereGeometry(1,10,5,0,Math.PI*2,0,Math.PI/2)};
const part=(g,m,sx,sy,sz,x=0,y=0,z=0)=>{const o=new THREE.Mesh(g,m);o.scale.set(sx,sy,sz);o.position.set(x,y,z);return o};
const snowG=new THREE.BufferGeometry(),SN=500,snP=new Float32Array(SN*3);for(let i=0;i<SN*3;i++)snP[i]=(Math.random()-.5)*60;snowG.setAttribute('position',new THREE.BufferAttribute(snP,3));
const snow=new THREE.Points(snowG,new THREE.PointsMaterial({color:0xdbe8ff,sM
ize:.12,transparent:true,opacity:.7}));scene.add(snow);
// light shafts near the surface
const rays=new THREE.Group();for(let i=0;i<9;i++){const m=new THREE.Mesh(new THREE.CylinderGeometry(1.5,5,70,5,1,true),new THREE.MeshBasicMaterial({color:0xcff6ff,transparent:true,opacity:.06,blending:THREE.AdditiveBlending,depthWrite:false,side:THREE.DoubleSide,fog:false}));
  m.position.set((Math.random()-.5)*90,-35,(Math.random()-.5)*90);m.rotation.z=.25;rays.add(m)}scene.add(rays);
// ---------- subs: the starter plus one M
class per pi block; more digits of pi give a better sub ----------
const SUBS=[['Bathy Mk I','#ffb624','#24b6b6',0],['Pi-3 Tricorn','#24b6b6','#ffdb24',3],['Pi-31 Radius','#dadada','#ff2449',31],['Pi-314 Circumference','#2449ff','#24ffff',314],
  ['Pi-3141 Arc','#b624ff','#ffdb24',3141],['Pi-31415 Radian','#242436','#24ff92',31415],['Pi-314159 Transcendent','#f0f0ff','#ff24b6',314159],['Pi-3141592 Irrational (Super Sub)','#ffdb24','#ffffff',3141592]];
const isDock=h=>h>0&&h%210===0;
// islands: a volcanic island brM
eaks the surface on every difficulty adjustment block (every 2016th) that has no dock or station
const isIsle=h=>h>0&&h%2016===0&&!isDock(h)&&!rsType(h);
// the land world: found from a child of the game whose content holds BD_LAND=<land world id>; no pointer, no going ashore. Going ashore needs the 'isle' key, given by an Island Pass child
// (it sets window.BD_KEYS=['isle'] before loading the game) or #keys=isle in the address. Previews have every key.
let LAND_ID='';const KEYS=new Set([].concat(window.BD_KEYS||[M
],(location.hash.match(/keys=([\w,]+)/)||[0,''])[1].split(','))),hasKey=k=>KEYS.has(k)||!LIVE;
// oil rigs: each rig is a child of the game (GAME_ID) whose content carries BD_RIG; it stands on the block it was inscribed in. At most 21.
// previews put stand-in rigs on every block ending 12345 of each 50,000.
const GAME_ID='',RIGS=new Map(),isRig=h=>RIGS.has(h);
// child fish: a child of the game whose content is JSON with "BD_FISH" set to countdown, palindrome or punk adds that fish.
// e.g. {"BD_FISH":"palindrome"M
,"name":"Mirror Minnow","shape":"fish","c1":"#6dffff","c2":"#ffffff","size":2,"glow":true,"count":3}
// shapes: fish, shrimp, jelly, eel, squid, turtle, crab, angler, puffer. The newest child of each kind wins.
const CF={countdown:null,palindrome:null,punk:null},CFSH=['fish','shrimp','jelly','eel','squid','turtle','crab','angler','puffer'];
const isPunk=h=>false;   // perfect punk blocks: rule still to be set
const cfType=h=>{const s=String(h);if(s.length>=3&&'987654321'.endsWith(s))return'countdown';if(s.length>2&M
&s===[...s].reverse().join(''))return'palindrome';if(isPunk(h))return'punk';return null};
function cfRead(t,id){const m=t.match(/"BD_FISH"\s*:\s*"(countdown|palindrome|punk)"/);if(!m)return;try{const j=JSON.parse(t);CF[m[1]]={id,name:String(j.name||'Child fish').slice(0,40),shape:CFSH.includes(j.shape)?j.shape:'fish',
  c1:/^#[0-9a-f]{6}$/i.test(j.c1)?j.c1:'#ffb624',c2:/^#[0-9a-f]{6}$/i.test(j.c2)?j.c2:'#ffffff',size:clamp(j.size|0||2,1,3),glow:!!j.glow,count:clamp(j.count|0||3,1,6)}}catch(e){console.warn(e)}}
c function findRigs(){if(!LIVE){CF.countdown={id:'preview',name:'Countdown Fish',shape:'fish',c1:'#ff9224',c2:'#ffdb24',size:2,glow:true,count:3};CF.palindrome={id:'preview',name:'Mirror Fish',shape:'fish',c1:'#6dffff',c2:'#ffffff',size:2,glow:true,count:3};CF.punk={id:'preview',name:'Punk Fish',shape:'fish',c1:'#ff24b6',c2:'#b6ff24',size:2,glow:true,count:3};for(let h=12345,n=1;h<=TIP&&n<=21;h+=50000)RIGS.set(h,{n:n++,id:'preview',addr:'bc1p
  const gid=window.BD_GAME||GAME_ID||SELF;if(!gid){lM
k('children','bad','game id unknown
 a child loading the game must set window.BD_GAME');insIdle('no rigs to look up');return}
  let L;try{L=await childList(gid)}catch(e){lk('children','bad','no answer
 no rigs or land link');insIdle('no rigs to look up');return}
  // each child's content is read once and remembered (children never change), six at a time
  const info=new Array(L.length);let k=0,bad=0;
  await Promise.all(Array.from({length:6},async()=>{while(k<L.length){const i=k++;try{info[i]=await childInfo(L[M
i][0])}catch(e){bad++;console.warn(e)}}}));
  try{const keep={};for(const[id]of L)if(CHC[id])keep[id]=CHC[id];localStorage.setItem('bd_ch',JSON.stringify(keep))}catch(e){}
  // children are listed oldest first, so the newest land pointer and the newest fish of each kind win, and the first 21 rigs count
  const rigL=[];for(let i=0;i<L.length;i++){const v=info[i];if(!v)continue;const id=L[i][0];if(v[0])LAND_ID=v[0];if(v[1])LAND_ID=id;if(v[3])cfRead(v[3],id);if(v[2])rigL.push(L[i])}
  let insOk=0,insBad=0;const own=awM
ait Promise.all(rigL.map(([id])=>fetch('/r/inscription/'+id).then(r=>{if(!r.ok)throw Error(r.status);return r.json()}).then(j=>(insOk++,j)).catch(e=>(insBad++,console.warn(e),null))));
  rigL.forEach(([id,ht],i)=>{const h=ht||own[i]&&own[i].height;if(RIGS.size<21&&h>0&&!RIGS.has(h))RIGS.set(h,{n:RIGS.size+1,id,addr:own[i]&&own[i].address||'unknown'})});
  lk('children',bad?'warn':'ok','working
 '+L.length+' children'+(bad?' ('+bad+' unread, retried next visit)':'')+'
 '+RIGS.size+' rigs
 '+(LAND_ID?'land linkM
 found':'no land link yet'));
  if(insBad||rigL.length)lk('insc',insBad?'bad':'ok',insBad?insBad+' lookups failed':'working
 '+insOk+' rig owners read');else insIdle('no rigs yet')}
// children with their block heights, 100 per request; older servers without that list fall back to plain ids
async function childList(gid){const out=[];
  try{for(let pg=0;pg<1000;pg++){const r=await fetch('/r/children/'+gid+'/inscriptions/'+pg);if(!r.ok)throw Error(r.status);const j=await r.json();for(const c of j.children||[])out.pM
ush([c.id,c.height||0]);if(!j.more)return out}return out}catch(e){if(out.length)throw e}
  for(let pg=0;pg<1000;pg++){const r=await fetch('/r/children/'+gid+'/'+pg);if(!r.ok)throw Error(r.status);const j=await r.json();for(const id of j.ids||[])out.push([id,0]);if(!j.more)break}return out}
// what a child is: [land pointer, island, rig, fish JSON]
const CHC=(()=>{try{return JSON.parse(localStorage.getItem('bd_ch')||'{}')}catch(e){return{}}})();
async function childInfo(id){if(CHC[id])return CHC[id];const r=await feM
tch('/content/'+id);if(!r.ok)throw Error(r.status);const t=await r.text(),lm=t.match(/BD_LAND=([0-9a-f]{64}i\d+)/);
  return CHC[id]=[lm?lm[1]:'',/BD_ISLAND/.test(t)?1:0,/BD_RIG/.test(t)?1:0,/"BD_FISH"/.test(t)&&t.length<4000?t:'']}
// before any lookup, say when it will be used; never overwrite a green "working" from a fish inscription
function insIdle(why){if(!LK.insc||LK.insc[0]!=='ok')lk('insc','','not used yet
 lights up when you scan or view a fish inscription')}
const SELF=(location.pathname.matM
ch(/[0-9a-f]{64}i\d+/)||[''])[0];
// refill stations: five times rarer than docks, one of each type every 1,050 blocks, offset so they never land on a dock
const RS={fuel:['FUEL','#ff9224',105],batt:['BATTERY','#ffdb24',455],o2:['OXYGEN','#24ffff',805]},rsType=h=>{const m=h%1050;return m===105?'fuel':m===455?'batt':m===805?'o2':null}; // a docking station every 210th block: a thousandth of a halving
const PI='3141592653589793',piLv=h=>{const s=String(h);return h>0&&PI.startsWith(s)?s.length:0};
const grey=lam('#6d6M
function makeSub(lv){const[,hc,sc]=SUBS[lv],g=new THREE.Group(),hull=lam(hc),acc=lam(sc),dk=lam(shade(hc,.35)),glass=new THREE.MeshBasicMaterial({color:'#ffd696'}),gl=bas(sc);
  g.add(part(GE.sph,hull,1.05,.95,2.1));const st=part(GE.cyl,acc,.95,.14,.95,0,0,.4);st.rotation.x=Math.PI/2;g.add(st);
  g.add(part(GE.dome,glass,.62,.62,.62,0,.25,1.55),part(GE.box,hull,.5,.55,.9,0,.95,.1),part(GE.cyl,grey,.06,.6,.06,0,1.45,.4),part(GE.box,dk,.08,.6,.5,0,0,-1.85),part(GE.box,dk,1.6,.08,.45,0,0,-1.7));
of[.55,-.55]){const l=part(GE.cyl,grey,.22,.35,.22,sx,-.55,1.55);l.rotation.x=Math.PI/2;g.add(l,part(GE.box,grey,.12,.12,1.6,sx,-.85,0))}
  const lens=part(GE.cyl,bas('#ffffc8'),.16,.05,.16,0,-.55,1.73);lens.rotation.x=Math.PI/2;g.add(lens);
  for(let i=0;i<8;i++){const a=i/8*Math.PI*2;g.add(part(GE.box,lv?gl:bas('#ffdb6d'),.06,.06,.06,Math.cos(a)*.98,Math.sin(a)*.9,-.6))}
  if(lv>=2)for(const sx of[1.15,-1.15]){const pod=part(GE.cyl,acc,.28,1.4,.28,sx,-.2,-.6),nz=part(GE.cyl,gl,.2,.06,.2,sx,-.2,-1.32);pod.rotationM
.x=nz.rotation.x=Math.PI/2;g.add(pod,nz)}
  if(lv>=3){const l2=part(GE.cyl,bas('#ffffc8'),.12,.05,.12,0,.55,1.62);l2.rotation.x=Math.PI/2;g.add(l2)}
  if(lv>=4)for(const sx of[1,-1]){const f=part(GE.cone3,gl,.12,1.2,.5,sx*.9,.5,-1.1);f.rotation.z=-sx*.6;g.add(f)}
  if(lv>=5){const ring=new THREE.Mesh(new THREE.TorusGeometry(1.08,.05,4,16),gl);ring.position.z=-.2;g.add(ring)}
  if(lv>=6)g.add(part(GE.oct,gl,.15,.8,.6,0,1.55,-.4),mkHalo(sc,5));
  if(lv>=7){for(const a of[2.1,4.2]){const f=part(GE.oct,bas('#ffffff'),.M
12,.7,.5,Math.sin(a)*1.1,Math.cos(a)*1.1,-.4);f.rotation.z=-a;g.add(f)}const r2=new THREE.Mesh(new THREE.TorusGeometry(1.25,.05,4,20),bas('#ffffff'));r2.position.z=.6;g.add(r2,at(mkHalo('#ffdb24',9),0,0,0));g.scale.setScalar(1.15)}
  const nb=lv>=3?4:3,prop=new THREE.Group();for(let i=0;i<nb;i++){const p=new THREE.Group();p.add(part(GE.box,lv>=4?gl:grey,.12,.75,.05,0,.35,0));p.rotation.z=i*6.283/nb;prop.add(p)}prop.position.z=-2.2;g.add(prop);
  return{g,prop,lens,glass}}
let SUBG,prop,lens,glassM;
lv){if(SUBG)scene.remove(SUBG);({g:SUBG,prop,lens,glass:glassM}=makeSub(lv));scene.add(SUBG)}
// ---------- grab arm: a telescoping three-finger claw slung under the nose ----------
// it lives in the scene (not the hull) so it still shows from the cockpit; +z is the reach direction
// the claw is self-lit so it reads at any depth: amber sleeve, pale fingers with glowing tips, a work light at the wrist
const ARM=(()=>{const g=new THREE.Group(),dk=lam('#3a404a'),cl=bas('#c8ccd4'),tipM=bas('#ffdb92'),acc=bas('#ffb624M
  g.add(part(GE.sph,dk,.24,.24,.24),part(GE.box,acc,.26,.26,.72,0,0,.36),part(GE.box,dk,.28,.06,.5,0,.14,.36));
  const rod=new THREE.Mesh(new THREE.BoxGeometry(.16,.16,1).translate(0,0,.5),bas('#9aa0aa'));rod.position.z=.7;g.add(rod);
  const wrist=new THREE.Group(),hub=part(GE.cyl,acc,.16,.18,.16);hub.rotation.x=Math.PI/2;wrist.add(hub,at(mkHalo('#ffdb92',2.2),0,0,.25));g.add(wrist);
  const jaws=[];for(let i=0;i<3;i++){const pv=new THREE.Group(),hg=new THREE.Group();pv.rotation.z=i*2.0944;hg.position.y=.1;pvM
.add(hg);wrist.add(pv);
    const tipF=part(GE.box,tipM,.07,.07,.2,0,-.05,.45);tipF.rotation.x=.75;hg.add(part(GE.box,cl,.08,.08,.42,0,0,.2),tipF);jaws.push(hg)}
  g.visible=false;scene.add(g);return{g,rod,wrist,jaws}})();
const armSet=(len,open)=>{ARM.rod.scale.z=Math.max(.05,len-.7);ARM.wrist.position.z=len;for(const j of ARM.jaws)j.rotation.x=.14-open};
// ---------- shipwrecks ----------
const WRK=["Satoshi's Dream",'Merkle Rose','Nonce Hunter','Genesis','Hash Runner','Cold Storage','Mempool','HalviM
ng Star','Block Reward','Orphan','Timechain','Lost Key','Difficulty','Whale Song','Sat Stacker','Long Fork'];
function wreck(r,steel,style,p){const pir=style==='pirate',g=new THREE.Group(),hull=lam(pir?'#2a2226':steel?'#924924':'#6d4924'),hd=lam(pir?'#ff2449':steel?'#6d3624':'#493624'),deck=lam(pir?'#3a2a24':steel?'#6d6d6d':'#927249'),hole=bas('#05060a');
  const fore=new THREE.Group(),aft=new THREE.Group();
  fore.add(part(GE.box,hull,3,2,5,0,1,2.5),part(GE.box,deck,2.8,.2,4.8,0,2,2.5),part(GE.box,hole,1.2,.9,.1,1M
  const bow=part(GE.cone4,hull,2.1,3,1.4,0,1,6);bow.rotation.x=Math.PI/2;bow.rotation.y=Math.PI/4;bow.scale.set(2.1,3,1.4);fore.add(bow);
  aft.add(part(GE.box,hull,3,2,5,0,1,-2.5),part(GE.box,hd,3.05,.4,5.05,0,.2,-2.5),part(GE.box,deck,2.8,.2,4.8,0,2,-2.5),part(GE.box,hole,.1,1,1.4,-1.51,1.1,-3));
  aft.rotation.set(.12,.35,-.25);aft.position.set(.6,-.2,-.6);fore.rotation.z=.15;
  if(steel){aft.add(part(GE.box,lam('#b6b6b6'),2,1.4,1.8,0,2.8,-3),part(GE.cyl,lam('#242424'),.4,1.6,.4,0,4,-2.2),part(GE.boM
x,hole,.1,.4,1.2,1.01,2.9,-3));fore.add(part(GE.cyl,lam('#6d6d6d'),.08,3,.08,0,3.4,4))}
  else{const m=part(GE.cyl,lam('#493624'),.15,6,.15,0,4.5,1.5);m.rotation.z=.5;fore.add(m);const y=part(GE.box,lam('#493624'),3,.12,.12,1.2,5.6,1.5);y.rotation.z=.5;fore.add(y);
    const sail=part(GE.box,pir?bas('#121214'):lam('#b6a688'),2.2,1.6,.05,.8,4.6,1.5);sail.rotation.z=.5;fore.add(sail);
    if(pir){const fl=part(GE.box,lam('#121214'),.9,.6,.04,2.3,6.9,1.5),sk=part(GE.box,bas('#dadacc'),.25,.25,.06,2.3,6.95,1.5);fl.rotaM
tion.z=sk.rotation.z=.5;fore.add(fl,sk)}}
  if(style==='gilded'){const gm=bas(p[0]),pm=bas(p[2]);for(const[grp,zz]of[[fore,2.5],[aft,-2.5]]){for(const sx of[-1.48,1.48])grp.add(part(GE.box,gm,.1,.1,4.9,sx,2.08,zz));
      for(let i=0;i<3;i++)for(const sx of[-1.52,1.52])grp.add(part(GE.sph,pm,.16,.16,.16,sx,1.3,zz-1.5+i*1.5))}fore.add(at(mkHalo(p[2],7),0,1.5,2.5));aft.add(at(mkHalo(p[0],7),0,1.5,-2.5))}
  const lc=pir?'#ff2449':style==='plain'?'#ffb649':p[2];g.add(fore,aft,at(mkHalo(lc,style==='plain'?4:7),0,2.6,-1.M
5),part(GE.sph,bas(lc),.15,.15,.15,0,2.6,-1.5));
  if(style==='ghost'){const gm=new THREE.MeshBasicMaterial({color:p[0],transparent:true,opacity:.5,depthWrite:false}),ge=new THREE.MeshBasicMaterial({color:p[1],wireframe:true});g.traverse(o=>{if(o.isMesh)o.material=gm});fore.add(part(GE.box,ge,3.05,2.05,5.05,0,1,2.5));aft.add(part(GE.box,ge,3.05,2.05,5.05,0,1,-2.5));g.add(at(mkHalo(p[2],9),0,2,0));g.position.y+=1.5}
// ---------- species ----------
// ---------- protocol families: each metaprotocol getsM
 its own creature, themed on what it is about ----------
// start/end are the eras each protocol was active (approximate); p is the chance per block until /r/block detection replaces it
  counterparty:{name:'Counterparty Ironshell',lin:'Counterparty',shape:'turtle',c1:'#494936',c2:'#b6b692',start:278319,p:.12,why:'the oldest token protocol on Bitcoin, from 2014'},
  cursed:{name:'Cursed Wraith',lin:'Cursed inscriptions',shape:'fish',c1:'#2a1a3a',c2:'#b624ff',start:767430,end:824544,p:.25,why:'inscriptM
ions that broke the early rules, numbered below zero until the jubilee'},
  stamps:{name:'Stampfish',lin:'Stamps',shape:'fish',c1:'#ff2449',c2:'#ffffff',start:779652,p:.25,why:'art stored in multisig outputs, built to last forever'},
  brc20:{name:'Tokenfish',lin:'BRC-20',shape:'fish',c1:'#ff9224',c2:'#ffdb24',start:779832,p:.5,why:'fungible tokens written as JSON inscriptions'},
  bitmap:{name:'Bitmap Crab',lin:'Bitmap',shape:'crab',c1:'#f7721a',c2:'#ffc94d',start:792435,p:.4,why:'owning Bitcoin blocks as land, onM
e district per block'},
  tap:{name:'Tapfin',lin:'TAP',shape:'fish',c1:'#24ff92',c2:'#246d49',start:801993,p:.3,why:'a token protocol on inscriptions with programmable transfers'},
  atomicals:{name:'Atom Jelly',lin:'Atomicals',shape:'jelly',c1:'#6db6ff',c2:'#ffffff',start:808080,p:.3,why:'digital objects built on atoms, with ARC-20 tokens'},
  nat:{name:'Nat',lin:'NAT',shape:'fish',c1:'',c2:'',start:817709,p:1,why:'Digital Matter Theory: value minted from each block\'s own data, so every block has one'},
name:'Runescale',lin:'Runes',shape:'fish',c1:'#9a9aa0',c2:'#ff6d24',start:840000,p:.6,why:'fungible tokens carried in a runestone'},
  alkanes:{name:'Alkane Eel',lin:'Alkanes',shape:'eel',c1:'#dadada',c2:'#24ffff',start:880000,p:.3,why:'smart contracts on Bitcoin, built on runestones'}};
const SPEC=new Map(),SYL=['ba','ka','lo','mi','ne','ra','si','to','xu','ve','qi','or','ul','za'];
const ADJ=[['Reef','Sun','Sand','Coral','Striped','Silver','Tide','Kelp'],['Dusk','Glass','Ghost','Lantern','Velvet','Cobalt','Pale']M
,['Neon','Abyssal','Hash','Nonce','Void','Merkle','Static','Ember']];
const NOUN={crab:['Crab'],turtle:['Turtle','Loggerhead','Hawksbill','Shellback'],fish:['Darter','Fin','Snapper','Minnow','Scale'],jelly:['Bell','Drifter','Veil','Jelly'],eel:['Eel','Ribbon','Whip'],squid:['Squid','Arrow','Inkling'],angler:['Angler','Lanternjaw','Lurker'],shrimp:['Shrimp','Krill','Prawn'],shark:['Shark','Mako','Reaper'],whale:['Whale','Leviathan']};
const cap=s=>s[0].toUpperCase()+s.slice(1);
function species(key,zone,o={}){
SPEC.has(key))return SPEC.get(key);
  const r=mulberry(hstr(key)),P=zone?NEON:REEF;
  const shape=o.shape||[['fish','fish','shrimp','jelly','eel','turtle'],['fish','jelly','eel','squid','turtle','jelly'],['angler','jelly','eel','squid','fish','angler']][zone][r()*6|0];
  const lin=o.lin||key.split('|')[0];
  const s={id:hstr(key),key,shape,zone,lin,size:o.size||1+(r()*3|0),c1:o.c1||P[r()*P.length|0],c2:o.c2||P[r()*P.length|0],
    glow:o.glow??(zone===2?r()<.85:zone===1?r()<.5:r()<.06),speed:1.2+r()*2.2,shy:r()<.6,M
  if(shape==='turtle'&&!o.c1){const T=[['#6d9249','#b6a66d'],['#927249','#dbb66d'],['#49735b','#a0c890'],['#6d5b3a','#c8a45a']][r()*4|0];s.c1=T[0];s.c2=T[1];s.glow=o.glow??(zone>0&&r()<.3)}
  s.gcol=NEON[r()*NEON.length|0];if(o.gcol)s.gcol=o.gcol;s.rare=o.rare||null;s.tier=o.tier||0;s.proto=o.proto||null;
  s.name=o.name||ADJ[zone][r()*ADJ[zone].length|0]+' '+NOUN[shape][r()*NOUN[shape].length|0];
  const sl=()=>SYL[r()*SYL.length|0];
  s.latin=cap((lin.replace(/[^a-z]/gi,'').slice(0,4)||'sato').toLowerCM
ase()+sl()+'ichthys')+' '+sl()+sl()+sl()+'us';
  SPEC.set(key,s);return s
const variant=(b,T)=>species(b.key+'|'+T.k,b.zone,{shape:b.shape,lin:b.lin,c1:T.p[0],c2:T.p[1],gcol:T.p[2],glow:true,size:Math.min(3,b.size+1),name:T.name+' '+b.name,rare:T.k,tier:T.tier});
// ---------- whales: a jointed low-poly whale (head, body, tail stock, flukes, long flippers) ----------
// ordinary whales from busy blocks get natural colours; named whales (genesis, heroes, trait leviathans) keep their own
const WNAT=[['#2c4458','#c8M
d2d6','#3a5468'],['#1c2228','#d8dde0','#eef2f4'],['#3a4f5c','#a8b8c0','#4a6170']];
const whaleCols=s=>!s.rare&&/\|whale$/.test(s.key)?WNAT[s.id%3]:[s.c1,s.c2||'#dadada',shade(s.c1,1.15)];
function buildWhale(g,s){const[cb,cl,cf]=whaleCols(s),back=lam(cb),belly=lam(cl),fin=lam(cf),dk=lam(shade(cb,.6)),pl=lam(shade(cl,.78)),eye=bas('#05060a');
  const body=new THREE.Group();g.add(body);
  body.add(part(GE.sph,back,1.55,1.3,4.6,0,0,.5),part(GE.sph,belly,1.38,.92,4.2,0,-.42,.9),
    part(GE.sph,back,1.32,1.0,2.1,0,.08,M
4.1),part(GE.sph,belly,1.22,.58,2.05,0,-.55,3.95),part(GE.box,dk,.5,.18,.32,0,1.02,3.0));
  for(let i=-3;i<=3;i++)body.add(part(GE.box,pl,.07,.05,3.3,i*.3,-1.08+Math.abs(i)*.06,3.1));          // throat pleats
  for(const sx of[1,-1]){body.add(part(GE.sph,eye,.13,.13,.13,sx*1.12,-.18,4.15),part(GE.box,dk,.05,.06,2.3,sx*1.16,-.38,4.35));  // eyes, mouth line
    const fp=new THREE.Group();fp.position.set(sx*1.3,-.55,2.3);fp.rotation.set(0,sx*.55,sx*-.38);const f=part(GE.oct,fin,1.9,.13,.55,sx*1.7,0,0);fp.add(f);bodyM
.add(fp);fp.userData.sx=sx}
  if(whaleCols(s)===WNAT[s.id%3]&&!s.rare)for(let i=0;i<9;i++)body.add(part(GE.box,lam('#b8b0a0'),.12,.1,.12,(h2(i,s.id,3)-.5)*1.6,.75+h2(i,s.id,4)*.25,3.4+h2(i,s.id,5)*1.4)); // barnacles
  const dor=part(GE.cone3,back,.16,.95,.65,0,1.28,-2.6);dor.rotation.x=-.55;body.add(dor);
  const tail=new THREE.Group();tail.position.z=-3.6;body.add(tail);tail.add(part(GE.sph,back,.78,.82,2.5,0,0,-1.7),part(GE.box,back,.12,.55,2.6,0,.55,-1.7),part(GE.sph,belly,.6,.45,2.1,0,-.3,-1.4));
w THREE.Group();fl.position.z=-3.9;tail.add(fl);
  for(const sx of[1,-1]){const w=part(GE.oct,back,1.95,.11,.85,sx*1.5,0,-.45);w.rotation.y=sx*.42;fl.add(w);const u=part(GE.oct,belly,1.7,.06,.7,sx*1.45,-.05,-.4);u.rotation.y=sx*.42;fl.add(u)}
  g.rotation.order='YXZ';g.userData.wh={body,tail,fl,fps:body.children.filter(o=>o.isGroup&&o.userData.sx)}}
// spouts and exhaled bubbles, shared by every whale
const SPN=120,spG=new THREE.BufferGeometry(),spP=new Float32Array(SPN*3).fill(9999),spV=new Float32Array(SPN*3),spLM
=new Float32Array(SPN);spG.setAttribute('position',new THREE.BufferAttribute(spP,3));let spI=0;
const spPts=new THREE.Points(spG,new THREE.PointsMaterial({color:0xeaffff,size:.35,transparent:true,opacity:.85,depthWrite:false}));spPts.frustumCulled=false;scene.add(spPts);
function spout(x,z){for(let n=0;n<45;n++){const i=spI++%SPN;spP.set([x+(Math.random()-.5)*.5,-.6,z+(Math.random()-.5)*.5],i*3);spV.set([(Math.random()-.5)*1.6,5+Math.random()*5,(Math.random()-.5)*1.6],i*3);spL[i]=1.2+Math.random()*.8}
ot(x-sub.p.x,z-sub.p.z)<60){snd(170,.9,'sine',.03,70);setTimeout(()=>snd(120,.7,'triangle',.02,60),120)}}
function spoutUpdate(dt){for(let i=0;i<SPN;i++){if(spL[i]<=0)continue;spL[i]-=dt;const k=i*3,under=spP[k+1]<0;spV[k+1]+=(under?2:-9)*dt;spP[k]+=spV[k]*dt;spP[k+1]+=spV[k+1]*dt;spP[k+2]+=spV[k+2]*dt;if(spL[i]<=0)spP[k+1]=9999}spG.attributes.position.needsUpdate=true}
// whale behaviour: slow, smooth turns with a bank, mid-water cruising, rising every minute or so to breathe and spout,
// steering around the sub M
instead of ploughing through it, and a solid body the sub bumps off
const _wv=new THREE.Vector3();
function whaleLife(c,dt){const s=c.sp,ch=c.ch,x0=ch.cx*B,z0=ch.cz*B;c.t+=dt;
  const W=c.w||(c.w={mode:'cruise',timer:25+Math.random()*45,tx:0,tz:0,cy:0,spd:1.5,roll:0,pitch:0,yv:0,sp2:0});
  if(!W.tx||Math.hypot(W.tx-c.x,W.tz-c.z)<10){W.tx=x0+12+Math.random()*(B-24);W.tz=z0+12+Math.random()*(B-24)}
  const fy=floorY(c.x,c.z),lo=fy+4.5;if(!W.cy)W.cy=lerp(lo,-8,.35+Math.random()*.4);
  W.timer-=dt;let ty=W.cy,vs=2.2;
 if(W.mode==='cruise'&&W.timer<=0)W.mode='rise';
  if(W.mode==='rise'){ty=-2.3;vs=2.6;if(c.y>-3.4){W.mode='breathe';W.timer=6;W.sp2=0;spout(c.x+Math.sin(c.yaw)*3,c.z+Math.cos(c.yaw)*3)}}
  else if(W.mode==='breathe'){ty=-2.3;vs=1.2;if(!W.sp2&&W.timer<3){W.sp2=1;spout(c.x+Math.sin(c.yaw)*3,c.z+Math.cos(c.yaw)*3)}if(W.timer<=0){W.mode='cruise';W.timer=45+Math.random()*60;W.cy=0}}
  let tyaw=Math.atan2(W.tx-c.x,W.tz-c.z);
  const dx=sub.p.x-c.x,dz=sub.p.z-c.z,dh=Math.hypot(dx,dz);
  if(dh<18&&Math.abs(sub.p.y-c.y)<6){M
const fx=Math.sin(c.yaw),fz=Math.cos(c.yaw);if((dx*fx+dz*fz)/Math.max(dh,.01)>.2){tyaw=c.yaw+((dx*fz-dz*fx)>0?-1.3:1.3);vs*=.7}}   // the sub is ahead: veer off to the side
  if(c.flee>0)tyaw=Math.atan2(-dx,-dz);c.flee=(c.flee||0)-dt;
  const dyaw=((tyaw-c.yaw+Math.PI)%(2*Math.PI)+2*Math.PI)%(2*Math.PI)-Math.PI,turn=clamp(dyaw,-1,1)*.32;c.yaw+=turn*dt;
  W.spd=lerp(W.spd,vs*(1-Math.min(.5,Math.abs(dyaw)*.25)),Math.min(1,dt*.5));
  ty=clamp(ty,lo,-2.3);W.yv=lerp(W.yv,clamp((ty-c.y)*.35,-1.1,1.1),Math.min(1,dt*.6));
  c.x+=Math.sin(c.yaw)*W.spd*dt;c.z+=Math.cos(c.yaw)*W.spd*dt;c.y=clamp(c.y+W.yv*dt,Math.min(lo,-2.3),-2.3);
  c.x=clamp(c.x,x0-8,x0+B+8);c.z=clamp(c.z,z0-8,z0+B+8);
  W.roll=lerp(W.roll,clamp(-turn*1.4,-.3,.3),Math.min(1,dt*.8));W.pitch=lerp(W.pitch,clamp(-W.yv*.3,-.35,.35),Math.min(1,dt*1.2));
  const ph=c.t*(.75+W.spd*.18),U=c.obj.userData.wh,bob=Math.sin(ph+1.6)*.12;
  c.obj.position.set(c.x,c.y+bob,c.z);c.obj.rotation.set(W.pitch+Math.sin(ph+1.4)*.025,c.yaw,W.roll);
  U.tail.rotation.x=Math.sin(ph)*.17;U.fl.roM
tation.x=Math.sin(ph-1)*.4;for(const f of U.fps)f.rotation.z=f.userData.sx*(-.38+Math.sin(c.t*.45+f.userData.sx)*.12);
  const spk=c.obj.userData.spark;if(spk){const k=c.obj.userData.sb*(1+.3*Math.sin(c.t*4+c.ph));spk.scale.set(k,k,1)}
  // solid body: three spheres along the whale; the sub is pushed out gently, no damage
  if(!(sub.phase>0))for(const[o,r]of[[3.6,2.3],[0,2.6],[-3.6,1.8],[-6.5,1.6]]){_wv.set(c.x+Math.sin(c.yaw)*o,c.y,c.z+Math.cos(c.yaw)*o);const ex=sub.p.x-_wv.x,ey=sub.p.y-_wv.y,ez=sub.p.z-_wv.z,d=MM
ath.hypot(ex,ey,ez),m=r+1.3;
    if(d<m&&d>0){sub.p.x+=ex/d*(m-d);sub.p.y+=ey/d*(m-d);sub.p.z+=ez/d*(m-d);sub.v.multiplyScalar(.6)}}}
function fishMesh(s){
  const g=new THREE.Group(),z=s.shape==='whale'?4:.35+s.size*.28,m1=s.glow?bas(s.c1):lam(s.c1),m2=s.glow?bas(shade(s.c1,.55)):lam(s.c2),parts=[];
  if(s.shape==='turtle'){const sh=lam(s.c1),pl=lam(s.c2),sk=lam('#92a07a');g.add(part(GE.dome,sh,z*1.1,z*.55,z*1.3),part(GE.oct,pl,z*1,z*.12,z*1.2,0,-z*.02,0));
    for(let i=0;i<5;i++)g.add(part(GE.oct,pl,z*.28,z*.1,zM
*.3,(i%2?.35:-.35)*z*(i?1:0),z*.48,z*(.5-i*.25)));g.add(part(GE.sph,sk,z*.3,z*.26,z*.38,0,0,z*1.45),part(GE.box,bas('#000'),z*.4,z*.06,z*.06,0,z*.08,z*1.65));
    for(const sx of[1,-1])for(const zz of[.7,-.8]){const f=part(GE.box,sk,z*(zz>0?1:.6),z*.06,z*(zz>0?.4:.3),sx*z*(zz>0?1.1:.85),-z*.05,z*zz);g.add(f);parts.push(f)}}
  else if(s.shape==='crab'){const gm=lam(s.c1),dk=lam(shade(s.c1,.55)),lt=lam(s.c2),tiles=[lam(s.c1),lam(shade(s.c1,.78)),lam(s.c2),lam(shade(s.c1,1.18))];
    g.add(part(GE.sph,dk,z*1.05,z*.4,zM
*.85),part(GE.sph,lt,z*.9,z*.22,z*.72,0,-z*.2,0));
    for(let ix=-3;ix<=3;ix++)for(let iz=-2;iz<=2;iz++){const x=ix*z*.26,q=iz*z*.26,k=1-(x/(z*1.05))**2-(q/(z*.85))**2;if(k<.12)continue;g.add(part(GE.box,tiles[(ix*3+iz*5+20)%4],z*.22,z*.07,z*.22,x,z*.4*Math.sqrt(k)+z*.02,q-z*.05))}
    for(const sx of[1,-1]){for(let i=0;i<4;i++){const l=part(GE.box,dk,z*.75,z*.09,z*.09,sx*z*1.05,-z*.15,(i-1.5)*z*.38);l.rotation.z=sx*-.6;g.add(l);parts.push(l)}
      g.add(part(GE.box,dk,z*.16,z*.16,z*.7,sx*z*.95,-z*.02,z*.75));
    g.add(part(GE.oct,lam(s.c1),z*.5,z*.3,z*.55,sx*z*1.05,0,z*1.35));
      for(const u of[1,-1]){const p=part(GE.cone3,u>0?lam(s.c1):lt,z*.2,z*.85,z*.16,sx*z*1.05,u*z*.13,z*2);p.rotation.x=Math.PI/2-u*.28;g.add(p)}
      g.add(part(GE.sph,bas('#ffffff'),z*.11,z*.11,z*.11,sx*z*.3,z*.5,z*.62),part(GE.sph,bas('#000'),z*.06,z*.06,z*.06,sx*z*.3,z*.52,z*.72),part(GE.box,dk,z*.05,z*.2,z*.05,sx*z*.3,z*.38,z*.58))}}
  else if(s.shape==='whale')buildWhale(g,s);
  else if(s.shape==='fish'||s.shape==='shrimp'||s.shape==='whalM
    const L=s.shape==='shrimp'?.7:s.shape==='whale'?1.4:1;g.add(part(GE.oct,m1,z*.45,z*.6,z*1.1*L));const t=part(GE.cone3,m2,z*.45,z*.7,z*.25,0,0,-z*1.1*L);t.rotation.x=-Math.PI/2;g.add(t);parts.push(t);
    if(s.shape!=='shrimp')g.add(part(GE.box,bas('#000'),z*.5,z*.1,z*.1,0,z*.15,z*.7));if(s.shape==='whale'){g.children[0].material=lam('#24496d');t.material=lam('#24496d');g.add(part(GE.oct,lam('#92b6b6'),z*.35,z*.3,z*1.3,0,-z*.3,0))}}
  else if(s.shape==='shark'){const gr=lam(s.c1),wh=lam(s.c2);g.add(part(GE.M
oct,gr,z*.45,z*.5,z*1.9),part(GE.oct,wh,z*.36,z*.28,z*1.5,0,-z*.18,z*.1));
    const df=part(GE.cone3,gr,z*.12,z*.9,z*.45,0,z*.75,0);g.add(df);for(const sx of[1,-1]){const pf=part(GE.box,gr,z*.8,z*.05,z*.35,sx*z*.55,-z*.2,z*.4);pf.rotation.z=sx*-.35;g.add(pf)}
    const tail=new THREE.Group(),tu=part(GE.cone3,gr,z*.1,z*.9,z*.35,0,z*.35,0),tl=part(GE.cone3,gr,z*.1,z*.6,z*.3,0,-z*.25,0);tu.rotation.x=-.5;tl.rotation.x=Math.PI+.5;tail.add(tu,tl);tail.position.z=-z*1.9;g.add(tail);parts.push(tail);
    for(const sx of[M
1,-1])g.add(part(GE.box,bas('#000'),z*.06,z*.08,z*.08,sx*z*.3,z*.12,z*1.3))}
  else if(s.shape==='puffer'){const R=z*1.9,yl=lam(s.c1),bl=lam(s.c2),wh=bas('#ffffff'),bk=bas('#101018'),pk=bas('#ff8aa8'),V=THREE.Vector3;
    g.add(part(GE.sph,yl,R,R*.95,R*1.02),part(GE.sph,bl,R*.8,R*.55,R*.85,0,-R*.4,R*.1));
    for(let i=0;i<16;i++){const y=1-(i+.5)/16*2,rr=Math.sqrt(1-y*y),a=i*2.4,d=new V(Math.cos(a)*rr,y,Math.sin(a)*rr);if(d.z>.55&&Math.abs(d.x)<.7)continue;const sp=part(GE.cone4,yl,R*.1,R*.3,R*.1,d.x*R*1.02,d.y*R*M
.97,d.z*R*1.02);sp.quaternion.setFromUnitVectors(new V(0,1,0),d);g.add(sp)}
    for(const sx of[1,-1]){g.add(part(GE.sph,wh,R*.24,R*.28,R*.2,sx*R*.42,R*.3,R*.82),part(GE.sph,bk,R*.12,R*.15,R*.1,sx*R*.42,R*.28,R*.97),part(GE.sph,bas('#ffffff'),R*.04,R*.04,R*.03,sx*R*.45,R*.34,R*1.06),part(GE.sph,pk,R*.15,R*.1,R*.06,sx*R*.62,-R*.12,R*.74));
      const fin=part(GE.cone3,bl,R*.28,R*.5,R*.08,sx*R*.98,-R*.05,-R*.05);fin.rotation.z=-sx*1.2;g.add(fin);parts.push(fin)}
    for(let i=-3;i<=3;i++){const x=i*.115,y=-.3+i*i*.0M
28,zz=Math.sqrt(Math.max(.02,1-x*x-y*y));g.add(part(GE.box,bk,R*.075,R*.075,R*.05,x*R,y*R,zz*R*1.01))}
    const tl=part(GE.cone3,bl,R*.5,R*.7,R*.1,0,0,-R*1.15);tl.rotation.x=-Math.PI/2;g.add(tl);parts.unshift(tl)}
  else if(s.shape==='jelly'){g.add(part(GE.bell,m1,z,z*.7,z));for(let i=0;i<4+s.size;i++){const a=i/(4+s.size)*6.28,t=part(GE.box,m2,.05,z*2,.05,Math.cos(a)*z*.6,-z,Math.sin(a)*z*.6);g.add(t);parts.push(t)}}
  else if(s.shape==='eel'){for(let i=0;i<7;i++){const p=part(GE.box,i?m1:m2,z*.35,z*.35,z*.6,0,0,M
-i*z*.55);g.add(p);parts.push(p)}}
  else if(s.shape==='squid'){const m=part(GE.cone5,m1,z*.5,z*1.6,z*.5,0,0,-z*.4);m.rotation.x=-Math.PI/2;g.add(m);for(let i=0;i<5;i++){const t=part(GE.box,m2,.06,.06,z*1.2,(i-2)*z*.12,0,z*1);g.add(t);parts.push(t)}}
  else if(s.shape==='angler'){g.add(part(GE.dod,lam('#2a2a44'),z*1.1,z,z*1.2));g.add(part(GE.box,lam('#dadada'),z*.9,z*.12,z*.2,0,-z*.3,z*1.05));const st=part(GE.box,lam('#49496d'),.06,.06,z*1.1,0,z*1.05,z*.6);st.rotation.x=-.6;g.add(st);
    const bulb=part(GE.sph,basM
(s.gcol),z*.25,z*.25,z*.25,0,z*1.3,z*1.25);g.add(bulb)}
  if(s.glow||s.shape==='angler')g.add(s.shape==='angler'?at(mkHalo(s.gcol,4),0,z*1.3,z*1.25):mkHalo(s.gcol,2.5+s.size*1.5));
  if(s.rare){const gm=bas(s.gcol);if(s.shape==='whale')for(let i=0;i<2+s.tier;i++)g.add(part(GE.cone3,gm,.2,.7,.2,0,1.4,2.2-i*.9));if(s.shape!=='puffer'&&s.shape!=='whale')for(let i=0;i<2+s.tier;i++)g.add(part(GE.cone3,gm,z*.12,z*.5,z*.12,0,z*.55,z*(.5-i*.35)));
    if(s.tier>=4&&s.shape!=='puffer'&&s.shape!=='whale')for(let i=0;i<5;i++)M
{const a=i/5*6.28;g.add(part(GE.oct,gm,z*.1,z*.18,z*.1,Math.cos(a)*z*.3,z*.95,Math.sin(a)*z*.3))}
    const sk=mkHalo(s.c1,3+s.size*2+s.tier);g.add(sk);g.userData.spark=sk;g.userData.sb=3+s.size*2+s.tier}
  if(s.proto){const P=s.proto,g2=bas(s.c2);
    if(P==='cursed'){g.traverse(o=>{if(o.isMesh)o.material=new THREE.MeshBasicMaterial({color:s.c1,transparent:true,opacity:.45,depthWrite:false})});for(let i=0;i<4;i++)g.add(part(GE.box,bas('#dadacc'),z*.05,z*.5,z*.05,0,0,z*(.5-i*.35)));g.add(part(GE.box,bas('#dadacc'),M
z*.05,z*.05,z*1.6))}
    if(P==='brc20')for(const sx of[1,-1])for(let i=0;i<3;i++)g.add(part(GE.box,g2,z*.1,z*.22,z*.22,sx*z*.42,0,z*(.4-i*.35)));
    if(P==='runes')for(const sx of[1,-1]){g.add(part(GE.box,g2,z*.04,z*.4,z*.04,sx*z*.44,0,z*.2),part(GE.box,g2,z*.04,z*.04,z*.3,sx*z*.44,z*.12,z*.08),part(GE.box,g2,z*.04,z*.25,z*.04,sx*z*.44,0,-z*.25))}
    if(P==='tap'){for(const a of[-.5,0,.5]){const f=part(GE.cone3,g2,z*.08,z*.6,z*.25,0,z*.6,a*z*.4);f.rotation.x=a;g.add(f)}}
    if(P==='stamps')for(let i=0;i<14;i++)M
{const a=i/14*6.28;g.add(part(GE.box,g2,z*.08,z*.08,z*.08,Math.cos(a)*z*.47,Math.sin(a)*z*.62,0))}
    if(P==='counterparty'){g.scale.setScalar(1.6);for(let i=0;i<3;i++)g.add(part(GE.oct,lam('#6d6d49'),z*.35,z*.25,z*.35,0,z*.62,z*(.5-i*.5)))}
    if(P==='atomicals')for(let i=0;i<2;i++){const ring=new THREE.Mesh(new THREE.TorusGeometry(z*1.3,z*.04,4,24),g2);ring.rotation.set(i?1.2:.4,i?.6:-.5,0);g.add(ring);parts.push(ring);g.add(at(part(GE.sph,bas('#ffffff'),z*.1,z*.1,z*.1),z*1.3,0,0))}
    if(P==='alkanes')g.childM
ren.forEach((c,i)=>{if(c.isMesh&&i<7){c.geometry=GE.sph.geometry||GE.sph;c.material=i%2?g2:lam(s.c1)}});
    if(P==='nat'){const r=mulberry(s.id);for(let i=0;i<8;i++)g.add(part(GE.box,bas(NEON[r()*10|0]),z*.06,z*.08,z*.08,(r()<.5?1:-1)*z*.43,(r()-.5)*z*.5,(r()-.5)*z*1.4))}}
  g.userData.parts=parts;return g}
// ---------- Poseidon's statue (block 0) and the giant clam (block 1,000,000) ----------
function buildPoseidon(){const G=new THREE.Group(),m1=lam('#6f8394'),m2=lam('#8da2b3'),dk=lam('#4b5b6a'),gold=bas('#ffdM
24a'),eye=bas('#9fffe8');
  G.add(part(GE.box,dk,7,1.4,7,0,.7,0),part(GE.box,m1,5,1,5,0,1.9,0));
  for(const sx of[-1.15,1.15])G.add(part(GE.box,m2,1.5,5,1.7,sx,5.4,0),part(GE.box,m1,1.8,.7,2.4,sx,2.75,.3));
  G.add(part(GE.box,m1,4.2,1.6,2.5,0,8.1,0),part(GE.box,m2,3.8,4.2,2.3,0,11,0),part(GE.box,m1,5.4,1.3,2.5,0,13.3,0),part(GE.box,lam('#2a4a6a'),4.4,5.4,.4,0,10.4,-1.5),
    part(GE.sph,m2,1.1,1.25,1.1,0,14.9,0),part(GE.box,eye,.3,.14,.1,-.4,15.05,1),part(GE.box,eye,.3,.14,.1,.4,15.05,1));
  const bd=part(GE.coneM
4,m1,.95,2.2,.8,0,13.6,.8);bd.rotation.x=Math.PI;G.add(bd);
  for(let i=0;i<5;i++)G.add(part(GE.cone4,gold,.22,.9+(i===2?.7:0),.22,-1+i*.5,16.1+(i===2?.2:0),0));
  const ra=part(GE.box,m2,1.1,3.6,1.1,3.3,14,0);ra.rotation.z=-.3;G.add(ra,part(GE.sph,m1,.7,.7,.7,3.9,15.8,0),part(GE.box,m2,1.1,4.2,1.1,-3.2,10.6,0),part(GE.sph,m1,.7,.7,.7,-3.2,8.2,0));
  for(const[x,z]of[[-3,3],[3,3],[-3,-3],[3,-3]])G.add(part(GE.box,bas('#7dffe8'),.4,.5,.4,x,1.6,z));
  G.add(at(mkHalo('#7dffe8',28),0,12,0));return{G,hand:[3.9,15,0]}}
function buildClam(){const G=new THREE.Group(),shell=lam('#7a6a90'),rib=lam('#a898c0'),flesh=lam('#d86a8a'),bowl=part(GE.dome,shell,5,2.6,4,0,2.6,0);bowl.rotation.x=Math.PI;
  G.add(bowl,part(GE.sph,flesh,4.3,1,3.4,0,1.7,0));for(let i=0;i<12;i++){const a=i/12*6.283;G.add(part(GE.oct,rib,.5,.4,.5,Math.cos(a)*4.7,1.2,Math.sin(a)*3.7))}
  const lid=new THREE.Group();lid.position.set(0,2.6,-3.6);lid.add(part(GE.dome,shell,5,2.6,4,0,0,3.6));for(let i=0;i<9;i++){const x=(i-4)*1.05;lid.add(part(GE.box,rib,.3,.3,3.2,x,2.6*M
Math.sqrt(Math.max(0,1-(x/5)**2))*.97,3.6))}
  G.add(lid,at(mkHalo('#ffe6ff',10),0,2.2,0));return{G,lid}}
// ---------- the Millionth Octopus (block 1,000,000): the largest, most detailed creature, with eight slowly moving arms ----------
function buildOcto(x,y,z){
  const g=new THREE.Group(),V=THREE.Vector3,skin=lam('#c24a2e'),dk=lam('#8a2e26'),lt=lam('#e8957a'),pale=lam('#f6cdb8'),gold=bas('#f0b73c'),blk=bas('#0a0608');
  g.add(part(GE.dome,dk,8,3.6,8,0,0,0),part(GE.sph,skin,5.6,3.8,5,0,4.6,1.6));
 THREE.Group();man.position.set(0,5.6,-1.2);man.rotation.x=-.55;g.add(man);man.add(part(GE.sph,skin,5.4,7.4,5.6,0,3.8,0));
  for(let i=0;i<60;i++){const yy=1-(i+.5)/60*2,rr=Math.sqrt(1-yy*yy),a=i*2.4,d=new V(Math.cos(a)*rr,yy,Math.sin(a)*rr);if(d.y<-.3||(d.z>.5&&d.y<.35))continue;
    const n=new V(d.x/5.4,d.y/7.4,d.z/5.6).normalize(),s=i%3===0?1.15:i%2?.7:.45,m=part(i%2?GE.ico:GE.oct,[dk,lt,dk,pale][i%4],s,s*.32,s,d.x*5.35,3.8+d.y*7.35,d.z*5.55);m.quaternion.setFromUnitVectors(new V(0,1,0),n);man.add(m)}
 i=0;i<7;i++)man.add(part(GE.oct,lt,.7,.3,2.2,(i-3)*.5,7.3+Math.abs(i-3)*-.35,-2.2+i%2*.4));
  g.add(part(GE.box,dk,3.2,.5,1.6,0,7.4,3.6));
  for(const sx of[1,-1]){const e=new THREE.Group();e.position.set(sx*4.5,5.9,3.4);e.rotation.y=sx*.5;
    e.add(part(GE.sph,dk,2.2,2.2,2.2),part(GE.sph,gold,1.7,1.7,1.7,0,0,.35),part(GE.box,blk,2.3,.5,.3,0,0,2.02),part(GE.sph,bas('#ffffff'),.18,.18,.18,sx*.5,.3,2.2),part(GE.dome,skin,2.05,1.15,2.05,0,.4,.2));
    g.add(e);eyes.push([e,sx])}
  const sp=part(GE.cM
yl,lt,1,1.8,1,2.6,3.2,4.7);sp.rotation.x=1.25;g.add(sp);
  const arms=[],N=13;
  for(let k=0;k<8;k++){const a=k/8*6.283+.39,L0=2.4*(.92+.16*Math.cos(a-1.2)),ag=new THREE.Group(),segs=[];ag.position.set(Math.cos(a)*5.4,2.4,Math.sin(a)*5.4);ag.rotation.y=Math.PI/2-a;g.add(ag);
    let parent=ag,prev=0;
    for(let i=0;i<N;i++){const t=i/N,len=L0*(1-t*.38),r=1.5*Math.pow(1-t,.85)+.14,sg=new THREE.Group(),mat=lam(shade('#c24a2e',1-t*.42));sg.position.z=prev;parent.add(sg);
      const m=part(GE.cyl,mat,r,len*1.04,r,0,0M
,len/2);m.rotation.x=Math.PI/2;sg.add(m,part(GE.sph,mat,r*1.03,r*1.03,r*1.03,0,0,len),part(GE.box,lt,r*.9,r*.22,len*.95,0,-r*.8,len/2));
      if(i<N-2)for(const sx of[-1,1])sg.add(part(GE.sph,pale,r*.3,r*.22,r*.3,sx*r*.42,-r*.86,len*(sx>0?.7:.3)));
      segs.push(sg);parent=sg;prev=len}
    arms.push({segs,ph:k*.9})}
  g.position.set(x,y,z);g.rotation.y=.6;
  return{g,o:{arms,man,eyes,n:N,g,pts:[]}}}
// world-space hit spheres for the body and every arm joint, rebuilt each frame so the moving arms are solid
 _oV=new THREE.Vector3();
function octoPts(o){o.g.updateMatrixWorld(true);const P=[],add=(v,r)=>P.push([v.x,v.y,v.z,r]);
  add(o.man.localToWorld(_oV.set(0,3.8,0)),6);add(o.g.localToWorld(_oV.set(0,4.6,1.6)),4.6);
  for(const A of o.arms)A.segs.forEach((s,i)=>{if(i)add(s.getWorldPosition(_oV),1.5*Math.pow(1-i/13,.85)+.14)});
function octoAnim(o,t){
  o.arms.forEach(A=>A.segs.forEach((s,i)=>{const T=i/(o.n-1),base=i<3?[.34,.28,.18][i]:i<5?.03:-.04;
    s.rotation.x=base-T*(.12+(Math.sin(t*.4-i*.45+A.ph)*.M
5+.5)*.28);s.rotation.y=Math.sin(t*.33-i*.4+A.ph*1.3)*.22*T}));
  o.man.scale.y=1+Math.sin(t*.8)*.025;o.man.rotation.x=-.55+Math.sin(t*.3)*.04;
  for(const[e,sx]of o.eyes){e.rotation.y=sx*.5+Math.sin(t*.2)*.15;e.rotation.x=Math.sin(t*.15+sx)*.08}}
// ---------- world chunks ----------
const chunks=new Map(),ck=(x,z)=>x+','+z;let taken=new Set();
const ORE=[[['Copper','#ff9249',4],['Iron','#929292',3],['Quartz','#dadada',6]],[['Cobalt','#2449ff',9],['Silver','#dadaff',12],['Jade','#24da6d',10]],[['Gold','#ffdb24',2M
2],['Hashite','#ff24ff',30,1],['Satoshite','#b624ff',45,1]]];
function ensureChunks(){
  const cx=Math.floor(sub.p.x/B),cz=Math.floor(sub.p.z/B);
  for(let dz=-2;dz<=2;dz++)for(let dx=-2;dx<=2;dx++){const x=cx+dx,z=cz+dz,k=ck(x,z);let c=chunks.get(k);
    if(!c){const h=spiralH(x,z);c={cx:x,cz:z,h,state:h>TIP?'frontier':'load',ents:[],rocks:[],g:new THREE.Group()};chunks.set(k,c);scene.add(c.g);
      if(c.state==='load')loadBlock(h).then(b=>{if(chunks.get(k)===c){c.b=b;c.state='queued'}}).catch(e=>{console.warn(e)M
;setTimeout(()=>{if(chunks.get(k)===c){scene.remove(c.g);chunks.delete(k)}},4000)});else frontier(c)}
    c.want=Math.max(Math.abs(dx),Math.abs(dz))<=1}
  // build at most one block per frame, nearest first, so crossing a border never stutters
  let best=null,bd=1e9;for(const c of chunks.values()){if(!(c.state==='queued'||(c.state==='ok'&&c.want&&!c.full)))continue;const d=Math.abs(c.cx-cx)+Math.abs(c.cz-cz);if(d<bd){bd=d;best=c}}
  if(best){build(best,best.b);best.state='ok'}
  for(const[k,c]of chunks)if(Math.max(M
Math.abs(c.cx-cx),Math.abs(c.cz-cz))>3){scene.remove(c.g);c.g.traverse(o=>{if(o.isMesh&&o.userData.own)o.geometry.dispose()});chunks.delete(k)}
function frontier(c){const m=new THREE.Mesh(new THREE.BoxGeometry(B,400,B),new THREE.MeshBasicMaterial({color:0x05030c,transparent:true,opacity:.92}));m.userData.own=1;m.position.set(c.cx*B+B/2,-200,c.cz*B+B/2);c.g.add(m)}
// ---------- seabed: built the way real seabeds form ----------
// depth sets the sediment (sand
 ooze), steep ground shows bare rock; traM
nsaction count is biological activity
// (seagrass and coral rubble in the shallows); fees are heat (a hydrothermal vent field in deep blocks);
// quiet deep blocks grow manganese nodules, quiet twilight blocks pale ooze; pirate lairs lie on red clay.
// Patches follow world-wide noise so they run across block borders; block-specific features fade out near the edges.
const SED=[[0,[219,190,120]],[150,[196,170,108]],[300,[110,128,140]],[700,[74,96,112]],[1100,[48,42,72]],[2500,[36,30,56]]],ROCKC=[[0,[146,114,73]],[3M
00,[54,73,91]],[1100,[31,26,51]],[2500,[24,20,40]]];
const sedAt=(T,m)=>{let i=0;while(i<T.length-2&&m>T[i+1][0])i++;const a=T[i],b=T[i+1],t=clamp((m-a[0])/(b[0]-a[0]),0,1);return a[1].map((v,k)=>lerp(v,b[1][k],t))};
const BIONAME={vent:'hydrothermal vent field',redclay:'red clay',nodules:'manganese nodules',ooze:'pale ooze',grass:'seagrass beds',rubble:'coral rubble'};
function seabedOf(c){const b=c.b,A=clamp(Math.log10(b.tx+1)/3.4,0,1),H=clamp(b.fee/.5,0,1),mid=DM(floorY(c.cx*B+B/2,c.cz*B+B/2)),hb=parseInt(b.hashM
.slice(-4),16)/65536;
  const S={A,H,mid,vx:c.cx*B+10+hb*(B-20),vz:c.cz*B+10+((hb*7919)%1)*(B-20),feats:[]};
  if(c.h===0)return S;if(PIRATE.has(c.h))S.feats.push('redclay');if(H>.3&&mid>500)S.feats.push('vent');if(A<.4&&mid>1000)S.feats.push('nodules');if(A<.35&&H<.05&&mid>200&&mid<1000)S.feats.push('ooze');
  if(mid<350&&A>.45)S.feats.push(A>.75?'rubble':'grass');return S}
function terrainMesh(c){c.sb=c.b?seabedOf(c):null;const t0=c.T&&c.T.find(t=>t.tier>=2);c.fleck=t0?[t0.p[0],t0.p[1]]:null;
  const geo=new THREM
E.PlaneGeometry(B,B,G,G);geo.rotateX(-Math.PI/2);const p=geo.attributes.position,ox=c.cx*B+B/2,oz=c.cz*B+B/2;
  for(let i=0;i<p.count;i++)p.setY(i,floorY(p.getX(i)+ox,p.getZ(i)+oz));
  const g=geo.toNonIndexed();geo.dispose();g.computeVertexNormals();const P=g.attributes.position,N=g.attributes.normal,col=new Float32Array(P.count*3),tc=new THREE.Color();
  const sb=c.sb,er=Math.floor(c.h/210000),GR1=rgbA(eraTint('#5aaa3c',er)),GR2=rgbA(eraTint('#3c8232',er));
  for(let i=0;i<P.count;i+=3){const y=(P.getY(i)+P.getY(M
i+1)+P.getY(i+2))/3,m=DM(y),ny=N.getY(i),r=h2(i,c.cx,c.cz),flat=ny>.88,
      wx=(P.getX(i)+P.getX(i+1)+P.getX(i+2))/3+ox,wz=(P.getZ(i)+P.getZ(i+1)+P.getZ(i+2))/3+oz,u=(wx-c.cx*B)/B,v=(wz-c.cz*B)/B,edge=clamp((Math.min(u,1-u,v,1-v)*B-2)/12,0,1),
      n1=vnoise(wx/13,wz/13,701),n2=vnoise(wx/5,wz/5,702),jit=.9+r*.2;
    let col3=flat?sedAt(SED,m):sedAt(ROCKC,m);if(!flat&&ny>.7){const s2=sedAt(SED,m),k=(ny-.7)/.18;col3=col3.map((v2,k2)=>lerp(v2,s2[k2],k))}
    const mix=(t,k)=>{col3=col3.map((v2,k2)=>lerp(v2,t[k2],k)M
    if(sb){const A=sb.A;
      if(flat&&m<350&&n1>1-.35*A&&n2>.3)mix(n2>.7?GR1:GR2,.85);                       // seagrass beds
      if(sb.feats.includes('rubble')&&flat&&m<350&&n2>.62&&r<edge+.3)mix(r<.3?[255,170,160]:[232,200,180],.8);   // coral rubble
      if(sb.feats.includes('ooze')&&flat&&n1>.55&&r<edge)mix([170,176,186],.6*(n1-.45)*2);                     // pale ooze
      if(sb.feats.includes('nodules')&&flat&&n2>.7&&r<edge)mix([16,16,20],.9);                                   // nodules
.feats.includes('redclay')&&r<edge+.1)mix([122,58,42],flat?.75:.5);                                   // red clay
      if(sb.feats.includes('vent')){const d=Math.hypot(wx-sb.vx,wz-sb.vz),R=10+sb.H*18,k=clamp(1-d/R,0,1)*clamp(1+(n1-.5)*.8,0,1);
        if(k>0)mix([30,28,32],Math.min(1,k*1.6));if(d<R*.35&&n2>.55)col3=[255,110,36]}}                         // vent field
    let hx=hex(col3[0]*jit,col3[1]*jit,col3[2]*jit);
    if(m>700&&r>.978&&!(sb&&sb.feats.includes('vent')))hx=NEON[(r*1000|0)%NEON.length];
.fleck&&flat&&h2(i,c.cx-5,c.cz+9)<.07*edge)hx=h2(i,1,c.cx)<.5?c.fleck[0]:c.fleck[1];
    tc.set(hx);for(let j=0;j<3;j++)col.set([tc.r,tc.g,tc.b],(i+j)*3)}
  g.setAttribute('color',new THREE.BufferAttribute(col,3));
  const m=new THREE.Mesh(g,TM);m.position.set(ox,0,oz);m.userData.own=1;return m}
// item models, shared by block builds and rig drops
    coconut:()=>{const g=new THREE.Group();g.add(part(GE.sph,lam('#6d4924'),.55,.5,.55,0,.25,0),part(GE.sph,lam('#3a2412'),.12,.12,.12,.2,.5,.3));return g},
   rigbox:()=>{const g=new THREE.Group();g.add(part(GE.box,lam('#ff9224'),1.6,1.1,1.1,0,.55,0),part(GE.box,lam('#24242a'),1.62,.2,1.12,0,.55,0),part(GE.box,bas('#ffffff'),.5,.5,.02,0,.6,.57),at(mkHalo('#ff9224',5),0,1,0));return g},
    ration:()=>{const g=new THREE.Group();g.add(part(GE.box,lam('#8a7a5a'),1,.6,.7,0,.3,0),part(GE.box,lam('#ff2449'),1.02,.2,.72,0,.35,0));return g},
    water:()=>{const g=new THREE.Group();g.add(part(GE.cyl,lam('#6db6ff'),.35,1.1,.35,0,.55,0),part(GE.cyl,lam('#ffffff'),.15,.2,.15,0,1M
    drum:()=>{const g=new THREE.Group();g.add(part(GE.cyl,lam('#c82424'),.45,1.2,.45,0,.6,0),part(GE.cyl,lam('#ffdb24'),.47,.15,.47,0,.6,0));return g},
    o2:()=>{const g=new THREE.Group();g.add(part(GE.cyl,lam('#dbf0ff'),.3,1.3,.3,0,.65,0),part(GE.cyl,lam('#24b6ff'),.32,.2,.32,0,.9,0),part(GE.box,grey,.12,.25,.12,0,1.4,0));return g},
    batt:()=>{const g=new THREE.Group();g.add(part(GE.box,lam('#ffb600'),1,.5,.6,0,.25,0),part(GE.box,bas('#ffff6d'),.2,.12,.12,.25,.55,0),part(GE.box,grey,.15,.12,M
.12,-.25,.55,0));return g},
    chest:()=>{const g=new THREE.Group();g.add(part(GE.box,lam('#8a4a1a'),1.4,.8,.9,0,.4,0),part(GE.box,lam('#ffdb24'),1.45,.15,.95,0,.75,0),mkHalo('#ffdb24',3));return g},
    bottle:()=>{const g=new THREE.Group();const b2=part(GE.cyl,lam('#24926d'),.18,.7,.18,0,.2,0);b2.rotation.z=1.3;g.add(b2);return g},
    crate:()=>{const g=new THREE.Group();g.add(part(GE.box,new THREE.MeshBasicMaterial({color:'#ff24ff',wireframe:true}),1.2,1.2,1.2,0,.7,0),part(GE.oct,bas('#24ffff'),.3,.4,.3,0,.7,0M
),mkHalo('#ff24ff',5));return g},
    repair:()=>{const g=new THREE.Group();g.add(part(GE.box,lam('#e8e8e0'),1.3,.8,.9,0,.4,0),part(GE.box,bas('#ff2449'),.9,.18,.92,0,.42,0),part(GE.box,bas('#ff2449'),.18,.9,.92,0,.42,0),part(GE.box,lam('#8a8f96'),1.35,.12,.95,0,.82,0),part(GE.box,lam('#8a8f96'),.4,.14,.1,0,.9,0),at(mkHalo('#ff6d7a',4),0,.6,0));return g},
    tmap:()=>{const g=new THREE.Group(),sc=part(GE.cyl,lam('#e8d8a0'),.28,1.5,.28,0,.35,0);sc.rotation.z=Math.PI/2;g.add(sc,part(GE.cyl,lam('#8a5a2a'),.32,.12,.32M
,.62,.35,0),part(GE.cyl,lam('#8a5a2a'),.32,.12,.32,-.62,.35,0),part(GE.box,bas('#c8243a'),.12,.34,.34,0,.35,0),at(mkHalo('#ffdb24',6),0,.5,0));return g},
    trident:()=>{const g=new THREE.Group(),gd=bas('#ffd24a'),sh=lam('#d4a83a');g.add(part(GE.cyl,sh,.1,2.4,.1,0,1.2,0),part(GE.box,gd,1.05,.13,.14,0,2.45,0),part(GE.cone4,gd,.13,1.15,.13,0,3.2,0));
      for(const x of[-.5,.5])g.add(part(GE.cone4,gd,.11,.85,.11,x,2.95,0),part(GE.box,gd,.1,.5,.12,x,2.62,0));g.add(part(GE.sph,bas('#7dffe8'),.16,.16,.16,0,1.6,0),at(mM
kHalo('#7dffe8',11),0,2.8,0),at(mkHalo('#ffd24a',6),0,3,0));g.scale.setScalar(1.5);return g},
    pcore:()=>{const g=new THREE.Group();g.add(part(GE.sph,bas('#bff4ff'),.7,.7,.7,0,0,0),part(GE.oct,bas('#6dd8ff'),1.1,1.1,1.1,0,0,0));for(let i=0;i<2;i++){const r=new THREE.Mesh(new THREE.TorusGeometry(1.3,.07,4,20),bas('#24c8ff'));r.rotation.set(i?1.2:.2,i?.5:-.4,0);g.add(r)}g.add(mkHalo('#6dd8ff',14));return g},
    pearl:()=>{const g=new THREE.Group();g.add(part(GE.sph,bas('#fff4f8'),1.7,1.7,1.7,0,0,0),part(GE.sph,baM
s('#ffd6f0'),1.2,1.2,1.2,-.4,.3,.5),part(GE.sph,bas('#ffffff'),.35,.35,.35,-.7,.8,.9),mkHalo('#ffe6ff',13));return g},
    atlas:()=>{const g=new THREE.Group();g.add(part(GE.box,lam('#6a4a2a'),1.3,.22,1,0,.11,0),part(GE.box,bas('#e8d8a0'),1.15,.2,.88,0,.28,0),part(GE.box,bas('#ffd24a'),.2,.26,.2,.6,.2,0),part(GE.box,bas('#c8243a'),.5,.04,.06,0,.4,0),part(GE.box,bas('#c8243a'),.06,.04,.5,0,.4,0),at(mkHalo('#c86dff',10),0,.7,0));return g}};
function build(c,b){
  const h=c.h,seed=(parseInt(b.hash.slice(56),16)^parseIM
nt(b.hash.slice(40,48),16))>>>0,r0=mulberry(seed^h),lush=clamp(Math.log10(b.tx+1)/3.4,.12,1);
  const TT=traits(h),T0=TT[0]&&TT[0].tier>0?TT[0]:null,tier=T0?T0.tier:0;c.T=TT;
  c.b=b;if(!c.P){c.P={genesis:h===0,isle:isIsle(h)?(cornerD(c.cx,c.cz)+cornerD(c.cx+1,c.cz)+cornerD(c.cx,c.cz+1)+cornerD(c.cx+1,c.cz+1))/4-2:0,seed,rug:h===123456?2:3+lush*12,octo:h===1000000,canyon:h===123456,tr:h===0||h===1000000||h===123456?0:b.fee>.08?25+b.fee*90:r0()<.25?22+r0()*30:0,f:1+r0()*2,ph:r0()*6,mt:h!==0&&h!==1000000&&h!==123456&M
&r0()<.35?14+r0()*46:0,mx:.3+r0()*.4,mz:.3+r0()*.4};c.g.add(terrainMesh(c));
    {const n=70,im=new THREE.InstancedMesh(GE.dod,pebM,n),M=new THREE.Matrix4(),Q=new THREE.Quaternion(),Sc=new THREE.Vector3(),Ps=new THREE.Vector3(),cl=new THREE.Color(),rp2=mulberry(seed^0xa53);
      const nod=!!(c.sb&&c.sb.feats.includes('nodules')),vent=!!(c.sb&&c.sb.feats.includes('vent'));for(let i=0;i<n;i++){const x=c.cx*B+2+rp2()*(B-4),z=c.cz*B+2+rp2()*(B-4),y=floorY(x,z),sz=.12+rp2()*rp2()*.7,m=DM(y);Ps.set(x,y+sz*.3,z);Q.setFroM
mEuler(new THREE.Euler(rp2()*3,rp2()*3,0));Sc.set(sz*(1+rp2()),sz*.6,sz);M.compose(Ps,Q,Sc);im.setMatrixAt(i,M);
        cl.set(nod?(i%3?'#16161a':'#2a2a2e'):vent&&Math.hypot(x-c.sb.vx,z-c.sb.vz)<14?(i%9?'#121214':'#ff6d24'):rp2()<.15?(m<200?['#ffffff','#ff9292','#ffdb92'][i%3]:'#6dffd0'):m<200?'#a89870':m<1000?'#5a6878':'#3a3450');if(nod)Sc.multiplyScalar(1.6),M.compose(Ps,Q,Sc),im.setMatrixAt(i,M);im.setColorAt(i,cl)}im.userData.own=1;im.frustumCulled=false;c.g.add(im)}}
  if(!c.want||c.full)return;c.full=1;constM
 r=mulberry((seed^h^0x2545f491)>>>0);
  const x0=c.cx*B,z0=c.cz*B;let id=0;const nid=()=>h+':'+(id++),rp=()=>{for(let k=0;;k++){const p=[x0+4+r()*(B-8),z0+4+r()*(B-8)];if(!c.P.isle||k>30||Math.hypot(p[0]-x0-B/2,p[1]-z0-B/2)>27)return p}};
  const ent=(o,obj,x,y,z)=>{o.x=x;o.y=y;o.z=z;o.obj=obj;obj.position.set(x,y,z);c.g.add(obj);if(!taken.has(o.id))c.ents.push(o);else obj.visible=false;return o};
  // rocks and arches
  const nr=3+(c.P.rug/3|0);for(let i=0;i<nr;i++){const[x,z]=rp(),s=1.2+r()*3.2,y=floorY(x,z),m=paM
rt(GE.dod,lam(DM(y)<200?'#8a7a66':DM(y)<1000?'#4a5566':'#2e2840'),s,s*(.5+r()*.5),s,x,y+s*.25,z);m.rotation.y=r()*6;c.g.add(m);c.rocks.push([x,y+s*.25,z,s*.9])}
  if(c.P.rug>8||r()<.3){const[x,z]=rp(),y=floorY(x,z),a=new THREE.Mesh(new THREE.TorusGeometry(5+r()*3,1.4,4,8,Math.PI),lam(DM(y)<200?'#927249':DM(y)<1000?'#3e5262':'#2c2644'));a.userData.own=1;a.position.set(x,y-.5,z);a.rotation.y=r()*6;c.g.add(a)}
  const era=Math.floor(h/210000),bloom=h>0&&h%210000===0,np=(6+lush*26)*(bloom?1.6:1)|0; // a halM
ving block blooms: more plants, none bleached, all glowing in the new era's colours
  for(let i=0;i<np;i++){const[x,z]=rp(),y=floorY(x,z),zone=zoneOf(DM(y)),v=r();
    const k=zone===0?(v<.45?'kelp':v<.7?'grass':'coral'):zone===1?(v<.3?'kelp':v<.55?'grass':v<.75?'coral':'glowkelp'):(v<.4?'anemone':v<.72?'tubeworm':'glowkelp');
    const bleach=!bloom&&k==='coral'&&r()>lush+.25,col0=k==='coral'?(bleach?'#dadada':REEF[r()*REEF.length|0]):k==='kelp'?(zone?'#6d6d24':'#49b624'):k==='grass'?(zone?'#6d9249':'#92da24'):NEOM
N[r()*NEON.length|0],col=bleach?col0:eraTint(col0,era);
    const g=new THREE.Group(),glow=bloom||/glow|anemone|tubeworm/.test(k);
    if(k==='kelp'||k==='glowkelp'){const L=6+r()*(zone?10:22);const st=part(GE.cone4,k==='kelp'?lam(col):lam('#244949'),.35,L,.35,0,L/2,0);g.add(st);
      for(let j=1;j<L/2;j++){const lf=part(GE.box,k==='kelp'?lam(shade(col,1.25)):bas(col),.9,.08,.35,(j%2?.4:-.4),j*2,0);lf.rotation.z=j%2?-.5:.5;g.add(lf)}}
    else if(k==='grass')for(let j=0;j<6;j++)g.add(part(GE.cone3,lam(col),.12,1+rM
()*1.6,.12,(r()-.5)*1.4,.6,(r()-.5)*1.4));
    else if(k==='coral'){const br=(p,d,s)=>{const L=1.2*s,o=part(GE.cyl,lam(col),.18*s,L,.18*s);o.position.copy(p).add(d.clone().multiplyScalar(L/2));o.quaternion.setFromUnitVectors(new THREE.Vector3(0,1,0),d);g.add(o);
      if(s>.45)for(let j=0;j<2;j++){const nd=d.clone().add(new THREE.Vector3((r()-.5)*1.4,.3,(r()-.5)*1.4)).normalize();br(p.clone().add(d.clone().multiplyScalar(L)),nd,s*.72)}};br(new THREE.Vector3(),new THREE.Vector3(0,1,0),1.2)}
    else if(k==='anemone'M
){g.add(part(GE.cyl,lam('#492449'),.4,.5,.4,0,.25,0));for(let j=0;j<9;j++){const t=part(GE.cone3,bas(col),.08,1.1,.08,Math.cos(j)*.3,.9,Math.sin(j)*.3);t.rotation.set(Math.sin(j)*.5,0,Math.cos(j)*.5);g.add(t)}}
    else{for(let j=0;j<4;j++){const hh=1+r()*2.2,tx=(r()-.5)*1.2,tz=(r()-.5)*1.2;g.add(part(GE.cyl,lam('#dadacc'),.1,hh,.1,tx,hh/2,tz),part(GE.sph,bas(col),.16,.16,.16,tx,hh,tz))}}
    if(glow)g.add(at(mkHalo(col,3.5),0,1.5,0));
    const pl={id:nid(),kind:'plant',k,glow,col,ph:r()*6,sp:{id:hstr(k+col),name:M
{kelp:'Kelp',grass:'Seagrass',coral:'Coral',glowkelp:'Glow kelp',anemone:'Neon anemone',tubeworm:'Tube worm'}[k]+(bleach?' (bleached)':''),shape:'plant'}};
    if(k==='coral'&&T0&&r()<[0,.15,.3,.45,.6,.75][tier]){rareCoral(x,z);continue}
    ent(pl,g,x,y,z)}
  // trait reefs: crystal coral in the block's own colours; palindromes grow mirrored
  function rareCoral(x,z){const y=floorY(x,z),g=new THREE.Group(),m1=bas(T0.p[0]),m2=bas(T0.p[1]),gem=bas(T0.p[2]);
    const br=(p,d,s,dp)=>{const L=1.3*s,o=part(GE.cyl,dp%2?M
m2:m1,.2*s,L,.2*s);o.position.copy(p).add(d.clone().multiplyScalar(L/2));o.quaternion.setFromUnitVectors(new THREE.Vector3(0,1,0),d);g.add(o);
      const e=p.clone().add(d.clone().multiplyScalar(L));if(s>.4)for(let j=0;j<3;j++){const nd=d.clone().add(new THREE.Vector3((r()-.5)*1.6,.35,(r()-.5)*1.6)).normalize();br(e,nd,s*.7,dp+1)}else g.add(at(part(GE.oct,gem,.18,.3,.18),e.x,e.y,e.z))};
    br(new THREE.Vector3(),new THREE.Vector3(0,1,0),1.4,0);g.add(at(mkHalo(T0.p[2],7),0,2.5,0));g.scale.setScalar(1.5);
id:nid(),kind:'plant',k:'rarecoral',glow:true,col:T0.p[0],ph:r()*6,sp:{id:hstr('coral|'+T0.k),name:T0.name+' coral',shape:'plant',rare:T0.k}},g,x,y,z)}
  if(tier>=2){const[cx2,cz2]=rp();for(let i=0;i<2+tier;i++){const a=r()*6.28,d=2+r()*6,x=clamp(cx2+Math.cos(a)*d,x0+3,x0+B-3),z=clamp(cz2+Math.sin(a)*d,z0+3,z0+B-3);rareCoral(x,z);if(TT.some(t=>t.k==='pal'))rareCoral(2*(x0+B/2)-x,z)}}
  // ore, supplies, treasure
  const nore=Math.min(9,2+(r()*3|0)+(b.fee*6|0));
  for(let i=0;i<nore;i++){const[x,z]=rp(),y=floorY(x,zM
),o=ORE[zoneOf(DM(y))][r()<.12?2:r()<.4?1:0],g=new THREE.Group(),m=o[3]?bas(o[1]):lam(o[1]);
    for(let j=0;j<4;j++){const cr=part(GE.oct,m,.25,.6+r()*.5,.25,(r()-.5)*.8,.3,(r()-.5)*.8);cr.rotation.z=(r()-.5)*.8;g.add(cr)}if(o[3])g.add(mkHalo(o[1],3));
    ent({id:nid(),kind:'ore',o,glow:!!o[3]},g,x,y,z)}
  if(TT.some(t=>t.k==='prime'))for(let i=0;i<2;i++){const[x,z]=rp(),o=['Primeite','#b624ff',60,1],g=new THREE.Group();for(let j=0;j<5;j++)g.add(part(GE.oct,bas(j%2?'#ff24ff':'#b624ff'),.3,.8+r()*.6,.3,(r()-.5)*.9M
,.4,(r()-.5)*.9));g.add(mkHalo('#d692ff',4));ent({id:nid(),kind:'ore',o,glow:true},g,x,floorY(x,z),z)}
  const rr=rarity(h),IT=IT0;
  const add=(k,n)=>{for(let i=0;i<n;i++){const[x,z]=rp();ent({id:nid(),kind:'item',k},IT[k](),x,floorY(x,z),z)}};
  add('ration',r()<.65?1:0);add('water',r()<.65?1:0);add('drum',1+(r()<.5));add('o2',1+(r()<.45));add('batt',r()<.75?1:0);add('chest',(b.big?1:0)+(r()<.35?1:0)+(tier>=3?1:0));add('bottle',b.live?(b.msg?1:0):b.custom||r()<.15?1:0);add('crate',(rr!=='UNCOMMON'||b.special||tieM
r>=2||r()<.035)?1:0);
  // repair kits are very rare: about 1 block in 25, and always one in a pirate lair. Their own random stream, so no other block's layout changes
  {const rk=mulberry(hstr('repair'+h));if(!c.P.isle&&(rk()<.04||TT.some(t=>t.k==='pirate'))){const x=x0+6+rk()*(B-12),z=z0+6+rk()*(B-12);ent({id:'repair:'+h,kind:'item',k:'repair'},IT.repair(),x,floorY(x,z),z)}}
  // treasure maps: about 1 block in 70, again from their own random stream
  {const rm=mulberry(hstr('tmap'+h));if(!c.P.isle&&rm()<.014){coM
nst x=x0+6+rm()*(B-12),z=z0+6+rm()*(B-12);ent({id:'tmap:'+h,kind:'item',k:'tmap'},IT.tmap(),x,floorY(x,z),z)}}
  c.dock=null;if(isDock(h)){const x=x0+B/2,z=z0+B/2+12,y=floorY(x,z),g=new THREE.Group(),mt=lam('#5b6470'),dk=lam('#3a404a'),cy=bas('#6dffff');
    g.add(part(GE.cyl,dk,9,1.2,9,0,.6,0),part(GE.cyl,mt,8,.4,8,0,1.4,0));for(let i=0;i<12;i++){const a=i/12*6.28;g.add(part(GE.box,cy,.4,.25,.4,Math.cos(a)*8.6,1.3,Math.sin(a)*8.6))}
    for(const sx of[-5,5]){g.add(part(GE.box,mt,.6,9,.6,sx,6,-5),part(GE.box,lam('M
#ffb624'),.4,.4,7,sx,10.3,-2));g.add(part(GE.sph,bas('#ff2449'),.25,.25,.25,sx,10.8,-5))}
    g.add(part(GE.box,dk,3.2,.6,.6,0,2,-1.5),part(GE.box,dk,3.2,.6,.6,0,2,1.5),at(mkHalo('#6dffff',20),0,4,0));g.position.set(x,y,z);c.g.add(g);
    c.dock={x,y,z};c.ents.push({id:'dock:'+h,kind:'dock',name:'Dock #'+h,x,y:y+3,z,obj:g,glow:true});for(const sx of[-5,5])c.rocks.push([x+sx,y+6,z-5,.9])}
  if(c.P.isle){const x=x0+B/2,z=z0+B/2,g=new THREE.Group(),sand=lam('#dbc48a'),rk=lam('#6a6058'),dark=lam('#4a423c'),leaf=lam('#2M
4b649'),ri=mulberry(hstr('isle'+h));
    // the island's body: a rock frustum that widens below the waterline, a beach at the surface, a grassy hill on top
    const FR=GE.fr||(GE.fr=new THREE.CylinderGeometry(1,1.33,1,10)),C8=GE.c8||(GE.c8=new THREE.ConeGeometry(1,1,8));
    g.add(part(FR,rk,13.5,12.5,13.5,0,-5.95,0),part(GE.cyl,sand,13,1,13,0,.2,0),part(C8,lam('#6d7a4a'),9,6.5,9,0,3.4,0),part(C8,lam('#7a8a52'),5,2.4,5,1.2,6.4,-.8));
    for(let i=0;i<3;i++){const a=ri()*6.28,q=7+ri()*4,s2=.8+ri()*.7,b2=part(GE.doM
d,dark,s2,s2*.7,s2,Math.cos(a)*q,.9,Math.sin(a)*q);b2.rotation.y=ri()*3;g.add(b2)}
    for(let i=0;i<3;i++){const a=i*2.1+seed%6,px=Math.cos(a)*6,pz=Math.sin(a)*6,t=part(GE.cyl,lam('#927249'),.35,6,.35,px,3.6,pz);t.rotation.z=.25*Math.cos(a);g.add(t);
      for(let j=0;j<5;j++){const l=part(GE.box,leaf,3.4,.1,.7,px+Math.cos(j*1.26)*1.5,6.6,pz+Math.sin(j*1.26)*1.5);l.rotation.y=-j*1.26;l.rotation.z=-.35;g.add(l)}}
    for(let i=0;i<9;i++){const a=i/9*6.28+ri()*.4-1.2;if(Math.abs(((a+Math.PI/2+9.42)%6.28)-3.14)<.5)coM
ntinue;const by=-2-ri()*10,sr=13.5+4.5*(.3-by)/12.5,s2=2.6+ri()*2.4,b2=part(GE.dod,i%2?rk:dark,s2,s2*(1.1+ri()*.6),s2*.8,Math.cos(a)*(sr-s2*.35),by,Math.sin(a)*(sr-s2*.35));b2.rotation.set(ri()*.5,-a,ri()*.5);g.add(b2)}
    g.position.set(x,0,z);c.g.add(g);c.rocks.push([x,-2,z,12.5],[x,-9,z,15.2]);
    // around the base: a fringing reef of coral and kelp, and boulders bedded into the slope further out (the cave side kept clear)
    const cav=-Math.PI/2;for(let i=0;i<20;i++){const a=ri()*6.28;if(Math.abs(((a-cav+9.M
42)%6.28)-3.14)<.55)continue;const q=19+ri()*9,bx=x+Math.cos(a)*q,bz=z+Math.sin(a)*q,by=floorY(bx,bz);
      if(q<24){if(ri()<.55){const col=eraTint(REEF[ri()*REEF.length|0],Math.floor(h/210000));for(let j=0;j<3;j++){const s3=.6+ri()*.8;c.g.add(part(j%2?GE.sph:GE.dod,lam(col),s3,s3*.8,s3,bx+(ri()-.5)*1.6,floorY(bx,bz)+s3*.35,bz+(ri()-.5)*1.6))}}
        else{const L=4+ri()*6;c.g.add(part(GE.cone4,lam('#49b624'),.3,L,.3,bx,by+L/2,bz))}}
      else{const s3=1.4+ri()*1.8,m2=part(GE.dod,i%2?rk:dark,s3,s3*.75,s3,bx,by+sM
3*.15,bz);m2.rotation.set(ri()*.6,ri()*3,0);c.g.add(m2);c.rocks.push([bx,by+s3*.3,bz,s3*.8])}}
    // the doorway: a sea cave set into the rock, warm light deep inside, a ladder leaning up the rock to the beach
    const dy=-8,cr=13.5+4.5*(.3-dy)/12.5,dz=z-cr+.4,d=new THREE.Group(),arch=new THREE.Mesh(new THREE.TorusGeometry(2.6,.7,5,10,Math.PI),rk);arch.userData.own=1;arch.rotation.x=-.34;d.add(arch);
    d.add(part(GE.box,lam('#0c0907'),4.6,3.2,2.2,0,1.3,1.1),part(GE.box,bas('#ffb649'),2.2,1.8,.1,0,1.2,2.1),at(mkM
Halo('#ffb649',11),0,1.6,.8));
    const ld=new THREE.Group(),L=7.6;for(let i=0;i<8;i++)ld.add(part(GE.box,lam('#b68f5b'),1.8,.14,.26,0,i*.95+.3,0));ld.add(part(GE.box,lam('#7a5b3a'),.14,L,.14,-.9,L/2,0),part(GE.box,lam('#7a5b3a'),.14,L,.14,.9,L/2,0));
    ld.position.set(2.8,3.2,.2);ld.rotation.x=.34;d.add(ld);d.position.set(x,dy,dz);c.g.add(d);c.ents.push({id:'isle:'+h,kind:'isle',name:'Island #'+h,x,y:dy+1.5,z:dz-2.5,obj:d,glow:true})
    const ep=Math.floor(TIP/2016),rc=mulberry(hstr('coco'+h+':'+ep));if(rc()<.M
25)for(let i=0,n=1+(rc()*3|0);i<n;i++){const a=rc()*6.28,q=15.5+rc()*3;ent({id:'coco:'+h+':'+ep+':'+i,kind:'item',k:'coconut'},IT.coconut(),x+Math.cos(a)*q,-2.2,z+Math.sin(a)*q)}
    if(mulberry(hstr('skiff'+h))()<.025){const a=1.9+seed%3,wx=x+Math.cos(a)*21,wz=z+Math.sin(a)*21,wy=floorY(wx,wz),k=new THREE.Group(),wd=lam('#6d5236');
      k.add(part(GE.box,wd,1.6,.5,4,0,.25,0),part(GE.box,wd,.15,.6,4,-.8,.6,0),part(GE.box,lam('#5a4630'),.15,.6,3,.8,.5,.3),part(GE.cyl,wd,.12,3,.12,0,1.5,-.6));k.rotation.set(.3,a,.25M
);k.position.set(wx,wy+.2,wz);c.g.add(k);
      ['ration','water','drum','o2'].forEach((t,i)=>ent({id:'skiff:'+h+':'+t,kind:'item',k:t},IT[t](),wx+(i-1.5)*1.3,floorY(wx+(i-1.5)*1.3,wz+2.4),wz+2.4));c.skiff=1}
  c.legs=[];if(isRig(h)){const R0=RIGS.get(h),x=x0+14,z=z0+50,fy=floorY(x,z),g=new THREE.Group(),st2=lam('#8a8f96'),yl=lam('#ffdb24'),rd=lam('#da2424'),L=-fy+3;
    for(const[sx,sz]of[[-4,-4],[4,-4],[-4,4],[4,4]]){g.add(part(GE.cyl,st2,.9,L,.9,sx,fy+L/2,sz));for(let y=fy+8;y<-3;y+=14){const b1=part(GE.boM
x,lam('#5a6068'),8,.3,.3,0,y,sz);g.add(b1)}c.legs.push([x+sx,z+sz,1.3])}
    for(let y=fy+2;y<-2;y+=3){const m=part(GE.sph,lam(['#2a2a40','#ff6d92','#ffb649'][(y|0)%3&3?0:1]),.5,.4,.5,4.6,y,-4.6);g.add(m)}
    g.add(part(GE.cyl,lam('#4a4f56'),.35,L,.35,0,fy+L/2,0),part(GE.cyl,yl,1.2,1.4,1.2,0,fy+.7,0),part(GE.box,st2,12,1.2,12,0,3.6,0),part(GE.box,yl,4,.15,4,3,4.3,3),
      part(GE.box,rd,3,4,3,-3,6.2,-3),part(GE.cyl,st2,.4,12,.4,4,10,-4),at(mkHalo('#ff9224',14),4,16.5,-4),part(GE.box,yl,.4,.4,9,-2,8.5,1));
the moon pool: a module slung under the deck with a lit opening in its floor; rise into it from below (like Deepcore in The Abyss)
    const open=canRig(h),lc=open?'#bff6ff':'#ff2449',mp=lam('#4a4f56');g.add(part(GE.box,mp,9,3.4,9,0,-6.2,0),part(GE.box,lam('#2a2e34'),3.6,.2,3.6,0,-7.95,0),part(GE.box,bas(open?'#1d6f86':'#3a0a10'),3.2,.1,3.2,0,-7.9,0));
    for(const[sx,sz,w,d]of[[0,-1.9,3.8,.25],[0,1.9,3.8,.25],[-1.9,0,.25,3.8],[1.9,0,.25,3.8]])g.add(part(GE.box,bas(lc),w,.2,d,sx,-8.05,sz));
    for(let i=0;i<3;i++M
)g.add(part(GE.cyl,mp,.25,4,.25,i*2.5-2.5,-2.5,0));g.add(at(mkHalo(lc,open?12:7),0,-9,0));
    g.position.set(x,0,z);c.g.add(g);c.ents.push({id:'rig:'+h,kind:'rig',name:'Rig '+R0.n,x,y:-6,z,obj:g,glow:true});c.rig={x,z,fy,open};rigDrop(c)}
  c.rs=null;const rst=rsType(h);if(rst){const[nm,col]=RS[rst],x=x0+B/2-10,z=z0+B/2-10,y=floorY(x,z),g=new THREE.Group(),mt=lam('#5b6470'),cm=lam(col),gl=bas(col);
    g.add(part(GE.cyl,mt,5,.8,5,0,.4,0));for(let i=0;i<5;i++)g.add(part(GE.box,gl,.35,.25,.35,Math.cos(i*1.26)*5.3,.8M
,Math.sin(i*1.26)*5.3));
    if(rst==='fuel')for(const sx of[-2,0,2])g.add(part(GE.cyl,cm,.9,3.4,.9,sx,2.5,0),part(GE.cyl,lam('#242424'),.95,.2,.95,sx,3.5,0));
    else if(rst==='batt'){for(const sx of[-1.6,1.6])g.add(part(GE.box,cm,1.4,3,1.4,sx,2.3,0),part(GE.box,lam('#242424'),.4,.4,.4,sx,4,0));g.add(part(GE.box,gl,.12,2.4,.12,0,4.2,0),part(GE.cone3,gl,.3,.7,.12,0,5.6,0))}
    else{for(const sx of[-1.8,1.8])g.add(part(GE.sph,lam('#dbf0ff'),1.4,1.4,1.4,sx,2.4,0),part(GE.cyl,cm,1.45,.25,1.45,sx,2.4,0));g.add(part(GM
E.cyl,mt,.15,3,.15,0,3.2,0))}
    g.add(at(mkHalo(col,12),0,3,0));g.position.set(x,y,z);c.g.add(g);c.rs={x,y,z,t:rst};c.ents.push({id:'rs:'+h,kind:'rstation',t:rst,name:nm+' station',x,y:y+2,z,obj:g,glow:true})}
  c.station=null;if(false){const[x,z]=rp(),y=floorY(x,z),g=new THREE.Group();g.add(part(GE.dome,lam('#a0a8b0'),3.2,2.4,3.2),part(GE.cyl,grey,.08,2.5,.08,0,3.4,0),part(GE.sph,bas('#ff2449'),.18,.18,.18,0,4.7,0));
    for(let j=0;j<6;j++){const a=j/6*6.28;g.add(part(GE.box,bas('#ffdb49'),.35,.25,.1,Math.cos(aM
)*2.9,.9,Math.sin(a)*2.9))}g.add(at(mkHalo('#ffdb49',12),0,1.5,0));g.position.set(x,y,z);c.g.add(g);c.station={x,y,z,obj:g}}
  // Davy Jones' Locker: the sailors' legend of where the sea keeps what it takes, resting on the genesis block
  if(h===0){const x=x0+B/2,z=z0+B/2,y=floorY(x,z),g=new THREE.Group(),iron=lam('#2a2f2a'),wood=lam('#3a2a1e'),brass=lam('#6d5b2a'),glow=bas('#7dffa0'),bone=lam('#c8c8b0');
    g.add(part(GE.box,wood,7,3.4,4.4,0,1.2,0));for(const xx of[-2.8,0,2.8])g.add(part(GE.box,iron,.4,3.6,4.6,xxM
,1.2,0));g.add(part(GE.box,brass,1,1,.2,0,1.8,2.25),part(GE.box,glow,6.6,.3,4,0,2.95,0));
    const lid=new THREE.Group();lid.add(part(GE.box,wood,7.2,.8,4.6,0,.4,2.3));for(const xx of[-2.8,0,2.8])lid.add(part(GE.box,iron,.42,.9,4.7,xx,.4,2.3));lid.position.set(0,2.9,-2.3);lid.rotation.x=st.locker?-1.3:-.18;g.add(lid);
    for(let i=0;i<3;i++)g.add(part(GE.oct,bas('#dbffe0'),.35,.6,.35,(i-1)*1.6,3.3,0));
    for(const[sx,sz]of[[1,1],[-1,1],[1,-1],[-1,-1]]){for(let i=0;i<6;i++){const l=part(GE.box,iron,.18,.35,.18,sM
x*(3.8+i*.6),.9-i*.18,sz*(2.4+i*.3));l.rotation.set(i,i*.5,0);g.add(l)}g.add(part(GE.dod,iron,.6,.4,.6,sx*7.6,-.2,sz*4.2))}
    for(let i=0;i<6;i++){const a=i/6*6.28+.3,lx=Math.cos(a)*9,lz=Math.sin(a)*7;g.add(part(GE.cyl,iron,.05,1.4,.05,lx,.7,lz),part(GE.box,lam('#3a3a2a'),.5,.6,.5,lx,1.6,lz),part(GE.box,glow,.3,.35,.3,lx,1.6,lz),at(mkHalo('#7dffa0',3),lx,1.6,lz))}
    for(let i=0;i<9;i++){const bn=part(GE.box,bone,.9,.12,.12,(r0()-.5)*14,.1,(r0()-.5)*11);bn.rotation.y=r0()*6;g.add(bn)}g.add(part(GE.sph,bone,.45,.M
4,.5,4.5,.3,3),part(GE.sph,bone,.4,.36,.45,-5,.3,-3.4));
    g.add(at(mkHalo('#7dffa0',18),0,3.5,0));g.position.set(x,y,z);g.rotation.y=.4;c.g.add(g);c.locker={lid,x,y,z};
    c.ents.push({id:'locker',kind:'locker',name:"Davy Jones' Locker",x,y:y+3,z,obj:g,glow:true});for(const xx of[-2.5,2.5])c.rocks.push([x+xx*Math.cos(.4),y+1.5,z-xx*Math.sin(.4),2.6])}
  // genesis: 21 pillars (one per million bitcoin), the golden genesis block hovering above the basin, and a ring of golden kelp
  if(h===0){const cx=x0+B/2,cz=z0M
+B/2,gold=bas('#ffdb24'),stone=lam('#5b5466');
    for(let i=0;i<21;i++){const a=i/21*6.283,x=cx+Math.cos(a)*24,z=cz+Math.sin(a)*24,y=floorY(x,z),hh=7+(i%3)*2,g=new THREE.Group();g.add(part(GE.box,stone,1.3,hh,1.3,0,hh/2,0),part(GE.box,lam('#7a7090'),1.6,.4,1.6,0,hh,0),part(GE.box,gold,.7,.7,.7,0,hh+.6,0),at(mkHalo('#ffdb24',3),0,hh+.6,0));g.position.set(x,y,z);g.rotation.y=-a;c.g.add(g);c.rocks.push([x,y+hh/2,z,.9])}
    const fy=floorY(cx,cz),cube=new THREE.Group();cube.add(part(GE.box,gold,4,4,4),new THREE.LineSM
egments(new THREE.EdgesGeometry(new THREE.BoxGeometry(4.2,4.2,4.2)),new THREE.LineBasicMaterial({color:'#ffffff'})),mkHalo('#ffdb24',22));
    cube.position.set(cx,fy+30,cz);c.g.add(cube);c.gcube=cube;
    for(let i=0;i<4;i++){const m=new THREE.Mesh(new THREE.CylinderGeometry(.6,2.4,26,5,1,true),new THREE.MeshBasicMaterial({color:0xffdb24,transparent:true,opacity:.09,blending:THREE.AdditiveBlending,depthWrite:false,side:THREE.DoubleSide,fog:false}));m.userData.own=1;m.position.set(cx+(i%2?1.2:-1.2),fy+16,cz+(i>1?1.M
2:-1.2));c.g.add(m)}
    for(let i=0;i<14;i++){const a=i/14*6.283+.2,x=cx+Math.cos(a)*15,z=cz+Math.sin(a)*15,y=floorY(x,z),L=8+(i%4)*3,g=new THREE.Group();g.add(part(GE.cone4,lam('#b68a24'),.3,L,.3,0,L/2,0));for(let j=1;j<L/2;j++){const lf=part(GE.box,gold,.8,.07,.3,j%2?.35:-.35,j*2,0);lf.rotation.z=j%2?-.5:.5;g.add(lf)}g.add(at(mkHalo('#ffdb24',3),0,L,0));
      ent({id:nid(),kind:'plant',k:'kelp',glow:true,col:'#ffdb24',ph:i,sp:{id:hstr('genesis-kelp'),name:'Genesis kelp',shape:'plant'}},g,x,y,z)}}
00,000: the giant octopus rests in a cleared, level hollow ringed with boulders
  if(h===1000000){const x=x0+B/2,z=z0+B/2,y=floorY(x,z),O=buildOcto(x,y,z),rn=mulberry(hstr('octo'));c.g.add(O.g);c.octo=O.o;octoAnim(O.o,0);
    for(let i=0;i<10;i++){const a=i/10*6.283+rn()*.4,rr=25+rn()*3,bx=x+Math.cos(a)*rr,bz=z+Math.sin(a)*rr,s=1.4+rn()*2;c.g.add(part(GE.dod,lam('#4a4650'),s*1.3,s,s*1.2,bx,floorY(bx,bz)+s*.4,bz));c.rocks.push([bx,floorY(bx,bz)+s*.5,bz,s])}
    c.ents.push({id:'kraken',kind:'kraken',name:'The MillioM
nth Octopus',x,y:y+8,z,obj:O.g,glow:true})}
  // hero memorials: a bronze monolith with a glowing plaque
  const hero=HERO.get(h);if(hero){const x=x0+B/2-6,z=z0+B/2-6,y=floorY(x,z),g=new THREE.Group(),stone=lam('#5b5466'),bronze=lam('#b66d24');
    g.add(part(GE.box,stone,3.2,.8,3.2,0,.4,0),part(GE.box,stone,1.4,7,1.4,0,4,0),part(GE.cone4,bronze,1.05,1.2,1.05,0,8.1,0),part(GE.box,bas('#ffdb92'),1,1.4,.05,0,4.6,.72),part(GE.box,bas('#ffdb92'),1,1.4,.05,0,4.6,-.72),at(mkHalo('#ffb649',9),0,5,0));
    for(let i=0;i<8;M
i++){const a=i/8*6.28;g.add(part(GE.oct,bas(i%2?'#ffb649':'#ffdb92'),.25,.5,.25,Math.cos(a)*2.4,.5,Math.sin(a)*2.4))}
    ent({id:'hero:'+h,kind:'memorial',hero,name:hero.name,glow:true},g,x,y+4,z);g.position.y=y;c.rocks.push([x,y+3.5,z,1.5])}
  // pirate lairs: a black-sailed ship and cursed chests
  const pir=PIRATE.get(h);if(pir){const x=x0+B/2-4,z=z0+B/2+8,y=floorY(x,z),yaw=r()*6.28,g=wreck(r,false,'pirate');g.position.set(x,y-.3,z);g.rotation.set(0,yaw,(r()-.5)*.5);c.g.add(g);
    c.ents.push({id:'pirate:'+h,kM
ind:'relic',ty:'pirate',name:pir.nick==='Pirate Queen'?"The Pirate Queen's galley":pir.nick+"'s ship",pir,x,y:y+1.5,z,obj:g,glow:true});
    for(const lz of[-3.4,0,3.4])c.rocks.push([x+Math.sin(yaw)*lz,y+1.2,z+Math.cos(yaw)*lz,2.1]);
    for(let i=0;i<2;i++){const lx=x+Math.cos(yaw)*(4+i*1.8),lz=z-Math.sin(yaw)*(4+i*1.8),cg=new THREE.Group();cg.add(part(GE.box,lam('#2a1a1a'),1.4,.8,.9,0,.4,0),part(GE.box,lam('#ff2449'),1.45,.15,.95,0,.75,0),part(GE.box,bas('#dadacc'),.3,.3,.05,0,.45,.47),mkHalo('#ff2449',4));
 ent({id:nid(),kind:'item',k:'cursed'},cg,lx,floorY(lx,lz),lz)}}
  // pi blocks: a better sub waits on a cradle; more digits of pi, better sub
  const pl=piLv(h);if(pl&&pl<SUBS.length){const x=x0+B/2+6,z=z0+B/2+6,y=floorY(x,z),S=makeSub(pl),g=new THREE.Group();S.g.position.y=2.2;S.g.rotation.y=.6;
    g.add(S.g,part(GE.box,grey,2.6,.7,.5,0,.35,-1),part(GE.box,grey,2.6,.7,.5,0,.35,1),at(mkHalo('#6dffff',10),0,2.2,0));ent({id:'pisub:'+pl,kind:'item',k:'pisub',lv:pl},g,x,y+1.6,z);g.position.y=y}
  // shipwrecks: big tM
ransactions sink ships; early eras are wooden, later eras steel
  if(!hero&&!pir&&(b.big||tier>=2||r()<.22)){const[x,z]=rp(),y=floorY(x,z),steel=b.h>300000,yaw=r()*6.28,style=tier>=4?'ghost':tier>=2?'gilded':'plain',g=wreck(r,steel,style,T0&&T0.p);g.position.set(x,y-.3,z);g.rotation.set((r()-.5)*.2,yaw,(r()-.5)*.6);c.g.add(g);
    const wn=WRK[hstr(b.hash+'w')%WRK.length],nm=style==='ghost'?'Ghost of the '+wn:style==='gilded'?'The '+T0.name+' '+wn:(steel?'MV ':'The ')+wn;
    c.ents.push({id:nid(),kind:'wreck',nameM
:nm,steel,style,T:T0,x,y:y+1.5,z,obj:g,tx:1+(r()*b.tx|0),sp:{name:nm,shape:'wreck'}});
    for(const lz of[-3.4,0,3.4])c.rocks.push([x+Math.sin(yaw)*lz,y+1.2,z+Math.cos(yaw)*lz,2.1]);
    for(let i=0;i<(style==='plain'?1:2);i++){const lx=x+Math.cos(yaw)*(4+i*1.8),lz2=z-Math.sin(yaw)*(4+i*1.8);ent({id:nid(),kind:'item',k:'chest'},IT.chest(),lx,floorY(lx,lz2),lz2)}
    {const ox=x+Math.sin(yaw)*5,oz=z+Math.cos(yaw)*5,k=r()<.5?'ration':'water';ent({id:nid(),kind:'item',k},IT[k](),ox,floorY(ox,oz),oz)}
onst ox=x-Math.cos(yaw)*3.5,oz=z+Math.sin(yaw)*3.5;ent({id:nid(),kind:'item',k:r()<.5?'drum':'o2'},IT[r()<.5?'drum':'o2'](),ox,floorY(ox,oz),oz)}}
  // creatures: each pool lineage has six species per zone, so they recur across that pool's blocks
  const lin=b.pool||(b.live?'Era '+(b.era+1):'Satoshi-era'),ns=2+(r()*3|0),cnt=Math.round(4+lush*16);
  const anchors={};const spawn=(sp,ins)=>{let[x,z]=rp(),fy=floorY(x,z),y=lerp(fy+2,Math.min(-3,fy+30),r()),zone=zoneOf(DM(y));if(!sp){sp=species(`${lin}|${zone}|${hstr(b.hM
ash+(r()*ns|0))%6}`,zone);if(T0&&r()<[0,.12,.3,.45,.65,.8][tier])sp=variant(sp,T0);
      if(sp.shape==='fish'||sp.shape==='shrimp'){const a=anchors[sp.key];if(a&&r()<.75){x=clamp(a[0]+(r()-.5)*7,x0+3,x0+B-3);z=clamp(a[1]+(r()-.5)*7,z0+3,z0+B-3)}else anchors[sp.key]=[x,z]}}
    const f={id:nid(),kind:'fish',sp,tx:1+(r()*b.tx|0),yaw:r()*6.28,t:r()*9,cool:0,att:0,ch:c,ph:r()*6,
      insc:b.live?ins||null:r()<.2?{id:Array.from({length:64},()=>(r()*16|0).toString(16)).join('')+'i0',type:['image/png','text/plain','textM
/html','audio/mpeg','image/webp'][r()*5|0],seed:r()*1e9|0}:null};
    ent(f,fishMesh(sp),x,y,z)};
  for(let i=0;i<cnt;i++)spawn();
  // ---- amazing places: Poseidon (block 0), the nine trenches, the giant clam (block 1,000,000), the hidden channel (block 123456) ----
  if(h===0){const sx=x0+B/2-10,sz=z0+B/2+10,sy=floorY(sx,sz),rot=.5,P0=buildPoseidon();P0.G.position.set(sx,sy,sz);P0.G.rotation.y=rot;c.g.add(P0.G);c.rocks.push([sx,sy+4,sz,4],[sx,sy+11,sz,3.2]);
    c.ents.push({id:'statue:0',kind:'monolith',ty:'staM
tue',name:'Statue of Poseidon',x:sx,y:sy+8,z:sz,obj:P0.G,glow:true});
    const hx=sx+P0.hand[0]*Math.cos(rot),hz=sz-P0.hand[0]*Math.sin(rot);ent({id:'trident:0',kind:'item',k:'trident',name:"Poseidon's Trident"},IT.trident(),hx,sy+P0.hand[1]-1.6,hz)}
  if(h>=100000&&h<=900000&&h%100000===0){const k=h/100000,col=ERA[(k-1)%6],rn=mulberry(hstr('trench'+h)),cx2=x0+B-8,cz2=z0+B-8;
    {const mx=x0+B-14,mz=z0+B-4,my=floorY(mx,mz),G=new THREE.Group(),sl=lam('#2a3040');G.add(part(GE.box,sl,3.6,.8,3.2,0,.4,0),part(GE.box,sM
l,2.2,8,.8,0,4.6,0),part(GE.cone4,lam('#3a4256'),1.5,1.4,.8,0,9.3,0),part(GE.box,bas(col),1.5,2,.06,0,5.4,.43),part(GE.box,bas(col),1.2,.15,.06,0,7.2,.43),part(GE.box,bas(col),1.2,.15,.06,0,3.8,.43),at(mkHalo(col,12),0,5.4,.8));
      ent({id:'mono:'+h,kind:'monolith',ty:'trench',k,name:'Monolith of '+h.toLocaleString('en-GB'),glow:true},G,mx,my,mz);c.rocks.push([mx,my+4,mz,1.8])}
    {const px=x0+B-3,pz=z0+B-3,py=floorY(px,pz);c.g.add(part(GE.cyl,lam('#3a4256'),1.4,1.4,1.4,px,py+.7,pz));ent({id:'pcore:'+h,kind:'itM
em',k:'pcore',n:k,glow:true},IT.pcore(),px,py+2.4,pz)}
    for(let i=0;i<8;i++){const a=i/8*6.283+.2,rr=6+rn()*3,x=clamp(cx2+Math.cos(a)*rr,x0+2,x0+B-2),z=clamp(cz2+Math.sin(a)*rr,z0+2,z0+B-2),g=new THREE.Group();for(let j=0;j<5;j++)g.add(part(GE.oct,bas(j%2?'#ff24ff':'#b624ff'),.3,.9+rn()*.7,.3,rn()-.5,.4,rn()-.5));g.add(mkHalo('#d692ff',4));
      ent({id:'ore:'+h+':'+i,kind:'ore',o:['Hashite','#ff24ff',30,1],glow:true},g,x,floorY(x,z),z)}
    for(let i=0;i<8;i++){const x=clamp(cx2+(rn()-.5)*26,x0+2,x0+B-2),z=claM
mp(cz2+(rn()-.5)*26,z0+2,z0+B-2),w=2+rn()*3,m=part(GE.box,lam('#252a35'),w,.5,w*.8,x,floorY(x,z)+.25+(i%3)*.4,z);m.rotation.y=rn()*3;c.g.add(m)}
    spawn(species('guardian|'+h,2,{shape:k%2?'angler':'shark',size:3,glow:true,c1:col,c2:shade(col,.5),gcol:col,name:['The Orphan','Abyssal Maw','Hash Leviathan','The Nonce Eater','Block Reaper','Merkle Fang','The Last Satoshi','Deep Miner','The Halving Horror'][k-1],lin:'Trench guardian'}));
    {const gE=c.ents[c.ents.length-1];if(gE&&gE.kind==='fish'){gE.x=cx2;gE.z=cz2;M
gE.y=floorY(cx2,cz2)+6;gE.obj.position.set(gE.x,gE.y,gE.z)}}}
  if(h===1000000){const clx=x0+B-14,clz=z0+B-14,cly=floorY(clx,clz),CL=buildClam();CL.G.position.set(clx,cly,clz);c.g.add(CL.G);c.clam={lid:CL.lid,k:0,x:clx,z:clz};c.rocks.push([clx,cly+1.4,clz,4.4]);
    c.ents.push({id:'clam:1000000',kind:'monolith',ty:'clam',name:'The Giant Clam',x:clx,y:cly+2,z:clz,obj:CL.G,glow:true});ent({id:'pearl:1000000',kind:'item',k:'pearl',name:'The Giant Pearl'},IT.pearl(),clx,cly+1.9,clz)}
  if(h===123456){const cx=x0+B/2,rM
n=mulberry(hstr('canyon')),gr=['#2f9a4a','#3ab85a','#1f7a3a','#52c06a'];
    for(let i=0;i<170;i++){const x=cx+(rn()-.5)*30,z=z0+B*.1+rn()*B*.1,yy=floorY(x,z),hh=7+rn()*7,bl=part(GE.box,lam(gr[i%4]),.35,hh,.15,x,yy+hh/2-.5,z);bl.rotation.z=(rn()-.5)*.25;bl.rotation.y=rn()*3;c.g.add(bl)}
    for(const v of[.34,.46,.58,.7]){const z=z0+B*v,fc=floorY(cx,z);c.g.add(part(GE.box,lam('#4a4650'),20,3,9,cx,fc+14,z));for(const dx of[-6,0,6])c.rocks.push([cx+dx,fc+14,z,4.2])}
    for(let i=0;i<8;i++){const z=z0+B*(.22+i*.08),yM
=floorY(cx,z)+1.4;c.g.add(at(part(GE.sph,bas('#5bff9a'),.3,.3,.3),cx+(i%2?1.5:-1.5),y,z),at(mkHalo('#5bff9a',6),cx+(i%2?1.5:-1.5),y,z))}
    {const ze=z0+B*.8,ye=floorY(cx,ze);c.g.add(part(GE.cyl,lam('#4a4650'),1.4,1.2,1.4,cx,ye+.6,ze));ent({id:'atlas:123456',kind:'item',k:'atlas',name:'The Hidden Atlas'},IT.atlas(),cx,ye+1.9,ze)}}
  // genesis extras: the headline stone, the 50 unspendable coins, the Satoshi sub, and Genesis Day every 3 January
  if(h===0){const cx=x0+B/2,cz=z0+B/2;
    {const x=cx-7,z=cz+3,y=flooM
rY(x,z),g=new THREE.Group(),tc=document.createElement('canvas');tc.width=128;tc.height=64;const t=tc.getContext('2d');t.fillStyle='#3a3448';t.fillRect(0,0,128,64);t.fillStyle='#ffdb92';t.font='bold 18px monospace';t.textAlign='center';t.fillText('03 JAN',64,28);t.fillText('2009',64,50);
      const tx=new THREE.CanvasTexture(tc);tx.magFilter=THREE.NearestFilter;g.add(part(GE.box,lam('#4a4458'),4.2,2.6,.6,0,1.3,0),at(new THREE.Mesh(new THREE.PlaneGeometry(3.8,1.9),new THREE.MeshBasicMaterial({map:tx})),0,1.4,.31),atM
(mkHalo('#ffdb92',4),0,1.4,.5));
      g.position.set(x,y,z);g.rotation.y=.9;c.g.add(g);c.ents.push({id:'g:stone',kind:'gstone',name:'The headline stone',x,y:y+1.4,z,obj:g,glow:true})}
    {const x=cx+6,z=cz-6,y=floorY(x,z),g=new THREE.Group(),iron=lam('#3a404a'),gold=bas('#ffdb24');g.add(part(GE.box,iron,3,.3,2.2,0,.15,0),part(GE.box,iron,3,.3,2.2,0,2.4,0));for(let i=0;i<7;i++)g.add(part(GE.box,iron,.1,2.2,.1,-1.4+i*.47,1.3,1.05),part(GE.box,iron,.1,2.2,.1,-1.4+i*.47,1.3,-1.05));
      for(let i=0;i<50;i++)g.add(pM
art(GE.cyl,gold,.32,.07,.32,-.9+(i%5)*.45,.35+((i/5|0)%10)*.08*2.4,-.4+((i/25|0))*.8));g.add(at(mkHalo('#ffdb24',6),0,1.2,0));
      g.position.set(x,y,z);g.rotation.y=-.5;c.g.add(g);c.ents.push({id:'g:vault',kind:'gvault',name:'The 50 unspendable coins',x,y:y+1.2,z,obj:g,glow:true});c.rocks.push([x,y+1.2,z,1.6])}
    {const x=cx+19,z=cz+10,y=floorY(x,z),S=makeSub(0),g=new THREE.Group();S.g.traverse(o=>{if(o.isMesh&&o.material!==S.glass)o.material=o.material.color&&o.material.color.getHex()===0xffb624?lam('#dadada'M
):o.material});S.glass.color.set('#ff9224');S.g.position.y=1.6;S.g.rotation.y=-2.2;
      g.add(S.g,part(GE.box,lam('#5b6470'),2.4,.6,.5,0,.3,-1),part(GE.box,lam('#5b6470'),2.4,.6,.5,0,.3,1),at(mkHalo('#ff9224',6),0,1.6,0));g.position.set(x,y,z);c.g.add(g);c.ents.push({id:'g:satoshi',kind:'gsub',name:'The Satoshi sub',x,y:y+1.6,z,obj:g,glow:true})}
    const now=new Date();if(now.getMonth()===0&&now.getDate()===3){c.genesisDay=1;for(let i=0;i<18;i++){const k=i%3;spawn(species('genesisday|'+k,0,{shape:['fish','jellyM
','eel'][k],size:2,glow:true,c1:['#ffdb24','#ff9224','#ffffff'][k],c2:'#ffdb92',gcol:'#ffdb24',name:['Genesis Glimmer','Birthday Bell','Golden Ribbon'][k],lin:'Genesis Day'}))}}}
  if(h<210000&&r()<.35)spawn(species('ancient-turtle|'+(h%5),1,{shape:'turtle',size:3,glow:true,c1:'#49735b',c2:'#dbb66d',gcol:'#ffdb92',name:'Ancient Shellback',lin:'Satoshi-era'}));
  // protocol creatures: simulated blocks roll for them by era; live blocks get them from the /r/block scan of real activity
  const pz=zoneOf(DM(floorY(x0+BM
  const pSpawn=(k,nm,size,ins,sub)=>{const P=PROTO[k],o={shape:P.shape,size:size||(k==='counterparty'?3:2),glow:k!=='counterparty'&&k!=='bitmap',c1:P.c1||NEON[h%10],c2:P.c2||NEON[(h>>3)%10],gcol:P.c2||NEON[(h>>5)%10],name:nm||(k==='nat'?'Nat #'+h:P.name),lin:P.lin,proto:k};
    spawn(species((k==='nat'?'proto|nat|'+(h%997):'proto|'+k)+(sub?'|'+sub:''),pz,o),ins)};
  if(!b.live){for(const[k,P]of Object.entries(PROTO))if(h>=P.start&&(!P.end||h<P.end)&&r()<P.p){if(k==='runes'&&r()<.1)pSpawn(k,'Rune EtcheM
r',3,null,'e');else for(let i=0;i<(k==='brc20'?2:1);i++)pSpawn(k)}}
  const protoLive=S=>{if(c.protoDone)return;c.protoDone=1;const n=S.n,m=v=>v?Math.min(4,1+Math.floor(Math.log10(v)*1.2)):0,insOf=(k,lab)=>S.ins.find(e=>e.k===k&&(!lab||e.lab.toLowerCase()===lab))||null;
    for(const t of S.ticks.slice(0,3))pSpawn('brc20','Tokenfish
 '+t.toUpperCase(),2,insOf('brc20',t),t);if(!S.ticks.length)for(let i=0;i<m(n.brc20);i++)pSpawn('brc20',null,2,insOf('brc20'));
    for(const t of S.tticks.slice(0,2))pSpawn('tap','TaM
 '+t.toUpperCase(),2,insOf('tap',t),t);if(!S.tticks.length)for(let i=0;i<m(n.tap);i++)pSpawn('tap',null,2,insOf('tap'));
    for(const mp of S.maps.slice(0,4))pSpawn('bitmap','Bitmap Crab
 '+mp+'.bitmap',2,insOf('bitmap',String(mp)),mp);
    for(let i=0;i<m(n.cursed);i++)pSpawn('cursed');
    for(const op of S.atom.slice(0,2))pSpawn('atomicals','Atom Jelly
 '+op.toUpperCase(),2,null,op);if(!S.atom.length)for(let i=0;i<m(n.atomicals);i++)pSpawn('atomicals');
    for(const nm of S.etch.slice(0,3))pSpawn('rM
 '+nm,3,null,'e|'+nm);for(let i=0;i<m((n.runes||0)-(n.etch||0));i++)pSpawn('runes');
    for(let i=0;i<m(n.alkanes);i++)pSpawn('alkanes');for(let i=0;i<m(n.counterparty);i++)pSpawn('counterparty');for(let i=0;i<m(n.stamps);i++)pSpawn('stamps');
    // the rest of the block's inscriptions ride on ordinary fish
    const L=S.ins.filter(e=>!e.k).sort((a,b)=>/html/.test(b.type)-/html/.test(a.type));let j=0;   // HTML inscriptions first, so they are always found
    for(const e of c.ents)if(j<L.lengM
th&&e.kind==='fish'&&!e.insc&&!e.sp.proto)e.insc=L[j++];
    for(;j<L.length&&j<12;j++)spawn(null,L[j])};
  if(b.live&&h>=PROTO.nat.start)pSpawn('nat');
  c.addProto=protoLive;   // runs last (end of build, or when the scan lands) so the other entity ids never shift
  if(PIRATE.has(h)){const nm=['Bloodwater Shark','Grey Reaper','Gallows Mako'];for(let i=0;i<1;i++){const k=hstr(b.hash+'s'+i)%3;spawn(species('shark|'+k,1,{shape:'shark',size:2+(k%2),glow:false,c1:['#5b6470','#4a4f5b','#6d7380'][k],c2:'#dadada',name:nmM
[k],lin:'Pirate waters'}))}}
  // hero relics: the ship, sub or creature each hero is remembered by
  if(hero){const[ty,rn,steel]=RELIC[hero.name],BZ=['#ffb649','#b66d24','#ffdb92'],x=x0+B/2+8,z=z0+B/2-10,y=floorY(x,z);
    const relic=(g,yy)=>ent({id:'relic:'+h,kind:'relic',ty,name:rn,hero,glow:true},g,x,yy,z);
    if(ty==='ship'){const g=wreck(r,!!steel,'gilded',BZ);g.position.set(x,y-.3,z);g.rotation.set(0,r()*6,(r()-.5)*.4);c.g.add(g);c.ents.push({id:'relic:'+h,kind:'relic',ty,name:rn,hero,x,y:y+1.5,z,obj:g,gloM
w:true});c.rocks.push([x,y+1.2,z,2.4])}
    else if(ty==='whale'||ty==='shark')spawn(species('hero|'+h,1,ty==='whale'?{shape:'whale',size:3,glow:true,c1:'#f0f0f0',c2:'#dadada',gcol:'#ffffff',name:rn,rare:'hero',tier:3,lin:'Hero'}:{shape:'fish',size:3,glow:true,c1:'#6d7d8a',c2:'#dadada',gcol:'#92dbff',name:rn,rare:'hero',tier:3,lin:'Hero'}));
    else if(ty==='reef'){for(let i=0;i<10;i++){const a=i/10*6.28;rareCoral(x+Math.cos(a)*6,z+Math.sin(a)*6)}relic(at(mkHalo('#ffdb92',14),0,2,0),y+1)}
    else if(ty==='ridge')M
{const g=new THREE.Group();for(let i=0;i<48;i++){const xx=x0+4+i*(B-8)/47,zz=z0+B/2+Math.sin(i*.3)*6;g.add(part(GE.box,bas(i%3?'#ffb649':'#ffdb92'),1.2,.15,.3,xx,floorY(xx,zz)+.15,zz))}c.g.add(g);
      relic(at(mkHalo('#ffb649',10),0,1,0),y+1)}
    else{const g=new THREE.Group(),ir=lam(ty==='sub'&&rn==='Ict
neo'?'#8a5a2a':'#5b4a3a'),gl=bas('#ffdb92');
      if(ty==='sub'){g.add(part(GE.sph,ir,1,1,3.6,0,1.1,0),part(GE.box,ir,.6,.8,1,0,2.1,.4),part(GE.cyl,lam('#6d6d6d'),.08,1,.08,0,2.8,.6));
        if(rn==='NautilM
us'){const pr=part(GE.cone4,lam('#b66d24'),.5,1.6,.5,0,1.1,4.2);pr.rotation.x=Math.PI/2;g.add(pr);for(let i=0;i<4;i++)for(const sx of[.92,-.92])g.add(part(GE.sph,gl,.14,.14,.14,sx,1.3,-1.2+i*.9))}
        if(rn==='Argonaut')for(const sx of[.9,-.9])for(const zz of[1.8,-1.8]){const w=part(GE.cyl,lam('#242424'),.5,.2,.5,sx,.5,zz);w.rotation.z=Math.PI/2;g.add(w)}
        if(rn==='Ict
neo')for(const sx of[1,-1]){const f=part(GE.cone3,ir,.3,1.2,.6,sx*.9,1.1,1);f.rotation.z=-sx*1.2;g.add(f)}
        g.add(part(GE.sph,gl,M
.18,.18,.18,0,2.2,.95));g.rotation.set(0,r()*6,(r()-.5)*.4)}
      else if(ty==='sphere'){g.add(part(GE.sph,lam('#2a3a5a'),1.4,1.4,1.4,0,1.4,0),part(GE.cyl,lam('#6d6d6d'),.06,4,.06,0,4.6,0));for(let i=0;i<3;i++)g.add(part(GE.sph,gl,.22,.22,.22,Math.cos(i*.5-.5)*1.35,1.6,Math.sin(i*.5-.5)*1.35))}
      else if(ty==='trieste'){g.add(part(GE.sph,lam('#c8c8b0'),1.5,1.3,4.5,0,3.2,0),part(GE.box,lam('#c8c8b0'),.6,.9,1.4,0,4.6,0),part(GE.sph,lam('#4a5a6a'),1,1,1,0,1.1,.5),part(GE.sph,gl,.2,.2,.2,0,1.2,1.48));g.rotation.y=M
      else if(ty==='rowboat'){g.add(part(GE.box,lam('#8a5a2a'),1.2,.5,3.6,0,.3,0),part(GE.box,lam('#5a3a1a'),1.3,.12,3.7,0,.58,0));for(const sx of[1,-1]){const o=part(GE.box,lam('#b6a688'),.1,.1,3,sx*1.1,.6,0);o.rotation.y=sx*.4;g.add(o)}g.rotation.set(0,r()*6,.3)}
      g.add(at(mkHalo('#ffdb92',8),0,2,0));relic(g,y+1.5);g.position.y=y;c.rocks.push([x,y+1.2,z,1.6])}}
  if(tier>=3&&h!==0&&h!==57043)spawn(species('show|'+T0.k,1,{shape:tier>=4?'whale':['fish','jelly','squid','eel'][hstr(T0.k)%4],size:3,glow:trM
ue,c1:T0.p[0],c2:T0.p[1],gcol:T0.p[2],name:T0.name+(tier>=4?' Leviathan':' Sovereign'),rare:T0.k,tier,lin}));
  if(/^(\d)\1+$/.test(String(h))){const L=String(h).length,sp=species('puffer|'+L+'|'+String(h)[0],0,{shape:'puffer',size:3,glow:false,c1:'#ffd93a',c2:'#fff2b8',gcol:'#fff27a',name:'Smiley Puffer '+String(h)[0].repeat(L),rare:'rep',tier:3,lin:'Repdigit'});sp.shy=false;sp.speed=.9;
    for(let i=0;i<Math.min(4,L-1);i++)spawn(sp)}
  if(b.big)spawn(species(lin+'|whale',0,{shape:'whale',size:3,glow:false}));
{const ct=cfType(h),F=ct&&CF[ct];if(F){const sp=species('child|'+ct+'|'+F.id,zoneOf(DM(floorY(x0+B/2,z0+B/2))),{shape:F.shape,size:F.size,glow:F.glow,c1:F.c1,c2:F.c2,gcol:F.c2,name:F.name,lin:'Child inscription'});for(let i=0;i<F.count;i++)spawn(sp)}}
  if(b.custom||b.special||h===0){const o=h===0?{shape:'whale',size:3,glow:true,name:'Genesis Leviathan',c1:'#ffdb24',c2:'#ffffb6',lin:'Satoshi'}:h===57043?{shape:'fish',size:3,glow:false,name:'Pizzafish',c1:'#ffb649',c2:'#ff6d24',lin}:{size:3,glow:true,lin,name:'HeralM
d of #'+h};spawn(species('king|'+h,1,o))}
  if(b.live&&b.scan)protoLive(b.scan);}
// ---------- state ----------
const sub={food:100,water:100,p:new THREE.Vector3(B/2,-5,B/2),v:new THREE.Vector3(),yaw:0,o2:120,fuel:100,batt:100,hull:100,lamp:true,arm:0,tg:null,scan:null,shake:0};
let st={up:{lamp:0,o2:0,fuel:0,batt:0,hull:0,sonar:0,hold:0},stock:0,best:{},plants:{},hold:[],visited:[0]};
// session: what happened on this dive, for the report
let sess;const CNT=()=>({species:Object.keys(st.best).length,plants:ObjectM
.keys(st.plants).length,wrecks:Object.keys(st.wrecks||{}).length,heroes:Object.keys(st.heroes||{}).length,rogues:Object.keys(st.rogues||{}).length,relics:Object.keys(st.relics||{}).length,subs:(st.subs||[0]).length,stock:st.stock});
function newSess(){sess={t0:Date.now(),dist:0,maxD:0,blocks:new Set(),rare:new Map(),dmg:0,hits:0,items:0,snap:CNT()}}
const subLv=()=>st.sub||0,ABIL=['Single lamp','Better lights','Periscope and night vision','Boost and station sonar','Pulse','Treasure radar','Trait sight','Super sub: M
every ability, max upgrades, phase drive'];
const ABOUT=['a narrow, short-range lamp','twin lamps in a wider, brighter beam, plus hull lights','raise the periscope to see the sky above any block, and switch to green night vision in the dark','a burst of speed from the thruster pods, and a sonar rim that points to the nearest dock and fuel, battery and oxygen stations','a shockwave that scares sharks and anglers away','chests, crates and wrecks always show on sonar, with a bearing to the nearest','see nearby blocks\M
' traits and scan from twice the distance','every ability of every sub, every upgrade at maximum, and a phase drive (Y) that slips through rock and hulls for 4 seconds'];
const U=k=>subLv()>=7?4:st.up[k]; // the super sub has every upgrade built in at maximum
const MX=k=>({o2:120,fuel:100,batt:100,hull:100}[k])*(1+.25*U(k))*(1+.1*subLv());
const holdCap=()=>8+2*U('hold'),lampR=()=>(subLv()>=1?80:50)*(1+.25*U('lamp')),lampA=()=>subLv()>=1?.62:.36,sonarR=()=>48*(1+.25*U('sonar'));
const UPN={lamp:'Lamp',o2:'Air tank'M
,fuel:'Fuel tank',batt:'Battery',hull:'Hull plating',sonar:'Sonar',hold:'Cargo hold'},MKN=['Mk I','Mk II','Mk III','Mk IV','Mk V'];
let tm=0,paused=false,view=0,cockDown=false,mapOpen=false,sonar=null,passive=[],ptimer=0,toasts=[],curH=-1,alarmT=0,muted=false;
const fwd=()=>new THREE.Vector3(Math.sin(sub.yaw),0,Math.cos(sub.yaw));
function save(){try{localStorage.setItem('blockdeep3d',JSON.stringify({st,taken:[...taken].slice(-3000),pos:[sub.p.x,sub.p.y,sub.p.z,sub.yaw]}))}catch(e){}}
function load(){try{const j=JSM
ON.parse(localStorage.getItem('blockdeep3d')||'null');if(j){Object.assign(st,j.st);st.up=Object.assign({lamp:0,o2:0,fuel:0,batt:0,hull:0,sonar:0,hold:0},j.st.up);taken=new Set(j.taken||[]);if(j.pos){sub.p.set(j.pos[0],j.pos[1],j.pos[2]);sub.yaw=j.pos[3]||0}}}catch(e){}
  for(const k of['o2','fuel','batt','hull'])sub[k]=MX(k)}
// messages that only state the obvious (what you just picked up, what the sky is doing, what is ahead) are dropped:
// the game shows it, and finding things out for yourself is the point. WarM
nings and real events still come through, small and unboxed
const QUIET=/^(BANKED|HARVESTED|\+\d|COCONUT|RIG SUPPLIES|BLOCK SCANNED|DAWN BREAKS|FULL DAYLIGHT|DUSK
|SKIES CLEARING|CLOUDS ROLLING|RAIN ABOVE|STORM ABOVE|BELOW 750|LIGHT ABOVE|WRECK SIGHTED|DERELICT SUB SIGHTED|PIRATE LAIR|MEMORIAL:|RELIC:|OIL RIG|DOCKING STATION|DOCKED|[A-Z ]+ STATION AHEAD|DAVY JONES|SOMETHING ENORMOUS|A NEW BLOCK
|BACK IN THE WATER|MOON POOL)|\+\d+$/;
const toast=s=>{if(!QUIET.test(s))toasts.push({s,end:performance.now()M
// ---------- audio ----------
function audioOn(){if(!AC){try{AC=new(window.AudioContext||window.webkitAudioContext)()}catch(e){}}AC&&AC.state==='suspended'&&AC.resume();ambStart()}
// continuous sound: brown-noise ocean that muffles with depth, and an engine hum with propeller chug that follows speed
let AMB=null,thump=0;
function ambStart(){if(!AC||AMB)return;const n=AC.sampleRate*4,buf=AC.createBuffer(1,n,AC.sampleRate),d=buf.getChannelData(0);let l=0;for(let i=0;i<n;i++){l=(l+.02*(Math.rM
andom()*2-1))/1.02;d[i]=l*3.5}
  const src=AC.createBufferSource();src.buffer=buf;src.loop=true;const lp=AC.createBiquadFilter();lp.type='lowpass';lp.frequency.value=500;const ag=AC.createGain();ag.gain.value=0;src.connect(lp).connect(ag).connect(AC.destination);src.start();
  const eo=AC.createOscillator();eo.type='sawtooth';eo.frequency.value=45;const elp=AC.createBiquadFilter();elp.type='lowpass';elp.frequency.value=200;const eg=AC.createGain();eg.gain.value=0;
  const lfo=AC.createOscillator();lfo.frequency.valM
ue=4;const lg=AC.createGain();lg.gain.value=0;lfo.connect(lg).connect(eg.gain);eo.connect(elp).connect(eg).connect(AC.destination);eo.start();lfo.start();
  AMB={ag,lp,eo,eg,lfo,lg}}
function ambUpdate(dt){if(!AMB)return;const t=AC.currentTime,dm=DM(sub.p.y),k=clamp(dm/1500,0,1),sp=sub.v.length(),on=!muted&&!paused&&!document.hidden?1:0,th=on*clamp(sp/9,0,1);
  AMB.ag.gain.setTargetAtTime(on*(.06-.035*k),t,.4);AMB.lp.frequency.setTargetAtTime(lerp(750,160,k)+Math.sin(tm*.3)*90,t,.4);
  AMB.eg.gain.setTargetAtTime(oM
n*(.006+th*.04),t,.15);AMB.lg.gain.setTargetAtTime(th*.025,t,.15);AMB.eo.frequency.setTargetAtTime(40+sp*5,t,.2);AMB.lfo.frequency.setTargetAtTime(3+sp*1.6,t,.2);
  if(Math.random()<dt*(.2+th))snd(1100+Math.random()*900,.05,'sine',.01,1900);
  if(dm>PLIM&&Math.random()<dt*(.03+(1-(sub.press??100)/100)*.25))snd(60+Math.random()*30,.7,'sawtooth',.014,42);   /* hull creak: only when pressure is building */
  const E=allEnts();
  if(E.some(e=>e.sp&&e.sp.shape==='whale'&&dist(e,sub.p)<70)&&Math.random()M
<dt*.07){const f=180+Math.random()*80;snd(f,2.4,'sine',.035,f*.55)}
  const shark=E.find(e=>e.sp&&e.sp.shape==='shark'&&dist(e,sub.p)<30);if(shark&&(thump-=dt)<0){thump=Math.max(.35,dist(shark,sub.p)/40);snd(58,.14,'sine',.07,40)}
  const cc=chunks.get(ck(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B)));if(cc&&cc.T&&cc.T.some(x=>x.k==='pirate')&&Math.random()<dt*.06)snd(55,1.8,'triangle',.03,41)
  if(E.some(e=>(e.kind==='wreck'||e.ty==='pirate')&&dist(e,sub.p)<25)&&Math.random()<dt*.05)snd(90+Math.random()*40,.9,'triaM
function snd(f,d,type='square',v=.04,f2){if(!AC||muted)return;const o=AC.createOscillator(),g=AC.createGain(),n=AC.currentTime;o.type=type;o.frequency.setValueAtTime(f,n);if(f2)o.frequency.exponentialRampToValueAtTime(f2,n+d);
  g.gain.setValueAtTime(v,n);g.gain.exponentialRampToValueAtTime(.0001,n+d);o.connect(g).connect(AC.destination);o.start(n);o.stop(n+d)}
// ---------- input ----------
const keys={},stick={x:0,y:0},vbtn={u:0,d:0};
let TOUCH=matchMedia('(pointer:coarse)').matches;addEventListenM
er('pointerdown',e=>{TOUCH=e.pointerType==='touch'},true);addEventListener('keydown',()=>{TOUCH=false},true);
// a drawn key or button for prompts: the Z key on a keyboard, the pink A button on touch
function keyCap(g,x,y,pulse){if(TOUCH){g.fillStyle='#ff3fb4';g.beginPath();g.arc(x+6,y+6,6.5,0,6.29);g.fill();g.fillStyle='#ffffff'}else{g.fillStyle='#14181f';g.fillRect(x,y+1,13,13);g.fillStyle=pulse?'#ffffff':'#dbe5ff';g.fillRect(x,y,13,12);g.fillStyle='#14181f'}
  g.font='8px Silkscreen, monospace';g.textAlign='centM
er';g.textBaseline='top';g.fillText(TOUCH?'A':'Z',x+6.5,y+2)}
addEventListener('keydown',e=>{if(e.target.tagName==='INPUT')return;audioOn();const k=e.key.toLowerCase();keys[k]=1;
  if(['arrowup','arrowdown','arrowleft','arrowright',' '].includes(k))e.preventDefault();if(e.repeat)return;
  if(k==='z'||k==='j'||k==='enter')act('A');if(k==='x'||k==='k')act('B');if(k==='c'||k==='l')act('C');if(k==='f')act('L');if(k==='v')act('V');if(k==='h')act('H');if(k==='escape'||k==='i'){if(!$('#start').hidden)return;if(mapOpen){acM
t('M');return}menu($('#menu').hidden)}if(k==='p')act('P');if(k==='r')act('R');if(k==='n')act('N');if(k==='y')act('Y');if(k==='t')act('T');if(k==='m')act('M')});
addEventListener('keyup',e=>keys[e.key.toLowerCase()]=0);
$('#bMn').onclick=()=>{audioOn();if($('#start').hidden)menu($('#menu').hidden);$('#bMn').blur()};
$('#bPh').onclick=()=>{audioOn();act('H');$('#bPh').blur()};
$('#bF').onclick=()=>{const d=document;(d.fullscreenElement?d.exitFullscreen():d.documentElement.requestFullscreen()).catch(()=>toast('THIS VIM
EWER BLOCKS FULL SCREEN'));$('#bF').blur()};
const knob=$('#knob'),stEl=$('#stick');let sid=null;
// a rotation, viewport resize or lost focus can swallow pointerup/keyup, so release every held control
const relAll=()=>{sid=null;stick.x=stick.y=0;knob.style.transform='';vbtn.u=vbtn.d=0;$('#bU').classList.remove('on');$('#bD').classList.remove('on');for(const k in keys)keys[k]=0};
addEventListener('orientationchange',relAll);addEventListener('blur',relAll);document.addEventListener('visibilitychange',()=>{if(documenM
t.hidden)relAll()});
if(screen.orientation&&screen.orientation.addEventListener)screen.orientation.addEventListener('change',relAll);
for(const el2 of[$('.pad'),$('.screen')])el2.addEventListener('contextmenu',e=>e.preventDefault());
stEl.addEventListener('pointerdown',e=>{audioOn();sid=e.pointerId;stEl.setPointerCapture(sid);mv(e)});
stEl.addEventListener('pointermove',e=>e.pointerId===sid&&mv(e));
const end=e=>{if(e.pointerId!==sid)return;sid=null;stick.x=stick.y=0;knob.style.transform=''};
stEl.addEventListener(M
'pointerup',end);stEl.addEventListener('pointercancel',end);
function mv(e){const r=stEl.getBoundingClientRect();let x=e.clientX-r.left-r.width/2,y=e.clientY-r.top-r.height/2;const m=Math.hypot(x,y),Rr=r.width*.36;if(m>Rr){x*=Rr/m;y*=Rr/m}
  stick.x=Math.abs(x)>Rr*.18?x/Rr:0;stick.y=Math.abs(y)>Rr*.18?y/Rr:0;knob.style.transform=`translate(${x}px,${y}px)`}
for(const[id,k]of[['bU','u'],['bD','d']]){const b=$('#'+id);b.addEventListener('pointerdown',e=>{audioOn();vbtn[k]=1;b.classList.add('on');b.setPointerCapture(e.M
  for(const ev of['pointerup','pointercancel','pointerleave'])b.addEventListener(ev,()=>{vbtn[k]=0;b.classList.remove('on')})}
[['bY','Y'],['bN','N'],['bR','R'],['bT','T'],['bP','P'],['bA','A'],['bB','B'],['bC','C'],['bL','L'],['bV','V'],['bM','M'],['bS','S']].forEach(([i,a])=>$('#'+i).addEventListener('click',()=>{audioOn();act(a)}));
HC.addEventListener('pointerdown',e=>{audioOn();const r=HC.getBoundingClientRect(),x=(e.clientX-r.left)/r.width*W,y=(e.clientY-r.top)/r.height*H;if(x<20&&y<20&&!mapOpenM
){menu($('#menu').hidden);return}if(mapOpen)act('M')});
// ---------- menu: everything in one place, opened from the icon top left (or Esc / I) ----------
let menuTab='status';
function menu(o){$('#menu').hidden=!o;paused=o||mapOpen||!$('#card').hidden;if(o)renderMenu();snd(o?600:400,.06)}
const bar=(l,v,max,col)=>`<div class="mrow"><span>${l}</span><div class="mbar"><i style="width:${clamp(v/max*100,0,100)}%;background:${col}"></i></div><b>${Math.round(v)}/${Math.round(max)}</b></div>`;
const mbtn=(act,label,sub2M
,ok=true,on=false)=>`<button data-act="${act}" ${ok?'':'disabled'} class="${on?'on':''}">${label}<small>${sub2}</small></button>`;
function renderMenu(){const T={status:'STATUS',sub:'SUB',hangar:'HANGAR',log:'LOG',trophies:'TROPHIES',more:'MORE'},lv=subLv();
  $('#mtabs').innerHTML=Object.entries(T).map(([k,v])=>`<button data-tab="${k}" class="${menuTab===k?'on':''}">${v}</button>`).join('');
  const c=chunks.get(ck(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B))),b=c&&c.b;let h='';
  if(menuTab==='status'){h=`<p clasM
s="mh">VITALS</p>`+bar('AIR',sub.o2,MX('o2'),'#24ffff')+bar('FUEL',sub.fuel,MX('fuel'),'#ff9224')+bar('BATTERY',sub.batt,MX('batt'),'#ffdb24')+bar('HULL',sub.hull,MX('hull'),'#92ff49')+bar('FOOD',sub.food,100,'#ff2449')+bar('WATER',sub.water,100,'#6db6ff')+bar('CARGO',st.hold.length,holdCap(),'#dadada')+bar('PRESSURE',sub.press??100,100,'#b6b6ff')+`<p class="mnote" style="margin:10px 0 0">REPAIR KITS ${st.kits||0} / 3${sub.leaks?'
 LEAKING':''}</p><p class="mnote" style="margin:4px 0 0">TREASURE MAP: ${st.tmap?stM
 block #'+st.tmap.h.toLocaleString('en-GB'):'none'}</p><p class="mnote" style="margin:4px 0 0">SURFACE
 ${WXN[WCLK.lvl]}</p>`
    +`<p class="mnote">Each new Bitcoin block mined while you dive uses 25% air, 15% battery, 5% fuel, 25 water and 15 food. Next block ~${Math.max(0,Math.ceil(blkT/(st.fastClock&&!LIVE?10:1)/60))} min.</p><p class="mh">POSITION</p><p class="mnote" style="color:var(--fg)">Block #${b?b.h.toLocaleString('en-GB'):'?'}
 ${Math.round(DM(sub.p.y))} m
eOf(DM(sub.p.y))].toLowerCase()}${sub.docked?'
 docked':''}${sub.leaks?'
 '+sub.leaks+' leak'+(sub.leaks>1?'s':'')+' (dock to repair)':''}</p>`+(lv>=3?`<p class="mnote">Nearest dock #${(nearDock()||{}).h??'
 fuel #${(nearRS('fuel')||{}).h??'
 battery #${(nearRS('batt')||{}).h??'
 oxygen #${(nearRS('o2')||{}).h??'
'}</p>`:'<p class="mnote">Station sonar arrives with the Pi-314 Circumference.</p>')}
  else if(menuTab==='sub'){h=`<p class="mh">${SUBS[lv][0].toUpperCase()}</p><p class="mnote"M
 style="margin:0 0 8px">${ABIL[lv]}: ${ABOUT[lv]}.</p><div class="mgrid">`
    +mbtn('L','Lamp',sub.lamp?'on
 tap to switch off':'off',true,sub.lamp)+mbtn('C','Sonar ping','5 battery')+mbtn('V','Cockpit view',view===1?'on':'off',true,view===1)
    +mbtn('N','Night vision',lv>=2?(sub.nv?'on':'off'):'needs Pi-31 Radius',lv>=2,sub.nv)+mbtn('P','Periscope',lv>=2?'sky above this block':'needs Pi-31 Radius',lv>=2,view===2)
    +mbtn('R','Boost',lv>=3?(sub.bcd>0?'recharging':'ready'):'needs Pi-314',lv>=3)+mbtn('T','PulsM
e',lv>=4?(sub.pcd>0?'recharging':'ready'):'needs Pi-3141',lv>=4)+mbtn('Y','Phase drive',lv>=7?(sub.phcd>0?'recharging':'ready'):'needs Pi-3141592',lv>=7)+'</div>'}
  else if(menuTab==='hangar'){h=`<p class="mh">SUBS
 ${sub.docked?'DOCKED, PICK ONE':'DOCK TO SWITCH (EVERY 210TH BLOCK)'}</p><div class="mgrid">`+(st.subs||[0]).slice().sort((a,b2)=>a-b2).map(l=>`<button data-sub="${l}" class="${lv===l?'on':''}" ${sub.docked||lv===l?'':'disabled'}>${SUBS[l][0]}<small>${ABIL[l]}</small></button>`).join('')+'</div>'
 +`<p class="mh">FOUND PARTS</p><div class="mgrid">`+Object.keys(UPN).map(k=>`<button disabled style="opacity:${st.up[k]?1:.45}">${UPN[k]}<small>${MKN[U(k)]}${lv>=7?' (super sub)':''}</small></button>`).join('')+'</div>'}
  else if(menuTab==='log'){const L=[['Species analysed',Object.keys(st.best).length],['Plants catalogued',Object.keys(st.plants).length],['Wrecks logged',Object.keys(st.wrecks||{}).length],['Sea heroes',Object.keys(st.heroes||{}).length+' / '+HEROES.length],
      ['Relics',Object.keys(st.relics||M
{}).length+' / '+HEROES.length],['Rogues',Object.keys(st.rogues||{}).length+' / '+PIRATES.length],['Blocks visited',st.visited.length],['Subs found',(st.subs||[0]).length+' / 8'],['Bio stock',st.stock]];
    h=`<p class="mh">DIVE LOG</p><div class="mgrid">`+L.map(([k,v])=>`<button disabled style="opacity:1">${v}<small>${k}</small></button>`).join('')+'</div>'}
  else if(menuTab==='trophies'){const got=st.tro||{};h=`<p class="mh">TROPHIES
 ${Object.keys(got).length} / ${TROPHIES.length}</p><div class="mgrid">`+TROM
PHIES.map(([id,nm,tier,ds])=>got[id]?`<button disabled style="opacity:1;border-color:${TCOL[tier]}">${nm}<small style="color:${TCOL[tier]}">${tier}
 ${ds}</small></button>`:`<button disabled style="opacity:.6">???<small style="color:${TCOL[tier]}">${tier}
 not found yet</small></button>`).join('')+'</div>'}
  else{h=`<p class="mh">MORE</p><div class="mgrid">`+mbtn('M','Spiral map','the block spiral')+mbtn('S','Sound',muted?'muted':'on',true,!muted)+mbtn('FC','Block clock',st.fastClock?'fast: about 1 min per bloM
ck':'real: about 10 min per block',true,!!st.fastClock)+mbtn('EX','End dive','see your dive report')+mbtn('RS','Reset game','wipe all progress')+'</div><p class="mnote">Esc or I opens and closes this menu.</p>'}
  $('#mbody').innerHTML=`<p class="mnote" style="margin:0 0 10px;color:#3f9a5c">${SUBS[subLv()][0].toUpperCase()}
 CONSOLE<span class="mcur"></span></p>`+h}
$('#menu').addEventListener('click',e=>{const t=e.target.closest('button');if(!t||t.disabled)return;
  if(t.dataset.close!=null){menu(false);return}
  if(t.dataset.tab){menuTab=t.dataset.tab;renderMenu();return}
  if(t.dataset.sub!=null){st.sub=+t.dataset.sub;setSub(st.sub);if(view===2&&st.sub<2)view=0;for(const k of['o2','fuel','batt','hull'])sub[k]=Math.min(sub[k],MX(k));save();upd();renderMenu();return}
  const a=t.dataset.act;if(!a)return;
  if(a==='EX'){report('exit');return}if(a==='RS'){report('reset');return}
  if(a==='S'){act('S');renderMenu();return}
  if(a==='FC'){st.fastClock=!st.fastClock;blkT=Math.min(blkT,expGap());save();renderMenu();return}
(a==='M'){menu(false);mapFromMenu=true;act('M');return}
  if(a==='L'||a==='N'){paused=false;act(a);paused=true;renderMenu();return}
  menu(false);act(a)});
// ---------- dive report: shown when you end a dive or reset ----------
function report(mode){menu(false);paused=true;const n=CNT(),d=k=>n[k]-sess.snap[k],mins=Math.max(1,Math.round((Date.now()-sess.t0)/60000)),tot=mode==='reset';
  const tile=(v,l)=>`<div><b>${v}</b>${l}</div>`,rare=[...sess.rare].map(([h,t])=>`<span style="color:${t.p[0]}">#${h} ${t.name.toUpM
perCase()}</span>`).join('');
  const rareAll=tot?st.visited.map(h=>[h,traits(h).find(t=>t.tier>=2)]).filter(x=>x[1]).map(([h,t])=>`<span style="color:${t.p[0]}">#${h} ${t.name.toUpperCase()}</span>`).join(''):'';
  $('#rpIn').innerHTML=`<h3>${tot?'Final report':'Dive report'}</h3><p class="sub2">${tot?'Everything you found before the reset. This cannot be undone.':'This dive: '+mins+' minute'+(mins>1?'s':'')+' in '+SUBS[subLv()][0]+'.'}</p>
  <div class="rgrid">${tot?tile(st.visited.length,'blocks visited')+tile(nM
.species,'species analysed')+tile(n.plants,'plants catalogued')+tile(n.wrecks,'wrecks logged')+tile(n.heroes+'/'+HEROES.length,'sea heroes')+tile(n.relics+'/'+HEROES.length,'relics')+tile(n.rogues+'/'+PIRATES.length,'rogues')+tile(n.subs+'/8','subs found')+tile(n.stock,'bio stock')
    :tile(sess.blocks.size,'blocks visited')+tile(sess.rare.size,'rare blocks')+tile(Math.round(sess.dist).toLocaleString('en-GB')+' m','travelled')+tile(Math.round(sess.maxD)+' m','deepest')+tile(d('species'),'new species')+tile(d('planM
ts'),'new plants')+tile(d('wrecks'),'wrecks logged')+tile(d('heroes')+d('relics'),'hero finds')+tile(d('rogues'),'rogues found')+tile(sess.items,'items collected')+tile('+'+d('stock'),'bio stock banked')+tile(sess.hits+' / '+Math.round(sess.dmg),'hits / damage')+(st.hold.length?tile(st.hold.length,'unbanked in hold'):'')+(d('subs')?tile(d('subs'),'new subs'):'')}</div>
  ${(tot?rareAll:rare)?`<p class="mh" style="margin-top:12px">RARE BLOCKS ${tot?'EVER ':''}VISITED</p><div class="rare">${tot?rareAll:rare}</div>`:'M
  ${tot?'':`<div class="rdon"><p class="don"><span class="btc" aria-hidden="true">
</span>Enjoying Block Dive? Tips fund the next game.</p><p class="drow"><span class="addr">bc1q3ahp09vdva46ggwfu32uepml39kk9jz02l7qyp</span><button type="button" class="cpy" onclick="bdCopy(this)">Copy</button></p></div>`}
  <p class="sub2" id="rpCd" style="margin:12px 0 0;text-align:right"></p><div class="acts">${tot?'<button data-r="cancel">Cancel</button><button data-r="wipe" class="warn">Reset everything</button>':'<button dM
ata-r="new" class="go">Start a new dive now</button>'}</div>`;
  $('#report').hidden=false;$('#rpIn button:last-child').focus({preventScroll:true});
  // the report stays up for 30 seconds with a countdown, then carries on by itself (a reset is never automatic: it cancels)
  clearInterval(rpTimer);let left=30;const tickR=()=>{$('#rpCd').textContent=(tot?'Returning to your dive in ':'New dive starts in ')+left+'s';if(left--<=0){clearInterval(rpTimer);$('#rpIn button[data-r="'+(tot?'cancel':'new')+'"]').click()}};ticM
kR();rpTimer=setInterval(tickR,1000)}
let rpTimer=0,mapFromMenu=false;
// back arrow (top left) for the spiral map and the dive report: returns to the menu they were opened from
$('#bBk').onclick=()=>{if(!$('#report').hidden){clearInterval(rpTimer);$('#report').hidden=true;menu(true);return}
  if(mapOpen){mapOpen=false;paused=false;snd(400,.06);if(mapFromMenu)menu(true);mapFromMenu=false}};
$('#report').addEventListener('click',e=>{const r=e.target.dataset&&e.target.dataset.r;if(!r)return;clearInterval(rpTimer);$('M
#report').hidden=true;
  if(r==='cancel'){paused=false;return}
  if(r==='new'){if(st.hold.length){st.stock+=st.hold.reduce((a,b)=>a+b,0);st.hold=[]}save();newSess();paused=false;st.home=midBlock();st.bday=true;teleport(st.home);save();upd();return}
  if(r==='wipe'){try{localStorage.removeItem('blockdeep3d')}catch(e){}st={up:{lamp:0,o2:0,fuel:0,batt:0,hull:0,sonar:0,hold:0},stock:0,best:{},plants:{},hold:[],visited:[0]};taken=new Set();
    setSub(0);view=0;sub.nv=false;newSess();for(const c of chunks.values())sceneM
.remove(c.g);chunks.clear();$('#start').hidden=false;paused=true;upd()}});
// ---------- count-in: the 3x3 blocks load, then 3, 2, 1, dive ----------
function countIn(h){clearInterval(ciTimer);paused=true;const[cx,cz]=spiralXY(h),t0=Date.now();let tc=0,last=-1;$('#countin').hidden=false;$('#ciH').textContent='Block #'+h.toLocaleString('en-GB');$('#ciNum').textContent='';
  ciTimer=setInterval(()=>{let ready=0,cells='';const notes=[];
    for(let dz=1;dz>=-1;dz--)for(let dx=-1;dx<=1;dx++){const hh=spiM
ralH(cx+dx,cz+dz),c=chunks.get(ck(cx+dx,cz+dz)),stt=c?(c.state==='ok'&&!c.full?'load':c.state==='queued'?'load':c.state):'load';if(stt!=='load')ready++;
      const t=stt==='ok'&&traits(hh).find(t=>t.tier>=2);if(t)notes.push(t.name);if(stt==='ok'&&isDock(hh))notes.push('a dock');if(stt==='ok'&&rsType(hh))notes.push(RS[rsType(hh)][0].toLowerCase()+' station');
      cells+=`<div class="${stt}${dx||dz?'':' me'}"><b>#${hh}</b><span>${stt==='ok'?'READY':stt==='frontier'?'UNMINED':'LOADING
G').innerHTML=cells;$('#ciNote').textContent=ready+' of 9 blocks loaded'+(notes.length?'
 nearby: '+[...new Set(notes)].join(', '):'');
    if(!tc&&ready===9&&Date.now()-t0>1400)tc=Date.now();
    if(tc){const e=(Date.now()-tc)/1000,n=3-Math.floor(e);if(n!==last){last=n;$('#ciNum').textContent=n>0?n:'DIVE!';snd(n>0?520:880,n>0?.12:.3,'square',.04)}
      if(e>=3.6){clearInterval(ciTimer);$('#countin').hidden=true;paused=mapOpen||!$('#card').hidden||!$('#menu').hidden||!$('#start').hidden||!$('#report').hidden}}},M
// ---------- chain clock: each new Bitcoin block mined while you dive costs air, battery, fuel, water and food ----------
// simulated here with irregular gaps averaging 10 minutes (or 1 minute in fast mode); inscribed, it polls /r/blockheight
const BLK={o2:.25,batt:.15,fuel:.05},expGap=()=>-Math.log(1-Math.random())*600;
let blkT=expGap(),liveTip=0,lastPoll=0;
function blockTick(n=1){sub.ghost={o2:sub.o2,batt:sub.batt,fuel:sub.fuel};for(let i=0;i<n;i++){for(const k in BLK)sub[k]=Math.max(0,sub[k]-MX(k)*BLK[M
k]);sub.water=Math.max(0,sub.water-25);sub.food=Math.max(0,sub.food-15)}
  TIP+=LIVE?0:n;sub.chainFx=1.6;clamT=18;for(const c of chunks.values())if(c.clam&&Math.hypot(sub.p.x-c.clam.x,sub.p.z-c.clam.z)<90)setTimeout(()=>toast('A NEW BLOCK
 THE GIANT CLAM IS OPENING'),600);
  snd(392,.25,'square',.05);setTimeout(()=>snd(523,.25,'square',.05),180);setTimeout(()=>snd(784,.4,'square',.05),360);
// a newly settled block opens up: drop its frontier wall so ensureChunks loads it like any other block
ig can be entered only from its own child inscription (the page's own id is the rig's id); previews let you in
const canRig=h=>!LIVE||(RIGS.has(h)&&RIGS.get(h).id===SELF);
// inside the rig: the moon pool chamber, walked on foot along the walkway around the sub (no going outside)
const RW={x0:40,y0:42,x1:280,y1:190},RP={x0:100,y0:76,x1:220,y1:150},GW=[160,166];
function enterRig(c){const R0=RIGS.get(c.h),id='rigdeck:'+c.h+':'+TIP;rigView={c,R0,t:0,px:GW[0],py:GW[1]+8,f:1,step:0,box:!taken.has(id)&M
&mulberry(hstr(id))()<1/60?id:null,bx:262,by:62};
  paused=true;sub.v.set(0,0,0);snd(262,.4,'triangle',.05,392);setTimeout(()=>snd(523,.5,'triangle',.04),250);toast('MOON POOL
function rigNear(x,y,d=14){return Math.hypot(rigView.px-x,rigView.py-y)<d}
function rigAct(){const v=rigView;if(v.box&&rigNear(v.bx,v.by)){taken.add(v.box);v.box=null;for(const k of['fuel','o2','batt'])sub[k]=Math.min(MX(k),sub[k]+30);sub.food=Math.min(100,sub.food+25);sub.water=Math.min(100,sub.water+25);toast('RIG SUPPLIES
 +25 FOOD WATER');snd(523,.4,'square',.05,784);save();return}
  if(rigNear(GW[0],GW[1]+4,16))leaveRig()}
function leaveRig(){const c=rigView.c;rigView=null;sub.p.set(c.rig.x,-15,c.rig.z);sub.v.set(0,-3,0);paused=mapOpen||!$('#menu').hidden;toast('BACK IN THE WATER');snd(330,.4,'sine',.05,160)}
function rigScene(g,dt){const v=rigView,P=(x,y,w,h,col)=>{g.fillStyle=col;g.fillRect(x|0,y|0,w|0,h|0)};v.t+=dt;const t=v.t;
  // walk: stick or arrow keys, kept on the walkway (inside the walls, outside M
  if($('#menu').hidden){const mx=clamp((keys.arrowright||keys.d?1:0)-(keys.arrowleft||keys.a?1:0)+stick.x,-1,1),my=clamp((keys.arrowdown||keys.s?1:0)-(keys.arrowup||keys.w?1:0)+stick.y,-1,1);
    if(mx||my){const nx=clamp(v.px+mx*55*dt,RW.x0,RW.x1),ny=clamp(v.py+my*55*dt,RW.y0,RW.y1),inPool=(x,y)=>x>RP.x0-4&&x<RP.x1+4&&y>RP.y0-4&&y<RP.y1+4;
      if(!inPool(nx,v.py))v.px=nx;if(!inPool(v.px,ny))v.py=ny;if(mx)v.f=mx>0?1:-1;v.step+=dt*8}}
  // room: steel floor, walls with lockers and pipes, lights
,H,'#14181f');P(16,22,W-32,H-36,'#2a2e34');for(let x=16;x<W-16;x+=8)P(x,22,1,H-36,'#30353c');for(let y=22;y<H-14;y+=8)P(16,y,W-32,1,'#30353c');
  P(16,14,W-32,10,'#3a4048');for(let x=24;x<W-24;x+=34){P(x,6,22,10,'#4a515e');P(x+2,8,18,2,'#7a828e')}for(let x=40;x<W;x+=80){P(x,22,10,4,'#fff2b0');g.fillStyle='rgba(255,242,176,.06)';g.fillRect(x-30,26,70,60)}
  P(8,22,8,H-36,'#1e242d');P(W-16,22,8,H-36,'#1e242d');P(10,30,3,H-52,'#8a5a2a');P(W-13,30,3,H-52,'#2a6a8a');
  // walkway edge: hazard stripes around the pool, raM
  P(RP.x0-8,RP.y0-8,RP.x1-RP.x0+16,RP.y1-RP.y0+16,'#1a1a1a');for(let x=RP.x0-8;x<RP.x1+8;x+=8){P(x,RP.y0-8,4,3,'#ffdb24');P(x,RP.y1+5,4,3,'#ffdb24')}for(let y=RP.y0-8;y<RP.y1+8;y+=8){P(RP.x0-8,y,3,4,'#ffdb24');P(RP.x1+5,y,3,4,'#ffdb24')}
  // the moon pool, lit from below, the sub floating in it (seen from above)
  P(RP.x0,RP.y0,RP.x1-RP.x0,RP.y1-RP.y0,'#0e4a5c');for(let i=0;i<12;i++){const y=RP.y0+3+((i*6+t*5)%(RP.y1-RP.y0-6)),w=10+(i*29%40);P(RP.x0+4+(i*41%(RP.x1-RP.x0-50)),y,w,1,'#3fa9c4')}
ubLv()][1],cy=(RP.y0+RP.y1)/2+Math.sin(t*1.5)*1.2;g.fillStyle=sc;g.beginPath();g.ellipse(160,cy,46,14,0,0,6.29);g.fill();P(150,cy-6,20,12,shade(sc,.8));P(156,cy-3,8,6,'#bff6ff');P(110,cy-1,8,2,'#9aa3b2');
  P(GW[0]-6,RP.y1,12,GW[1]-RP.y1+2,'#7a5b3a');for(let y=RP.y1+2;y<GW[1];y+=3)P(GW[0]-6,y,12,1,'#5a4630');
  // the rare supplies
  if(v.box){P(v.bx-8,v.by-6,16,11,'#ff9224');P(v.bx-8,v.by-2,16,2,'#24242a');P(v.bx-2,v.by-5,4,4,'#ffffff');g.fillStyle='rgba(255,146,36,'+(.18+.12*Math.sin(t*4))+')';g.fillRect(v.bx-13,M
  // the pilot: dive suit, helmet, walking bob
  const bob=Math.sin(v.step)*1.2,x=v.px|0,y=(v.py+bob)|0;P(x-3,y-9,7,6,'#ffdb24');P(x-2+(v.f>0?1:0),y-8,4,3,'#6dffff');P(x-3,y-3,7,7,'#ff9224');P(x-3,y+4,3,4,'#3a4048');P(x+1,y+4,3,4,'#3a4048');P(x-5,y-2,2,5,'#ff9224');P(x+4,y-2,2,5,'#ff9224');
  // labels and the action hint
  P(20,H-12,W-40,10,'#0a0d12');txt(g,'RIG '+v.R0.n+' OF 21
 MOON POOL',24,H-11,'#6dffff');
  const doIt=v.box&&rigNear(v.bx,v.by)?'TAKE SUPPLIES':rigNear(GW[0],GW[1]+4,16)?'BOARDM
  if(doIt){const pulse=(t*2|0)%2,l1=TOUCH?'TAP':'PRESS',l2='TO '+doIt;g.font='8px Silkscreen, monospace';const w1=g.measureText(l1).width,w=w1+g.measureText(l2).width+38,x=W/2-w/2,y=H-36;
    P(x,y,w,18,'#000814e6');g.strokeStyle='#ffdb24';g.strokeRect(x+.5,y+.5,w-1,17);txt(g,l1,x+7,y+5,'#ffdb24');keyCap(g,x+w1+12,y+3,pulse);txt(g,l2,x+w1+31,y+5,'#ffdb24')}
  if(!doIt)txt(g,'WALK THE WALKWAY',W-24,H-11,'#ffdb24','right')}
function rigDrop(c){if(!c.rig)return;const id='rigdrop:'+c.h+':'+TIP;if(taken.haM
s(id)||c.ents.some(e=>e.id===id)||mulberry(hstr(id))()>=1/120)return;
  const x=c.rig.x-2,z=c.rig.z+5,o={id,kind:'item',k:'rigbox',x,y:floorY(x,z),z,obj:IT0.rigbox()};o.obj.position.set(x,o.y,z);c.g.add(o.obj);c.ents.push(o);
  if(Math.hypot(sub.p.x-x,sub.p.z-z)<B)toast('THE RIG LOWERS A SUPPLY CRATE')}
function unfreeze(){for(const c of chunks.values())rigDrop(c);for(const[k,c]of chunks)if(c.state==='frontier'&&c.h<=TIP){scene.remove(c.g);c.g.traverse(o=>{if(o.isMesh&&o.userData.own)o.geometry.dispose()});chunks.dM
function chainClock(dt){
  if(LIVE){if(Date.now()-lastPoll>20000){lastPoll=Date.now();fetch('/r/blockheight').then(r=>{if(!r.ok)throw 0;return r.text()}).then(t=>{const n=+t;if(n>0){lk('height','ok','working
 chain height '+n.toLocaleString('en-GB'));const old=liveTip;liveTip=n;TIP=Math.max(TIP,n-6);unfreeze();if(old&&n>old&&!paused)blockTick(Math.min(3,n-old))}}).catch(()=>lk('height','bad','stopped answering'));
      fetch('/r/blocktime').then(r=>{if(!r.ok)throw 0;return r.text()}).then(t=>{const tsM
=+t;if(ts>0){blkT=Math.max(0,ts+600-Date.now()/1000);lk('time','ok','working
 last block '+new Date(ts*1000).toISOString().slice(11,16)+' UTC')}else lk('time','bad','empty answer')}).catch(()=>lk('time','bad','no answer'))}blkT=Math.max(0,blkT-dt);return}
  blkT-=dt*(st.fastClock?10:1);if(blkT<=0){blockTick();blkT=expGap()}}
  if(rigView){if(a==='A'||a==='B')rigAct();return}
  if(!$('#card').hidden){if(a==='A'||a==='B')$('#ca button:last-child')?.click();return}
  if(a==='M'){mapOpen=!mapOpen;pauM
sed=mapOpen;snd(440,.08);return}
  if(a==='S'){muted=!muted;$('#bS').textContent=muted?'MUTED':'SOUND';return}
  if(a==='V'){view=view===1?0:1;snd(330,.08);return}
  if(a==='H'){if(view!==1){toast('FLOOR PORTHOLE IS IN COCKPIT VIEW');return}cockDown=!cockDown;snd(cockDown?260:380,.1);return}
  if(a==='P'&&subLv()<2&&view!==2){toast('NO PERISCOPE - FIND THE PI-31 RADIUS (BLOCK 31)');snd(140,.2);return}
  if(a==='N'){if(subLv()<2){toast('NIGHT VISION NEEDS THE PI-31 RADIUS');return}sub.nv=!sub.nv;M
snd(sub.nv?1400:700,.15,'sine',.04,sub.nv?2200:400);return}
  if(a==='Y'){if(subLv()<7){toast('PHASE DRIVE NEEDS THE PI-3141592 IRRATIONAL');return}if(sub.phcd>0){toast('PHASE DRIVE RECHARGING');return}if(sub.batt<10){toast('BATTERY TOO LOW TO PHASE');return}
    sub.batt-=10;sub.phase=4;sub.phcd=12;toast('PHASE DRIVE - SOLID MATTER IGNORED');snd(300,1.2,'sine',.05,1800);return}
  if(a==='R'){boost();return}if(a==='T'){pulse();return}
  if(a==='P'){view=view===2?0:2;snd(view?520:260,.12,'triangle',.04,view?780:180)M
  if(a==='L'){if(sub.batt<=0){toast('BATTERY FLAT');return}sub.lamp=!sub.lamp;snd(sub.lamp?660:330,.06);return}
  if(a==='A')grab();if(a==='B')scan();if(a==='C')ping()
// ---------- interactions ----------
const allEnts=()=>{const o=[];for(const c of chunks.values())if(c.state==='ok')for(const e of c.ents)o.push(e);return o};
const stations=()=>[...chunks.values()].filter(c=>c.station).map(c=>c.station);
const dist=(e,p)=>Math.hypot(e.x-p.x,e.y+(e.kind==='fish'?0:.6)-p.y,e.z-p.z);
function near(list,p,RM
r,f){let b=null,bd=Rr;for(const o of list){if(f&&!f(o))continue;const d=dist(o,p);if(d<bd){bd=d;b=o}}return b}
// ---------- world clock: day and weather follow the real clock, so every diver sees the same sky ----------
// a cycle is 70 minutes: 60 of daylight (2 min dawn up, 2 min dusk down) and 10 of night. Weather changes every 9 minutes.
// Add #time=day or #time=night (and #wx=storm|rain|cloud|clear) to the address to force it for testing.
const CYC=70,WXN=['CLEAR','OVERCAST','RAIN','STORM'],WXV=[0,.33,.66,1]M
,WCLK={ph:0,k:1,L:1,tod:'day',hr:12,wx:0,lvl:0,flash:0,first:1,ep:-1};
function worldClock(dt){const m=Date.now()/60000,H=location.hash;let ph=m%CYC;if(/time=day/.test(H))ph=30;else if(/time=night/.test(H))ph=65;
  const tod=ph<3?'dawn':ph<57?'day':ph<60?'dusk':'night',k=ph<60?clamp(Math.min(ph,60-ph)/2,0,1):0;
  if(!WCLK.first&&tod!==WCLK.tod)toast({dawn:'DAWN BREAKS ABOVE',day:'FULL DAYLIGHT',dusk:'DUSK
 NIGHT FALLS SOON',night:'NIGHT
 LASTS 10 MINUTES'}[tod]);
  WCLK.ph=ph;WCLK.tod=tod;WCLK.k=k;WCLK.hr=ph<60M
?6+ph/60*12:18+(ph-60)/10*12;
  const ep=Math.floor(m/9),wm=(H.match(/wx=(storm|rain|cloud|clear)/)||[])[1];let lv;
  if(wm)lv={clear:0,cloud:1,rain:2,storm:3}[wm];else{const r=hstr('wx'+ep)%100;lv=r<45?0:r<70?1:r<88?2:3}
  if(!WCLK.first&&lv!==WCLK.lvl)toast(['SKIES CLEARING','CLOUDS ROLLING IN','RAIN ABOVE','STORM ABOVE
 SURFACE WATERS ROUGH'][lv]);
  WCLK.lvl=lv;WCLK.wx=WCLK.first?WXV[lv]:WCLK.wx+(WXV[lv]-WCLK.wx)*Math.min(1,dt*.06);WCLK.first=0;
  WCLK.L=Math.max(.1,k)*(1-.55*WCLK.wx);
  if(WCLK.wx>.8&&Math.rM
andom()<dt*.07){WCLK.flash=1;const dp=clamp(DM(sub.p.y)/150,0,1);if(dp<1)setTimeout(()=>{if(!muted){const v=.05*(1-dp);snd(55+Math.random()*20,2.2,'triangle',v,30);setTimeout(()=>snd(45+Math.random()*15,1.6,'sine',v*.7,28),250)}},300+Math.random()*1800)}
  WCLK.flash=Math.max(0,WCLK.flash-dt*3.5)}
const skyLabel=()=>WCLK.ph<60?(WCLK.ph>57?'DUSK':WCLK.ph<3?'DAWN':'DAY')+'
 NIGHT IN '+Math.ceil(60-WCLK.ph)+'M':'NIGHT
 DAWN IN '+Math.ceil(70-WCLK.ph)+'M';
const skySig=()=>WCLK.tod+(WCLK.wx*3+.5|0)+(WCLK.ph/2|0);
onst ambient=y=>clamp(1-DM(y)/700,0,1)*(.25+.75*WCLK.L);
function lit(o){if(o.glow||o.sp&&o.sp.glow)return 1;if(sub.nv&&dist(o,sub.p)<34)return 1;if(subLv()>=6&&dist(o,sub.p)<44)return 1;if(ambient(o.y)>.35)return 1;const d=dist(o,sub.p);if(d<9)return 1;
  if(!sub.lamp)return 0;const v=new THREE.Vector3(o.x-sub.p.x,o.y-sub.p.y,o.z-sub.p.z).normalize();return v.dot(fwd())>Math.cos(lampA())&&d<lampR()}
function holdFree(n=1){if(st.hold.length+n>holdCap()){toast('HOLD FULL - BANK AT SURFACE OR STATION');snd(140,.2);reM
// grabbing: only what is in front of the nose; the claw reaches out to it, clamps, and reels it back to the hull
// GR phases: reach (extend and open, tracking the target) -> close (jaws snap shut) -> back (retract, carrying it) -> collect
let GR=null;const GRAB_R=6.5,ARM_REST=.75,gpA=new THREE.Vector3(),gpB=new THREE.Vector3(),gpC=new THREE.Vector3();
const grabPt=(e,v)=>v.set(e.x,e.y+(e.kind==='fish'?0:e.kind==='plant'?.8:.45),e.z);
const shoulder=v=>{const k=subLv()>=7?1.15:1;return v.set(sub.pM
.x+Math.sin(sub.yaw)*1.3*k,sub.p.y-.78*k,sub.p.z+Math.cos(sub.yaw)*1.3*k)};
const grabbable=e=>!e.held&&(e.kind==='item'||e.kind==='ore'||e.kind==='plant'||e.kind==='fish');
// how far a creature's body reaches out from its centre: big turtles and whales are grabbed by the shell, not the middle
const bodyR=e=>e.kind!=='fish'?0:e.sp.shape==='whale'?5:e.sp.shape==='puffer'?2.2:(.35+e.sp.size*.28)*(e.sp.shape==='turtle'?1.2:e.sp.shape==='shark'?1.4:.8);
const easeOutBack=t=>1+2.2*Math.pow(t-1,3)+1.2*Math.pow(t-1,2),eaM
seInOut=t=>t<.5?2*t*t:1-Math.pow(-2*t+2,2)/2;
// the best target ahead (within ~44
 of the nose; straight below counts as ahead) and the nearest one that is in reach but off to the side
function grabPick(){const o=shoulder(gpA),f=fwd();let e0=null,bs=1e9,side=null,sd=1e9;
  for(const c of chunks.values())if(c.state==='ok')for(const e of c.ents){if(!grabbable(e))continue;grabPt(e,gpB);const vx=gpB.x-o.x,vy=gpB.y-o.y,vz=gpB.z-o.z,br=bodyR(e),d=Math.max(0,Math.hypot(vx,vy,vz)-br);if(d>GRAB_R)continue;
th.hypot(vx,vz),cs=hd<1+br?1:(vx*f.x+vz*f.z)/hd;if(cs<.72||vy>4.5+br){if(d<sd){sd=d;side=e}continue}
    const s=d+(1-cs)*8+(e.kind==='plant'?3:0);if(s<bs){bs=s;e0=e}}   // plants carpet reefs, so loot and creatures come first
  return{e:e0,side}}
// whether the claw can take it: too-big creatures shrug it off, and the hold has to have room
function canGrab(o){if(o.kind==='fish'&&((o.sp.shape==='angler'&&o.sp.size>1)||o.sp.shape==='shark'||o.sp.shape==='whale')){toast('TOO BIG TO GRAB');o.flee=2.5;return 0}
 n=o.kind==='item'?(o.k==='chest'||o.k==='cursed'?2:0):1;return n?holdFree(n):1}
  if(GR)return;if(sub.batt<1){toast('BATTERY FLAT');return}
  const tip=sub.p.clone().add(fwd().multiplyScalar(2)).add(new THREE.Vector3(0,-.8,0)),E=allEnts();
  // landmarks: the claw reaches out and taps them
  const poke=(e,fn)=>{sub.batt-=1;GR={ph:'reach',t:0,dur:.32,aim:new THREE.Vector3(e.x,e.y,e.z),hit:fn,L:ARM_REST};snd(180,.25,'sawtooth',.02,360)};
  const il=E.find(e=>e.kind==='isle'&&dist(e,tip)<9);if(il){poM
ke(il,()=>ashore(il));return}
  const lk=E.find(e=>e.kind==='locker'&&dist(e,tip)<9);if(lk){poke(lk,()=>openLocker(lk));return}
  const gv=E.find(e=>(e.kind==='gvault'||e.kind==='gsub')&&dist(e,tip)<6);if(gv){poke(gv,()=>{toast(gv.kind==='gvault'?'SEALED
 THESE COINS CAN NEVER BE SPENT':'THE SATOSHI SUB CANNOT BE BOARDED');snd(140,.3)});return}
  const{e,side}=grabPick();
  if(!e&&side){toast('TURN TO FACE IT');snd(330,.06,'square',.03);return}
  sub.batt-=1;GR={ph:'reach',t:0,dur:e?.2+gpA.distanceTo(grabPt(e,gpBM
))*.035:.3,tg:e,L:ARM_REST};
  if(!e)toast('NOTHING IN REACH');snd(180,.25,'sawtooth',.02,360)}
// runs every frame while the arm is out; also poses the arm so the carried item can ride the claw tip
function armUpdate(dt){const g=GR;g.t+=dt;const o=shoulder(gpA);
  if(g.tg&&(g.tg.dead||(g.ph==='reach'&&grabPt(g.tg,gpB).distanceTo(o)>GRAB_R+1.5+bodyR(g.tg))))g.tg=null;   // it got away
  const T=g.tg?grabPt(g.tg,gpB):g.aim?gpB.copy(g.aim):gpB.copy(fwd()).multiplyScalar(GRAB_R*.8).add(o).add(gpC.set(0,-1.4,0));
g.tg){const br=bodyR(g.tg);if(br){gpC.copy(T).sub(o);const L=gpC.length();if(L>1)T.addScaledVector(gpC,-Math.min(br*.7,L-1)/L)}}   // close on the near side of a big body
  if(g.ph==='reach'||g.ph==='close'){g.dir=gpC.copy(T).sub(o).normalize().clone();g.D=Math.min(T.distanceTo(o),GRAB_R)}
  if(g.ph==='reach'){const k=Math.min(1,g.t/g.dur);g.L=lerp(ARM_REST,g.D-.42,easeOutBack(k));g.open=Math.min(1,k*1.6)*.8;
    if(g.tg){const ty=Math.atan2(T.x-sub.p.x,T.z-sub.p.z),dd=((ty-sub.yaw+Math.PI)%(2*Math.PI)+2*Math.PI)%(M
2*Math.PI)-Math.PI;sub.yaw+=dd*Math.min(1,dt*7)}   // the sub settles onto it
    if(k>=1){g.ph='close';g.t=0;
      if(g.hit){g.hit();g.hit=null;snd(300,.06,'square',.04,200)}
      else if(g.tg&&canGrab(g.tg)){g.tg.held=1;g.carry=1;sub.shake=.12;snd(140,.08,'square',.06,90);setTimeout(()=>snd(900,.05,'triangle',.03),40)}
      else{g.tg=null;snd(300,.06,'square',.04,200)}}}
  else if(g.ph==='close'){const k=Math.min(1,g.t/.12);g.open=lerp(.8,g.carry?.28:0,k);if(k>=1){g.ph='back';g.t=0;g.L0=g.L;if(g.carry)snd(360,M
.35,'sawtooth',.018,160)}}
  else{const k=Math.min(1,g.t/.45),e=easeInOut(k);g.L=lerp(g.L0,ARM_REST,e);
    if(k>=1){GR=null;const tg=g.tg;if(tg&&g.carry){tg.obj.scale.setScalar(1);tg.obj.rotation.z=0;tg.held=0;collect(tg)}else snd(300,.05,'square',.03,180);armPose();return}}
// place the arm (out along GR's aim while grabbing, otherwise stowed forward and down under the nose) and the catch riding its claw
function armPose(){const o=shoulder(gpA),g=GR;ARM.g.position.copy(o);
  if(g&&g.dir)ARM.g.lookAt(M
gpC.copy(o).add(g.dir));else ARM.g.lookAt(gpC.copy(fwd()).add(o).add(gpB.set(0,-.45,0)));
  armSet(g?g.L:ARM_REST,g?g.open||0:0);ARM.g.visible=!!g||(view===0&&SUBG.visible);ARM.g.updateMatrixWorld(true);
  if(g&&g.carry&&g.tg&&g.ph==='back'){const e=easeInOut(Math.min(1,g.t/.45)),s=lerp(1,.4,e),tp=ARM.wrist.localToWorld(gpB.set(0,0,.42)),o2=g.tg;
    if(o2.kind==='fish')tp.addScaledVector(g.dir,bodyR(o2)*.7*s);   // the creature hangs from the claw by its near side
    o2.obj.position.set(tp.x,tp.y-(o2.kind==='fishM
'?0:.45*s),tp.z);o2.obj.scale.setScalar(s);o2.obj.rotation.z=Math.sin(tm*14)*.25*(o2.kind==='fish'?1:.3);o2.x=tp.x;o2.y=tp.y;o2.z=tp.z}}
// a pulsing bracket on whatever the claw would take (or TURN on something in reach but off to the side)
function grabHint(g){if(paused||GR||view===2)return;const{e,side}=grabPick(),t=e||side;if(!t)return;grabPt(t,gpB).project(cam);if(gpB.z>1||Math.abs(gpB.x)>1||Math.abs(gpB.y)>1)return;
  const x=Math.round((gpB.x+1)/2*W),y=Math.round((1-gpB.y)/2*H),c=e?'#ffdb24':'#7f8cb8',s=7+MaM
th.round(Math.sin(tm*6)*1.5);g.fillStyle=c;
  for(const[sx,sy]of[[-1,-1],[1,-1],[-1,1],[1,1]]){const cx=x+sx*s,cy=y+sy*s;g.fillRect(sx>0?cx-2:cx,cy,3,1);g.fillRect(cx,sy>0?cy-2:cy,1,3)}
  txt(g,e?'GRAB':'TURN',x,y+s+3,c,'center')}
function take(o){sess.items++;o.dead=1;taken.add(o.id);o.obj.visible=false;for(const c of chunks.values())c.ents=c.ents.filter(e=>!e.dead)}
const chunkOf=o=>chunks.get(ck(Math.floor(o.x/B),Math.floor(o.z/B)));
// ---------- trophies: for the hard-to-find ----------
const TROPHIES=[['trideM
nt',"Poseidon's Trident",'MYTHIC','Took the trident from the statue of Poseidon on the genesis block.'],['pearl','Pearl of the Million','LEGENDARY','Took the giant pearl from the clam at block 1,000,000.'],['atlas','The Hidden Atlas','EPIC','Found the secret channel on block 123456 and took the atlas.'],
  ['core9','Heart of the Abyss','LEGENDARY','Recovered all nine Pressure Cores from the trenches.'],['mono9','Keeper of the Chain','EPIC','Read all nine trench monoliths.'],['octo','Eye of the Octopus','EPIC','ScanM
ned the Millionth Octopus.'],['locker',"Davy's Debt",'EPIC',"Opened Davy Jones' Locker."],['deep','Deeper Than Deep','EPIC','Reached 1,700 m.'],
  ['core1','First Core','RARE','Recovered a Pressure Core from a trench.'],['abyss','Abyss Walker','RARE','Reached 1,500 m.'],['mapdone','Treasure Hunter','RARE','Followed a treasure map to its place.'],['kit','Patched Up','RARE','Found a repair kit.'],['puffer','Smile!','RARE','Scanned a smiley puffer fish.']];
const TCOL={MYTHIC:'#ffdb24',LEGENDARY:'#ff9224',EPIC:'#c45bfM
function trophy(id){st.tro=st.tro||{};if(st.tro[id])return;const T=TROPHIES.find(t=>t[0]===id);if(!T)return;st.tro[id]=Date.now();save();
  setTimeout(()=>{toast('TROPHY
 '+T[1].toUpperCase());for(const[f,d]of[[523,0],[659,150],[784,300],[1047,450]])setTimeout(()=>snd(f,.4,'triangle',.05),d)},900)}
const fanfare=()=>{for(const[f,d]of[[392,0],[523,140],[659,280],[784,420],[1047,600]])setTimeout(()=>snd(f,.5,'triangle',.06),d)};
// places worth a treasure map: every special place thM
function mapDests(){const L=[[0,"Davy Jones' Locker"]];if(TIP>=1000000)L.push([1000000,'The Millionth Octopus']);
  for(const[h,p]of PIRATE)if(h<=TIP)L.push([h,'Pirate lair: '+p.nick]);for(const[h,hr]of HERO)if(h<=TIP)L.push([h,'Memorial: '+hr.name]);
  for(const[h,r]of RIGS)if(h<=TIP)L.push([h,'Oil rig '+r.n]);for(const h of[3,31,314,3141,31415,314159,3141592])if(h<=TIP)L.push([h,'Derelict pi sub']);
  for(let h=210000;h<=TIP;h+=210000)L.push([h,'Halving block #'+h.toLocaleString('en-GB')]);L.pushM
([57043,'The pizza block'],[170,'The first transaction'],[123456,'The hidden channel']);for(let k=1;k<=9;k++)L.push([k*100000,'Trench of '+(k*100000).toLocaleString('en-GB')]);return L.filter(d=>d[0]<=TIP)}
function wonderInfo(){if(!st.atlas)return null;let best=null,bd=1e18;for(const[h,nm]of mapDests()){const[tx,tz]=spiralXY(h),dx=tx*B+B/2-sub.p.x,dz=tz*B+B/2-sub.p.z,d=dx*dx+dz*dz;if(d<bd){bd=d;best={nm,dx,dz}}}
  if(!best)return null;const rel=((Math.atan2(best.dx,best.dz)-sub.yaw)*180/Math.PI%360+540)%360-180,m=M
Math.sqrt(bd)*UM;return best.nm.toUpperCase()+'
 '+(m>=1000?(m/1000).toFixed(1)+' KM':Math.round(m)+' M')+' '+(Math.abs(rel)<25?'AHEAD':Math.abs(rel)>155?'BEHIND':rel>0?'LEFT':'RIGHT')}
function tmapInfo(){const t=st.tmap;if(!t)return null;const[tx,tz]=spiralXY(t.h),dx=tx*B+B/2-sub.p.x,dz=tz*B+B/2-sub.p.z,rel=((Math.atan2(dx,dz)-sub.yaw)*180/Math.PI%360+540)%360-180,d=Math.hypot(dx,dz)*UM;
  return(t.name.toUpperCase()+'
 '+(d>=1000?(d/1000).toFixed(1)+' KM':Math.round(d)+' M')+' '+(Math.abs(rel)<25?'AHEAD':MatM
h.abs(rel)>155?'BEHIND':rel>0?'LEFT':'RIGHT'))}
function mapArrive(){const t=st.tmap;st.tmap=null;trophy('mapdone');st.stock+=200;st.maps=(st.maps||0)+1;toast('TREASURE MAP
 '+t.name.toUpperCase()+' REACHED
 +200 BIO STOCK');for(const[f,d]of[[392,0],[523,150],[659,300],[784,450]])setTimeout(()=>snd(f,.5,'triangle',.05),d);save();upd()}
function collect(o){
  const b=chunkOf(o)?.b;
  if(o.k==='drum'){sub.fuel=Math.min(MX('fuel'),sub.fuel+40);toast('+40 FUEL');take(o)}
  else if(o.k==='o2'){sub.o2=Math.min(MX('o2M
'),sub.o2+45);toast('+45 AIR');take(o)}
  else if(o.k==='coconut'){sub.food=Math.min(100,sub.food+20);sub.water=Math.min(100,sub.water+20);toast('COCONUT
 +20 FOOD +20 WATER');snd(660,.15,'triangle',.05);take(o)}
  else if(o.k==='rigbox'){for(const k of['fuel','o2','batt'])sub[k]=Math.min(MX(k),sub[k]+30);sub.food=Math.min(100,sub.food+25);sub.water=Math.min(100,sub.water+25);toast('RIG SUPPLIES
 +25 FOOD WATER');snd(523,.4,'square',.05,784);take(o)}
  else if(o.k==='trident'){st.trident=1;M
take(o);toast("POSEIDON'S TRIDENT
 +30% PRESSURE TIME");fanfare();trophy('trident');save()}
  else if(o.k==='pcore'){st.cores=(st.cores||0)+1;take(o);toast('PRESSURE CORE '+st.cores+' OF 9
 +12% PRESSURE TIME');fanfare();trophy('core1');if(st.cores>=9)trophy('core9');save()}
  else if(o.k==='pearl'){if(clamT<=0){toast('THE CLAM WON\'T BUDGE');snd(110,.2);return}st.pearl=1;take(o);toast('THE GIANT PEARL
 SAVES YOU ONCE PER DIVE');fanfare();trophy('pearl');save()}
 if(o.k==='atlas'){st.atlas=1;take(o);toast('THE HIDDEN ATLAS
 EVERY WONDER IS NOW ON YOUR CHART');fanfare();trophy('atlas');save()}
  else if(o.k==='tmap'){if(st.tmap){toast('YOU ALREADY CARRY A TREASURE MAP');return}
    const D=mapDests().filter(d=>Math.abs(d[0]-b.h)>2),F=D.filter(d=>!st.visited.includes(d[0])),L=(F.length?F:D),pk=L[hstr(o.id||'tmap')%L.length];
    if(!pk){toast('THE MAP CRUMBLES
 NOTHING LEFT TO FIND');take(o);return}
    st.tmap={h:pk[0],name:pk[1]};take(o);snd(523,.4,'triangle',.05,784);M
    card({eye:'Treasure map found',title:pk[1],lat:'An X marks block #'+pk[0].toLocaleString('en-GB'),rows:[['Destination',pk[1]],['Block','#'+pk[0].toLocaleString('en-GB')],['Guide','the X shows on your spiral chart, with a compass line on the screen'],['Reward','a rare sight and bio stock when you arrive']],
      art:a=>{a.fillStyle='#d8c690';a.fillRect(10,6,44,28);a.fillStyle='#8a6a3a';for(let i=0;i<6;i++)a.fillRect(14+i*7,12+(i%2)*6,4,1);a.fillStyle='#c8243a';for(let i=0;i<7;i++){a.fillRect(36+i,18+i,2,2);a.fM
illRect(42-i,18+i,2,2)}},
      acts:[['Follow the map',()=>{}]]})}
  else if(o.k==='repair'){trophy('kit');if(sub.leaks){sub.leaks=0;sub.hull=Math.min(MX('hull'),sub.hull+15);toast('REPAIR KIT
 +15 HULL');snd(880,.3,'triangle',.05,1320);take(o)}
    else if((st.kits||0)<3){st.kits=(st.kits||0)+1;toast('REPAIR KIT STOWED
 SEALS YOUR NEXT LEAK ('+st.kits+')');snd(660,.15,'triangle',.05);take(o)}
    else{toast('REPAIR KIT STORE FULL (3)');return}}
  else if(o.k==='ration'){sub.food=Math.min(100,sM
ub.food+40);toast('+40 FOOD');take(o)}
  else if(o.k==='water'){sub.water=Math.min(100,sub.water+40);toast('+40 WATER');take(o)}
  else if(o.k==='batt'){sub.batt=Math.min(MX('batt'),sub.batt+40);toast('+40 BATTERY');take(o)}
  else if(o.k==='chest'){if(!holdFree(2))return;const tt=traits(b.h)[0],v=Math.round((20+Math.log10(b.tx+1)*25+b.sub*2)*(1+(tt?tt.tier*.5:0)));st.hold.push(v,0);toast('TREASURE +'+v);take(o);if(Math.random()<.12)upgrade(b)}
  else if(o.k==='crate'){take(o);upgrade(b)}
  else if(o.k==='cursed'){M
if(!holdFree(2))return;const v=Math.round((60+Math.log10(b.tx+1)*40)*3);st.hold.push(v,0);take(o);sub.hull-=25;sub.shake=.5;
    for(const e of allEnts())if(e.kind==='fish'&&(e.sp.shape==='angler'||e.sp.rare==='pirate'))e.att=8;toast('CURSED TREASURE +'+v+'  -25 HULL');snd(110,.6,'sawtooth',.06,40)}
  else if(o.k==='pisub'){take(o);st.subs=st.subs||[0];if(!st.subs.includes(o.lv))st.subs.push(o.lv);const S=SUBS[o.lv];
    card({eye:'New sub found
 block #'+b.h,title:S[0],lat:'Class '+o.lv+' of 7
v+' digit'+(o.lv>1?'s':'')+' of pi',rows:[['Ability',ABIL[o.lv]+': '+ABOUT[o.lv]],['Also has',o.lv>1?ABIL.slice(1,o.lv).join(', '):'nothing else yet'],['Hull bonus','+'+o.lv*10+'% air, fuel, battery and hull']],
      art:a=>icon(a,'sub',{hc:S[1],sc:S[2],lv:o.lv}),acts:[['Keep current sub',()=>{}],['Pilot it',()=>{st.sub=o.lv;setSub(o.lv);save();upd()}]]})}
  else if(o.k==='bottle'){take(o);card({eye:'Message in a bottle',title:b.custom?b.msg:'"'+(b.msg||'no coinbase message')+'"',lat:'Coinbase text, block #'+b.h,rM
ows:[['Pool',poolTxt(b)],['Source',b.cb?'coinbase input script
 /r/block':b.live?'coinbase input script':'simulated']],art:a=>icon(a,'bottle')})}
  else if(o.kind==='ore'){if(!holdFree())return;st.hold.push(o.o[2]);toast(o.o[0].toUpperCase()+' +'+o.o[2]);take(o)}
  else if(o.kind==='plant'){if(!holdFree())return;const v=o.k==='rarecoral'?40:o.glow?8:3;st.hold.push(v);if(o.k==='kelp'||o.k==='grass')sub.food=Math.min(100,sub.food+6);toast(o.sp.name.toUpperCase()+' +'+v);take(o)}
  else if(o.kind==='fish'){if((o.sp.M
shape==='angler'&&o.sp.size>1)||o.sp.shape==='shark'||o.sp.shape==='whale'){toast('TOO BIG TO GRAB');return}if(!holdFree())return;const v=(4+o.sp.size*3+(o.sp.glow?4:0))*(o.sp.rare?3:1);st.hold.push(v);
    sub.food=Math.min(100,sub.food+10);const got=o.insc&&o.insc.seed==null&&keepInsc(o.insc,b.h,o.sp.name);toast(got?'INSCRIPTION CAUGHT
 VIEW IT UNDER CAUGHT INSCRIPTIONS':(st.best[o.sp.id]?'HARVESTED +'+v:'HARVESTED UNANALYSED - DATA LOST')+'
 +10 FOOD');take(o)}
  snd(660,.12,'square',.04,990);save()
on upgrade(b){const ks=Object.keys(st.up).filter(k=>st.up[k]<4);if(!ks.length){toast('ALL GEAR MAXED');return}
  const k=ks[(Math.random()*ks.length)|0];st.up[k]++;if(['o2','fuel','batt','hull'].includes(k))sub[k]=MX(k);
  card({eye:'Upgrade salvaged
 '+rarity(b.h).toLowerCase()+' block',title:UPN[k]+' '+MKN[st.up[k]],lat:'Recovered from block #'+b.h+(b.special?' ('+b.special+')':''),rows:[['Effect','+25% '+UPN[k].toLowerCase()],['Level',st.up[k]+' of 4']],art:a=>icon(a,'crate')});
  snd(523,.1);setTimeout(()=>snM
const BN=48,bG=new THREE.BufferGeometry(),bP=new Float32Array(BN*3),bV=new Float32Array(BN*3);bG.setAttribute('position',new THREE.BufferAttribute(bP,3));
const bPts=new THREE.Points(bG,new THREE.PointsMaterial({color:0xdbffff,size:.22,transparent:true,opacity:.9,depthWrite:false}));bPts.visible=false;scene.add(bPts);let bT=0;
function burst(){for(let i=0;i<BN;i++){bP.set([sub.p.x+(Math.random()-.5)*1.5,sub.p.y+(Math.random()-.5),sub.p.z+(Math.random()-.5)*1.5],i*3);bV.set([(Math.random()-.5)*4,1+MaM
th.random()*4,(Math.random()-.5)*4],i*3)}bG.attributes.position.needsUpdate=true;bT=1.4;bPts.visible=true}
// going ashore hands the dive over to the land world, and the land world hands it back through the address
const b64=o=>btoa(unescape(encodeURIComponent(JSON.stringify(o)))).replace(/\+/g,'-').replace(/\//g,'_').replace(/=+$/,''),unb64=t=>JSON.parse(decodeURIComponent(escape(atob(t.replace(/-/g,'+').replace(/_/g,'/')))));
function ashore(o){const h=+o.id.split(':')[1];
  if(!LAND_ID&&LIVE){card({eye:'Island #M
'+h,title:'The shore is out of reach',lat:'The way onto the island is not open yet. The ladder leads nowhere for now.',art:a=>icon(a,'isle')});snd(140,.3);return}
  const pass={v:1,h,ret:SELF||window.BD_GAME||GAME_ID,game:window.BD_GAME||GAME_ID||SELF,keys:[...KEYS].filter(Boolean),s:{o2:sub.o2,fuel:sub.fuel,batt:sub.batt,hull:sub.hull,food:sub.food,water:sub.water}};
  card({eye:'Island
 block #'+h.toLocaleString('en-GB'),title:'Go ashore?',lat:'Climb the ladder and walk the island of block #'+h+'. Your sub waitM
s in the cave until you come back.',
    rows:[['Island','difficulty adjustment '+(h/2016)],['Sub','moored in the sea cave']],art:a=>icon(a,'isle'),
    acts:[['Stay aboard',()=>{}],['Go ashore',()=>{save();snd(523,.3,'square',.05);
      if(LIVE)location.href='/content/'+LAND_ID+'#bd='+b64(pass);
      else{toast('PREVIEW: THE LAND WORLD WOULD OPEN HERE');setTimeout(()=>landed(pass),1500)}}]]})}
// back from land: put the sub in the cave mouth with the stats it left with
function landed(pass){teleport(pass.h);if(pM
ass.s)Object.assign(sub,pass.s);const[cx,cz]=spiralXY(pass.h);const e=allEnts().find(e=>e.id==='isle:'+pass.h);sub.p.set(cx*B+B/2,-9,e?e.z-6:cz*B+B/2-20);sub.yaw=0;
  if(st.home===undefined)st.home=pass.h;$('#start').hidden=true;toast('BACK ABOARD
 ISLAND #'+pass.h);try{history.replaceState(null,'',location.pathname+location.search)}catch(e){}snd(392,.3,'triangle',.05,523)}
function openLocker(o){const c=chunkOf(o);if(st.locker){toast('THE LOCKER IS EMPTY
 ITS SOULS: '+(st.drowned||0));snd(110,.6,'sawtooth',.03M
  st.locker=1;trophy('locker');st.stock+=500;if(c&&c.locker)c.locker.lid.rotation.x=-1.3;sub.hull-=10;toast("DAVY JONES' LOCKER OPENED
 +500 BIO STOCK");snd(70,1.4,'sawtooth',.06,45);setTimeout(()=>snd(330,.6,'triangle',.05,660),500);save();upd();setTimeout(()=>upgrade(c.b),900)}
function boost(){if(subLv()<3){toast('BOOST NEEDS THE PI-314 CIRCUMFERENCE');return}if(sub.bcd>0){toast('BOOST RECHARGING');return}if(sub.fuel<2)return;
  sub.fuel-=2;sub.boost=1.2;sub.bcd=6;sub.v.addScaledVector(fwd(),12);sM
nd(120,.6,'sawtooth',.05,600)}
const pfx=new THREE.Mesh(new THREE.TorusGeometry(1,.12,4,32),new THREE.MeshBasicMaterial({color:'#6dffff',transparent:true,blending:THREE.AdditiveBlending,depthWrite:false,fog:false}));pfx.visible=false;scene.add(pfx);
function pulse(){if(subLv()<4){toast('PULSE NEEDS THE PI-3141 ARC');return}if(sub.pcd>0){toast('PULSE RECHARGING');return}if(sub.batt<8){toast('BATTERY TOO LOW TO PULSE');return}
  sub.batt-=8;sub.pcd=8;sub.pt=0;let n=0;for(const e of allEnts())if(e.kind==='fish'&&(e.spM
.shape==='shark'||e.sp.shape==='angler'||e.sp.rare==='pirate')&&dist(e,sub.p)<38){e.flee=6;e.att=0;n++}
  toast(n?'PULSE - '+n+' PREDATOR'+(n>1?'S':'')+' SCARED OFF':'PULSE');snd(900,.5,'square',.05,90)}
// the scanner takes whatever you are pointing at: candidates must sit inside a forward cone (anything touching the hull is always allowed),
// and the best is the one closest to the nose line, with distance as the tie-breaker, so a fish behind or beside you can no longer steal the scan
const SCANK={fish:22,rig:30,M
isle:30,memorial:30,relic:30,locker:30,gstone:30,gvault:30,gsub:30,monolith:30,wreck:26,plant:20,ore:18,item:18},_sv=new THREE.Vector3();
function scanPick(){const f=fwd(),sr=subLv()>=6?2:1;let best=null,bs=1e9;
  for(const e of allEnts()){const R=e.kind==='kraken'?42:SCANK[e.kind]*(e.kind==='fish'?sr:1);if(!R)continue;const d=dist(e,sub.p);if(d>R)continue;
    if((e.kind==='fish'||e.kind==='wreck')&&!lit(e))continue;if((e.kind==='plant'||e.kind==='ore'||e.kind==='item')&&d>12&&!lit(e))continue;
    _sv.set(e.x-subM
.p.x,e.y-sub.p.y,e.z-sub.p.z);const cs=d>0?_sv.dot(f)/d:1,big=e.kind==='kraken'||e.kind==='monolith'||e.kind==='rig'||e.kind==='isle'||e.kind==='wreck'||e.kind==='locker';
    if(cs<(big?.55:.8)&&d>(big?9:4))continue;
    const sc=d*(1+5*(1-cs));if(sc<bs){bs=sc;best=e}}
function scanHint(g){const t=sub.scan&&sub.scan.tg;if(!t||paused||view===2)return;grabPt(t,gpB).project(cam);if(gpB.z>1||Math.abs(gpB.x)>1||Math.abs(gpB.y)>1)return;
  const x=Math.round((gpB.x+1)/2*W),y=Math.round((1-gpB.y)/2*H),s=9+M
Math.round(Math.sin(tm*8)*1.5);g.fillStyle='#24ff92';
  for(const[sx,sy]of[[-1,-1],[1,-1],[-1,1],[1,1]]){const cx=x+sx*s,cy=y+sy*s;g.fillRect(sx>0?cx-3:cx,cy,4,1);g.fillRect(cx,sy>0?cy-3:cy,1,4)}}
  if(sub.scan)return;if(sub.batt<4){toast('BATTERY TOO LOW TO SCAN');return}
  const tg=scanPick();
  if(!tg){toast('NOTHING LIT IN FRONT OF THE SCANNER');snd(160,.1);return}
  sub.batt-=4;sub.scan={tg,t:0};snd(700,.5,'triangle',.03,1100)
// sonar blips: shape says what it is (0 creature, 1 big creatureM
, 2 loot, 3 structure), colour says what it's worth
const BV={grey:'#9aa3b2',green:'#5bff7a',blue:'#3cb4ff',purple:'#c45bff',gold:'#ffdb24',red:'#ff2449'};
function blip(o){const k=o.kind,sp=o.sp;
  if(k==='fish'){const big=sp.shape==='whale'||sp.size>=3?1:0;if(sp.shape==='shark'||sp.shape==='angler'||sp.rare==='pirate')return[BV.red,big];
    return[sp.rare?BV.purple:sp.proto||sp.size>=3?BV.blue:BV.grey,big]}
  if(k==='item'){const t=o.k;if(t==='cursed')return[BV.red,2];if(t==='repair'||t==='tmap'||t==='trident'||M
t==='pcore'||t==='pearl'||t==='atlas')return[BV.purple,2];if(t==='chest')return[BV.gold,2];if(t==='pisub')return[BV.purple,2];if(t==='crate'||t==='bottle')return[BV.blue,2];return[BV.green,2]}
  if(k==='ore'){const v=o.o[2];return[v>=20?BV.purple:v>=8?BV.blue:BV.grey,2]}
  if(k==='plant')return o.k==='rarecoral'?[BV.purple,2]:null;
  if(k==='wreck')return[o.style==='pirate'?BV.red:o.style==='gilded'||o.style==='ghost'?BV.gold:BV.blue,3];
  if(k==='relic')return[o.ty==='pirate'?BV.red:BV.gold,3];
  if(k==='kraken')rM
eturn[BV.purple,3];if(k==='monolith')return[BV.gold,3];
  if(k==='memorial'||k==='locker'||k==='gvault'||k==='gstone'||k==='gsub')return[BV.gold,3];
  if(k==='dock'||k==='rstation'||k==='isle'||k==='rig')return[BV.green,3];
  return[BV.grey,2]}
function ping(){if(sub.batt<5){toast('BATTERY TOO LOW FOR SONAR');return}sub.batt-=5;const Rr=sonarR();sonar={t:0,pts:walls(Rr,3),bl:[]};
  for(const o of allEnts()){const d=dist(o,sub.p);if(d>Rr)continue;const bp=blip(o);if(bp)sonar.bl.push([o.x-sub.p.x,o.z-sub.p.z,bp[0],bpM
[1]]);if(o.sp&&o.sp.shape==='angler')o.att=5}
  for(const s of stations())Math.hypot(s.x-sub.p.x,s.z-sub.p.z)<Rr&&sonar.bl.push([s.x-sub.p.x,s.z-sub.p.z,BV.green,3]);
  snd(1250,.9,'sine',.07,380)}
// terrain at or above the sub's depth shows as walls on the sonar
const trs=()=>allEnts().filter(e=>e.k==='chest'||e.k==='cursed'||e.k==='crate'||e.k==='pisub'||e.kind==='wreck'||e.kind==='relic').map(e=>({x:e.x,z:e.z,k:e.k,big:e.kind==='wreck'||e.kind==='relic',d:Math.hypot(e.x-sub.p.x,e.z-sub.p.z),e}));
S(t){const cx=Math.floor(sub.p.x/B),cz=Math.floor(sub.p.z/B);let best=null;for(let r=0;r<=26&&!best;r++)for(let dz=-r;dz<=r;dz++)for(let dx=-r;dx<=r;dx++){if(Math.max(Math.abs(dx),Math.abs(dz))!==r)continue;const h=spiralH(cx+dx,cz+dz);
  if(h<=TIP&&rsType(h)===t&&(!best||Math.hypot(dx,dz)<best.e))best={h,d:r,e:Math.hypot(dx,dz),dir:(dz>0?'N':dz<0?'S':'')+(dx>0?'E':dx<0?'W':'')||'HERE'}}return best}
function nearDock(){const cx=Math.floor(sub.p.x/B),cz=Math.floor(sub.p.z/B);let best=null;for(let rM
=0;r<=14&&!best;r++)for(let dz=-r;dz<=r;dz++)for(let dx=-r;dx<=r;dx++){if(Math.max(Math.abs(dx),Math.abs(dz))!==r)continue;const h=spiralH(cx+dx,cz+dz);
  if(isDock(h)&&h<=TIP&&(!best||Math.hypot(dx,dz)<best.e))best={h,d:r,e:Math.hypot(dx,dz),dir:(dz>0?'N':dz<0?'S':'')+(dx>0?'E':dx<0?'W':'')||'here'}}return best}
function walls(Rr,step){const out=[];for(let a=0;a<64;a++){const ang=a/64*Math.PI*2;for(let d=step;d<Rr;d+=step){const x=sub.p.x+Math.sin(ang)*d,z=sub.p.z+Math.cos(ang)*d,fy=floorY(x,z);
{out.push([x-sub.p.x,z-sub.p.z,fy>sub.p.y?1:.5]);if(fy>sub.p.y)break}}}return out}
// ---------- card ----------
function card(o){paused=true;$('#ce').textContent=o.eye;$('#ch').textContent=o.title;$('#cl').textContent=o.lat||'';
  $('#cd').innerHTML='';for(const[k,v]of o.rows||[]){const dt=document.createElement('dt'),dd=document.createElement('dd');dt.textContent=k;dd.textContent=v;$('#cd').append(dt,dd)}
  $('#ci').innerHTML='';if(o.insc)inscBox(o.insc);if(o.extra)o.extra($('#ci'));
  const a=$('#art').getConteM
xt('2d');a.imageSmoothingEnabled=false;a.fillStyle='#02040c';a.fillRect(0,0,64,40);o.art&&o.art(a);
  const ca=$('#ca');ca.innerHTML='';const acts=o.acts||[['Continue',()=>{}]];
  acts.forEach(([l,f],i)=>{const b=document.createElement('button');b.textContent=l;if(i===acts.length-1)b.className='go';b.onclick=()=>{$('#card').hidden=true;paused=mapOpen;f();upd()};ca.append(b)});
  $('#card').hidden=false;ca.lastChild.focus({preventScroll:true})}
function icon(a,k,s){const P=(x,y,w,h,c)=>{a.fillStyle=c;a.fillRect(x,y,M
  if(k==='fish'&&s&&s.shape==='whale'){const[cb,cl,cf]=whaleCols(s);for(let x=0;x<40;x++){const t=x/40,hh=Math.round(7*Math.sin(Math.min(1,t*1.15)*Math.PI*.92)+(t>.75?1:0));if(hh<1)continue;P(14+x,20-hh,1,hh,cb);P(14+x,20,1,Math.round(hh*.75),cl)}
    P(4,13,4,8,cb);P(6,16,8,3,cb);P(4,20,4,6,cb);P(30,23,9,2,cf);P(36,24,4,2,cf);P(46,18,2,2,'#05060a');P(42,21,12,1,shade(cb,.6));P(26,12,3,2,cb);return}
  if(k==='fish'&&s&&s.shape==='turtle'){for(let y=-6;y<=6;y++){const w=Math.round(Math.sqrt(36-y*y)*1.6);P(30-M
w,20+y,w*2,1,y<0?s.c1:s.c2)}P(44,18,6,5,'#92a07a');P(48,19,1,1,'#000');for(const[x,y]of[[18,12],[38,12],[18,27],[38,27]])P(x,y,6,2,'#92a07a');return}
  if(k==='fish'&&s&&s.shape==='crab'){const d=shade(s.c1,.55),T=[s.c1,shade(s.c1,.78),s.c2,shade(s.c1,1.18)];P(18,19,28,12,d);P(20,20,24,10,d);for(let ix=0;ix<6;ix++)for(let iy=0;iy<3;iy++)P(21+ix*4,21+iy*3,3,2,T[(ix*3+iy*5)%4]);
    for(let i=0;i<4;i++){P(10,24+i*2,8,1,d);P(46,24+i*2,8,1,d)}for(const x of[3,40]){P(x,8,21,14,s.c1);P(x+(x<10?0:11),4,10,5,s.c2);P(x,13,1M
0,3,d);P(x<10?11:43,22,6,2,d)}P(26,16,2,3,'#fff');P(36,16,2,3,'#fff');return}
  if(k==='rig'){P(0,30,64,10,'#1b4a7a');P(14,8,3,24,'#8a8f96');P(46,8,3,24,'#8a8f96');P(10,10,44,4,'#8a8f96');P(14,4,8,6,'#da2424');P(44,0,2,10,'#8a8f96');P(42,0,6,3,'#ff9224');P(30,2,2,8,'#ffdb24');P(30,2,16,2,'#ffdb24');return}
  if(k==='isle'){P(0,26,64,14,'#1b4a7a');P(14,22,36,6,'#dbc48a');P(22,16,20,8,'#6d7a4a');P(36,4,2,14,'#927249');P(30,3,14,2,'#24b649');P(28,30,8,8,'#ffb649');return}
  if(k==='memorial'){P(18,34,28,4,'#5b5466');PM
(28,10,8,24,'#5b5466');P(29,6,6,4,'#b66d24');P(30,16,4,6,'#ffdb92');for(let i=0;i<6;i++)P(16+i*6,33,2,2,'#ffb649')}
  else if(k==='sub'){for(let y=-6;y<=6;y++){const w=Math.round(Math.sqrt(36-y*y)*2.4);P(32-w,20+y,w*2,1,y<-2?shade(s.hc,1.2):s.hc)}P(30,10,6,5,s.hc);P(42,16,5,5,'#ffd696');P(16,19,3,3,s.sc);P(16,22,3,3,s.sc);for(let i=0;i<s.lv;i++)P(24+i*3,25,2,2,s.sc)}
  else if(k==='wreck'){const c=s.steel?'#924924':'#6d4924';for(let x=0;x<34;x++){const hh=x<4?x:x>30?34-x:4;P(14+x,26+(x>16?Math.round((x-16)*.25):0),M
1,hh+2,c)}P(26,12,1,14,'#493624');if(s.steel)P(36,18,6,6,'#b6b6b6');else P(27,14,8,7,'#b6a688');P(22,28,4,3,'#05060a');P(0,34,64,6,'#493624')}
  else if(k==='bottle'){P(28,18,10,5,'#24926d');P(30,19,6,3,'#ffffdb');P(38,19,4,3,'#24926d');P(42,19,2,3,'#6d4924')}
  else if(k==='crate'){a.strokeStyle='#ff24ff';a.strokeRect(24.5,12.5,15,15);P(30,16,4,8,'#24ffff');P(28,18,8,2,'#24ffff')}
  else if(k==='plant'){for(let i=0;i<7;i++)P(22+i*3,34-(4+(i*5)%9),1,4+(i*5)%9,s.col);P(18,34,28,2,'#493624')}
  else{const c1=s.c1,c2=M
    if(s.shape==='jelly'){for(let y=0;y<7;y++){const w=Math.round(Math.sqrt(49-(7-y)**2)*1.4);P(32-w,12+y,w*2,1,c1)}for(let i=0;i<5;i++)for(let j=0;j<10;j++)P(26+i*3+(j%3===1?1:0),19+j,1,1,c2)}
    else if(s.shape==='eel'){for(let i=0;i<30;i++)P(16+i,20+Math.round(Math.sin(i*.45)*3),1,2,i>26?c2:c1)}
    else if(s.shape==='squid'){for(let i=0;i<14;i++){const hh=1+Math.round(i/14*4);P(18+i,20-hh,1,hh*2,c1)}for(let t=0;t<4;t++)P(32,17+t*2,12,1,c2)}
    else if(s.shape==='puffer'){for(let y=-11;y<=11;y++){const wM
=Math.round(Math.sqrt(121-y*y)*1.1);P(32-w,20+y,w*2,1,y>5?c2:c1)}for(const x of[24,38]){P(x,13,5,5,'#fff');P(x+2,15,3,3,'#101018')}for(let i=-3;i<=3;i++)P(31+i*2,24+((i*i)>>2),2,2,'#101018');P(20,21,3,2,'#ff8aa8');P(42,21,3,2,'#ff8aa8')}
    else if(s.shape==='angler'){for(let y=-7;y<=7;y++){const w=Math.round(Math.sqrt(49-y*y)*1.2);P(30-w,22+y,w*2,1,'#2a2a44')}P(32,24,8,1,'#dadada');P(36,10,1,6,'#49496d');P(37,9,3,3,s.gcol)}
    else{const L=s.shape==='whale'?30:s.shape==='shrimp'?10:20;for(let y=-5;y<=5;y++){consM
t w=Math.round(Math.sqrt(25-y*y)/5*L/2);P(34-w,20+y,w*2,1,s.shape==='whale'?'#24496d':y<1?c1:c2)}
      for(let i=0;i<5;i++)P(34-L/2-5+i,20-(5-i),1,(5-i)*2,shade(c1,.6));P(34+L/2-5,18,2,2,'#000')}}}
// real inscriptions: the card shows a thumbnail and number; View opens the full inscription (images, HTML, text, audio, video)
const el=(t,a={},...k)=>{const e=document.createElement(t);for(const[x,v]of Object.entries(a))x==='text'?e.textContent=v:e.setAttribute(x,v);e.append(...k);return e};
const INUM=new Map();
c function inscNum(id){if(INUM.has(id))return INUM.get(id);try{const r=await fetch('/r/inscription/'+id);if(!r.ok)throw Error(r.status);const j=await r.json();INUM.set(id,j);lk('insc','ok','working
 read inscription #'+j.number);return j}catch(e){lk('insc','bad','lookup failed for '+id.slice(0,8)+'
const isImg=t=>/^image\//.test(t)&&!/svg/.test(t);
function inscReal(n,host){const d=el('div',{class:'ins'}),u='/content/'+n.id;
  d.append(isImg(n.type)?el('img',{src:u,alt:'inscription',style:'widtM
h:48px;height:48px;object-fit:contain;image-rendering:pixelated;background:#000'}):el('span',{class:'insg',text:/html|svg/.test(n.type)?'</>':/^audio/.test(n.type)?'
':/^video/.test(n.type)?'
':/json/.test(n.type)?'{ }':'Aa'}));
  const num=el('b',{text:'Inscription'}),meta=el('span',{text:n.type}),tx=el('div',{},num,el('br'),meta,el('br'),el('code',{text:n.id.slice(0,10)+'
'+n.id.slice(-6)}),el('br'));
  const vb=el('button',{type:'button',class:'insv',text:'View inscription'});vb.addEventListener('click',()M
=>inscView(n));tx.append(vb,' ',...(/html|svg/.test(n.type)?[el('a',{href:'/preview/'+n.id,target:'_blank',rel:'noopener',class:'insv',style:'text-decoration:none;display:inline-block',text:'Run
'}),' ']:[]),el('a',{href:'/inscription/'+n.id,target:'_blank',rel:'noopener',class:'insv',style:'text-decoration:none;display:inline-block',text:'Inscription page
'}));d.append(tx);host.append(d);
  inscNum(n.id).then(j=>{if(j){num.textContent='Inscription #'+j.number.toLocaleString('en-GB');meta.textContent=n.type+(M
 '+(j.content_length/1024).toFixed(1)+' KB':'')+(j.height!=null?'
 block #'+j.height:'')}})}
function inscView(n){const v=$('#iv'),b=$('#ivB'),u='/content/'+n.id;b.innerHTML='';$('#ivR')?.remove();$('#ivT').textContent=n.type;$('#ivI').textContent=n.id;$('#ivO').href=/html|svg/.test(n.type)?'/preview/'+n.id:u;$('#ivO').textContent='Open
';$('#ivO').hidden=false;
  if(isImg(n.type)){const im=el('img',{src:u,alt:'inscription '+n.id});im.addEventListener('load',()=>{if(im.naturalWidth>160)im.M
style.imageRendering='auto'});b.append(im)}
  else if(/^audio\//.test(n.type))b.append(el('audio',{src:u,controls:''}));
  else if(/^video\//.test(n.type))b.append(el('video',{src:u,controls:'',loop:''}));
  else{let fr=el('iframe',{src:u,sandbox:'allow-scripts allow-forms allow-pointer-lock allow-modals',allow:'autoplay; fullscreen; gamepad',title:'inscription '+n.id});b.append(fr);   // HTML, SVG, text, JSON: runs as the inscription itself, sandboxed away from the game's own storage
    if(/html|svg/.test(n.type)M
){const rb=el('button',{type:'button',id:'ivR',text:'Reload
'});rb.addEventListener('click',()=>{const f2=fr.cloneNode(false);fr.replaceWith(f2);fr=f2});$('#ivO').before(rb)}}
  inscNum(n.id).then(j=>{if(j&&$('#ivI').textContent===n.id)$('#ivT').textContent='#'+j.number.toLocaleString('en-GB')+'
  v.dataset.wp=paused?1:0;paused=true;v.hidden=false;$('#ivX').focus()}
// caught inscriptions are kept in the save, newest first
function keepInsc(n,h,from){st.ins=st.ins||[];if(st.ins.some(x=>x.id===n.idM
))return 0;st.ins.unshift({id:n.id,type:n.type,h,from});st.ins.length=Math.min(st.ins.length,300);insList();return 1}
function insList(){const L=st.ins||[],box=$('#insL');box.innerHTML='';$('#insH').hidden=L.length>0;
  for(const n of L){const b=el('button',{type:'button',title:n.type+'
 block #'+n.h+(n.from?'
 from '+n.from:''),'aria-label':'View inscription '+n.id});
    b.append(isImg(n.type)?el('img',{src:'/content/'+n.id,alt:'',loading:'lazy'}):el('span',{text:/html|svg/.test(n.type)?'</>':/^audio/.test(n.M
':/^video/.test(n.type)?'
':/json/.test(n.type)?'{ }':'Aa'}));
    b.addEventListener('click',()=>inscView(n));box.append(b)}}
$('#ivX').addEventListener('click',inscClose);$('#iv').addEventListener('click',e=>{if(e.target.id==='iv')inscClose()});
addEventListener('keydown',e=>{if(e.key==='Escape'&&!$('#iv').hidden){e.stopImmediatePropagation();inscClose()}},true);
function inscClose(){const v=$('#iv');if(v.hidden)return;v.hidden=true;$('#ivB').innerHTML='';$('#ivR')?.remove();if(v.dataset.wp!=='1'&&$('M
#card').hidden)paused=false}
function inscBox(n){if(n.seed==null){inscReal(n,$('#ci'));return}const d=document.createElement('div');d.className='ins';const r=mulberry(n.seed);
  const cv=document.createElement('canvas');cv.width=cv.height=12;cv.id='inscv';const x=cv.getContext('2d');
  if(n.type.startsWith('image')){const P=[NEON[r()*10|0],NEON[r()*10|0],'#ffffff'];for(let y=0;y<12;y++)for(let i=0;i<6;i++){const v=r();if(v<.55){x.fillStyle=P[(v*5|0)%3];x.fillRect(i,y,1,1);x.fillRect(11-i,y,1,1)}}}
startsWith('audio')){x.fillStyle='#24ffff';for(let i=0;i<12;i++){const h=2+r()*9|0;x.fillRect(i,6-h/2|0,1,h)}}
  else if(n.type==='text/html'){for(let i=0;i<5;i++){x.strokeStyle=NEON[r()*10|0];x.beginPath();x.arc(6,6,1+i*1.2,0,6.3);x.stroke()}}
  else{x.fillStyle='#dadada';for(let y=1;y<11;y+=2)x.fillRect(1,y,3+r()*8|0,1)}
  const tx=document.createElement('div'),txt=n.type==='text/plain'?['gm','hello from the deep','ord','sats','gn','the block is the map'][n.seed%6]:'';
  tx.innerHTML=`<b>Inscription found</b><br>M
 "'+txt+'"':''}<br><code>${n.id.slice(0,10)}
${n.id.slice(-6)}</code><br>Simulated preview. The inscribed build loads <code>/content/&lt;id&gt;</code>.`;
  const vb=el('button',{type:'button',class:'insv',text:'View inscription'});vb.addEventListener('click',()=>simView(n,txt));tx.append(el('br'),vb);
  d.append(cv,tx);$('#ci').append(d)}
// simulated inscriptions and creatures with nothing to load still open in the viewer, so every find can be looked at and closed again
function showViewer(titM
le,id,fill){const v=$('#iv'),b=$('#ivB');b.innerHTML='';$('#ivT').textContent=title;$('#ivI').textContent=id||'';$('#ivO').hidden=true;fill(b);v.dataset.wp=paused?1:0;paused=true;v.hidden=false;$('#ivX').focus()}
function simView(n,txt){showViewer(n.type+'
 simulated',n.id,b=>{const src=document.getElementById('inscv');
  if(n.type==='text/plain'||!src){b.append(el('pre',{class:'sv',text:txt||'(empty inscription)'}));return}
  const cv=el('canvas',{class:'sv',width:12,height:12});const x=cv.getContext('2d');x.imaM
geSmoothingEnabled=false;x.drawImage(src,0,0);b.append(cv)})}
function protoView(o){const sp=o.sp,P=PROTO[sp.proto],b=(o.ch||chunkOf(o)).b,sc=b.scan;
  showViewer(P.lin,'block #'+b.h,box=>{const pv=el('div',{class:'pv'}),dl=el('dl');pv.append(el('h4',{text:sp.name}),el('p',{text:P.why}));
    const rows=[['Protocol',P.lin],['Block','#'+b.h.toLocaleString('en-GB')],['Block time',b.time?new Date(b.time*1000).toISOString().slice(0,16).replace('T',' ')+' UTC':'
    const key={runes:'runes',atomicals:'atomicals',M
alkanes:'alkanes',counterparty:'counterparty',stamps:'stamps',cursed:'cursed',brc20:'brc20',tap:'tap',bitmap:'bitmap'}[sp.proto];
    if(sc&&key&&sc.n[key])rows.push(['Found in this block',sc.n[key].toLocaleString('en-GB')+' '+SCLAB[key]]);
    if(sp.proto==='runes'&&sc&&sc.n.etch)rows.push(['Rune etchings here',sc.n.etch.toLocaleString('en-GB')]);
    if(sp.proto==='nat')rows.push(['Nat','#'+b.h+'
 one per block, minted from the block\'s own data']);
    const tag=(sp.name.split('
 ')[1]||'');if(tag)rows.push(M
[sp.proto==='runes'?'Rune':sp.proto==='atomicals'?'Operation':sp.proto==='bitmap'?'Bitmap':'Ticker',tag]);
    if(!b.live)rows.push(['Note','simulated block: real data appears on live blocks']);
    for(const[k,v]of rows)dl.append(el('dt',{text:k}),el('dd',{text:v}));pv.append(dl);
    // links into the protocol itself, served by the same ordinals server the game runs on
    const rn=sp.proto==='runes'&&/Rune Etcher
 (.+)/.exec(sp.name),L=[];if(rn)L.push(['Rune page','/rune/'+encodeURIComponent(rn[1])]);
.insc&&o.insc.id&&o.insc.seed==null)L.push(['Inscription page','/inscription/'+o.insc.id],[/html|svg/.test(o.insc.type)?'Run inscription':'Inscription content',(/html|svg/.test(o.insc.type)?'/preview/':'/content/')+o.insc.id]);
    L.push(['Block page','/block/'+b.h]);
    const lk2=el('div',{style:'margin-top:16px;display:flex;gap:8px;flex-wrap:wrap'});for(const[t,u]of L)lk2.append(el('a',{href:u,target:'_blank',rel:'noopener',class:'insv',style:'text-decoration:none',text:t+'
'}));pv.append(lk2);box.append(pv)M
  $('#ivO').href='/block/'+b.h;$('#ivO').textContent='Block page
';$('#ivO').hidden=false}
const c0y=o=>{const c=chunkOf(o);return c&&c.rig?c.rig.fy:o.y};
// a bitmap crab stands for the block its inscription names (N.bitmap owns block N), so it reports that block's own traits
function bmRows(sp,b){if(sp.proto!=='bitmap')return[];const made=['Made in','this block, #'+b.h.toLocaleString('en-GB')],m=/(\d+)\.bitmap/.exec(sp.name);if(!m)return[made];const n=+m[1];if(!(n>=0&&n<=TIP))return[made,['Bitmap',n+'.bitmM
 block not mined yet']];
  const T=traits(n);return[made].concat([['Bitmap land','block #'+n.toLocaleString('en-GB')+'
 '+rarity(n).toLowerCase()],['Block trait',T.length?T.map(t=>t.name+'
 '+t.why).join(' / '):'none, an ordinary block']])}
function analysed(o){
  const b=(o.ch||chunkOf(o)).b,depth=Math.round(DM(o.y))+' m';
  if(o.kind==='rig'){const R0=RIGS.get(b.h);card({eye:'Oil rig
 block #'+b.h.toLocaleString('en-GB'),title:'Rig '+R0.n+' of 21',lat:'An offshore platform standing on the block its insM
cription was made in. Its legs have become a reef.',
    rows:[['Owner',R0.addr],['Inscription',R0.id],['Seabed',Math.round(DM(c0y(o)))+' m below'],['Supplies','now and then a crate is lowered when a block is mined']],art:a=>icon(a,'rig')});return}
  if(o.kind==='isle'){card({eye:'Island
 block #'+b.h.toLocaleString('en-GB'),title:'Island of adjustment '+(b.h/2016),lat:'A volcanic island on a difficulty adjustment block. Coconuts drift off it some fortnights.',rows:[['Sea cave',LAND_ID?'grab at it to go ashore':'M
the way ashore is not open yet'],['Shelf','16 m']],art:a=>icon(a,'isle')});return}
  if(o.kind==='monolith'){const P=(a,x,y,w,hh,c)=>{a.fillStyle=c;a.fillRect(x,y,w,hh)};
    if(o.ty==='statue'){card({eye:'Legend
 genesis block',title:'Poseidon',lat:'God of the sea, carved at the bottom of the very first block',rows:[['In his hand',taken.has('trident:0')?'nothing: the trident has been taken':'a golden trident, raised high'],['Depth',depth]],art:a=>{P(a,26,8,12,26,'#8da2b3');P(a,20,12,24,5,'#6f8394');P(a,46,2,2,26M
,'#ffd24a');P(a,42,2,10,2,'#ffd24a');P(a,42,0,2,5,'#ffd24a');P(a,50,0,2,5,'#ffd24a')}});snd(196,.8,'sine',.04,98);return}
    if(o.ty==='clam'){card({eye:'Legend
 block 1,000,000',title:'The Giant Clam',lat:'It keeps its shell shut until a new block is found',rows:[['Pearl',taken.has('pearl:1000000')?'taken':'inside, waiting'],['It opens','for a few seconds when a new block arrives'],['Depth',depth]],art:a=>{P(a,14,20,36,12,'#7a6a90');P(a,18,13,28,8,'#a898c0');P(a,28,21,8,8,'#fff4f8')}});snd(262,.6,'sine',.04,196M
    st.monos=st.monos||{};st.monos[o.k]=1;if(Object.keys(st.monos).length>=9)trophy('mono9');
    card({eye:'Trench monolith
 '+o.k+' of 9',title:o.name,lat:'Carved with the details of the block it marks',rows:[['Block hash',b.hash.slice(0,16)+'
'+b.hash.slice(-8)],['Mined',b.time?new Date(b.time*1000).toISOString().slice(0,10):'unknown'],['Transactions',b.tx.toLocaleString('en-GB')],['Pool',poolTxt(b)],['Pressure core',taken.has('pcore:'+b.h)?'taken':'waiting at the very bottom of the trench'],['DeptM
h',depth]],art:a=>{P(a,26,4,12,30,'#2a3040');P(a,30,10,4,10,'#ffdb24');P(a,22,34,20,3,'#3a4256')}});snd(262,.5,'triangle',.04,392);return}
  if(o.kind==='ore'){const O=o.o,P=(a,x,y,w,h,c)=>{a.fillStyle=c;a.fillRect(x,y,w,h)};card({eye:'Mineral deposit',title:O[0],lat:'Ore on the seabed, block #'+b.h,rows:[['Depth',depth],['Harvest value',O[2]+' bio stock'],['Glows',O[3]?'yes':'no']],art:a=>{for(let i=0;i<5;i++){P(a,22+i*4,30-(8+(i*5)%9),4,8+(i*5)%9,O[1]);P(a,22+i*4,30-(8+(i*5)%9),1,8+(i*5)%9,'#ffffff88')}P(a,18,30,M
30,3,'#493624')}});snd(520,.2,'triangle',.04,780);return}
  if(o.kind==='item'){const D={chest:['Treasure chest','Worth more in busy blocks. Needs two hold slots.'],crate:['Supply crate','Holds a sub upgrade.'],cursed:['Cursed treasure','Very valuable, but costs 25 hull and wakes the predators.'],pisub:['Derelict sub','A pi-class sub, free to keep.'],bottle:['Message in a bottle','Carries this block\'s coinbase message.'],ration:['Food ration','Restores food.'],water:['Water flask','Restores water.'],drum:['Fuel drM
um','Refills fuel.'],o2:['Air canister','Refills air.'],batt:['Battery pack','+40 battery.'],coconut:['Coconut','Drifted off an island.'],rigbox:['Rig supply box','Supplies lowered from the rig.'],repair:['Repair kit','Seals hull leaks. Used at once if you are leaking, otherwise stowed (up to 3) to seal your next leak. Very rare.'],tmap:['Treasure map','Marks one of the special places on your spiral chart. Grab it to read it.']}[o.k]||['Salvage',o.k];
    card({eye:'Salvage spotted',title:D[0],lat:'Block #'+b.h,rowM
s:[['What',D[1]],['Depth',depth]],art:a=>icon(a,o.k==='bottle'?'bottle':'crate')});snd(520,.2,'triangle',.04,780);return}
  if(o.kind==='plant'){const n=!st.plants[o.sp.id];st.plants[o.sp.id]=1;card({eye:n?'New plant catalogued':'Plant analysed',title:o.sp.name,lat:'Seafloor flora, block #'+b.h,
    rows:[['Kind',{kelp:'kelp forest',grass:'seagrass bed',coral:'reef coral',rarecoral:'rare coral',glowkelp:'bioluminescent kelp',anemone:'anemone',tubeworm:'tube worm colony'}[o.k]||'seafloor life'],['Depth',depth],['BioM
luminescent',o.glow?'yes':'no'],['Harvest value',(o.k==='rarecoral'?40:o.glow?8:3)+' bio stock']].concat(o.sp.rare?[['Trait',TR[o.sp.rare][0]+'
 '+TR[o.sp.rare][5]]]:[]),art:a=>icon(a,'plant',o),acts:[['Harvest +'+(o.k==='rarecoral'?40:o.glow?8:3),()=>collect(o)],['Leave it',()=>{}]]});return}
  if(o.kind==='gstone'){card({eye:'Genesis
 the headline stone',title:'03 JAN 2009',lat:'The words Satoshi left in the very first block',rows:[['Coinbase',b.msg],['Block','#0, mined 3 January 2009']],art:a=>{a.fillStyle='M
#3a3448';a.fillRect(16,10,32,22);a.fillStyle='#ffdb92';a.fillRect(20,15,24,3);a.fillRect(22,22,20,3)}});snd(262,.8,'triangle',.04);return}
  if(o.kind==='gvault'){card({eye:'Genesis
 sealed forever',title:'The 50 unspendable coins',lat:'The genesis block reward can never be spent: it was never added to the coin record',rows:[['Coins','50 BTC'],['Status','unspendable, unopenable'],['Depth',depth]],art:a=>{a.fillStyle='#3a404a';a.fillRect(16,12,32,20);a.fillStyle='#ffdb24';for(let i=0;i<5;i++)a.fillRect(19+i*6,22,4M
,8);a.fillStyle='#3a404a';for(let i=0;i<6;i++)a.fillRect(17+i*6,12,1,20)}});snd(392,.6,'triangle',.04);return}
  if(o.kind==='gsub'){card({eye:'Genesis
 unknown vessel',title:'The Satoshi sub',lat:'No name, no lineage, no pilot. It was here before anyone else.',rows:[['Class','unknown'],['Pilot','none'],['Status','cannot be boarded']],art:a=>icon(a,'sub',{hc:'#dadada',sc:'#ff9224',lv:0})});snd(196,.8,'sine',.04,98);return}
  if(o.kind==='kraken'){trophy('octo');card({eye:'Legend
 block 1,000,000',title:'The MilM
lionth Octopus',lat:'Octopus satoshii maximus',
    rows:[['Arms','8, each with its own slow mind'],['Mood','curious, unhurried'],['Home','a hollow cleared level around block #1,000,000'],['Depth',depth],['Status','too vast to grab']],art:a=>{const P=(x,y,w,h,c)=>{a.fillStyle=c;a.fillRect(x,y,w,h)};for(let y=-9;y<=9;y++){const w=Math.round(Math.sqrt(81-y*y)*1.1);P(32-w,14+y,w*2,1,y<-3?'#c24a2e':'#a63c28')}
      for(let i=0;i<8;i++){const x=10+i*6;for(let j=0;j<12;j++)P(x+Math.round(Math.sin(j*.5+i)*3),22+j,3-(j>>2M
),1,'#c24a2e')}P(22,12,6,5,'#f0b73c');P(36,12,6,5,'#f0b73c');P(23,14,4,1,'#0a0608');P(37,14,4,1,'#0a0608')}});snd(98,1.2,'sine',.05,60);return}
  if(o.kind==='locker'){card({eye:'Legend
 genesis block',title:"Davy Jones' Locker",lat:"Sailors' name for the bottom of the sea, where it keeps every ship and soul it takes",
    rows:[['Status',st.locker?'opened':'sealed: use the grabber to open it'],['Souls inside',(st.drowned||0)+' of your subs, lost at sea'],['Depth',depth],['Warning','opening it is not free']],art:M
a=>{const P=(x,y,w,h,c)=>{a.fillStyle=c;a.fillRect(x,y,w,h)};P(16,18,32,14,'#3a2a1e');for(const x of[20,31,42])P(x,16,3,16,'#2a2f2a');P(16,17,32,2,'#7dffa0');P(30,22,4,4,'#6d5b2a')}});snd(220,.6,'triangle',.04,110);return}
  if(o.kind==='relic'&&o.ty==='pirate'){st.rogues=st.rogues||{};const n=!st.rogues[b.h];st.rogues[b.h]=1;const P=o.pir;
    card({eye:(n?'Rogue found':'Pirate lair')+'
 '+P.name,title:o.name,lat:'A black-sailed pirate ship',rows:[['Pirate',P.name+(P.nick!==P.name.split(' ').pop()?' ('+P.nick+')M
':'')],['Infamous for',P.why],['Pirate years',P.y1+'
      ['Block','#'+b.h+'
 the middle of those years as DD/MM/YY'],['Rogues found',Object.keys(st.rogues).length+' of '+PIRATES.length],['Warning','the chests here are cursed']],art:a=>icon(a,'wreck',{steel:0})});snd(196,.5,'sawtooth',.04,98);return}
  if(o.kind==='relic'){st.relics=st.relics||{};const n=!st.relics[b.h];st.relics[b.h]=1;
    card({eye:(n?'Relic found':'Relic')+'
 in memory of '+o.hero.name,title:o.name,lat:{ship:'A gilded tribute wrM
eck',sub:'An early submarine, lit in bronze',sphere:'A deep-diving sphere',trieste:'A bathyscaphe that touched the deep',rowboat:'A rescue rowing boat',reef:'A ring of crystal coral',ridge:'A glowing line traced across the seafloor'}[o.ty],
      rows:[['Hero',o.hero.name],['Remembered for',o.hero.why],['Block','#'+b.h],['Relics found',Object.keys(st.relics).length+' of '+HEROES.length]],art:a=>icon(a,o.ty==='ship'?'wreck':'memorial',{steel:0})});snd(523,.4,'triangle',.05);return}
  if(o.kind==='memorial'){st.heroeM
s=st.heroes||{};const n=!st.heroes[b.h];st.heroes[b.h]=1;const[y,m,d]=o.hero.date.split('-');
    card({eye:(n?'Memorial found':'Memorial')+'
 sea hero',title:o.hero.name,lat:'Born '+(+d)+' '+['January','February','March','April','May','June','July','August','September','October','November','December'][m-1]+' '+y,
      rows:[['Remembered for',o.hero.why],['Block','#'+b.h+'
 their birth date as DD/MM/YY'],['Depth',depth],['Heroes found',Object.keys(st.heroes).length+' of '+HEROES.length]],art:a=>icon(a,'memoriaM
l')});snd(392,.4,'triangle',.05);setTimeout(()=>snd(523,.5,'triangle',.05),300);return}
  if(o.kind==='wreck'){st.wrecks=st.wrecks||{};const n=!st.wrecks[o.name+b.h];st.wrecks[o.name+b.h]=1;
    card({eye:(n?'New shipwreck logged':'Shipwreck surveyed')+(o.style!=='plain'?'
 '+o.style:''),title:o.name,lat:(o.style==='ghost'?'Spectral ':o.style==='gilded'?'Gilded ':'')+(o.steel?'steel freighter':'wooden sailing ship')+', block #'+b.h,
      rows:[['Block transactions',b.tx.toLocaleString('en-GB')],['Depth',depth],[M
'Era','Era '+(b.era+1)+'
 '+b.sub+' BTC subsidy'],['Cargo',o.style==='plain'?'a treasure chest lies beside the hull':'two treasure chests lie beside the hull']].concat(o.T?[['Trait',o.T.name+'
 '+o.T.why]]:[]),art:a=>icon(a,'wreck',o)});snd(440,.3,'triangle',.05,220);return}
  if(o.sp.shape==='puffer')trophy('puffer');
  const sp=o.sp,n=!st.best[sp.id];st.best[sp.id]=st.best[sp.id]||{n:sp.name,b:b.h};
  card({eye:(sp.proto?'Protocol creature
 ':sp.rare?'Rare variant
 ':'Specimen analysedM
 ')+sp.lin+(sp.proto?'':' lineage'),title:sp.name,lat:sp.latin,
    rows:(sp.proto?[['Protocol',PROTO[sp.proto].lin+': '+PROTO[sp.proto].why],['In this block',!b.live?'simulated':sp.proto==='nat'?'one nat per block, by Digital Matter Theory':b.scan?((b.scan.n[sp.proto]||0).toLocaleString('en-GB')+' '+SCLAB[sp.proto]+(sp.proto==='runes'&&b.scan.n.etch?'
 '+b.scan.n.etch+' etched':'')):'not scanned yet']]:[]).concat(bmRows(sp,b)).concat([['Block','#'+b.h+'
 '+rarity(b.h).toLowerCase()],['Block transactions',b.M
tx.toLocaleString('en-GB')],['Depth',depth],['Glow',sp.glow?sp.gcol:'none'],['Size class',['','small','medium','large'][sp.size]]]).concat(sp.rare?[['Trait',TR[sp.rare][0]+'
 '+TR[sp.rare][5]]]:[]),
    insc:o.insc,extra:sp.proto?host=>{const d=el('div',{class:'ins'}),vb=el('button',{type:'button',class:'insv',text:'Open '+PROTO[sp.proto].lin+' details'});vb.addEventListener('click',()=>protoView(o));d.append(el('div',{},el('b',{text:PROTO[sp.proto].lin}),el('br'),vb));host.append(d)}:null,art:a=>icon(a,'fish',spM
),acts:sp.shape==='whale'?[['Continue',()=>{}]]:[['Harvest +'+(4+sp.size*3+(sp.glow?4:0))*(sp.rare?3:1),()=>collect(o)],['Release',()=>{}]]});snd(880,.15,'triangle',.05,1320)}
// ---------- pressure: below 750 m a time bar drains, faster the deeper you go; rise above 750 m to refill it; empty and the hull is crushed ----------
function pressureTick(dm,dt){let p=sub.press??100;if(sub.pw===undefined)sub.pw=0;
  if(dm>PLIM){const f=(dm-PLIM)/PLIM,r=(.33+2.2*Math.pow(f,1.2))/(1+subLv()*.12+(st.up.hull|M
|0)*.1+(st.cores||0)*.12+(st.trident?.3:0));p-=r*dt;if(dm>=1500)trophy('abyss');if(dm>=1700)trophy('deep');
    if(!sub.pn){sub.pn=1;toast('BELOW 750 M
 PRESSURE BUILDING');snd(180,.3,'sine',.04,120)}
    if(p<=0){p=0;sub.hull-=(2+Math.min(f,3)*3)*dt;sub.shake=Math.max(sub.shake||0,.25);if((sub.crT=(sub.crT||0)-dt)<=0){sub.crT=1.6;toast('PRESSURE IS CRUSHING THE HULL
 RISE NOW');snd(70,.5,'sawtooth',.06,40)}}
    else if(p<40&&sub.pw<1){sub.pw=1;toast('PRESSURE LOW
 RISE ABOVE 750 M TO RECOVER');snd(300,.3,'sM
    if(p<15&&sub.pw<2){sub.pw=2;toast('HULL GROANING
 RISE NOW');snd(120,.6,'sawtooth',.05,60)}}
  else{p=Math.min(100,p+2.5*dt);if(dm<PLIM-50)sub.pn=0;if(p>60)sub.pw=0}
  sub.press=p;if(sub.pw===undefined)sub.pw=0}
// ---------- update ----------
function update(dt){
  worldClock(dt);tm+=dt;clamT=Math.max(0,clamT-dt);
  if(st.trident&&!paused)for(const e of allEnts())if(e.kind==='fish'&&(e.sp.shape==='shark'||e.sp.shape==='angler'||e.sp.rare==='pirate')&&dist(e,sub.p)<32){e.flee=Math.max(e.flee|M
|0,1.2);e.att=0}   // Poseidon's trident: predators keep clear
  {const now=performance.now();toasts=toasts.filter(t=>t.end>now)}   /* messages last exactly 3 s of real time */
  ensureChunks();const cur=chunks.get(ck(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B)));if(cur&&cur.state==='ok'&&cur.full)scanCur(cur);if(rigView||paused||!cur||cur.state!=='ok'||!cur.full)return;
  if(cur.h!==curH){curH=cur.h;if(st.tmap&&st.tmap.h===curH)mapArrive();if(curH===0){for(const[f,d]of[[262,0],[330,120],[392,240],[523,360]])setTimM
eout(()=>snd(f,1.8,'triangle',.035),d)}sess.blocks.add(curH);{const t0=cur.T.find(t=>t.tier>=2);if(t0)sess.rare.set(curH,t0)}if(!st.visited.includes(curH)){st.visited.push(curH);if(st.visited.length>800)st.visited.shift()}
    sub.blkFx=1.2;upd()}
  const turn=clamp((keys.arrowright||keys.d?1:0)-(keys.arrowleft||keys.a?1:0)+stick.x,-1,1),thr=clamp((keys.arrowup||keys.w?1:0)-(keys.arrowdown||keys.s?1:0)-stick.y,-1,1),
    vert=clamp((keys.e||keys[' ']||vbtn.u?1:0)-(keys.q||keys.shift||vbtn.d?1:0),-1,1),fuel=sub.fuelM
  sub.yaw-=turn*(view===2?.9:1.7)*dt;const f=fwd();if(view!==2){sub.v.addScaledVector(f,thr*acc*dt);sub.v.y+=vert*acc*1.3*dt}if(!fuel&&vert>0)sub.v.y+=1.2*dt;
  sub.v.multiplyScalar(Math.pow(.35,dt));const mx=(sub.boost>0?18:fuel?9:2.5)*(!sub.food||!sub.water?.5:1)*(sub.hull/MX('hull')<.4?.75:1);if(sub.v.length()>mx)sub.v.setLength(mx);
  if((thr||vert)&&fuel)sub.fuel-=.075*dt*Math.max(Math.abs(thr),Math.abs(vert)); // full throttle: a full tank lasts about 22 minutes (about 20 with mined blocks)
 const sp=sub.v.length();sess.dist+=sp*dt*UM;sess.maxD=Math.max(sess.maxD,DM(sub.p.y));sub.p.addScaledVector(sub.v,dt);
  sub.phase=(sub.phase||0)-dt;sub.phcd=(sub.phcd||0)-dt;const fy=floorY(sub.p.x,sub.p.z)+1.5;if(sub.phase>0){if(sub.p.y<fy-25)sub.p.y=fy-25}else if(sub.p.y<fy){if(sub.v.y<-4){sub.hull-=(-sub.v.y-3)*4;sub.shake=.3;snd(90,.2,'sawtooth',.06,40)}sub.p.y=fy;sub.v.y=Math.max(0,sub.v.y)}
  // surfacing: the sub eases up and settles at the surface (rising speed fades to zero, so no hard stop and no bounceM
  if(sub.p.y>-3){sub.v.y=Math.min(sub.v.y,Math.max(0,-1.4-sub.p.y)*2.5);if(sub.p.y>-1.4){sub.p.y=-1.4;sub.v.y=Math.min(0,sub.v.y)}}
  if(!(sub.phase>0))for(const c of chunks.values())for(const rk of c.rocks){const dx=sub.p.x-rk[0],dy=sub.p.y-rk[1],dz=sub.p.z-rk[2],d=Math.hypot(dx,dy,dz),m=rk[3]+1.3;
    if(d<m&&d>0){if(sp>5){sub.hull-=(sp-4)*3;sub.shake=.3;snd(90,.2,'sawtooth',.06,40)}sub.p.x+=dx/d*(m-d);sub.p.y+=dy/d*(m-d);sub.p.z+=dz/d*(m-d);sub.v.multiplyScalar(.3)}}
  sub.octoCd=(sub.octoCd||0)-dt;
.phase>0))for(const c of chunks.values())if(c.octo)for(const q of c.octo.pts){const dx=sub.p.x-q[0],dy=sub.p.y-q[1],dz=sub.p.z-q[2],d=Math.hypot(dx,dy,dz),m=q[3]+1.3;
    if(d<m&&d>0){sub.p.x+=dx/d*(m-d);sub.p.y+=dy/d*(m-d);sub.p.z+=dz/d*(m-d);sub.v.multiplyScalar(.4);sub.v.x+=dx/d*2;sub.v.y+=dy/d*2;sub.v.z+=dz/d*2;
      if(sub.octoCd<=0){sub.octoCd=1.4;sub.hull-=8+Math.min(10,sp);sub.shake=.5;toast('OCTOPUS STRIKE  -'+Math.round(8+Math.min(10,sp))+' HULL');snd(80,.35,'sawtooth',.07,40)}}}
  for(const c of chunks.M
values())for(const L of c.legs||[]){const dx=sub.p.x-L[0],dz=sub.p.z-L[1],d=Math.hypot(dx,dz),m=L[2]+1.3;if(d<m&&d>0){sub.p.x+=dx/d*(m-d);sub.p.z+=dz/d*(m-d);sub.v.multiplyScalar(.5)}}
  for(const c of chunks.values())if(c.state==='frontier'){const x0=c.cx*B,z0=c.cz*B;if(sub.p.x>x0-1.5&&sub.p.x<x0+B+1.5&&sub.p.z>z0-1.5&&sub.p.z<z0+B+1.5){sub.p.addScaledVector(sub.v,-dt*1.5);sub.v.multiplyScalar(-.3);toast('UNCHARTED - BLOCK NOT MINED YET')}}
  const dm=DM(sub.p.y);pressureTick(dm,dt);
  /* steady hunger and thirst M
on top of the per-block hit: a full water tank lasts about 25 min, full food about 40 min */
  sub.water=Math.max(0,sub.water-dt*100/1500);sub.food=Math.max(0,sub.food-dt*100/2400);
  sub.o2-=dt*.2*(1+Math.min(dm,1500)/750)*(!sub.food||!sub.water?1.5:1);
  chainClock(dt);sub.chainFx=Math.max(0,(sub.chainFx||0)-dt);
  if(sub.nv){if(subLv()<2)sub.nv=false;sub.batt-=.2*dt;if(sub.batt<=0)sub.nv=false}
  if(sub.lamp){sub.batt-=.35*dt;if(sub.batt<=0){sub.batt=0;sub.lamp=false;toast('BATTERY FLAT - LAMP OFF')}}
t c of chunks.values())if(c.rig&&!rigView&&Math.hypot(sub.p.x-c.rig.x,sub.p.z-c.rig.z)<2.6&&sub.p.y>-11.5){if(c.rig.open){enterRig(c);return}if(!sub.sealT||tm-sub.sealT>4){sub.sealT=tm;toast('MOON POOL SEALED
 ONLY THIS RIG\'S OWN INSCRIPTION OPENS IT');snd(140,.3)}}
  const dk=[...chunks.values()].find(c=>c.dock&&Math.hypot(c.dock.x-sub.p.x,c.dock.y+4-sub.p.y,c.dock.z-sub.p.z)<13);if(!!dk!==!!sub.docked){sub.docked=!!dk;if(dk){toast('DOCKED - SWITCH SUBS IN THE HANGAR');snd(523,.15);setTimeout(()=>snd(784,.25),1M
  if(dk)for(const k of['o2','fuel','batt','hull'])sub[k]=Math.min(MX(k),sub[k]+40*dt);
  const rsn=[...chunks.values()].find(c=>c.rs&&Math.hypot(c.rs.x-sub.p.x,c.rs.y+3-sub.p.y,c.rs.z-sub.p.z)<9);if(rsn){const k=rsn.rs.t;if(sub[k]<MX(k)-.5&&!sub.rsT){sub.rsT=1;toast('REFILLING '+RS[k][0]);snd(660,.2,'triangle',.04,990)}sub[k]=Math.min(MX(k),sub[k]+45*dt)}else sub.rsT=0;
  const atSurf=sub.p.y>-4,stn=stations().find(s=>Math.hypot(s.x-sub.p.x,s.y+2-sub.p.y,s.z-sub.p.z)<8);
  if(atSurf){sub.o2=Math.min(MX('M
o2'),sub.o2+40*dt);sub.batt=Math.min(MX('batt'),sub.batt+10*dt)}
  if(stn)for(const k of['o2','fuel','batt','hull'])sub[k]=Math.min(MX(k),sub[k]+30*dt);
  if((atSurf||stn||dk||rsn)&&st.hold.length){const v=st.hold.reduce((a,b)=>a+b,0);st.stock+=v;st.hold=[];toast('BANKED +'+v+' BIO STOCK');snd(523,.1);setTimeout(()=>snd(659,.1),90);setTimeout(()=>snd(784,.18),180);save();upd()}
  sub.shake=Math.max(0,sub.shake-dt);
  // any hull loss flashes red and may spring a leak; leaks drain air until a dock repairs them
st hl=(sub.lastHull??sub.hull)-sub.hull;if(hl>.5){sess.dmg+=hl;sess.hits++;sub.hitFx=.4;sub.react=Math.min(1.3,.6+hl/12);sub.rdir=Math.random()<.5?-1:1;burst();if(Math.random()<(hl>=8?.35:.15)&&(sub.leaks||0)<3){if((st.kits||0)>0){st.kits--;save();setTimeout(()=>toast('LEAK SEALED
 REPAIR KIT USED ('+st.kits+' LEFT)'),900);snd(900,.3,'triangle',.04,1400)}else{sub.leaks=(sub.leaks||0)+1;setTimeout(()=>toast('HULL LEAK'+(sub.leaks>1?' x'+sub.leaks:'')+' - AIR DRAINING, DOCK TO REPAIR'),900);snd(1500,.8,'sawtooth',.M
  sub.lastHull=sub.hull;sub.hitFx=Math.max(0,(sub.hitFx||0)-dt);sub.react=Math.max(0,(sub.react||0)-dt*1.5);
  if(sub.leaks){sub.o2-=sub.leaks*.5*dt;if(dk){sub.leaks=0;toast('LEAKS REPAIRED')}}
  sub.boost=(sub.boost||0)-dt;sub.bcd=(sub.bcd||0)-dt;sub.pcd=(sub.pcd||0)-dt;if(sub.pt!=null){sub.pt+=dt;if(sub.pt>.9)sub.pt=null}
  if(GR){sub.v.multiplyScalar(Math.pow(.12,dt));armUpdate(dt)}   // the sub holds steady while the claw works
  if(sub.scan){const s=sub.scan;s.t+=dt;if(s.tg.dead||dist(s.tg,sub.p)>(sM
.tg.kind==='kraken'?46:34)){sub.scan=null;toast('SCAN LOST')}else if(s.t>=1){sub.scan=null;analysed(s.tg)}}
  if(sonar){sonar.t+=dt;if(sonar.t>5)sonar=null}
  if((ptimer-=dt)<0){ptimer=.5;passive=walls(18,2)}
  for(const e of allEnts())if((e.kind==='wreck'||e.kind==='rig'||e.kind==='isle'||e.kind==='locker'||e.kind==='kraken'||e.kind==='dock'||e.kind==='rstation'||e.kind==='memorial'||e.kind==='relic'||e.k==='pisub')&&!e.seen&&dist(e,sub.p)<40){e.seen=1;toast(e.kind==='isle'&&!LAND_ID?'LIGHT ABOVE - AN ISLAND':e.kiM
nd==='rig'?'OIL RIG '+e.name.split(' ')[1]+(chunkOf(e)&&chunkOf(e).rig&&chunkOf(e).rig.open?' - RISE INTO THE LIT MOON POOL':' - LEGS AHEAD'):e.kind==='isle'?'LIGHT ABOVE - AN ISLAND
 GRAB AT THE CAVE TO GO ASHORE':e.kind==='locker'?"DAVY JONES' LOCKER":e.kind==='kraken'?'SOMETHING ENORMOUS RESTS AHEAD':e.kind==='dock'?'DOCKING STATION AHEAD':e.kind==='rstation'?RS[e.t][0]+' STATION AHEAD':e.kind==='memorial'?'MEMORIAL: '+e.name.toUpperCase():e.ty==='pirate'?'PIRATE LAIR: '+e.name.toUpperCase():e.kind==='relic'?'M
RELIC: '+e.name.toUpperCase():e.k==='pisub'?'DERELICT SUB SIGHTED: '+SUBS[e.lv][0].toUpperCase():'WRECK SIGHTED: '+e.name.toUpperCase())}
  for(const e of allEnts())if(e.kind==='fish'){if(!e.held)life(e,dt)}else if(e.k==='kelp'||e.k==='glowkelp')e.obj.rotation.z=Math.sin(tm*1.1+e.ph)*.12;
  if(dk){sub.press=Math.min(100,(sub.press??100)+20*dt);sub.food=Math.min(100,sub.food+40*dt);sub.water=Math.min(100,sub.water+40*dt)}
  if((!sub.food||!sub.water)&&(sub.hungry=(sub.hungry||0)-dt)<0){sub.hungry=6;toast(!sub.watM
er?'THIRSTY - FIND WATER':'HUNGRY - FIND FOOD')}
  const crit=[sub.o2/MX('o2'),sub.fuel/MX('fuel'),sub.batt/MX('batt'),sub.hull/MX('hull')].some(v=>v<.15);
  if(crit&&(alarmT-=dt)<0){alarmT=1.2;snd(520,.15,'square',.03)}
  for(const k of['o2','fuel','batt','hull'])sub[k]=Math.max(0,sub[k]);
  if(sub.hull<=0&&st.pearl&&!sub.pearlUsed){sub.pearlUsed=1;sub.hull=MX('hull')*.5;sub.leaks=0;toast('THE GIANT PEARL GLOWS
 HULL RESTORED (ONCE PER DIVE)');fanfare()}
  if(sub.o2<=0||sub.hull<=0)lost(sub.o2<=0?'Out of air':'HM
function life(c,dt){
  if(c.sp.shape==='whale'&&c.obj.userData.wh){whaleLife(c,dt);return}
  const s=c.sp;c.t+=dt;c.cool-=dt;c.att-=dt;if(c.ch.h===0){c.att=0;c.cool=9}const dx=sub.p.x-c.x,dy=sub.p.y-c.y,dz=sub.p.z-c.z,d=Math.hypot(dx,dy,dz),ch=c.ch;
  let spd=s.speed*(s.shape==='turtle'?.45:s.shape==='whale'?.7:s.shape==='jelly'?.15:1),vy=Math.sin(c.t*.6+c.ph)*.4;
  if((s.shape==='fish'||s.shape==='shrimp')&&!c.att){let ax=0,az=0,cx2=0,cz2=0,n=0;for(const o of c.ch.ents)if(o!==c&&o.sp===s&&Math.absM
(o.x-c.x)<7&&Math.abs(o.z-c.z)<7){ax+=Math.sin(o.yaw);az+=Math.cos(o.yaw);cx2+=o.x;cz2+=o.z;n++}
    if(n){const ty=Math.atan2(ax+(cx2/n-c.x)*.05,az+(cz2/n-c.z)*.05),dd=((ty-c.yaw+Math.PI)%(2*Math.PI)+2*Math.PI)%(2*Math.PI)-Math.PI;c.yaw+=dd*Math.min(1,dt*2)}}
  if(s.shape!=='jelly'){c.yaw+=Math.sin(c.t*.5+c.ph)*.8*dt*(s.shape==='fish'?.4:1);
    c.flee=(c.flee||0)-dt;if(c.flee>0){c.att=0;c.yaw=Math.atan2(-dx,-dz);spd*=2.2}
    else if(s.shape==='shark'&&d<30&&c.ch.h!==0){if((c.circ=(c.circ||0)-dt)>0){c.att=0;c.yawM
=Math.atan2(dx,dz)+Math.PI/2+(d<12?.5:d>20?-.4:0);spd*=1.4}else c.att=1}
    if(c.flee>0){}else if(c.att>0&&d<70){c.yaw=Math.atan2(dx,dz);vy=clamp(dy,-1,1)*1.5;spd*=1.6}else if(s.shy&&d<9&&s.shape!=='angler'){c.yaw=Math.atan2(-dx,-dz);spd*=2.6}}
  else vy=Math.sin(c.t*.9+c.ph)*.7;
  let nx=c.x+Math.sin(c.yaw)*spd*dt,nz=c.z+Math.cos(c.yaw)*spd*dt,ny=c.y+vy*dt;const fy=floorY(nx,nz)+1.2;
  if(nx<ch.cx*B||nx>(ch.cx+1)*B||nz<ch.cz*B||nz>(ch.cz+1)*B){const ty=Math.atan2(ch.cx*B+B/2-c.x,ch.cz*B+B/2-c.z),dd=((ty-c.yaw+MatM
h.PI)%(2*Math.PI)+2*Math.PI)%(2*Math.PI)-Math.PI;c.yaw+=dd*Math.min(1,dt*1.2)}
  if(nx<ch.cx*B-14||nx>(ch.cx+1)*B+14||nz<ch.cz*B-14||nz>(ch.cz+1)*B+14||ny<fy){c.yaw+=Math.PI*(.7+Math.random()*.6);ny=Math.max(ny,fy)}else{c.x=nx;c.z=nz}
  c.y=s.shape==='crab'?fy-.8:clamp(ny,fy,-2.5);if(s.shape==='crab')spd*=.4;c.obj.position.set(c.x,c.y,c.z);c.obj.rotation.y=c.yaw;
  const pt=c.obj.userData.parts;if(s.shape==='eel')pt.forEach((p,i)=>p.position.x=Math.sin(c.t*5-i*.7)*.25*s.size);
  else if(s.proto==='atomicals'){pt.foM
rEach((p,i)=>{if(p.geometry&&p.geometry.type==='TorusGeometry')p.rotation.z+=dt*(1.5+i)})}
  else if(s.shape==='turtle')pt.forEach((p,i)=>p.rotation.z=Math.sin(c.t*2.2+(i>>1)*1.5)*.45*(i%2?-1:1));
  else if(s.shape==='crab')pt.forEach((p,i)=>p.rotation.x=Math.sin(c.t*10+i)*.4);
  else if(s.shape==='jelly')pt.forEach((p,i)=>p.rotation.x=Math.sin(c.t*2.5+i)*.3);else if(pt.length)pt[0].rotation.y=Math.sin(c.t*9)*.4;
  const spk=c.obj.userData.spark;if(spk){const k=c.obj.userData.sb*(1+.3*Math.sin(c.t*4+c.ph));spk.scalM
  if(c.flee>0)return;
  if(s.shape==='shark'&&d<3.6&&c.cool<=0){c.cool=1.6;c.flee=3+Math.random()*3;c.circ=c.flee+4+Math.random()*5;c.att=0;sub.hull-=8;sub.v.addScaledVector(new THREE.Vector3(dx,dy,dz).normalize(),4);sub.shake=.4;toast('SHARK BITE  -8 HULL');snd(90,.25,'sawtooth',.07,45)}
  if(s.shape==='angler'&&d<3.2&&c.cool<=0){c.cool=2;c.flee=5+Math.random()*4;c.att=0;sub.hull-=10;sub.v.addScaledVector(new THREE.Vector3(dx,dy,dz).normalize(),5);sub.shake=.4;toast('ANGLER BITE  -10 HULL');snd(110,.M
25,'sawtooth',.06,50)}
function lost(why){st.drowned=(st.drowned||0)+1;const n=st.hold.length;st.hold=[];paused=true;
  card({eye:'Sub lost at '+Math.round(DM(sub.p.y))+' m',title:why,lat:'Rescue tow to the surface above this spot. '+(n?n+' items in the hold were lost.':''),rows:[['Bio stock kept',st.stock]],
    acts:[['Surface',()=>{sub.p.y=-3;sub.v.set(0,0,0);for(const k of['o2','fuel','batt','hull'])sub[k]=MX(k);sub.food=sub.water=100;sub.press=100;sub.pearlUsed=0;sub.leaks=0;sub.lamp=true;save()}]]})}
on teleport(h){GR=null;const[cx,cz]=spiralXY(h);sub.p.set(cx*B+B/2,-4,cz*B+B/2);cbDrop();sub.v.set(0,0,0);for(const k of['o2','fuel','batt','hull'])sub[k]=MX(k);sub.food=sub.water=100;sub.press=100;sub.pearlUsed=0;sub.leaks=0;sub.lastHull=null;sub.lamp=true;curH=-1;
  for(const c of chunks.values())scene.remove(c.g);chunks.clear();ensureChunks();countIn(h)}
// ---------- render ----------
const camPos=new THREE.Vector3(),tmpV=new THREE.Vector3(),fogC=[];let armCam=0;const armMid=new THREE.Vector3();
(){const v=[sub.o2/MX('o2'),sub.fuel/MX('fuel'),sub.batt/MX('batt'),sub.hull/MX('hull')],m=Math.min(...v),p=.5+.5*Math.sin(tm*6);
  if(m<.15)return[255,40+30*p,40,1];if(m<.3)return[255,170,40,.75+.25*p];return[255,214,150,1]}
function render3d(dt){
  const f=fwd(),dm=DM(sub.p.y),amb=clamp(1-dm/650,0,1),wc=stops(WATER,dm),cc=chunks.get(ck(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B)));
  if(cc&&cc.T&&cc.T.some(t=>t.k==='pirate')){wc[0]=wc[0]*.6+70;wc[1]*=.35;wc[2]*=.4}
  {const lc=chunks.get(ck(0,0));if(lc&&cc===lc){M
wc[0]=lerp(wc[0],120,.25);wc[1]=lerp(wc[1],90,.18);wc[2]=lerp(wc[2],110,.12)}if(lc&&lc.locker){const d=Math.hypot(sub.p.x-lc.locker.x,sub.p.z-lc.locker.z),k=clamp(1-(d-12)/40,0,1)*.7;wc[0]=lerp(wc[0],18,k);wc[1]=lerp(wc[1],70,k);wc[2]=lerp(wc[2],45,k)}}
  const shl=clamp(1-dm/650,0,1);for(let i=0;i<3;i++)wc[i]*=1-(1-WCLK.L)*.8*shl;
  for(let i=0;i<3;i++){fogC[i]=lerp(fogC[i]??wc[i],wc[i],Math.min(1,dt*1.2));wc[i]=fogC[i]}
  scene.fog.color.setRGB(wc[0]/255,wc[1]/255,wc[2]/255);scene.fog.density=lerp(.013,.034,clampM
(dm/1200,0,1));R.setClearColor(scene.fog.color);
  if(sub.nv)scene.fog.density*=.5;post.material.uniforms.nv.value=sub.nv&&view!==2?1:0;post.material.uniforms.tm.value=tm*60%997;
  hemi.intensity=.05+amb*(.12+.88*WCLK.L)*1.05+(sub.nv?.35:0)+WCLK.flash*1.6*shl;sun.intensity=amb*(.12+.88*WCLK.L)*.7;rays.visible=dm<160;rays.children.forEach((m,i)=>m.material.opacity=.07*(1-dm/160)*(.6+.4*Math.sin(tm*.7+i))*(WCLK.L<.2?WCLK.L*.5:WCLK.L));
  surfM.uniforms.uS.value=WCLK.wx;surfM.uniforms.uL.value=WCLK.L;surfM.uniforms.uRM
.value=WCLK.wx>.5?WCLK.wx:0;
  {const k=WCLK.k,wm=Math.sin(k*Math.PI)*(k<1?.5:0),g=.3+.7*WCLK.L,st=WCLK.wx,fl=WCLK.flash;   // sky colour seen through the surface: night navy, day blue, warm at dusk and dawn, grey in storms
    surfM.uniforms.uSky.value.setRGB(Math.min(1,((.03+.5*k)*(1-st)+.32*st*g+wm*.6)*g+fl),Math.min(1,((.05+.78*k)*(1-st)+.36*st*g+wm*.25)*g+fl),Math.min(1,((.14+.86*k)*(1-st)+.42*st*g)*g+fl))}
  rays.position.set(Math.round(sub.p.x/30)*30,0,Math.round(sub.p.z/30)*30);surf.position.x=sub.p.x;surf.M
  bT=Math.max(0,bT-dt);if(bPts.visible){for(let i=0;i<BN*3;i++)bP[i]+=bV[i]*dt;bG.attributes.position.needsUpdate=true;bPts.material.opacity=bT/1.4;if(!bT)bPts.visible=false}
  SUBG.position.copy(sub.p);if(view!==1)SUBG.visible=!(sub.phase>0&&(tm*12|0)%2);if(sub.shake)SUBG.position.x+=(Math.random()-.5)*.2;SUBG.rotation.set(clamp(-sub.v.y*.05,-.3,.3),sub.yaw,0);if(sub.react>0){const k=sub.react;SUBG.rotation.z+=sub.rdir*Math.sin(k*16)*k*.7;SUBG.rotation.x+=Math.sin(k*11)*k*.3;SUBG.position.y+=MaM
  prop.rotation.z+=dt*(4+sub.v.length()*3);const ic=cabin();glassM.color.setRGB(ic[0]/255*ic[3],ic[1]/255*ic[3],ic[2]/255*ic[3]);lens.material=sub.lamp?bas('#ffffc8'):bas('#49493a');
  spot.intensity=sub.lamp&&!(sub.hull/MX('hull')<.4&&Math.random()<.12)&&!(sub.react>.5&&Math.random()<.5)?(subLv()>=1?3.4:2.2):0;spot.angle=lampA();spot.distance=lampR();spot.position.copy(sub.p).addScaledVector(f,1.8).add(tmpV.set(0,-.5,0));spotT.position.copy(sub.p).addScaledVector(f,20).add(tmpV.set(0,-2-sub.v.yM
  for(const c of chunks.values())if(c.clam){const cl=c.clam;cl.k+=((clamT>0?1:0)-cl.k)*Math.min(1,dt*2.2);cl.lid.rotation.x=-cl.k*1.15}
  for(const c of chunks.values())if(c.octo){octoAnim(c.octo,tm);if(Math.hypot(sub.p.x-c.cx*B-B/2,sub.p.z-c.cz*B-B/2)<70)octoPts(c.octo);else c.octo.pts=[]}
  {const gc=chunks.get(ck(0,0));if(gc&&gc.gcube){gc.gcube.rotation.y+=dt*(gc.genesisDay?1.2:.3);gc.gcube.rotation.x=Math.sin(tm*.4)*.15;gc.gcube.position.y+=Math.sin(tm)*dt*.3}}
  pfx.visible=sub.pt!=null;if(pfx.visible){cM
onst k=1+sub.pt*42;pfx.position.copy(sub.p);pfx.scale.set(k,k,k);pfx.rotation.x=Math.PI/2;pfx.material.opacity=1-sub.pt/.9}
  glowL.position.copy(sub.p);glowL.intensity=(subLv()>=1&&sub.lamp?1.1:.5)+(1-amb)*.6;glowL.distance=subLv()>=1&&sub.lamp?24:14;
  cam.up.set(0,1,0);
  if(view===1&&cockDown){cam.position.copy(sub.p).addScaledVector(f,.4).add(tmpV.set(0,-.3,0));cam.up.set(f.x,0,f.z);cam.lookAt(tmpV.copy(cam.position).add(new THREE.Vector3(f.x*.05,-10,f.z*.05)));SUBG.visible=false;
    spot.position.copy(sub.p)M
.add(tmpV.set(0,-.6,0));spotT.position.copy(sub.p).add(tmpV.set(0,-14,0))}
  else if(view){cam.position.copy(sub.p).addScaledVector(f,1.9).add(tmpV.set(0,.25,0));cam.lookAt(tmpV.copy(cam.position).addScaledVector(f,10).add(new THREE.Vector3(0,sub.v.y*.4,0)));SUBG.visible=false}
  else{if(!(sub.phase>0))SUBG.visible=true;
    // while the claw works, the chase camera swings out to the side so the reach is visible past the hull
    armCam=lerp(armCam,GR?1:0,1-Math.pow(.004,dt));const ac=armCam,sd=lerp(3.2,6.5,ac);
  if(GR&&GR.dir)armMid.copy(shoulder(tmpV)).addScaledVector(GR.dir,GR.L*.55);
    camPos.copy(sub.p).addScaledVector(f,lerp(-7,-2.2,ac)).add(tmpV.set(f.z*sd,lerp(3.2,3.8,ac),-f.x*sd));const cf=floorY(camPos.x,camPos.z)+1;if(camPos.y<cf)camPos.y=cf;camPos.y=Math.min(camPos.y,-.6);
    cam.position.lerp(camPos,1-Math.pow(.02,dt));cam.lookAt(tmpV.copy(sub.p).addScaledVector(f,4).lerp(armMid,armCam))}
  const sp=snow.geometry.attributes.position;for(let i=0;i<SN;i++){let y=sp.getY(i)-dt*.3;if(y<-30)y+=60;sp.setY(i,y)}sM
p.needsUpdate=true;snow.position.set(Math.round(sub.p.x/60)*60,sub.p.y,Math.round(sub.p.z/60)*60);
  if(sub.react>0){const k=sub.react*(view===1?1.4:1);cam.position.x+=(Math.random()-.5)*k*.6;cam.position.y+=(Math.random()-.5)*k*.5;cam.rotation.z+=(Math.random()-.5)*k*.08}
  armPose();lookUpdate(dt,amb,Math.max(clamp(dm/850,0,1),(1-WCLK.L)*shl*.7));
  R.setRenderTarget(RT);R.render(scene,cam);R.setRenderTarget(null);R.render(postScene,postCam)
// ---------- periscope: every block has its own deterministic view ofM
 the sky and sea above it ----------
const SKY={night:[[6,8,30],[30,34,80]],dawn:[[50,40,110],[255,160,100]],day:[[40,120,220],[180,226,255]],dusk:[[40,26,80],[255,104,60]]};
const PHASES=['NEW MOON','WAXING CRESCENT','FIRST QUARTER','WAXING GIBBOUS','FULL MOON','WANING GIBBOUS','LAST QUARTER','WANING CRESCENT'];
const PW=1024,PH=150,HZ=92;
function makePano(c){const b=c.b,T0=c.T.find(t=>t.tier>0),r=mulberry(c.P.seed^0x9e37),hr=WCLK.hr,ph=((b.time/86400-6.8)%29.53+29.53)%29.53/29.53;
  const tod=b.h===0?'dawn':WCLKM
.tod,sky=SKY[tod],storm=WCLK.wx>.6,cloud=Math.round(2+WCLK.wx*16+b.fee*6+r()*6);
  const cv=document.createElement('canvas');cv.width=PW;cv.height=PH;const g=cv.getContext('2d'),P=(x,y,w,h,col)=>{g.fillStyle=col;g.fillRect(((x%PW)+PW)%PW|0,y|0,w,h);if(((x%PW)+PW)%PW+w>PW){g.fillRect(((x%PW)+PW)%PW-PW|0,y|0,w,h)}};
  for(let y=0;y<HZ;y++){const t=y/HZ,k=storm?.55:1;g.fillStyle=hex(lerp(sky[0][0],sky[1][0],t)*k,lerp(sky[0][1],sky[1][1],t)*k,lerp(sky[0][2],sky[1][2],t)*k);g.fillRect(0,y,PW,1)}
  if(tod==='night'||tod=M
=='dusk')for(let i=0;i<(tod==='night'?160:40);i++)P(r()*PW,r()*(HZ-20),1,1,r()<.15?'#ffdb92':'#dadaff');
  if(T0&&T0.tier>=4)for(let x=0;x<PW;x+=2){const a=Math.sin(x*.02+r()*.2)*.5+.5;if(a>.35){const hgt=20+a*30;g.fillStyle=rgba(x%6<3?T0.p[0]:T0.p[1],.1*a);g.fillRect(x,8+Math.sin(x*.05)*6,2,hgt)}}
  const az=(hr/24*PW+512)%PW,el=HZ-8-Math.max(0,Math.sin((hr-6)/12*Math.PI))*70;
  if(tod!=='night'){const sc=tod==='day'?'#ffffdb':'#ffb649';for(let y=-6;y<=6;y++){const w=Math.round(Math.sqrt(36-y*y));P(az-w,el+y,w*2,1M
  const mx=(az+PW/2)%PW,my=tod==='night'?24+r()*20:30;if(tod!=='day'){for(let y=-5;y<=5;y++){const w=Math.round(Math.sqrt(25-y*y));for(let x=-w;x<w;x++){const lit=ph<.5?x/5>1-ph*4:x/5<3-ph*4;P(mx+x,my+y,1,1,lit?'#ffffdb':'#2a2a49')}}}
  for(let i=0;i<cloud;i++){const cx=r()*PW,cy=6+r()*(HZ-40),w=20+r()*50,col=storm?'#49495b':tod==='night'?'#36365b':tod==='day'?'#ffffff':'#ffb6a0';for(let j=0;j<4;j++)P(cx+j*w*.22,cy-(j%2?3:0),w*.5,6+(j%2)*3,col)}
  // horizon islands: three layers of silhouettes, each from a M
wrapping wave sum so the panorama loops seamlessly
  for(let L=0;L<3;L++){const f=[1+r()*3|0,3+r()*5|0,7+r()*9|0].map(n=>n|0||1),ph2=[r()*6,r()*6,r()*6],amp=[14,8,4],thr=.25+r()*.4,base=lerp(sky[1][0],0,.5+L*.15),k=.35+L*.18;
    for(let x=0;x<PW;x++){let v=0;for(let j=0;j<3;j++)v+=Math.sin(x/PW*6.283*f[j]+ph2[j])*amp[j];const hgt=(v/26-thr)*(30+L*14);if(hgt>0){g.fillStyle=hex(sky[1][0]*(1-k)*.6,sky[1][1]*(1-k)*.7,sky[1][2]*(1-k)*.8);g.fillRect(x,HZ-hgt-L*2,1,hgt+L*2)}}}
  if(T0&&T0.tier>=2){constM
 x=r()*PW|0;P(x-2,HZ-24,5,24,'#dadada');P(x-2,HZ-18,5,3,T0.p[0]);P(x-2,HZ-10,5,3,T0.p[0]);P(x-3,HZ-28,7,4,'#494949');feats.push(['beacon',x,T0.p[0]])}
  if(c.T.some(t=>t.k==='halving')){const x=r()*PW|0;for(let y=0;y<30;y++)P(x-y*1.4,HZ-30+y,y*2.8+3,1,'#36242a');P(x-2,HZ-34,5,6,'#ff6d24');feats.push(['glow',x,'#ff6d24'])}
  if(b.h===0){// the genesis horizon: a black-sailed pirate ship riding above Davy Jones' Locker
    const x=(az+PW*.32)%PW|0,K='#121214',S='#1c1c22';P(x-34,HZ-9,68,7,K);P(x-30,HZ-3,60,3,K);P(x+28M
,HZ-14,8,6,K);P(x-38,HZ-16,8,8,K);P(x+34,HZ-12,10,2,K);
    for(let i=0;i<9;i++)P(x-28+i*7,HZ-7,2,2,'#7dffa0');
    for(const[mx,mh]of[[-18,48],[2,58],[22,44]]){P(x+mx,HZ-9-mh,2,mh,K);for(const[sy,sw]of[[mh-8,22],[mh-22,18],[mh-36,14]])if(sy>6){P(x+mx-sw/2,HZ-9-sy,sw,11,S);P(x+mx-sw/2+3+(sy%7),HZ-9-sy+4,3,3,'#0000')}}
    P(x+3,HZ-72,12,8,K);P(x+7,HZ-70,4,3,'#dadacc');P(x+6,HZ-67,2,1,'#dadacc');P(x+10,HZ-67,2,1,'#dadacc');
    for(let i=0;i<20;i++)P(x-26+r()*52,HZ-9-r()*55,1,1,'#7dffa0');feats.push(['ghost',x,'#7dfM
  if(c.T.some(t=>t.k==='pirate')){const x=r()*PW|0;P(x-12,HZ-5,24,5,'#121214');P(x-1,HZ-26,2,21,'#121214');P(x-9,HZ-24,8,10,'#121214');P(x+1,HZ-24,8,12,'#121214');P(x+1,HZ-30,6,4,'#121214');P(x+3,HZ-29,2,2,'#dadacc')}
  const rt2=rsType(b.h);if(rt2){const x=r()*PW|0;P(x-1,HZ-14,3,14,'#36363a');P(x-4,HZ-18,9,4,RS[rt2][1])}
  if(isDock(b.h)){const x=r()*PW|0;P(x-14,HZ-30,2,30,'#36363a');P(x+12,HZ-30,2,30,'#36363a');P(x-16,HZ-31,32,2,'#ffb624');P(x-1,HZ-34,3,3,'#ff2449')}
  if(b.custom||b.h===0){const x=r()*PWM
|0;P(x-10,HZ-4,20,4,'#242424');P(x-1,HZ-16,2,12,'#242424');P(x+1,HZ-16,7,5,'#ffdb24')}
  for(let i=0;i<Math.round(b.tx/700)+(b.h<1000?1:0);i++){const x=r()*PW|0;P(x-5,HZ-3,10,3,'#36363a');P(x-1,HZ-8,2,5,'#36363a')}
  if(b.big){const x=r()*PW|0;feats.push(['spout',x,'#ffffff'])}
  const nb=Math.round(lush(b)*8);for(let i=0;i<nb;i++){const x=r()*PW|0,y=20+r()*40;P(x-2,y,2,1,'#242424');P(x,y+1,1,1,'#242424');P(x+1,y,2,1,'#242424')}
  return{cv,tod,storm,feats,sig:skySig(),rough:.6+WCLK.wx*4+b.fee*2,moon:PHASES[Math.roM
und(ph*8)%8],hr,sea:(k=>[(16*.7+sky[1][0]*.3)*k,(60*.7+sky[1][1]*.3)*k,(110*.7+sky[1][2]*.3)*k])(tod==='night'?.4:tod==='day'?1:.7)}}
// link lights: green working, amber working but from outside the chain, red failed, grey not used
const LK={},LKN=[['height','Block height','/r/blockheight'],['info','Block data','/r/blockinfo'],['time','Block time','/r/blocktime'],['block','Block contents','/r/block'],['children','Children','/r/children'],['insc','Inscription info','/r/inscription'],['three','3D engine','three.js']M
,['font','Pixel font','Silkscreen'],['save','Saving','browser storage']];
function lk(k,s,note){LK[k]=[s,note];const ul=document.getElementById('links');if(ul)ul.innerHTML=LKN.map(([id,n,src])=>{const[v,t]=LK[id]||['','not checked yet'];return`<li><i class="${v}"></i><div><b>${n}</b> <code>${src}</code><br><span>${t}</span></div></li>`}).join('')}
const poolTxt=b=>b.pool||(!b.live||b.cb&&b.h<130000?'none (Satoshi era)':b.cb?'unidentified':'unknown');
const lush=b=>clamp(Math.log10(b.tx+1)/3.4,.12,1);
cope(g){const c=chunks.get(ck(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B)));if(!c||c.state!=='ok')return;if(!c.pano||c.pano.sig!==skySig())c.pano=makePano(c);const pn=c.pano;
  const cx=160,cy=100,R=92,deg=(((-sub.yaw*180/Math.PI)%360)+360)%360,off=deg/360*PW;
  g.fillStyle='#05060a';g.fillRect(0,0,W,H);g.save();g.beginPath();g.arc(cx,cy,R,0,6.29);g.clip();
  const sx=Math.round(off-R),top=cy-HZ+6;for(const o of[-PW,0,PW])g.drawImage(pn.cv,o-sx+cx-R,top);
  const hz=top+HZ;for(let y=hz;y<cy+R;y++){const d=(y-hz)/(cM
y+R-hz);g.fillStyle=hex(pn.sea[0]*(1-d*.6),pn.sea[1]*(1-d*.5),pn.sea[2]*(1-d*.4));g.fillRect(cx-R,y,R*2,1)}
  g.fillStyle='rgba(255,255,255,.45)';for(let i=0;i<70;i++){const y=hz+2+((i*7)%(cy+R-hz));const x=((i*53+tm*(6+i%5)*pn.rough-off)%(R*2)+R*2)%(R*2)+cx-R;g.fillRect(Math.round(x),Math.round(y+Math.sin(tm*2+i)*pn.rough),2+(y-hz)/10|0,1)}
  for(const f of pn.feats){let x=((f[1]-off+PW*1.5)%PW)-PW/2+cx;if(Math.abs(x-cx)>R+(f[0]==='beacon'?170:0))continue;
    if(f[0]==='beacon'){const nf=1-WCLK.k,ly=hz-26,col=f[2M
      if(nf<.05){if((tm*2|0)%2){g.fillStyle=rgba(col,.5);g.fillRect(x-1,ly-1,3,3)}}
      else{ // night: the lamp turns, two opposite beams sweep the sea, flaring when one swings toward the viewer
        const a=tm*1.1,s=Math.sin(a),c0=Math.cos(a),face=Math.pow(Math.max(0,c0),8),wxm=1+WCLK.wx*.5;
        g.fillStyle='rgba(4,6,20,'+.5*nf+')';g.fillRect(x-3,hz-28,7,28);g.fillStyle=rgba('#ffdb92',nf);g.fillRect(x-1,hz-12,2,2);g.fillRect(x-1,hz-20,2,2);
        for(const dir of[1,-1]){const ex=x+s*dir*170,front=MaM
th.max(0,c0*dir),al=Math.min(.9,nf*(.2+.4*front)*wxm);if(Math.abs(ex-x)<4)continue;
          const gr=g.createLinearGradient(x,0,ex,0);gr.addColorStop(0,rgba(col,al));gr.addColorStop(1,rgba(col,0));g.fillStyle=gr;g.beginPath();g.moveTo(x,ly-1);g.lineTo(ex,ly-5-front*7);g.lineTo(ex,ly+5+front*7);g.lineTo(x,ly+1);g.fill()}
        if(face>.05){g.fillStyle=rgba(col,nf*face*.1);g.fillRect(cx-R,cy-R,R*2,hz-(cy-R))}
        const rg=g.createRadialGradient(x,ly,0,x,ly,10+face*34);rg.addColorStop(0,'rgba(255,255,235,'+nf+M
')');rg.addColorStop(.25,rgba(col,nf*(.45+.4*face)));rg.addColorStop(1,rgba(col,0));g.fillStyle=rg;g.fillRect(x-50,ly-50,100,100);
        for(let i=0;i<14;i++){const w=2+i*.6;g.fillStyle=rgba(col,Math.max(0,nf*(.45-i*.03)*(.5+.5*face)*(((i+tm*4)|0)%2?1:.5)));g.fillRect(x-w/2+Math.sin(tm*3+i)*1.5,hz+2+i*3,w,1)}}}
    if(f[0]==='ghost'){g.fillStyle=rgba(f[2],.12+.08*Math.sin(tm*2));g.fillRect(x-40,hz-78,80,78);g.fillStyle=rgba(f[2],.5+.3*Math.sin(tm*3));for(let i=0;i<3;i++)g.fillRect(x-20+i*20,hz-10,2,2)}
]==='glow'){g.fillStyle=rgba(f[2],.4+.3*Math.sin(tm*3));g.fillRect(x-3,hz-40,7,6)}
    if(f[0]==='spout'&&(tm%4)<1.2){g.fillStyle='#dbffff';const k=(tm%4)/1.2;for(let i=0;i<6;i++)g.fillRect(x-3+i,hz-2-Math.sin(i/5*Math.PI)*14*k,1,2)}}
  if(WCLK.wx>.5){g.strokeStyle='rgba(180,200,255,'+(.15+WCLK.wx*.25)+')';g.beginPath();for(let i=0;i<60;i++){const x=cx-R+((i*37+tm*90)%(R*2)),y=cy-R+((i*61+tm*240)%(R*2));g.moveTo(x,y);g.lineTo(x-3,y+8)}g.stroke()}
  g.strokeStyle='rgba(255,255,255,.55)';g.beginPath();g.moveTo(cx-R,hM
z+.5);g.lineTo(cx-8,hz+.5);g.moveTo(cx+8,hz+.5);g.lineTo(cx+R,hz+.5);g.moveTo(cx+.5,cy-R);g.lineTo(cx+.5,hz-8);g.stroke();
  for(let d=-30;d<=30;d+=5){const a=Math.round(deg+d),x=cx+d/30*R*.9;if(((a%10)+10)%10===0){g.fillStyle='#ffffffaa';g.fillRect(Math.round(x),cy-R+16,1,4)}}
  if(WCLK.flash>.05){g.fillStyle='rgba(255,255,255,'+WCLK.flash*.7+')';g.fillRect(cx-R,cy-R,R*2,R*2)}
  g.strokeStyle='#242424';g.lineWidth=10;g.beginPath();g.arc(cx,cy,R+5,0,6.29);g.stroke();g.strokeStyle='#6d6d6d';g.lineWidtM
h=2;g.beginPath();g.arc(cx,cy,R+10,0,6.29);g.stroke();g.lineWidth=1;
  g.fillStyle='#494949';g.fillRect(cx-R-26,cy-8,18,16);g.fillRect(cx+R+8,cy-8,18,16);
  const card=['N','NE','E','SE','S','SW','W','NW'][Math.round(deg/45)%8];txt(g,String(Math.round(deg)).padStart(3,'0')+'
 '+card,cx,4,'#ffdb49','center');
  txt(g,'#'+c.b.h,24,6,'#3cf0ff');txt(g,skyLabel(),24,16,'#dadada');
  txt(g,WXN[WCLK.lvl],W-6,6,WCLK.lvl>=3?'#ff9224':WCLK.lvl===2?'#ffdb49':'#92dbff','right');txt(g,WCLK.tod==='night'?pn.moon:'DAYLIGHT',W-6,M
16,'#dadaff','right');
// ---------- HUD ----------
const txt=(g,s,x,y,c='#ffffff',al='left')=>{g.font='8px Silkscreen, monospace';g.textAlign=al;g.textBaseline='top';g.fillStyle='#000814';g.fillText(s,x+1,y+1);g.fillStyle=c;g.fillText(s,x,y)};
const APPLE=["....g....","...g.....",".rrr.rrr.","rrrrrrrrr","rrrrrrrrr","rrrrrrrrr","rrrrrrrrr",".rrrrrrr.","..rr.rr.."],BOTTLE=["..cc..","..ww..","..ww..",".wwww.","wwwwww","wwwwww","wwwwww","wwwwww","wwwwww","wwwwww",".wwww."];
function fillIcon(g,rows,x,y,v,full,S=2){cM
onst h=rows.length,lvl=h-Math.round(v/100*h),warn=v<20&&(tm*4|0)%2;
  rows.forEach((r,j)=>[...r].forEach((ch,i)=>{if(ch==='.')return;let c=j>=lvl?(ch==='g'?'#49b624':ch==='c'?'#dadada':full):'#1a2030';if(ch==='g'||ch==='c')c=ch==='g'?'#49b624':'#dadada';g.fillStyle=warn&&j>=lvl?'#ff2449':c;g.fillRect(x+i*S,y+j*S,S,S)}));
  g.fillStyle='#000814';}
function gaugesBar(g,x,y){fillIcon(g,APPLE,x+80,y+2,sub.food,'#ff2449');fillIcon(g,BOTTLE,x+102,y,sub.water,'#6db6ff');[['O2','o2','#24ffff'],['FUEL','fuel','#ff9224'],['BM
ATT','batt','#ffdb24'],['HULL','hull','#92ff49']].forEach(([l,k,c],i)=>{const v=sub[k]/MX(k),yy=y+i*9,low=v<.25&&(tm*4|0)%2;
  txt(g,l,x,yy,low?'#ff2449':c);g.fillStyle='#000814';g.fillRect(x+30,yy+1,42,6);const gv=sub.ghost&&sub.chainFx>0&&sub.ghost[k]!=null?sub.ghost[k]/MX(k):0;if(gv>v){const gk=Math.min(1,sub.chainFx/1.2);g.fillStyle=(tm*10|0)%2?'#ffdb24':'#ffffff';g.fillRect(x+31,yy+2,Math.round(40*(v+(gv-v)*gk)),4)}g.fillStyle=low?'#ff2449':c;g.fillRect(x+31,yy+2,Math.round(40*v),4);g.fillStyle='#ffffff55';g.fM
illRect(x+31,yy+2,Math.round(40*v),1)})}
function drawSonar(g,cx,cy,r){
  g.save();g.beginPath();g.arc(cx,cy,r,0,6.29);g.fillStyle='#001a10ee';g.fill();g.clip();g.strokeStyle='#24924955';g.beginPath();g.arc(cx,cy,r*.5,0,6.29);g.moveTo(cx-r,cy);g.lineTo(cx+r,cy);g.moveTo(cx,cy-r);g.lineTo(cx,cy+r);g.stroke();
  const Rr=sonarR(),sc=r/Rr,co=Math.cos(sub.yaw),si=Math.sin(sub.yaw),rot=(x,z)=>[cx+(-x*co+z*si)*sc,cy-(x*si+z*co)*sc];
  for(const[x,z,a]of passive){const[px,py]=rot(x,z);g.fillStyle=`rgba(36,146,73,${a*.7})`M
;g.fillRect(Math.round(px),Math.round(py),1,1)}
  if(sonar){const ring=sonar.t*Rr*1.3,fade=clamp(1-(sonar.t-1)/4,0,1);for(const[x,z,a]of sonar.pts)if(Math.hypot(x,z)<ring){const[px,py]=rot(x,z);g.fillStyle=`rgba(80,255,140,${fade*a})`;g.fillRect(Math.round(px),Math.round(py),1,1)}
    for(const b of sonar.bl)if(Math.hypot(b[0],b[1])<ring){const[px,py]=rot(b[0],b[1]);g.fillStyle=rgba(b[2],fade);const X=Math.round(px),Y=Math.round(py),sh=b[3];if(sh===3){g.fillRect(X,Y-2,1,5);g.fillRect(X-1,Y-1,3,3);g.fillRect(X-2,Y,5M
,1)}else if(sh===2){g.fillRect(X-1,Y-1,3,3)}else if(sh===1){g.fillRect(X-1,Y-2,3,5);g.fillRect(X-2,Y-1,5,3)}else{g.fillRect(X,Y-1,1,3);g.fillRect(X-1,Y,3,1)}}
    if(ring<Rr){g.strokeStyle=`rgba(80,255,140,${.8*(1-ring/Rr)})`;g.beginPath();g.arc(cx,cy,ring*sc,0,6.29);g.stroke()}}
  if(subLv()>=5){const pul=.6+.4*Math.sin(tm*5);for(const o of trs())if(o.d<Rr){const[px,py]=rot(o.x-sub.p.x,o.z-sub.p.z);g.fillStyle=rgba(o.k==='cursed'?'#ff2449':'#ffdb24',pul);g.fillRect(Math.round(px)-1,Math.round(py)-1,o.big?3:2,o.bigM
  if(subLv()>=3){const tk=Math.floor(tm/2);for(const[k,col]of[['dock','#6dffff'],['fuel',RS.fuel[1]],['batt',RS.batt[1]],['o2',RS.o2[1]]]){if(!rsCache['s'+k]||rsCache['s'+k].t!==tk)rsCache['s'+k]={t:tk,n:k==='dock'?nearDock():nearRS(k)};const n=rsCache['s'+k].n;if(!n)continue;
    const[bx,bz]=spiralXY(n.h),tx=bx*B+B/2-sub.p.x,tz=bz*B+B/2-sub.p.z,dd=Math.hypot(tx,tz);let[px,py]=rot(tx,tz);if(dd*sc>r-3){const ang=Math.atan2(py-cy,px-cx);px=cx+Math.cos(ang)*(r-2);py=cy+Math.sin(ang)*(r-2)}
    g.fillStyle=colM
;g.fillRect(Math.round(px)-1,Math.round(py)-1,3,3);g.fillStyle='#000814';g.fillRect(Math.round(px),Math.round(py),1,1)}}
  const a=tm*2;g.strokeStyle='#24ff9266';g.beginPath();g.moveTo(cx,cy);g.lineTo(cx+Math.cos(a)*r,cy+Math.sin(a)*r);g.stroke();
  g.fillStyle='#ffffff';g.fillRect(cx-1,cy-1,3,3);g.fillRect(cx,cy-3,1,2);g.restore();g.strokeStyle='#49b66d';g.beginPath();g.arc(cx,cy,r+.5,0,6.29);g.stroke()}
// pressure time bar: shows once you near the 750 m line (or are still recovering); flashes red when it is nearM
function pressBar(g,x,y,w){const p=sub.press??100,dm=DM(sub.p.y);if(dm<=PLIM&&p>=99.5)return;   /* hidden once fully recovered above 750 m */const low=p<30&&(tm*4|0)%2,col=low?'#ff2449':p<60?'#ffb624':'#b6b6ff',under=dm>PLIM;
  txt(g,'PRESSURE',x,y,low?'#ff2449':'#b6b6ff');g.fillStyle='#000814';g.fillRect(x+44,y+1,w,6);g.fillStyle=col;g.fillRect(x+45,y+2,Math.round((w-2)*p/100),4);g.fillStyle='#ffffff55';g.fillRect(x+45,y+2,Math.round((w-2)*p/100),1);
  if(under){g.fillStyle='#ff9292';g.fillRect(x+44+w+3,y+M
function hudOut(g){const b=chunks.get(ck(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B)))?.b;gaugesBar(g,24,5);pressBar(g,142,5,64);drawSonar(g,W-30,30,24);
  if(subLv()>=6){const cx=Math.floor(sub.p.x/B),cz=Math.floor(sub.p.z/B);let y=58;for(const[dx,dz,l]of[[0,1,'N'],[1,1,'NE'],[1,0,'E'],[1,-1,'SE'],[0,-1,'S'],[-1,-1,'SW'],[-1,0,'W'],[-1,1,'NW']]){const t=traits(spiralH(cx+dx,cz+dz))[0];if(t&&t.tier>=2){txt(g,l+' '+t.name.toUpperCase(),W-6,y,t.p[0],'right');y+=9}}}
  if(subLv()>=3){let y=H-40;for(const k ofM
['o2','fuel','batt'])if(sub[k]/MX(k)<.3){const t=Math.floor(tm/2);if(!rsCache[k]||rsCache[k].t!==t)rsCache[k]={t,n:nearRS(k)};const n=rsCache[k].n;if(n){txt(g,'NEAREST '+RS[k][0]+' STATION #'+n.h+'
 '+n.d+' BLOCKS '+n.dir,W-6,y,RS[k][1],'right');y-=9}}}
  if(subLv()>=5){const n=trs().filter(o=>!o.big).sort((a,b)=>a.d-b.d)[0];if(n){const ang=Math.atan2(n.x-sub.p.x,n.z-sub.p.z)-sub.yaw,rel=((ang*180/Math.PI)%360+540)%360-180;
    txt(g,'TREASURE '+Math.round(n.d*UM)+' M '+(Math.abs(rel)<20?'AHEAD':rel>0?'LEFT':'RIGM
HT'),24,61,n.k==='cursed'?'#ff6d6d':'#ffdb24')}}
  if(sub.bcd>0||sub.pcd>0||sub.phcd>0)txt(g,(subLv()>=3?'BOOST '+(sub.bcd>0?Math.ceil(sub.bcd)+'S':'READY'):'')+(subLv()>=4?'  PULSE '+(sub.pcd>0?Math.ceil(sub.pcd)+'S':'READY'):'')+(subLv()>=7?'  PHASE '+(sub.phase>0?'ON':sub.phcd>0?Math.ceil(sub.phcd)+'S':'READY'):''),W/2,H-11,'#6dffff','center');
  const dm=DM(sub.p.y),fl=DM(floorY(sub.p.x,sub.p.z));
  txt(g,ZN[zoneOf(dm)],6,H-29,'#92dbff');txt(g,String(Math.round(dm)).padStart(4,'0')+' M',6,H-20,'#ffdb49');txt(g,M
'FLOOR '+Math.round(fl)+' M',6,H-11,'#7f8cb8');
  sub.blkFx=Math.max(0,(sub.blkFx||0)-1/60);if(b){const t0=chunks.get(ck(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B)))?.T?.find(t=>t.tier>=2);txt(g,'#'+b.h,W-6,H-20,sub.blkFx>0&&(tm*8|0)%2?'#ffffff':t0?t0.p[0]:'#ffdb49','right');txt(g,(b.pool||(!b.live||b.cb&&b.h<130000?'SATOSHI ERA':b.cb?'POOL UNIDENTIFIED':'POOL UNKNOWN')).toUpperCase(),W-6,H-11,'#b6b6ff','right')}
  txt(g,'HOLD '+st.hold.length+'/'+holdCap(),24,43,st.hold.length>=holdCap()?'#ff2449':'#dadada');if(sM
t.kits)txt(g,'KITS '+st.kits,24,70,'#ff8a9a');{const mi=tmapInfo();if(mi)txt(g,'MAP '+mi,24,st.kits?79:70,'#ffdb24');const wi=wonderInfo();if(wi)txt(g,'WONDER '+wi,24,(st.kits?79:70)+(mi?9:0),'#fff6b0')}if(!sub.lamp)txt(g,'LAMP OFF',24,52,'#ff92ff');if(sub.nv)txt(g,'NIGHT VISION',W/2,H-33,'#5bff7a','center');
  if(sub.scan){g.strokeStyle='#24ff92';g.strokeRect(W/2-30.5,H/2+30.5,61,6);g.fillStyle='#24ff92';g.fillRect(W/2-30,H/2+31,Math.round(60*sub.scan.t),5);txt(g,'SCANNING '+((sub.scan.tg.sp&&sub.scan.tg.sp.name)|M
|sub.scan.tg.name||'OBJECT').toUpperCase(),W/2,H/2+40,'#24ff92','center')}}
function cockpit(g){const ic=cabin(),dim=sub.batt/MX('batt')<.15?(.45+(Math.random()<.08?-.2:0)):1,k=ic[3]*dim;
  const metal=hex(70*k*ic[0]/255+12,58*k*ic[1]/214+10,46*k*ic[2]/150+14),dk=hex(30*k+6,26*k+6,24*k+10),hi=hex(130*k*ic[0]/255+20,110*k*ic[1]/214+18,86*k+20);
  const pcx=160,pcy=88,pr=cockDown?62:74;
  g.fillStyle=metal;g.fillRect(0,0,W,H);g.fillStyle=dk;for(let y=0;y<H;y+=28)g.fillRect(0,y,W,1);for(const x of[78,242])g.fillRect(xM
  if(cockDown){g.fillStyle=dk;for(let y=4;y<H;y+=8)for(let x=(y/8%2)*4;x<W;x+=8)g.fillRect(x,y,3,1);g.fillStyle=hi;g.fillRect(pcx-pr-12,pcy-2,6,4);g.fillRect(pcx+pr+6,pcy-2,6,4);g.fillRect(pcx-2,pcy-pr-12,4,6);g.fillRect(pcx-2,pcy+pr+6,4,6)}
  g.fillStyle=hi;for(let y=6;y<H;y+=28)for(const x of[4,72,84,236,248,314])g.fillRect(x,y,2,2);
  if(dim<1){g.fillStyle=`rgba(0,0,0,${1-dim})`;g.fillRect(0,0,W,H)}
  g.save();g.globalCompositeOperation='destination-out';g.beginPath();g.arc(pcx,pcy,pr,0,6.29);g.fill();gM
  g.save();g.beginPath();g.arc(pcx,pcy,pr,0,6.29);g.clip();const cond=clamp(DM(sub.p.y)/1500,0,1);g.fillStyle='rgba(220,240,255,.35)';for(let i=0;i<40*cond;i++)g.fillRect(pcx-pr+h2(i,1,5)*pr*2,pcy-pr+h2(i,2,5)*pr*2,1,2);
  const hr=sub.hull/MX('hull');if(hr<.6){g.strokeStyle='rgba(230,250,255,.7)';g.beginPath();const n=Math.round((.6-hr)*14);for(let i=0;i<n;i++){let x=pcx+(h2(i,7,7)-.5)*pr*1.6,y=pcy+(h2(i,8,7)-.5)*pr*1.6;g.moveTo(x,y);for(let j=0;j<4;j++){x+=(h2(i,j,9)-.5)*26;y+=(h2(j,i,9)-.5)*26;g.lineM
To(x,y)}}g.stroke()}
  g.strokeStyle='rgba(255,255,255,.18)';g.lineWidth=3;g.beginPath();g.arc(pcx,pcy,pr-8,3.6,4.4);g.stroke();g.lineWidth=1;
  if(sub.scan){g.fillStyle='#24ff92';g.fillRect(pcx-30,pcy+40,Math.round(60*sub.scan.t),4)}g.restore();
  g.strokeStyle=dk;g.lineWidth=8;g.beginPath();g.arc(pcx,pcy,pr+3,0,6.29);g.stroke();g.strokeStyle=hi;g.lineWidth=2;g.beginPath();g.arc(pcx,pcy,pr+6,0,6.29);g.stroke();g.lineWidth=1;
  g.fillStyle=hi;for(let i=0;i<12;i++){const a=i/12*6.283;g.fillRect(Math.round(pcx+Math.cM
os(a)*(pr+3))-1,Math.round(pcy+Math.sin(a)*(pr+3))-1,3,3)}
  [['O2','o2','#24ffff'],['FUEL','fuel','#ff9224'],['BATT','batt','#ffdb24']].forEach(([l,kk,c],i)=>{const x=12+i*21,y=26,h=118,v=sub[kk]/MX(kk);g.fillStyle='#05060a';g.fillRect(x,y,13,h);g.fillStyle=v<.2&&(tm*4|0)%2?'#ff2449':c;const fh=Math.round((h-4)*v);g.fillRect(x+2,y+h-2-fh,9,fh);
    g.fillStyle='#ffffff66';g.fillRect(x+3,y+h-2-fh,2,fh);g.fillStyle='#ffffff';for(let j=0;j<3;j++){const by=y+h-4-((tm*20+j*37+i*13)%Math.max(1,fh));if(fh>4)g.fillRect(x+M
5+j%2*3,Math.round(by),1,1)}
    txt(g,l,x+6,y+h+4+(i%2)*9,c,'center')});
  fillIcon(g,APPLE,26,5,sub.food,'#ff2449');fillIcon(g,BOTTLE,46,2,sub.water,'#6db6ff');
  drawSonar(g,278,62,34);txt(g,'SONAR',278,100,'#49b66d','center');
  g.fillStyle='#05060a';g.fillRect(250,116,58,22);txt(g,String(Math.round(DM(sub.p.y))).padStart(4,'0'),279,118,'#ffb624','center');txt(g,'METRES',279,128,'#b66d00','center');
  const b=chunks.get(ck(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B)))?.b;g.fillStyle='#05060a';g.fillRect(250,144M
,58,22);txt(g,b?'#'+b.h:'----',279,146,'#3cf0ff','center');txt(g,'BLOCK',279,156,'#246d92','center');
  [['O2','o2'],['FUEL','fuel'],['BATT','batt'],['HULL','hull']].forEach(([l,kk],i)=>{const on=sub[kk]/MX(kk)<.25,x=96+i*34,y=180;g.fillStyle=on?((tm*4|0)%2?'#ff2449':'#6d0000'):'#1a1410';g.fillRect(x,y,28,12);txt(g,l,x+14,y+2,on?'#ffffff':'#6d4924','center')});
  txt(g,'HOLD '+st.hold.length+'/'+holdCap(),12,172,'#dadada');txt(g,sub.lamp?'LAMP ON':'LAMP OFF',12,182,sub.lamp?'#ffffb6':'#6d6d6d');pressBar(g,100,166,9M
0);txt(g,ZN[zoneOf(DM(sub.p.y))],160,200,'#92dbff','center');{const mi=tmapInfo();if(mi)txt(g,'MAP '+mi,160,212,'#ffdb24','center')}if(cockDown)txt(g,'FLOOR PORT',160,pcy+pr+14,'#ffd896','center');
  if(ic[1]<100){g.fillStyle='rgba(255,30,30,.12)';g.fillRect(0,0,W,H)}}
const ERA=['#ffdb24','#ff9224','#ff24b6','#24ffff','#92ff49','#b624ff'];
function drawMap(g){const cx=Math.floor(sub.p.x/B),cz=Math.floor(sub.p.z/B),cs=12,ox=10,oy=22,cols=25,rows=14,c0=cx-12,r0=cz-7;
  g.fillStyle='#02040c';g.fillRect(0,0,W,H);txt(gM
,'SPIRAL CHART',ox,6,'#ffdb49');txt(g,'GENESIS AT THE CENTRE',W-ox,6,'#7f8cb8','right');
  const pos=(x,z)=>[ox+(x-c0)*cs+cs/2,oy+(rows-1-(z-r0))*cs+cs/2];
  g.strokeStyle='#ffffff26';g.beginPath();for(let z=r0;z<r0+rows;z++)for(let x=c0;x<c0+cols;x++){const h=spiralH(x,z);if(h>=TIP)continue;const[nx,nz]=spiralXY(h+1);if(nx>=c0&&nx<c0+cols&&nz>=r0&&nz<r0+rows){const a=pos(x,z),b=pos(nx,nz);g.moveTo(a[0]+.5,a[1]+.5);g.lineTo(b[0]+.5,b[1]+.5)}}g.stroke();
  for(let z=r0;z<r0+rows;z++)for(let x=c0;x<c0+cols;x++){constM
[px,py]=pos(x,z),h=spiralH(x,z);
    if(h>TIP){g.fillStyle='#0a0814';g.fillRect(px-5,py-5,10,10);continue}
    const d=(cornerD(x,z)+cornerD(x+1,z+1))/2,sh=clamp(1-d/420,.25,1),v=st.visited.includes(h),c=ERA[Math.floor(h/210000)%ERA.length];
    g.fillStyle=v?shade(c,sh):rgba(shade(c,sh),.28);g.fillRect(px-4,py-4,9,9);
    if(h===0)txt(g,'G',px-3,py-4,'#000814');else if(h%210000===0)txt(g,'H',px-3,py-4,'#000814');else{const t0=traits(h)[0];if(t0&&t0.tier>=2&&(v||subLv()>=6)){g.fillStyle=t0.p[0];g.fillRect(px-1,py-1M
    if(isDock(h)){g.fillStyle='#6dffff';g.fillRect(px+2,py-4,3,3)}if(isRig(h)){g.fillStyle='#ff9224';g.fillRect(px+1,py+1,2,4);g.fillRect(px-1,py+1,6,1)}if(isIsle(h)){g.fillStyle='#dbc48a';g.fillRect(px-2,py-2,4,4);g.fillStyle='#24b649';g.fillRect(px-1,py-3,2,1)}const rt=rsType(h);if(rt){g.fillStyle=RS[rt][1];g.fillRect(px-4,py+2,3,3)}
    if(h===st.home&&st.bday){g.strokeStyle='#ff92ff';g.strokeRect(px-4.5,py-4.5,10,10)}
    if(x===cx&&z===cz&&(tm*3|0)%2){g.strokeStyle='#ffffff';g.strokeRect(px-5.5,py-5.5,M
  txt(g,'YOU: BLOCK #'+spiralH(cx,cz)+'
  RING '+Math.max(Math.abs(cx),Math.abs(cz)),ox,H-22,'#ffffff');txt(g,'DARKER = DEEPER
 CORNERS = DOCKS & STATIONS',ox,H-12,'#7f8cb8');
  if(st.tmap){const[tx,tz]=spiralXY(st.tmap.h),pul=(tm*3|0)%2,col=pul?'#ffdb24':'#ff2449';
    if(tx>=c0&&tx<c0+cols&&tz>=r0&&tz<r0+rows){const[px,py]=pos(tx,tz);g.strokeStyle=col;g.lineWidth=2;g.beginPath();g.moveTo(px-4,py-4);g.lineTo(px+5,py+5);g.moveTo(px+5,py-4);g.lineTo(px-4,py+5);g.stroke();g.lineWidth=1;M
g.strokeRect(px-6.5,py-6.5,13,13)}
    else{const ccx=ox+cols*cs/2,ccy=oy+rows*cs/2,dx=tx-cx,dy=-(tz-cz),L=Math.hypot(dx,dy)||1,ux=dx/L,uy=dy/L,s=Math.min((cols*cs/2-9)/Math.max(.001,Math.abs(ux)),(rows*cs/2-9)/Math.max(.001,Math.abs(uy))),ex=ccx+ux*s,ey=ccy+uy*s;
      g.fillStyle=col;g.beginPath();g.moveTo(ex+ux*7,ey+uy*7);g.lineTo(ex-ux*3-uy*6,ey-uy*3+ux*6);g.lineTo(ex-ux*3+uy*6,ey-uy*3-ux*6);g.fill();txt(g,'X',Math.round(ex-ux*12)-2,Math.round(ey-uy*12)-4,col)}
    txt(g,'X  '+st.tmap.name.toUpperCase()+'
OCK #'+st.tmap.h.toLocaleString('en-GB'),ox,H-32,'#ffdb24')}
  if(st.atlas){for(const[ah,anm]of mapDests()){const[ax,az]=spiralXY(ah);if(ax>=c0&&ax<c0+cols&&az>=r0&&az<r0+rows){const[px,py]=pos(ax,az),pl=(tm*2|0)%2;g.fillStyle=pl?'#ffdb24':'#fff6b0';g.beginPath();g.moveTo(px,py-6);g.lineTo(px+4,py);g.lineTo(px,py+6);g.lineTo(px-4,py);g.fill();g.strokeStyle='#000814';g.strokeRect(px-3.5,py-1,7,2)}}
 EVERY WONDER SHOWN',W-ox,H-32,'#ffdb24','right')}}
// ---------- side panel ----------
d(){const c=chunks.get(ck(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B))),b=c&&c.T&&c.b;if(b){const r=rarity(b.h);$('#iN').textContent='#'+b.h.toLocaleString('en-GB');const Rb=$('#iR');Rb.textContent=r+(b.special?'
 '+b.special:'');Rb.style.color={MYTHIC:'#ffdb24',EPIC:'#ff3fb4',RARE:'#3cf0ff',UNCOMMON:'#9dff3a'}[r];
  $('#iTr').innerHTML=(b.h===st.home&&st.bday?'<span style="color:#ff92ff">YOUR STARTING BLOCK</span>':'')+c.T.map(t=>`<span style="color:${t.p[0]}">${t.name.toUpperCase()}
 ${t.why}</span>`).join(''M
  $('#iH').textContent=b.hash.slice(0,12)+'
'+b.hash.slice(-8);$('#iT').textContent=b.tx.toLocaleString('en-GB');$('#iP').textContent=poolTxt(b);$('#iM').textContent=b.msg||(b.live?(b.cb?'no readable text':'unknown (not read)'):'
  $('#iX').textContent=!b.live?'simulated block':b.scan?scanTxt(b.scan):scanBusy?'scanning /r/block
':'not scanned yet';$('#iO').textContent='#'+firstSat(b.h).toLocaleString('en-GB')+'
  const P=c.P;$('#iF').textContent=(P.genesis?'the genesis basin':P.tr?'trenchM
':P.mt?'seamount':'plain')+(P.rug>9?', rugged':'')+(c.sb&&c.sb.feats.length?', '+c.sb.feats.map(f=>BIONAME[f]).join(', '):'')+'
 ~'+Math.round(DM(floorY(c.cx*B+B/2,c.cz*B+B/2)))+' m';
  $('#iE').textContent='Era '+(b.era+1)+'
 '+new Date(b.time*1000).toISOString().slice(0,10);$('#iS').textContent=b.feed+'
 ring '+Math.max(Math.abs(c.cx),Math.abs(c.cz))}
  $('#lS').textContent=Object.keys(st.best).length;$('#lP').textContent=Object.keys(st.plants).length;$('#lB').textContent=st.stock;$('#lH').M
textContent=st.hold.length+'/'+holdCap();$('#lW').textContent=Object.keys(st.wrecks||{}).length;$('#lV').textContent=st.visited.length;$('#lR').textContent=Object.keys(st.heroes||{}).length+'/'+HEROES.length;$('#lU').textContent=(st.subs||[0]).length;$('#lG').textContent=Object.keys(st.rogues||{}).length+'/'+PIRATES.length;$('#lX').textContent=Object.keys(st.relics||{}).length+'/'+HEROES.length;$('#lI').textContent=(st.ins||[]).length;
  $('#subs').innerHTML=(st.subs||[0]).slice().sort((a,b)=>a-b).map(l=>`<button dM
ata-l="${l}" class="${(st.sub||0)===l?'on':''}" title="${ABIL[l]}" ${sub.docked||(st.sub||0)===l?'':'aria-disabled="true"'}>${SUBS[l][0]}
 ${ABIL[l]}</button>`).join('');$('#bN').hidden=subLv()<2;$('#bR').hidden=subLv()<3;$('#bY').hidden=subLv()<7;$('#bT').hidden=subLv()<4;
  $('#dockHint').textContent=sub.docked?'Docked: pick a sub.':'Switch subs at a dock, found on every block number divisible by 210'+(()=>{const n=nearDock();return n?' (nearest: #'+n.h+', '+n.d+' block'+(n.d>1?'s':'')+' '+n.dir+')':''})()+'.';M
  $('#ups').innerHTML=Object.keys(UPN).map(k=>`<span class="${st.up[k]?'on':''}">${UPN[k]} ${MKN[st.up[k]]}</span>`).join('')}
// ---------- birthday start ----------
// the starting block: the exact middle of the chain at the moment you begin
const midBlock=()=>Math.floor((TIP+6)/2);
function bdShow(){const n=midBlock(),t=traits(n).filter(t=>t.tier>0);$('#bdOut').innerHTML='Block #'+n.toLocaleString('en-GB')+'<small>The middle of '+(TIP+6).toLocaleString('en-GB')+' blocks'+(t.length?'
 a trait block: '+t.map(x=M
>x.name).join(', '):'
 ring '+Math.max(...spiralXY(n).map(Math.abs))+' of the spiral')+'.</small>'}
function startAt(n,bday){st.home=n;st.bday=bday;$('#start').hidden=true;paused=false;teleport(n);save();upd()}
$('#bdGo').addEventListener('click',()=>startAt(midBlock(),true));
$('#pirHint').textContent='Pirate lairs sit mid-way through their pirate years: '+[...PIRATE].slice(2,5).map(([h,p])=>h+' for '+p.nick).join(', ')+'.';
$('#subs').addEventListener('click',e=>{const l=e.target.dataset&&e.target.dataset.l;if(M
l!=null&&!sub.docked){toast('DOCK FIRST - EVERY 210TH BLOCK HAS A DOCK');snd(140,.2);return}if(l!=null){st.sub=+l;setSub(+l);if(view===2&&+l<2)view=0;for(const k of['o2','fuel','batt','hull'])sub[k]=Math.min(sub[k],MX(k));save();upd()}});
// ---------- loop ----------
function frame(t){const dt=Math.min(.05,(t-last)/1000||0);last=t;{const bk=$('#bBk'),sh=(mapOpen||!$('#report').hidden)&&$('#start').hidden;if(bk.hidden===sh)bk.hidden=!sh;if(!mapOpen)mapFromMenu=false}{const vb=$('#vbar'),on=viewM
===1&&!mapOpen&&!rigView;if(vb.hidden===on)vb.hidden=!on;$('#bPh').setAttribute('aria-pressed',cockDown)}update(dt);ambUpdate(dt);const g=HX2;g.clearRect(0,0,W,H);
  if(rigView)rigScene(g,dt);else if(mapOpen)drawMap(g);else{render3d(dt);if(view===2)periscope(g);else if(view)cockpit(g);else hudOut(g);grabHint(g);scanHint(g);
    const cur=chunks.get(ck(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B)));if(!cur||cur.state!=='ok'){g.fillStyle='#000814cc';g.fillRect(0,96,W,24);txt(g,'LOADING BLOCK
',W/2,104,'#3cf0ff','cenM
  if(!mapOpen){const k=sub.chainFx||0,cx=view===1?160:W/2,cy=view===1?170:12,lit=k>0?1:.35,col=k>0?'#ffdb24':'#7f8cb8';
    // the block glyph: a little isometric cube that lights up when a block is mined
    g.globalAlpha=lit;g.fillStyle=col;g.beginPath();g.moveTo(cx,cy-5);g.lineTo(cx+5,cy-2.5);g.lineTo(cx,cy);g.lineTo(cx-5,cy-2.5);g.fill();g.fillStyle=shade(col,.7);g.beginPath();g.moveTo(cx-5,cy-2.5);g.lineTo(cx,cy);g.lineTo(cx,cy+5);g.lineTo(cx-5,cy+2.5);g.fill();
    g.fillStyle=shade(col,.5);g.beginPatM
h();g.moveTo(cx+5,cy-2.5);g.lineTo(cx,cy);g.lineTo(cx,cy+5);g.lineTo(cx+5,cy+2.5);g.fill();g.globalAlpha=1;
    if(k>0){const e=1.6-k;for(const d of[0,.25]){const t=e-d;if(t<0||t>1.1)continue;const sz=t*420,a=Math.max(0,1-t/1.1);g.strokeStyle=`rgba(255,219,36,${a})`;g.lineWidth=3*(1-t*.6);g.strokeRect(W/2-sz/2,H/2-sz/2*.7,sz,sz*.7)}g.lineWidth=1;
      g.fillStyle=`rgba(255,219,36,${Math.max(0,k-1.2)*.3})`;g.fillRect(0,0,W,H)}}
  if(!mapOpen&&sub.hitFx>0){g.fillStyle=`rgba(255,30,40,${sub.hitFx*.55})`;g.fillRect(0,M
  if(!mapOpen&&sub.leaks&&view!==2)txt(g,'LEAK'+(sub.leaks>1?' x'+sub.leaks:''),W/2,view===1?190:H-22,(tm*3|0)%2?'#ff2449':'#ff9292','center');
  if(!mapOpen){g.fillStyle='#000814cc';g.fillRect(3,3,16,16);g.strokeStyle='#ffb629';g.strokeRect(3.5,3.5,15,15);g.fillStyle='#ffb629';for(let i=0;i<3;i++)g.fillRect(7,7+i*4,8,2)}
  const ts=toasts[toasts.length-1];if(ts&&!mapOpen){g.save();g.globalAlpha=Math.min(1,(ts.end-performance.now())/700);const ty=view?16:H-52;txt(g,ts.s,W/2+1,ty+1,'#000814','center');txt(g,M
ts.s,W/2,ty,'#dfe9f5','center');g.restore()}
  if((saveT+=dt)>5){saveT=0;save();upd()}
  requestAnimationFrame(frame)}
  load();setSub(st.sub||0);newSess();insList();
  lk('height','wait','asking
');for(const ms of[2000,4000,7000]){try{const ctl=new AbortController(),to=setTimeout(()=>ctl.abort(),ms);const r=await fetch('/r/blockheight',{signal:ctl.signal});clearTimeout(to);if(r.ok){const n=+(await r.text());if(n>0){TIP=n-6;LIVE=true}}break}catch(e){lk('height','wait','slow to answer
')}}   /* a slow server gets three tries before the game falls back to simulated blocks */
  if(LIVE){lk('height','ok','working
 chain height '+(TIP+6).toLocaleString('en-GB'));lk('info','wait','waiting for first block');lk('time','wait','waiting')}
  else{lk('height','bad','no answer
 blocks are simulated');for(const k of['info','time','children','insc'])lk(k,'','not used
 simulated blocks')}
  lk('block',LIVE?'wait':'',LIVE?'waiting for first block':'not used
 simulated blocks');
  {const ext=window.BD_TM
HREE_SRC!=='chain';lk('three',window.THREE?(ext?'warn':'ok'):'bad',window.THREE?'loaded r'+THREE.REVISION+(ext?' from '+window.BD_THREE_SRC+'
 outside the chain, test fallback only':' from the chain'):'missing')}
  try{localStorage.setItem('bd_t','1');localStorage.removeItem('bd_t');lk('save','ok','working
 progress saves in this browser')}catch(e){lk('save','bad','blocked
 progress resets when you reload')}
  $('#modeNote').textContent=LIVE?'Running on live chain data from the /r/ endpoints.':'No chain endpoM
ints answered, so block data is simulated.';
  try{await document.fonts.load('8px Silkscreen')}catch(e){}
  {const f=[...document.fonts].some(x=>x.family.replace(/['"]/g,'')==='Silkscreen'&&x.status==='loaded');lk('font',f?'ok':'bad',f?'embedded in the page
 no outside fonts':'did not load
 plain font used instead')}
  const bk=location.hash.match(/bd=([\w-]+)/);let back=null;try{back=bk&&unb64(bk[1])}catch(e){}
  if(back&&back.h>0&&isIsle(back.h)){landed(back);countIn(back.h)}else if(st.homM
e===undefined){bdShow();$('#start').hidden=false;paused=true}else countIn(spiralH(Math.floor(sub.p.x/B),Math.floor(sub.p.z/B)))
  ensureChunks();upd();toast('ARROWS STEER
 C SONAR');requestAnimationFrame(frame);
  setTimeout(()=>{$('#kb').textContent=((new Blob([document.documentElement.outerHTML]).size-new Blob([($('#gameRun')||{}).textContent||'',($('#threeRun')||{}).textContent||'']).size)/1024).toFixed(1)+' KB'},50);
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BLLE","amt":"500000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BUAE","amt":"10"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"500000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"Pika","amt":"120000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5100000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6900000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"8900000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
dnamejRBTC #0468jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
mchestnut hairmwarm tan skinrslate gray garmentksquare facejvisor eyeseshorndhalogartworkr2048x2048 lossless
~RBTCPF15a3cecf5a776e9bfcda298f9e7a678a295616d29264b92f10770cf5a4d30be36h!
dnamejRBTC #0228jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
mchestnut hairnporcelain skinmbrass garmentksquare facejround eyesnside-part hairgartworkr2048x2048 lossless
%RBTCPF1e6a16777e8afc2bdac0a7dc03fc8faf9e3534c5dad1f38aff2ce276328434067h!
dnamejRBTC #0236jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
loxblood hairjbrown skinrbone white garmentksquare faceknarrow eyesicrop hairchatdhalogartworkr2048x2048 lossless
SoZRBTCPF1648361fbef2f9be138c1742efb75972ba2a67db71e2b3f2d3a24317960fb8302h!
dnamejRBTC #0277jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
loxblood hairnporcelain skinmbrass garmentksquare faceknarrow eyesnside-part hairdhalogartworkr2048x2048 lossless
{+RBTCPF12ce2e81c7844c5b6d3912dd5cc35662d33cbac3710b565c647cf2c9756b3d662h!
dnamejRBTC #0253jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
mcharcoal hairnporcelain skinrbone white garmentjround facejround eyesicrop hairdhalogartworkr2048x2048 lossless
RBTCPF114deae6c29863ea94f2cfbf8eefd15fc872581527f4550f9691519152ef57edfh!
dnamejRBTC #0271jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
nash black hairnporcelain skinmember garmentjround faceknarrow eyesjshort hairhponytailgartworkr2048x2048 lossless
RBTCPF1e7b456ed64da672c7c0d3e9fb1de6de250d297cf335c77d6914c3bef225c2003h!
dnamejRBTC #0370jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
isand hairjbrown skinsharbor blue garmentilong facejround eyesnlong-side hairchatgartworkr2048x2048 lossless
RBTCPF1762ab68229be5c319772e8c602d6aa17e62e2ddfb02cfd197c9e5cd1236dc172h!
dnamejRBTC #0548jcollectiondRBTClcollectionIddrbtcgedition
dbandiLEGENDARYdtiercmidfrarity
mchestnut hairjbrown skinsmatte black garmentilong faceiwide eyesjshort hairchathponytaildhalogartworkr2048x2048 lossless
)kyRBTCPF1c1996a45e90afd2e3b90b8cb567f02519f512d653d3179eabc3d6867c598df83h!
dnamejRBTC #0392jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
isand hairnporcelain skinlrust garmentilong faceknarrow eyesjshort hairdhalogartworkr2048x2048 lossless
RBTCPF11a52e817b2000fe41dd53ce1da96e8dc45db300432f569ae743c7ddabe4ab4b7h!
dnamejRBTC #0338jcollectiondRBTClcollectionIddrbtcgedition
dbandiLEGENDARYdtiercmidfrarity
isand hairifair skinmbrass garmentjround facejround eyesnlong-side hairchatdhalogartworkr2048x2048 lossless
{}KRBTCPF1b398e43ab63ebd5bb9e71748956a446c3d3b497520491d101825eeb8902643abh!
dnamejRBTC #0219jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
kcopper hairifair skinlrust garmentjround facejround eyesnlong-side hairgartworkr2048x2048 lossless
W.RBTCPF1579e721aee7cd4da79c09ec33860f8358b4a589f3f6273d9971450afa34a4c4fh!
dnamejRBTC #0229jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
qburnt sienna hairkbronze skinlrust garmentjround faceiwide eyesnlong-side hairdhalogartworkr2048x2048 lossless
RBTCPF1f20ee95a9344de1607e4a4d2a9f1cde1bd04e0f021654a6b3bc2ad39d08bca85h!
dnamejRBTC #0412jcollectiondRBTClcollectionIddrbtcgedition
dbandfCOMMONdtiercmidfrarity
odusty rose hairkbronze skinmkhaki garmentilong faceknarrow eyesnside-part hairdhalogartworkr2048x2048 lossless
RBTCPF125c6855ee78898878f1f85bfda43da5a08d5dd3391e08502feb7bfaae67daaa5h!
dnamejRBTC #0267jcollectiondRBTClcollectionIddrbtcgedition
dbandhUNCOMMONdtiercmidfrarity
odusty rose hairjivory skinrslate gray garmentilong facejround eyesjshort hairgartworkr2048x2048 lossless
RBTCPF11e016e6963af8ae04fbe36fa963e7921f058c589a34b51a70781e5d3774bbd7eh!
dnamejRBTC #0422jcollectiondRBTClcollectionIddrbtcgedition
dbanddRAREdtiercmidfrarity
odark umber hairkbronze skinpgraphite garmentilong faceiwide eyesnside-part hairjheadphonesdhalogartworkr2048x2048 lossless
bWRBTCPF18955398993bc7a5dfcbfedb3964a32391cb47ee25ad2aa16de61a5b9f3c6ff76h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Super Blockchain System</title>
  <div id="status">Starting
  <pre id="boot-log"></pre>
    var LOGO_SRC = "data:image/avif;base64,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
dSrdTHevw36oWmKTd5tS3I25IM49v2got8nI+8Xub+BGi4VKBbZ7KN0eFCz14jM5Of1G/xbMf8N8PcRqes3gmgAx0J0RHrq/xMT/zCXFfgO5IV8YkX9LJPfHlYzNWsPG65AYzu8EIKs2oYC2zsh2lX6ySLfu0BW5KAyoOeg3vEDQDXgw6nR5OuHlGprtoWzpZIxIHGUx+930H1wGc3MbEbA9XxbLxN/fLiYWG0oiKzFRR40wFfdSUfL0dzrgjjfawSqQYB23y3ADdF2IxXM72CpxNmFVf2qGbT5oMaAV8A3zwbR7+RoNXha5zrfpMM9iiUCWcus7i3oLriIsy2BDDIta0Sp210sX6MwFgQcy2rUHWDplJVFvYG2eX5Lmh5D+R4QQ/QsMRle9CyoPHobj1JBs80hzyiEZkNcQQPpti4JuE3rwsxuONdtt6b/ehBVvyLLyl9fJXBaiFxkfPC7aA8ZqfEj3j2ypmUTjqjLvtZ4fP1RWNmKWdOS9753D45cM2J5p3jfnM
aY5r8sAkGIVYF9lSy+jZZTkJckMbJGss8IjPcI4uDkI5BI+aAEVD7Z/gjlIUrC2s4DooD9l2GCc0bDqqXZ08sG4sZMfiRi5pEm4k7GRuG6o3rF+rNs0U+7DrBukdKVsEaUUbD/SWPxiwqrY40dbyLKFeF0ZS9YeyVdnbZpDr3lC5OnaAY2LoZtni1FlXPvYuAPlkrSXoo2PQN6BJJAYMWaKJhtFm9oq8WCeu7InNYZHi9BOmpLIwf2hE15Gqzb2YQowfkGIMdAtY/pl7FH/01sLAC2OiXWL37wBoXUSPuqc6tJoP0otpaItSeZYB65MdMzQbH/+XKO27HVAv+gvMy53wMP4WQt9HTAwQQcaZf4LTMmObr1tE/yVzsw1dOnw1J+24nOCsSePf0WYBa7sDOGQTVEBLvOhgzPNkCTYnNczd33oRV7IJwj7xC98kC7Y3txbW4abirXXyKUY1Zcs5wXd88+Ms5t2i1cSjItowF+kvduP3G/CGYWIwHXjA1jkzRPDvQ5/UM
uTMJzqifuya3GsCvPnoarbhNnedBbuFxde/+P1bulgXOX0etM+NOtXMR1PEugAAABXm1kYXQ8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pgo8eDp4bXBtZXRhIHhtbG5zOng9J2Fkb2JlOm5zOm1ldGEvJz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJz4KIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6eG1wPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvJz4KICA8eG1wOkNyZWF0b3JUb29sPmV6Z2lmLmNvbTwveG1wOkNyZWF0b3JUb29sPgogPC9yZGY6RGVzY3JpcHRpb24+CjwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQM
    var GAME_POINTER_SAT = "833803395879715";
        name: "runtime-pack.js",
        mime: "text/javascript",
        byteLength: 620235,
        sha256: "ab744782dd7a96842867b025c572d722a1e2b27032b165d1e7428b0bcc0854b3",
          "e2040336f7113f2c85fb08664010cb220c4fb37378fc916bba2d7360f2ac9276i0",
          "423018d1dbb585d42373c00a7416daae71ceac67f43873a9ce24c9524f0b3c1ei0",
          "97491bc7b875aea59af827d862788f16f531eacbc0efca847b96f4a9f0M
        name: "snes9x-wasm.data",
        mime: "application/octet-stream",
        byteLength: 1093765,
        sha256: "eaa0bcfce67673809886e50387a80a616b719502175db64c090d04c9d75958ee",
          "8bd6794f2643219a12e2b60e2783a1fd3cb2a127a372715a3c901298f6f2a5d4i0",
          "54c241e32ef22ad48c9084512038807590d37696959c9951790155e3f0b45a9ei0",
          "3773ed320b249ddb5f88e37c09a56459b67962373a93db3ad4d61fcd4e05181fi0",
          "c1a6deeb8cacf7M
49c78acbba9e877831c9fa74c48cb5758451dbd1c29dc7fcdei0"
        name: "extract7z.js",
        mime: "text/javascript",
        byteLength: 280155,
        sha256: "4ac9933b995a516cb6b3ca4027db860278372a20c21c405d93ceb1998498853a",
          "e2e74dc2323f5ce565ee648b3d68db1ac8432017988ea625af94115714c30eb6i0",
          "eb6819aba2e4a69afa279235e5a35a59cfd1e100cc8ef8380e7fc8e42b9de223i0"
      pointer: null,
      runtimeLoaded: false,
      runtimeLoading: null,
      emulator: null
    function el(id) { return document.getElementById(id); }
    function api(path) {
      if (location.hostname === "ordinals.com") return path;
      return "https://ordinals.com" + path;
    function log(text) {
      var node = el("boot-log");
      var line = "[" + new Date().toISOString().slice(11, 19) + "] " + text;
        node.textContent += line + "\n";
scrollTop = node.scrollHeight;
      var status = el("status");
      if (status) status.textContent = text;
      if (text.indexOf("Error") !== -1) {
        var panel = el("log-panel");
        if (panel) panel.open = true;
      console.log(line);
    function createMemoryStorage() {
      var data = Object.create(null);
        getItem: function (k) {
          var key = String(k);
          return Object.prototype.hasOwnProperty.call(data, key) ? data[key] M
        setItem: function (k, v) { data[String(k)] = String(v); },
        removeItem: function (k) { delete data[String(k)]; },
        clear: function () { data = Object.create(null); },
        key: function (i) { return Object.keys(data)[i] || null; },
        get length() { return Object.keys(data).length; }
    function installHostGuards() {
      function lock(name, fallback) {
        try { void window[name]; return; } catch (err) {}
bject.defineProperty(window, name, {
            configurable: true,
            get: function () { return fallback; }
        } catch (err2) {}
      lock("localStorage", createMemoryStorage());
      lock("sessionStorage", createMemoryStorage());
      lock("indexedDB", undefined);
    function decodeBase64ToBytes(base64) {
      var clean = String(base64 || "").replace(/\s+/g, "");
      var binary = atob(clean);
      var out = new Uint8Array(binary.length);
 (var i = 0; i < binary.length; i++) out[i] = binary.charCodeAt(i);
    function concatBytes(parts) {
      var total = 0;
      for (var i = 0; i < parts.length; i++) total += parts[i].length;
      var out = new Uint8Array(total);
      var offset = 0;
      for (var j = 0; j < parts.length; j++) {
        out.set(parts[j], offset);
        offset += parts[j].length;
    async function sha256Hex(bytes) {
      var hash = await crypto.subtlM
e.digest("SHA-256", bytes);
      var view = new Uint8Array(hash);
      for (var i = 0; i < view.length; i++) hex += view[i].toString(16).padStart(2, "0");
    function inscriptionId(ref) {
      var txt = String(ref || "").trim();
      if (txt.indexOf("id:") === 0) txt = txt.slice(3);
      if (!/^[0-9a-f]{64}i\d+$/i.test(txt)) throw new Error("Invalid inscription: " + ref);
    async function fetchJson(id, scriptIds) {
r res = await fetch(api("/content/" + id));
      if (!res.ok) throw new Error("Content HTTP " + res.status + " for " + id.slice(0, 8));
      var text = await res.text();
      if (/^\s*\{/.test(text)) return JSON.parse(text);
      var doc = new DOMParser().parseFromString(text, "text/html");
      for (var i = 0; i < scriptIds.length; i++) {
        var node = doc.getElementById(scriptIds[i]);
        if (node && (node.textContent || "").trim()) return JSON.parse(node.textContent);
ew Error("No JSON in " + id.slice(0, 8));
    async function loadOrderedParts(refs, scriptIds, label) {
      var items = [];
      for (var i = 0; i < refs.length; i++) {
        var id = inscriptionId(refs[i]);
        log(label + " part " + (i + 1) + "/" + refs.length);
        var payload = await fetchJson(id, scriptIds);
        if (!payload || payload.encoding !== "base64" || !payload.data) {
          throw new Error(label + " part invalid: " + id.slice(0, 8));
= Number(payload.part_index);
        items.push({
          index: Number.isFinite(index) ? index : i,
          bytes: decodeBase64ToBytes(payload.data)
      items.sort(function (a, b) { return a.index - b.index; });
      log(label + " order: " + items.map(function (item) { return item.index; }).join(", "));
      return concatBytes(items.map(function (item) { return item.bytes; }));
    async function loadAsset(asset) {
      var bytes = await loadOrderedParts(asset.partsM
, ["emulator-asset-part-json"], asset.name);
      if (bytes.length !== asset.byteLength) {
        throw new Error(asset.name + " length " + bytes.length + ", expected " + asset.byteLength);
      var got = await sha256Hex(bytes);
      if (got !== asset.sha256) throw new Error(asset.name + " SHA-256 mismatch");
      log(asset.name + " ok (" + bytes.length + " bytes)");
      state.assets[asset.name] = bytes;
    async function resolveGamePointerId() {
      var fromQuery = new URLSearchM
Params(location.search).get("gameId");
      if (fromQuery) return inscriptionId(fromQuery);
      var sat = new URLSearchParams(location.search).get("gameSat") || GAME_POINTER_SAT;
      var res = await fetch(api("/r/sat/" + encodeURIComponent(sat) + "/at/-1"));
      if (!res.ok) throw new Error("SAT lookup HTTP " + res.status);
      var json = await res.json();
      if (!json || !json.id) throw new Error("No inscription on sat " + sat);
      return json.id;
    async function loadPointer() {
      var id = await resolveGamePointerId();
      var pointer = await fetchJson(id, ["snes-pointer-json", "layer-info"]);
      if (!pointer || !Array.isArray(pointer.games)) throw new Error("Game list is invalid");
      var info = el("pointer-info");
      if (info) info.textContent = "Game list " + id.slice(0, 8) + "
 | " + pointer.games.length + " game(s)";
      showGames(pointer);
      log("Game list loaded: " + pointer.games.length);
    function setupLayout() {
      var root = documenM
t.createElement("div");
      root.innerHTML = [
        "body{margin:0;background:#101014;color:#f3f3f3;font-family:Arial,sans-serif;}",
        ".wrap{max-width:1100px;margin:0 auto;padding:14px;}",
        ".panel{background:#1b1b22;border:1px solid #333;border-radius:10px;padding:10px;margin-bottom:10px;}",
        ".row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}",
        "select,button,input{background:#24242d;color:#f3f3f3;border:1px solid #45455a;border-radius:8px;padM
        "input{flex:1;min-width:240px;}",
        "#status{font-weight:600;}",
        "#log-panel{margin-top:8px;}",
        "#log-panel summary{cursor:pointer;color:#8d8d9a;font-size:12px;}",
        "#boot-log{display:none;}",
        "#log-panel[open] #boot-log{display:block;max-height:120px;overflow:auto;background:#0e1320;border:1px solid #2f2f4a;padding:8px;border-radius:8px;color:#b8ffc5;white-space:pre-wrap;margin:6px 0 0;}",
        "#game{width:100%;aspect-ratio:16/10;background:#M
000;border:1px solid #333;border-radius:8px;}",
        "#intro{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#000;cursor:pointer;transition:opacity .4s ease;}",
        "#intro img{width:min(920px,92vw);height:auto;animation:intro-in .55s ease both;}",
        "#intro.hide{opacity:0;pointer-events:none;}",
        "@keyframes intro-in{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}",
        "<div id='intro'><img M
id='intro-logo' alt='Super Blockchain System'></div>",
        "<div class='wrap'>",
        " <div class='panel'>",
        "  <div id='status'>Starting
        "  <div id='pointer-info'>Loading game list
        "  <div class='row' style='margin-top:8px'>",
        "   <select id='game-select'></select>",
        "   <input id='extra-inscription' type='text' placeholder='Another inscription: id
        "   <button id='load-selected' type='button'>Load game</button>"M
        " <div id='game'></div>",
        " <details id='log-panel'><summary>Log</summary><pre id='boot-log'></pre></details>",
      document.body.innerHTML = "";
      document.body.appendChild(root);
      var logo = el("intro-logo");
      if (logo) logo.src = LOGO_SRC;
      var intro = el("intro");
        intro.addEventListener("click", hideIntro);
        setTimeout(hideIntro, 1900);
    function hideIntro() {
      var intro = el("intro");
      if (!intro || intro.getAttribute("data-done") === "1") return;
      intro.setAttribute("data-done", "1");
      intro.classList.add("hide");
      setTimeout(function () {
        if (intro.parentNode) intro.parentNode.removeChild(intro);
    function blobUrl(bytes, mime) {
      return URL.createObjectURL(new Blob([bytes], { type: mime }));
    function safeGameName(title) {
      var name = String(titleM
 || "game").replace(/[#<$+%>!`&*'|{}/\\?"=@:^\r\n]/g, "").trim();
      if (!name) name = "game";
      if (!/\.sfc$/i.test(name)) name += ".sfc";
    function ensureRuntimeLoaded() {
      if (state.runtimeLoaded) return Promise.resolve();
      if (state.runtimeLoading) return state.runtimeLoading;
      var url = blobUrl(state.assets["runtime-pack.js"], "text/javascript");
      state.runtimeLoading = new Promise(function (resolve, reject) {
        var script = document.creaM
teElement("script");
        script.src = url;
        script.onload = function () {
          state.runtimeLoaded = true;
          resolve();
        script.onerror = function () { reject(new Error("runtime-pack.js failed to start")); };
        document.head.appendChild(script);
      return state.runtimeLoading;
    async function bootEmulator(game, gameBytes) {
      await ensureRuntimeLoaded();
      if (typeof EmulatorJS !== "function") throw new Error("EmulatorJS miM
ssing after runtime start");
      var core = state.assets["snes9x-wasm.data"];
      var extract = state.assets["extract7z.js"];
      window.EJS_paths = {
        "snes9x-wasm.data": blobUrl(core, "application/octet-stream"),
        "snes9x-legacy-wasm.data": blobUrl(core, "application/octet-stream"),
        "snes9x-thread-wasm.data": blobUrl(core, "application/octet-stream"),
        "snes9x-thread-legacy-wasm.data": blobUrl(core, "application/octet-stream"),
        "extract7z.js": blobUrl(extract, "tM
        "snes9x.json": "data:application/json;charset=utf-8," + encodeURIComponent(JSON.stringify({
          buildStart: 1,
          options: { defaultWebGL2: true }
      if (state.emulator && typeof state.emulator.destroy === "function") {
        try { state.emulator.destroy(); } catch (err) {}
      var gameUrl = blobUrl(gameBytes, "application/octet-stream");
      state.emulator = new EmulatorJS("#game", {
        gameUrl: gameUrl,
 safeGameName(game && game.title),
        dataPath: "",
        system: "snes",
        filePaths: window.EJS_paths,
        startOnLoad: true,
        threads: false,
        disableDatabases: true,
        disableCue: true,
        disableLocalStorage: true,
        hideSettings: false
      log("Emulator started.");
    function splitRefs(text) {
      return String(text || "").split(/[\s,;]+/).map(function (part) { return part.trim(); }).filter(Boolean);
tion resolveRef(ref) {
      var txt = String(ref || "").trim();
      if (/^sat:/i.test(txt) || /^\d{6,}$/.test(txt)) {
        var sat = txt.replace(/^sat:/i, "").replace(/[\s,]/g, "");
        var res = await fetch(api("/r/sat/" + encodeURIComponent(sat) + "/at/-1"));
        if (!res.ok) throw new Error("SAT lookup HTTP " + res.status);
        var json = await res.json();
        if (!json || !json.id) throw new Error("No inscription on sat " + sat);
        return json.id;
iptionId(txt.replace(/^(insc:|inscription:)/i, ""));
    async function fetchContent(id) {
      var res = await fetch(api("/content/" + id));
      if (!res.ok) throw new Error("Content HTTP " + res.status + " for " + id.slice(0, 8));
      var buf = new Uint8Array(await res.arrayBuffer());
      var head = new TextDecoder().decode(buf.slice(0, 120));
      if (!/^\s*[<{]/.test(head)) return { bytes: buf };
      var text = new TextDecoder().decode(buf);
      if (/^\s*\{/.test(text)) return { jsoM
n: JSON.parse(text) };
      var doc = new DOMParser().parseFromString(text, "text/html");
      var ids = ["snes-pointer-json", "layer-info", "rom-part-json"];
      for (var i = 0; i < ids.length; i++) {
        var node = doc.getElementById(ids[i]);
        if (node && (node.textContent || "").trim()) return { json: JSON.parse(node.textContent) };
      return { bytes: buf };
    function showGames(pointer) {
      state.pointer = pointer;
      var sel = el("game-select");
      pointer.games.forEach(function (game, idx) {
        var op = document.createElement("option");
        op.value = String(idx);
        op.textContent = game.title || ("Game " + (idx + 1));
        sel.appendChild(op);
      if (pointer.games.length) sel.value = "0";
    async function finishRom(game, bytes) {
      log("ROM bytes: " + bytes.length);
      if (game && game.sha256) {
        var got = await sha256Hex(bytes);
        if (got !== String(game.sha256)M
          throw new Error("ROM SHA-256 mismatch");
        log("ROM SHA-256 ok");
      await bootEmulator(game, bytes);
    async function loadGame(game) {
      if (!game || !Array.isArray(game.parts) || !game.parts.length) throw new Error("Game has no parts");
      log("Loading " + (game.title || "game"));
      var bytes = await loadOrderedParts(game.parts, ["rom-part-json"], "ROM");
      await finishRom(game, bytes);
    async function loadSeleM
      var idx = Number(el("game-select").value);
      var game = state.pointer && state.pointer.games && state.pointer.games[idx];
      if (!game) throw new Error("No game selected");
      await loadGame(game);
    async function loadEntered() {
      var raw = (el("extra-inscription").value || "").trim();
      if (!raw) return loadSelected();
      var refs = splitRefs(raw);
      if (refs.length > 1) {
        log("Loading " + refs.length + " parts");
        var joined = await loM
adOrderedParts(refs, ["rom-part-json"], "ROM");
        await finishRom({ title: "Inscription" }, joined);
      var id = await resolveRef(refs[0]);
      log("Loading inscription " + id.slice(0, 8));
      var content = await fetchContent(id);
      if (content.bytes) {
        await finishRom({ title: id.slice(0, 8) }, content.bytes);
      var payload = content.json || {};
      if (Array.isArray(payload.games)) {
        showGames(payload);
f (payload.games.length === 1) {
          await loadGame(payload.games[0]);
        log(payload.games.length + " games added. Clear the field, then load the selection.");
      if (Array.isArray(payload.parts)) {
        await loadGame({
          title: payload.title || payload.game || "Inscription",
          parts: payload.parts,
          sha256: payload.sha256
      if (payload.encoding === "base64" && payloM
        if (Number(payload.parts_total) > 1) {
          throw new Error("Part " + payload.part_index + " of " + payload.parts_total + ". Enter the pointer or all part IDs.");
        await finishRom({ title: payload.game || "Inscription", sha256: payload.sha256 }, decodeBase64ToBytes(payload.data));
      throw new Error("Inscription does not contain a game");
    async function main() {
      installHostGuards();
      setupLayout();
      for (var i = 0; i < ASSETS.length; i++) await loadAsset(ASSETS[i]);
        await loadPointer();
        el("load-selected").onclick = function () {
          loadEntered().catch(function (err) {
            log("Error: " + (err && err.message ? err.message : err));
            console.error(err);
        el("extra-inscription").addEventListener("keydown", function (event) {
          if (event.key === "Enter") el("load-selected").click();
        log("Ready.");L
      } catch (err) {
        log("Startup error: " + (err && err.message ? err.message : err));
        console.error(err);
text/plain;charset=utf-8
4{"p":"brc-20","op":"mint","tick":" ORDl","amt":"10"}h!
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"4000"}h!
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"4000"}h!
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"4000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"AUBlE","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"ANONO","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"b
ef","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"blo
","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"Dl
R","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"bay
","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"bt
 ","amt":"0.000001"}h!
>j<from:350USDT(BSC):0x3A098e5d6b640d51d410D8e04Aa27BeA510E3FfF
FjDOUT:F800AF1A2CA27418269513FAAD1EE0BFBEAE3FFA135C55A225A7F622FB341FDA
6j4acZ:to:USDT(TRON):TS3s2gFENHbEvMe74gxVPeaottAtTfQA1w
6j4aP8:to:USDT(TRON):TQ7vGWgJQxGZFJv7N2phs93iYt8Ub3KdeA
6j4tsv:to:USDT(TRON):TRxthm18UjCGUAiUR4FuYJjck8L5Qr4cBMr
6j4R3l:to:USDT(TRON):TYnYJE1Dceo59hodic3ojZmvAzL7pD5zYA
6j4c8b:to:USDT(TRON):TTrjtmZs8Dph2LwEWTpAw64L1eCL2L7QVj
7j5YUP:to:ETH:0xdEbAB6D1e42D0aB1B1899a69A47c68EB5Ea91f30
2j0to:USDT(TRON):TAn8xnp2mPN7VPpLXLp12zcBjSuttKKYpV
2j0to:USDT(TRON):THzPtUvcKSTvAzNCG2CDHS5mSeyt9FqFDE
2j0to:USDT(TRON):TXTeYArmSceQhT3wjGqEviWYxNduWq7BES
6j4Vxe:to:USDT(TRON):TLkgQyLjhXg41QXTAfFeUb3H5GC51uwjyE
DjB0x4615aaf1c3fff0c9b2494b33c96d54ce5b2cd9f62775d025839347f4c1426726
DjB0x988df4e694aaae753f94745e6b42a6d5b6c5763e30b181811e094a59b5b963d1
DjB0xd751d1e6a3c1444b0a08abeacf94f63553dd31259ac425b85c5aedeeda05856a
DjB0xd6661128ef3b1c610f12f5d8b77c8ea4111a88eecf81fa8cda635ab4ad47202f
DjB0x29af4af8041b8d44775e1adc9a8a8ce2bde3b537675e488877fa87341ebff096
?j=from:18.7USDT(BSC):0x76109CA77053431c56757aDE51a56D070812E397D
=j;from:15USDT(BSC):0x62bE7A58b8d4ce2B1B9538f5e04fA8B0c39590fF
?j=from:0.152758SOL:AbwdhKm5UYBwCLMsdyAB4t4ofZzc3dPVCQSnnJ4Ez2uw
DjB0x24057371371c4b54fbef33eba97800ffbbacd75c47a92d71e2c0ddeffbcfd1bf
DjB0x975fb50f990f2c369c5b443663ab8e459fe728235a4a7706aa5148eeecb6d23f
DjB0x470ba5eceae514225e2902b85807b8d234b4e5f6fb7db53929bfe39a57734fd3
DjB0x0f9774f7ce20774fe0d322f069e1b8f11471bdf7bd3906ecf7e5ef97cda3a127
DjB0x7078e09add78fda8d9e131741c97b92393854869b7e4b3f334fff22cfee70432
CjA=:tr:TQuLjQCxLGqTHswyGV4GPzngf2tXS1NHQ1:1855013300/0/0:-_/t1:0/70
OjLL0x95073a011234730cf378d579f61a6075136026d9b5a1655a9e87920a000767a5=|lifi
DjB0xcd79a93b064c8d09d25d91b2e9c6b66f565b24c0380e28abe4854992fe9e9d54
DjB0x2bc66f6919c954c7d02b16221ee79b003ef8e3fbdf6a23a8e7458a5de1b95bbf
DjB0x2b1b8ae183d72a3f4c78d04d7bfdc937c4da6d0c77cf1540c32e5e8e67463bd9
DjB0x66fab9fe62704275fbf68cdde562547112365a3cc53b84f9f805ea666a77e266
DjB0x063bdd4c1dd26dbf70cbe2fc9559a0a14f8fc8a26419e7e846185e8542ff122d
text/plain;charset=utf-8
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"15000"}h!
DjB0xa21e3b0c55a4393336febf0cbbcfeafea4cbdc4e03176d745967bfe781871d6c
DjB0x16a8518a2437541a997cabf4a93d2cfbb04d1efcb827f45d738a62ec7bce8b78
DjB0xf5d52ad67643dfc8c464504b5ce08ff124be9bfd4f939be00e973c516d42614b
DjB0x2fb4802aacf32bde2d42b4151c5c4ebdd4b2776d73b1acc6880c84266b9851ce
DjB0x58311d277154c779476df44ff790f472a28910bd251a0f46197aad6b5adc8a74
DjB0x20b6232b4639a133d2c5ebf67a88b12ec399cd567ce899b082e35886cf960f08
DjB0x69f90b6ac95fc8992956bc91ec2b2f2d7b41f9d20e2a223d6e6a1b226411e8d0
4j2TRADE+:maya16c6eeefhkajs7vqa329lwq6hwtqdx02ucwq0he
CjA=:tr:TBE8XwFcfjCJM1Y8LhsJgrsCuH6SJsaQkj:1626933300/0/0:-_/t1:0/70
QjLN=:BSC.USDC:0xdd6e01Ad23Cef8c969fe3395384c6eF6b18A2322:206553003/0/0:-_/t1:0/70
DjB0xaa261ac29a691e11bd562ec42563a5ee539afde03bdfb88a29db4de91b007354
DjB0xaadde2621c62c19fb75d3163f19a7c816baee3dc247f61116b2c31b02218ae743
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"DIOR","amt":"4580000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"25000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"90000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"200000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"25000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"20000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
3{"p":"brc-20","op":"mint","tick":"L
6j43VC:to:USDT(TRON):TFiSDu7cEG2v7HxBB7uKqmX7mJxuaVxkavP
/j-9VW:to:TRX:TXoULwovEqRRh3RiMZhGnu96uYhwcLrMmf
6j4t24:to:USDT(TRON):TWAVozFf4tp9pDcoJFqrZxRPVB6BkjWNf4a%
6j4Rw4:to:USDT(TRON):TJvvoAyjiVhTWKt9J1parRV3fUJG7f6akr
=j;0f8:to:USDT(BSC):0x734A4Af674833819374d44Fc50235a83Cd6B5C74
DjB0x3fc91935aaaefdac78cb5554ad30767fa059e2ec31cabf3cdf9933fc34dfdb7d
OjLL0xd66c8dbfb8d4e4a86ebcc8cf309af0452e9a4b219f155c6a74fc053e4dc12f59=|lifimq\
9j7to:USDT(BSC):0x798076D98f1Bb25a66d4a6a75766131620151d31
DjB0x9acfbc7a19705e52416f669ff6b26a3948909bf242946d44beaedda63c926748
DjB0x2dbdadb9889d17aa6765ee1b3f07d4a956ae7e70fc094673f0327e5a02ffb391
DjB0x2fe69e366adbbe07c2fe6b9338b035605f8f95778e91fc2764941c04ecf39ebc
text/plain;charset=utf-8
DjB0x63e0216e146814983d737ea92725e1abca14a721e76c868e955cceba5e2d5f77
DjB0xd4144d8bad4d09d6420f2ebb9a6303ab464ff243eee77420367d3af0aee6cdf4
QjLN=:ETH.USDT:0xC02cf91a582cc95936ED57Ad9E82C98762d22ae8:132448700/0/0:-_/t1:0/70:
HjF=:l:ltc1q74mzk3rfyxjsczfy607qw40eculw8vucwcuz9x:8939975/0/0:-_/t1:0/70
<j:=:e:0x4A92c11f633d19Ed4b5f4CbDC78911190908Fb88:0/1/1:ej:75
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"170"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"140"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5305680000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"fil
","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"FlF
","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"ER
E","amt":"0.000001"}h!
;j9to:USDT(ERC20):0xDAE069729F6756dE6Ba49D3Cac507B29126c2E2f
HjF=:l:ltc1qnvm4xkngtcke7hm864pxq4t9u25gnz3zw36599:3395048/0/0:-_/t1:0/70
DjB0xeb6240546871aa3e7b7fa8254af96d6e8099cdd277a50fec84d700823eabc566
DjB0x4751ca1a94af1b9daa0ce78c0cb8f0abe6a05331ed8fb47010932f49b8ae70ef
2j0to:USDT(TRON):TBmr5tCYv7cWjnq5EKQtv8nQPbo5GjybZh
MTLD_BATCH_2_401464_401465
/j-from:59TRX:TDbpo5MqqqQ4bjKZ76JXMcnQPY4FKr1bmS
?j=from:16.2USDT(BSC):0x33aD8B6D7ede9b09F29693F3133BE44c908aCC7f
?j=from:27.7USDC(BSC):0x409D027b8f462F8f193818BcAf24529ACC3326C2
=j;from:15USDT(BSC):0x80949D544eB3d71faEBFa44cd5EA79353b4310B4
FjDOUT:6F30B870AE858955BEB20F1818D71C008DDCC563D7D5DA5F2F7814359160D48A
FjDOUT:277BE271BE824E476139A765CF41204C4ECC26B3120CB8F3C669737C84806FE2
FjDOUT:FE82CE3004511612478CE302971381DC6975B9EE50245BBD469B575799BFC671
FjDOUT:7ED9DA2109950C98B3C6C47B63F264E2B8FE63C06E6124EF8A14861D3AC923F0
FjDOUT:0114D0CBA8CD3A2577A5FBC1FF77A2B3D7824F7442B4F24E74C510E2EFF44D1E
/j-XH0:to:TRX:TCJTsDJoik68VfyuVzoqPfnbERXDy18oBi
/j-umm:to:TRX:TS5Yzf5ktWxnZgoK89ry6wLEu951YbAjqZ
/j-V2j:to:TRX:TL6PNNocu3iqmofQk4uNWExN6yEEcL8HKv
/j-C0k:to:TRX:TS5Yzf5ktWxnZgoK89ry6wLEu951YbAjqZ`X
/j-RDg:to:TRX:TWAVozFf4tp9pDcoJFqrZxRPVB6BkjWNf4A:
/j-h1H:to:TRX:TQdsmkE5mKpo9vC6Ht4Qk4jDM43k4xk2Jw
6j4sUK:to:USDT(TRON):TBhkmJCCoFFyuktZhczy5EGfPc3sa3Qkpu
6j4vAd:to:USDT(TRON):TGHAuZjUCFWB6k7vtVZzakzwNVD8haX7vJjU
6j4Zpw:to:USDT(TRON):TYYhq2b17tbHQdbTUsyjXZNw7WWabsv4a6#
6j4oj4:to:USDT(TRON):TTmX1EfNFQBKMd8XsMYpND3NnFo4nWrXCZ
6j49Yd:to:USDT(TRON):TJUD2JznJy692ZvGERVvPiWK4mpCQMwGid1
7j5nbY:to:ETH:0x2DeCdD1E17c4a3AD93B083BE860a34c6508a71c9OM
=j;OlU:to:USDT(BSC):0x3B47f26bF9C827bbebA8debD9a392BB4B18D7D39
=j;UFo:to:USDT(BSC):0xb2e0692CEB984d5Db442AdE151AF6E4459883fc5
2j0to:USDT(TRON):TDoPbo2ZpTQt3WstYhrztpryV8PsH3AzLG
2j0to:USDT(TRON):TTZf35bMRg3YxWYwvfjnL5J2gCTf7ajdbV
6j4gX3:to:USDT(TRON):TS3gtoYcbR2dx2MPfXDJxTNzfYPyFSGJah
=j;jZM:to:USDT(BSC):0x3813Edaf599B856d37711D11d1464997aeA533EF
2j0to:USDT(TRON):TTGcJAUqQXc8gceG1RdxyoZycdgCsBPDZr
6j4adj:to:USDT(TRON):TTFPRAqemDVyQms33CXEKArZSy3sGk3wmb
9j7to:USDT(BSC):0xC668C79FD46e45F500dD59e541b01a6d34237f0C
DjB0xa410a32f82808f16713b3f27a25931da18eb452b9c15d12ef6c52e29b78ff45c
DjB0x9e10d9bf3bc0f92a506272735627e741069e84be337608f0e3818483dd2acdf0
FjDOUT:7D02FC250293F4F1B88DAB7EA8E0022E713CAB83F17A5BD5FF09B4606C2111CC
2j0to:USDT(TRON):TRVVtgqhgaYDuctLT4fXikeygic2Ufiqpr
DjB0xf29bf6c0f50c19c4322897ce1a3bbf5d2c5f976dc08ed6739cf92fae71b7c752
DjB0xce960b9871819ac784f264b05724297606ea13aa4624085a89c773390238058b
DjB0x071184de484dc4efd17cc464637c932103311fd841675ff5bd5d58373f8453d2
DjB0x38ee3805726c5416279caaf2c9a4bbe80ddc4e25609505f608464470ece33cdc
DjB0x474571cf30dda34dba561f7870a0576bd11689080c9ac6f7658142b0df848761
DjB0x44bbd5f56365fe65508aeddada6b7c24b3449c2c119714fc56e66dfe2cb5f822
DjB0x1ba2ff00251ae0fbc9f47b83821690aa46282914af98a2cd52e26d61ae5e480c
DjB0x1c6bbb320e7d5ec053461c7016f40bae08bc0cbc93344dc74c776ff1c048cd3a
DjB0x6827fbbcbf9baf1680f6cf2d41578a9df62e3bca9ca98ae8f8cc5c801107367f
DjB0x6bb5bcb804ef957d927626b3277eb871ae78c97569c80f35c5fbd0e081f69ddf
DjB0xf58072cd8bd421a62056237722b0f312e5d3cc9b928df690b6a45ec851a9edd0
DjB0xba91efa4a7ffde6c34694d14b9992e16d6567dfefd710833777355e616f277ff
DjB0xaaee43fc750e327a41383738e9c47070a0b881e9508f3e1236c94c3867bea60c
DjB0x048fa28aebfa828502346d066f6ad6f7d44ee9ec309a449b4518dd9fe4f95add
DjB0x865db5b85e6416e926375a381dd4c252eb79e46808d4c72497dd5cbb772bb47a
DjB0x2e0f9c3f85cfad98eedab2d1e7249dc362549d678c6d532aa4ede7b52567d778
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
L_{"p":"brc20-module","op":"withdraw","tick":"shhhhh","amt":"1699.46321621","module":"BRC20PROG"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"5000"}h!
DjB0xa6928e197ed7b4a53521dbcd57b66a50e7ea8f09f5ae48b3124b75b8c0d33e1e
DjB0xdb0d3e6b53f7569765e7ad02354208f49877cab074713fbab244aedca72b0cff
DjB0x54627b1e3a6cf6bc39715afa42a376b130bbbfb168ce48583dded04e88579a23
DjB0xc01dbb5fab65ad617877560cecde209f46adf779ad0940d8672e0140a80acdbc
DjB0x03dd052d68fcd8d7f04e28a91dd4fa439c0ad2953a04d85aafac701eeb950882
DjB0x93748e1e14a020e3692e282109d7eb4a7e93e9419c586aafe10def8cee495bb9
DjB0xa454bf6deec62dc8a71f431d6c2006c600ef779c5e9d15c261ae55248644826a
DjB0x9b05f3536cfd939cbc410e87ea2c96a2433d754343386f85b0bb0f1684551d03
DjB0x0e3ba1c602f7c2a4c7bd523e336240d596b95918d6884db17a0097855bbea893
DjB0xc27d63a2ca08fe35c7a994639b011d68e73ed480e6aff2b1927037ad824a196b
DjB0x3e7302b91b7825f5f52ab8e8085743f115d7fe58e3812cf279037b95ae0dcca6
DjB0xed618f3f54b7f47674662ff4721078e9a98ae36c7f55118ae7d0103f16f84dc2
DjB0xeb6240546871aa3e7b7fa8254af96d6e8099cdd277a50fec84d700823eabc566
DjB0x28376085bb8266faa842359f8c33d63a767754e6bbb13f6ede176e33ccb52f29
DjB0x75fad1fbd1e9474d04cd5ede72e77a5d476492129f3d1b91f1cf2f42d864333f
DjB0x5aac8981a2fe427098b146d471fad67e7c2ed38d76f22b386ac82d416db2b09b
$j"Qgda rejb zsa vrgqpg lpjdhwjusx h.
DjB0x11a2c5815949a1893dcaf26b6a37bd9fd633cb51bf7ec57016e62164f2b6cee93
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"18909500000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"130"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"80"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"SJYX","amt":"210000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5200000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"8"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"170"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"110"}h!
text/plain;charset=utf-8
D{"p":"brc-20","op":"transfer","tick":"
","amt":"20474404130.888"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"210"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"100"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"140"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"6"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"BODG","amt":"35000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"130"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"140"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"100"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"100"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"SJYX","amt":"20790000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"120"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"30000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"150"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"100"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"70"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
7j5x3The Gate is sealed. The Void has finished its work.
Z/Foundry USA Pool #dropgold/-
6j4mI4:to:USDT(TRON):TQNdRzT1tz87jEsJr5kx7wRH2MtsFGfC39
text/plain;charset=utf-8
FjD=:e:0xdDC3550EfA642E42FF6cAaB14dd744Dbd7F05eBd:170075/0/0:-_/t1:0/70
7j5x3The Gate is sealed. The Void has finished its work.
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"90"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"180"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"160"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"trrp","amt":"97500000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"1199999999"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
pwt1:seal5:72b2eec4b2a52b82ec47d029e7765d8a8a95c918dbf161eeb6f61b31407e26d1:eyJhbW91bnRNb2RlbCI6ImNhbm9uaWNhbC13b3JrLWFtby1wcm9vZi11bml0LWFtb3VudC12MyIsImFuY2hvclNjcmlwdFB1YktleSI6Ijc2YTkxNDU0N2UxYjhlNTMwM2M2OWExZmQwN2U4NzMwNWI1YjcxZmJhYWMwZWU4OGFjIiwiYW5jaG9yU2lnSGFzaFR5cGUiOjEzMSwiYW5jaG9yVHlwZSI6InNhbGUtdGlja2V0LXYxIiwiYW5jaG9yVmFsdWVTYXRzIjo1NDYsImFuY2hvclZvdXQiOjIsImJvbmRUcmFuc2l0aW9uTW9kZWwiOiJjYW5vbmljYWwtY29tcHV0ZS10aGVuLWJvbmQtdjEiLCJibG9ja1NlcXVlbmNlck1vZGVsIjoiY2Fub25pY2FsLXdvcmstYW1vLWZ1bGwtcG9zaXRpb24tYmxvY2stc2VxdWVuY2VyLXY0IiwiYnV5ZXJBZGRyZXNzIjoiIiwiZXhwaXJlc0F0IjoiIiwibmV0d29yayI6ImxpdmVuZXQiLCJub25jZSI6Im12MjRhdGV1LXUwaGJjbGxnIiwicmVnaXN0cnlBZGRyZXNzIjoiMTYzOFZuNkt0bUs4cDVyNG9HdkFYcTlubVpiMWVtVTFEViIsInNlbGxlckFkZHJlc3MiOiIxOGhrcUU4MXdRdXE3NVVFQktoQjRKakF1UWc0N2pON0FhIiwic2VsbGVyUHVibGljS2V5IjoiMDMzMjJmMzEzMjMxMGFiZTQ5ZmQyMWRiYjQ5ODdjN2E1ZjMyN2FmYzAyMjRiYzc0ODUxZTA2YjBmNWNmNGJmOTQ1Iiwic3RhdGVPcmRlck1vZGVsIjoiY2Fub25pY2FsLXByb29mLXN0YXRlLW9yZGVyLXYxIiwidGlja2VyIjoiV09SSyIsInRva2VuSWQiOiJkNGU1ZWJmMTFkMTA0ZDZhNjNmYjc0ZTQyMDk0MzY0YjI1YTVmNzE5OWEwOWU1YzBlNzE0MDg5NzI0NjZhOGI4IiwidW5pdEZhY2VQcm9vZnMiOjI1MDAwLCJ1bml0TW9kZWwiOiJjYW5vbmljYWwtd29yay1hbW8tcHJvb2YtdW5pdC12MyIsInVuaXRXb3JrT3JhY2xlTW9kZWwiOiJjYW5vbmljYWwtd29yay1wcmVmaXgtYmVmb3JlLWFjdGlvbi12MSIsInZlcnNpb24iOiJwd3Qtc2FsZS12OCIsImFuY2hvclNpZ25hdHVyZSI6IjMwNDUwMjIxMDBhNGY0YTI1Y2IzZmM0ZmVhYzU1NjAzYzY3MDJmYmYwMWFkYWE4MTBlOTIzOGU5MDExMDRjNzU0Yjg2YWY1M2ExMDIyMDQwMTk2YWIxYWVkODJkYWU1ZWM2MmE1ZDRkYmEyMmY0MDljNTE3NDQxNDAzYmQ2ZDM2NWFlZmMyNGQxNGFjMzU4MyIsImFuY2hvclR4aWQiOiI3MmIyZWVjNGIyYTUyYjgyZWM0N2QwMjllNzc2NWQ4YThhOTVjOTE4ZGJmMTYxZWViNmY2MWIzMTQwN2UyNmQxIn0
pwt1:seal5:2e646bfbe18e2095ab8e322a2c56fd489042d4d2ba6f6a0239701bde3c91e13d:eyJhbW91bnRNb2RlbCI6ImNhbm9uaWNhbC13b3JrLWFtby1wcm9vZi11bml0LWFtb3VudC12MyIsImFuY2hvclNjcmlwdFB1YktleSI6Ijc2YTkxNDU0N2UxYjhlNTMwM2M2OWExZmQwN2U4NzMwNWI1YjcxZmJhYWMwZWU4OGFjIiwiYW5jaG9yU2lnSGFzaFR5cGUiOjEzMSwiYW5jaG9yVHlwZSI6InNhbGUtdGlja2V0LXYxIiwiYW5jaG9yVmFsdWVTYXRzIjo1NDYsImFuY2hvclZvdXQiOjIsImJvbmRUcmFuc2l0aW9uTW9kZWwiOiJjYW5vbmljYWwtY29tcHV0ZS10aGVuLWJvbmQtdjEiLCJibG9ja1NlcXVlbmNlck1vZGVsIjoiY2Fub25pY2FsLXdvcmstYW1vLWZ1bGwtcG9zaXRpb24tYmxvY2stc2VxdWVuY2VyLXY0IiwiYnV5ZXJBZGRyZXNzIjoiIiwiZXhwaXJlc0F0IjoiIiwibmV0d29yayI6ImxpdmVuZXQiLCJub25jZSI6Im12MjRjcThvLXAweTd5aWI5IiwicmVnaXN0cnlBZGRyZXNzIjoiMTYzOFZuNkt0bUs4cDVyNG9HdkFYcTlubVpiMWVtVTFEViIsInNlbGxlckFkZHJlc3MiOiIxOGhrcUU4MXdRdXE3NVVFQktoQjRKakF1UWc0N2pON0FhIiwic2VsbGVyUHVibGljS2V5IjoiMDMzMjJmMzEzMjMxMGFiZTQ5ZmQyMWRiYjQ5ODdjN2E1ZjMyN2FmYzAyMjRiYzc0ODUxZTA2YjBmNWNmNGJmOTQ1Iiwic3RhdGVPcmRlck1vZGVsIjoiY2Fub25pY2FsLXByb29mLXN0YXRlLW9yZGVyLXYxIiwidGlja2VyIjoiV09SSyIsInRva2VuSWQiOiJkNGU1ZWJmMTFkMTA0ZDZhNjNmYjc0ZTQyMDk0MzY0YjI1YTVmNzE5OWEwOWU1YzBlNzE0MDg5NzI0NjZhOGI4IiwidW5pdEZhY2VQcm9vZnMiOjI1MDAwLCJ1bml0TW9kZWwiOiJjYW5vbmljYWwtd29yay1hbW8tcHJvb2YtdW5pdC12MyIsInVuaXRXb3JrT3JhY2xlTW9kZWwiOiJjYW5vbmljYWwtd29yay1wcmVmaXgtYmVmb3JlLWFjdGlvbi12MSIsInZlcnNpb24iOiJwd3Qtc2FsZS12OCIsImFuY2hvclNpZ25hdHVyZSI6IjMwNDUwMjIxMDBiZjZlNzgyYzhjMTg2MjI5OTFkMTE2MzlmZTM3YWE2ZmYyOTNlYjk5NzA5NjFjMjFmZTRjNDBlY2I5OTk5NjdhMDIyMDc4ZGQwYzlhNzEzNjczMzY0OGM5MmU0ZjU2OGExZjViMDZkZGFkNDU0NzI4OWE3MjBmNjFjNWVhOTg0NGNlNTk4MyIsImFuY2hvclR4aWQiOiIyZTY0NmJmYmUxOGUyMDk1YWI4ZTMyMmEyYzU2ZmQ0ODkwNDJkNGQyYmE2ZjZhMDIzOTcwMWJkZTNjOTFlMTNkIn0
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Super Blockchain System</title>
  <div id="status">Starting
  <pre id="boot-log"></pre>
    var LOGO_SRC = "data:image/avif;base64,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
dSrdTHevw36oWmKTd5tS3I25IM49v2got8nI+8Xub+BGi4VKBbZ7KN0eFCz14jM5Of1G/xbMf8N8PcRqes3gmgAx0J0RHrq/xMT/zCXFfgO5IV8YkX9LJPfHlYzNWsPG65AYzu8EIKs2oYC2zsh2lX6ySLfu0BW5KAyoOeg3vEDQDXgw6nR5OuHlGprtoWzpZIxIHGUx+930H1wGc3MbEbA9XxbLxN/fLiYWG0oiKzFRR40wFfdSUfL0dzrgjjfawSqQYB23y3ADdF2IxXM72CpxNmFVf2qGbT5oMaAV8A3zwbR7+RoNXha5zrfpMM9iiUCWcus7i3oLriIsy2BDDIta0Sp210sX6MwFgQcy2rUHWDplJVFvYG2eX5Lmh5D+R4QQ/QsMRle9CyoPHobj1JBs80hzyiEZkNcQQPpti4JuE3rwsxuONdtt6b/ehBVvyLLyl9fJXBaiFxkfPC7aA8ZqfEj3j2ypmUTjqjLvtZ4fP1RWNmKWdOS9753D45cM2J5p3jfnM
aY5r8sAkGIVYF9lSy+jZZTkJckMbJGss8IjPcI4uDkI5BI+aAEVD7Z/gjlIUrC2s4DooD9l2GCc0bDqqXZ08sG4sZMfiRi5pEm4k7GRuG6o3rF+rNs0U+7DrBukdKVsEaUUbD/SWPxiwqrY40dbyLKFeF0ZS9YeyVdnbZpDr3lC5OnaAY2LoZtni1FlXPvYuAPlkrSXoo2PQN6BJJAYMWaKJhtFm9oq8WCeu7InNYZHi9BOmpLIwf2hE15Gqzb2YQowfkGIMdAtY/pl7FH/01sLAC2OiXWL37wBoXUSPuqc6tJoP0otpaItSeZYB65MdMzQbH/+XKO27HVAv+gvMy53wMP4WQt9HTAwQQcaZf4LTMmObr1tE/yVzsw1dOnw1J+24nOCsSePf0WYBa7sDOGQTVEBLvOhgzPNkCTYnNczd33oRV7IJwj7xC98kC7Y3txbW4abirXXyKUY1Zcs5wXd88+Ms5t2i1cSjItowF+kvduP3G/CGYWIwHXjA1jkzRPDvQ5/UM
uTMJzqifuya3GsCvPnoarbhNnedBbuFxde/+P1bulgXOX0etM+NOtXMR1PEugAAABXm1kYXQ8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pgo8eDp4bXBtZXRhIHhtbG5zOng9J2Fkb2JlOm5zOm1ldGEvJz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJz4KIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6eG1wPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvJz4KICA8eG1wOkNyZWF0b3JUb29sPmV6Z2lmLmNvbTwveG1wOkNyZWF0b3JUb29sPgogPC9yZGY6RGVzY3JpcHRpb24+CjwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQM
    var GAME_POINTER_SAT = "833803395879715";
        name: "runtime-pack.js",
        mime: "text/javascript",
        byteLength: 620235,
        sha256: "ab744782dd7a96842867b025c572d722a1e2b27032b165d1e7428b0bcc0854b3",
          "e2040336f7113f2c85fb08664010cb220c4fb37378fc916bba2d7360f2ac9276i0",
          "423018d1dbb585d42373c00a7416daae71ceac67f43873a9ce24c9524f0b3c1ei0",
          "97491bc7b875aea59af827d862788f16f531eacbc0efca847b96f4a9f0M
        name: "snes9x-wasm.data",
        mime: "application/octet-stream",
        byteLength: 1093765,
        sha256: "eaa0bcfce67673809886e50387a80a616b719502175db64c090d04c9d75958ee",
          "8bd6794f2643219a12e2b60e2783a1fd3cb2a127a372715a3c901298f6f2a5d4i0",
          "54c241e32ef22ad48c9084512038807590d37696959c9951790155e3f0b45a9ei0",
          "3773ed320b249ddb5f88e37c09a56459b67962373a93db3ad4d61fcd4e05181fi0",
          "c1a6deeb8cacf7M
49c78acbba9e877831c9fa74c48cb5758451dbd1c29dc7fcdei0"
        name: "extract7z.js",
        mime: "text/javascript",
        byteLength: 280155,
        sha256: "4ac9933b995a516cb6b3ca4027db860278372a20c21c405d93ceb1998498853a",
          "e2e74dc2323f5ce565ee648b3d68db1ac8432017988ea625af94115714c30eb6i0",
          "eb6819aba2e4a69afa279235e5a35a59cfd1e100cc8ef8380e7fc8e42b9de223i0"
      pointer: null,
      runtimeLoaded: false,
      runtimeLoading: null,
      emulator: null
    function el(id) { return document.getElementById(id); }
    function api(path) {
      if (location.hostname === "ordinals.com") return path;
      return "https://ordinals.com" + path;
    function log(text) {
      var node = el("boot-log");
      var line = "[" + new Date().toISOString().slice(11, 19) + "] " + text;
        node.textContent += line + "\n";
scrollTop = node.scrollHeight;
      var status = el("status");
      if (status) status.textContent = text;
      if (text.indexOf("Error") !== -1) {
        var panel = el("log-panel");
        if (panel) panel.open = true;
      console.log(line);
    function createMemoryStorage() {
      var data = Object.create(null);
        getItem: function (k) {
          var key = String(k);
          return Object.prototype.hasOwnProperty.call(data, key) ? data[key] M
        setItem: function (k, v) { data[String(k)] = String(v); },
        removeItem: function (k) { delete data[String(k)]; },
        clear: function () { data = Object.create(null); },
        key: function (i) { return Object.keys(data)[i] || null; },
        get length() { return Object.keys(data).length; }
    function installHostGuards() {
      function lock(name, fallback) {
        try { void window[name]; return; } catch (err) {}
bject.defineProperty(window, name, {
            configurable: true,
            get: function () { return fallback; }
        } catch (err2) {}
      lock("localStorage", createMemoryStorage());
      lock("sessionStorage", createMemoryStorage());
      lock("indexedDB", undefined);
    function decodeBase64ToBytes(base64) {
      var clean = String(base64 || "").replace(/\s+/g, "");
      var binary = atob(clean);
      var out = new Uint8Array(binary.length);
 (var i = 0; i < binary.length; i++) out[i] = binary.charCodeAt(i);
    function concatBytes(parts) {
      var total = 0;
      for (var i = 0; i < parts.length; i++) total += parts[i].length;
      var out = new Uint8Array(total);
      var offset = 0;
      for (var j = 0; j < parts.length; j++) {
        out.set(parts[j], offset);
        offset += parts[j].length;
    async function sha256Hex(bytes) {
      if (!globalThis.crypto || !crM
ypto.subtle || typeof crypto.subtle.digest !== "function") return "";
      var hash = await crypto.subtle.digest("SHA-256", bytes);
      var view = new Uint8Array(hash);
      for (var i = 0; i < view.length; i++) hex += view[i].toString(16).padStart(2, "0");
    function inscriptionId(ref) {
      var txt = String(ref || "").trim();
      if (txt.indexOf("id:") === 0) txt = txt.slice(3);
      if (!/^[0-9a-f]{64}i\d+$/i.test(txt)) throw new Error("Invalid iM
nscription: " + ref);
    async function fetchJson(id, scriptIds) {
      var res = await fetch(api("/content/" + id));
      if (!res.ok) throw new Error("Content HTTP " + res.status + " for " + id.slice(0, 8));
      var text = await res.text();
      if (/^\s*\{/.test(text)) return JSON.parse(text);
      var doc = new DOMParser().parseFromString(text, "text/html");
      for (var i = 0; i < scriptIds.length; i++) {
        var node = doc.getElementById(scriptIds[i]);
 if (node && (node.textContent || "").trim()) return JSON.parse(node.textContent);
      throw new Error("No JSON in " + id.slice(0, 8));
    async function loadOrderedParts(refs, scriptIds, label) {
      var items = [];
      for (var i = 0; i < refs.length; i++) {
        var id = inscriptionId(refs[i]);
        log(label + " part " + (i + 1) + "/" + refs.length);
        var payload = await fetchJson(id, scriptIds);
        if (!payload || payload.encoding !== "base64" || !payload.dataM
          throw new Error(label + " part invalid: " + id.slice(0, 8));
        var index = Number(payload.part_index);
        items.push({
          index: Number.isFinite(index) ? index : i,
          bytes: decodeBase64ToBytes(payload.data)
      items.sort(function (a, b) { return a.index - b.index; });
      log(label + " order: " + items.map(function (item) { return item.index; }).join(", "));
      return concatBytes(items.map(function (item) { return item.bytes; M
    async function loadAsset(asset) {
      var bytes = await loadOrderedParts(asset.parts, ["emulator-asset-part-json"], asset.name);
      if (bytes.length !== asset.byteLength) {
        throw new Error(asset.name + " length " + bytes.length + ", expected " + asset.byteLength);
      var got = await sha256Hex(bytes);
      if (got && got !== asset.sha256) throw new Error(asset.name + " SHA-256 mismatch");
      log(asset.name + (got ? " ok (" : " loaded without hash check (") + byteM
s.length + " bytes)");
      state.assets[asset.name] = bytes;
    async function resolveGamePointerId() {
      var fromQuery = new URLSearchParams(location.search).get("gameId");
      if (fromQuery) return inscriptionId(fromQuery);
      var sat = new URLSearchParams(location.search).get("gameSat") || GAME_POINTER_SAT;
      var res = await fetch(api("/r/sat/" + encodeURIComponent(sat) + "/at/-1"));
      if (!res.ok) throw new Error("SAT lookup HTTP " + res.status);
      var json = await res.jM
      if (!json || !json.id) throw new Error("No inscription on sat " + sat);
      return json.id;
    async function loadPointer() {
      var id = await resolveGamePointerId();
      var pointer = await fetchJson(id, ["snes-pointer-json", "layer-info"]);
      if (!pointer || !Array.isArray(pointer.games)) throw new Error("Game list is invalid");
      var info = el("pointer-info");
      if (info) info.textContent = "Game list " + id.slice(0, 8) + "
 | " + pointer.games.length + " gameM
      showGames(pointer);
      log("Game list loaded: " + pointer.games.length);
    function setupLayout() {
      var root = document.createElement("div");
      root.innerHTML = [
        "body{margin:0;background:#101014;color:#f3f3f3;font-family:Arial,sans-serif;}",
        ".wrap{max-width:1100px;margin:0 auto;padding:14px;}",
        ".panel{background:#1b1b22;border:1px solid #333;border-radius:10px;padding:10px;margin-bottom:10px;}",
        ".row{display:flex;gM
ap:8px;flex-wrap:wrap;align-items:center;}",
        "select,button,input{background:#24242d;color:#f3f3f3;border:1px solid #45455a;border-radius:8px;padding:7px 9px;}",
        "input{flex:1;min-width:240px;}",
        "#local-rom,#import-save{display:none;}",
        "#status{font-weight:600;}",
        "#log-panel{margin-top:8px;}",
        "#log-panel summary{cursor:pointer;color:#8d8d9a;font-size:12px;}",
        "#boot-log{display:none;}",
        "#log-panel[open] #boot-log{display:block;max-height:1M
20px;overflow:auto;background:#0e1320;border:1px solid #2f2f4a;padding:8px;border-radius:8px;color:#b8ffc5;white-space:pre-wrap;margin:6px 0 0;}",
        "#game{width:100%;aspect-ratio:16/10;background:#000;border:1px solid #333;border-radius:8px;}",
        "#intro{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#000;cursor:pointer;transition:opacity .4s ease;}",
        "#intro img{width:min(920px,92vw);height:auto;animation:intro-in .55s ease both;}",
    "#intro.hide{opacity:0;pointer-events:none;}",
        "@keyframes intro-in{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}",
        "<div id='intro'><img id='intro-logo' alt='Super Blockchain System'></div>",
        "<div class='wrap'>",
        " <div class='panel'>",
        "  <div id='status'>Starting
        "  <div id='pointer-info'>Loading game list
        "  <div class='row' style='margin-top:8px'>",
        "   <select id='gamM
e-select'></select>",
        "   <input id='extra-inscription' type='text' placeholder='Another inscription: id
        "   <button id='load-selected' type='button'>Load game</button>",
        "   <button id='load-local' type='button'>Local file</button>",
        "   <button id='export-save' type='button'>Export save</button>",
        "   <button id='import-save-btn' type='button'>Import save</button>",
        "   <input id='local-rom' type='file' accept='.sfc,.smc,.fig,.swc,.zip,.7z,.bM
        "   <input id='import-save' type='file' accept='.srm,.sav,.state'>",
        " <div id='game'></div>",
        " <details id='log-panel'><summary>Log</summary><pre id='boot-log'></pre></details>",
      document.body.innerHTML = "";
      document.body.appendChild(root);
      var logo = el("intro-logo");
      if (logo) logo.src = LOGO_SRC;
      var intro = el("intro");
        intro.addEventLM
istener("click", hideIntro);
        setTimeout(hideIntro, 1900);
    function hideIntro() {
      var intro = el("intro");
      if (!intro || intro.getAttribute("data-done") === "1") return;
      intro.setAttribute("data-done", "1");
      intro.classList.add("hide");
      setTimeout(function () {
        if (intro.parentNode) intro.parentNode.removeChild(intro);
    function blobUrl(bytes, mime) {
      return URL.createObjectURL(new Blob([bytes], { type: miM
    function safeGameName(title) {
      var name = String(title || "game").replace(/[#<$+%>!`&*'|{}/\\?"=@:^\r\n]/g, "").trim();
      if (!name) name = "game.sfc";
      if (!/\.[a-z0-9]{1,5}$/i.test(name)) name += ".sfc";
    function isRomFile(file) {
      return !!(file && /\.(sfc|smc|fig|swc|zip|7z|bin)$/i.test(file.name));
    async function loadLocalFile(file) {
      if (!file) throw new Error("No local file selected");
      if (!isRomFile(fM
ile)) throw new Error("Use a .sfc, .smc, .fig, .swc, .zip, .7z or .bin file");
      if (!state.assets["runtime-pack.js"] || !state.assets["snes9x-wasm.data"]) {
        throw new Error("Emulator is still loading");
      log("Loading local file " + file.name);
      var bytes = new Uint8Array(await file.arrayBuffer());
      await bootEmulator({ title: file.name }, bytes);
    function ensureRuntimeLoaded() {
      if (state.runtimeLoaded) return Promise.resolve();
      if (state.runtimeM
Loading) return state.runtimeLoading;
      var url = blobUrl(state.assets["runtime-pack.js"], "text/javascript");
      state.runtimeLoading = new Promise(function (resolve, reject) {
        var script = document.createElement("script");
        script.src = url;
        script.onload = function () {
          state.runtimeLoaded = true;
          resolve();
        script.onerror = function () { reject(new Error("runtime-pack.js failed to start")); };
        document.head.appendChild(scriptM
      return state.runtimeLoading;
    function stopRunningEmulator() {
      var emu = state.emulator;
      state.emulator = null;
        log("Previous emulator stopped.");
        try { if (typeof emu.pause === "function") emu.pause(); } catch (err) {}
          var loop = emu.gameManager && (emu.gameManager.toggleMainLoop || (emu.gameManager.functions && emu.gameManager.functions.toggleMainLoop));
          if (typeof loop === "function") loop(0);M
        } catch (err2) {}
          var al = emu.Module && emu.Module.AL && emu.Module.AL.currentCtx;
          if (al && al.sources) {
            Object.keys(al.sources).forEach(function (key) {
                if (al.sources[key] && al.sources[key].gain) al.sources[key].gain.disconnect();
              } catch (err3) {}
          if (al && al.audioCtx && al.audioCtx.state !== "closed") {
            al.audioCtx.close();
    } catch (err4) {}
      var box = el("game");
      if (box) box.innerHTML = "";
    async function bootEmulator(game, gameBytes) {
      await ensureRuntimeLoaded();
      if (typeof EmulatorJS !== "function") throw new Error("EmulatorJS missing after runtime start");
      stopRunningEmulator();
      var core = state.assets["snes9x-wasm.data"];
      var extract = state.assets["extract7z.js"];
      window.EJS_paths = {
        "snes9x-wasm.data": blobUrl(core, "application/octet-M
        "snes9x-legacy-wasm.data": blobUrl(core, "application/octet-stream"),
        "snes9x-thread-wasm.data": blobUrl(core, "application/octet-stream"),
        "snes9x-thread-legacy-wasm.data": blobUrl(core, "application/octet-stream"),
        "extract7z.js": blobUrl(extract, "text/javascript"),
        "snes9x.json": "data:application/json;charset=utf-8," + encodeURIComponent(JSON.stringify({
          buildStart: 1,
          options: { defaultWebGL2: true }
 gameUrl = blobUrl(gameBytes, "application/octet-stream");
      state.currentGameTitle = game && game.title;
      state.emulator = new EmulatorJS("#game", {
        gameUrl: gameUrl,
        gameName: safeGameName(game && game.title),
        dataPath: "",
        system: "snes",
        filePaths: window.EJS_paths,
        startOnLoad: true,
        threads: false,
        disableDatabases: true,
        disableCue: true,
        disableLocalStorage: false,
        hideSettings: false
    log("Emulator started.");
    function downloadBytes(bytes, filename) {
      var copy = bytes instanceof Uint8Array ? new Uint8Array(bytes) : new Uint8Array(bytes);
      var blob = new Blob([copy], { type: "application/octet-stream" });
      var url = URL.createObjectURL(blob);
      var link = document.createElement("a");
      link.href = url;
      link.download = filename || "save.srm";
      document.body.appendChild(link);
      link.remove();
      setTimeout(fuM
nction () { URL.revokeObjectURL(url); }, 1500);
    function requireGameManager() {
      var emu = state.emulator;
      if (!emu || !emu.gameManager) throw new Error("Start a game before using saves");
      return emu.gameManager;
    async function exportSave() {
      var manager = requireGameManager();
      var file = await manager.getSaveFile();
      if (!file || !file.length) throw new Error("No save file yet. Save inside the game, then export again.");
      var path = "";
   try { path = manager.getSaveFilePath() || ""; } catch (err) {}
      var name = path.split("/").pop() || "game.srm";
      downloadBytes(file, name);
      log("Save exported: " + name);
    async function exportState() {
      var manager = requireGameManager();
      var bytes = manager.getState();
      if (!bytes || !bytes.length) throw new Error("Could not create a save state");
      var base = String(state.currentGameTitle || "game").replace(/\.[a-z0-9]{1,5}$/i, "");
      downloadBytes(M
bytes, base + ".state");
      log("Save state exported.");
    async function importSave(file) {
      var manager = requireGameManager();
      var sav = new Uint8Array(await file.arrayBuffer());
      if (/\.state$/i.test(file.name)) {
        manager.loadState(sav);
        log("Save state imported: " + file.name);
      var path = manager.getSaveFilePath();
      if (!path) throw new Error("This core has no save file");
      var FS = manager.FS;
      var folder = "";
      for (var i = 0; i < parts.length - 1; i++) {
        if (!parts[i]) continue;
        folder += "/" + parts[i];
        if (!FS.analyzePath(folder).exists) FS.mkdir(folder);
      if (FS.analyzePath(path).exists) FS.unlink(path);
      FS.writeFile(path, sav);
      manager.loadSaveFiles();
      log("Save imported: " + file.name);
    function splitRefs(text) {
      return String(text || "").split(/[\s,;]+/).map(function (part) { return paM
rt.trim(); }).filter(Boolean);
    async function resolveRef(ref) {
      var txt = String(ref || "").trim();
      if (/^sat:/i.test(txt) || /^\d{6,}$/.test(txt)) {
        var sat = txt.replace(/^sat:/i, "").replace(/[\s,]/g, "");
        var res = await fetch(api("/r/sat/" + encodeURIComponent(sat) + "/at/-1"));
        if (!res.ok) throw new Error("SAT lookup HTTP " + res.status);
        var json = await res.json();
        if (!json || !json.id) throw new Error("No inscription on sat " + sat)M
        return json.id;
      return inscriptionId(txt.replace(/^(insc:|inscription:)/i, ""));
    async function fetchContent(id) {
      var res = await fetch(api("/content/" + id));
      if (!res.ok) throw new Error("Content HTTP " + res.status + " for " + id.slice(0, 8));
      var buf = new Uint8Array(await res.arrayBuffer());
      var head = new TextDecoder().decode(buf.slice(0, 120));
      if (!/^\s*[<{]/.test(head)) return { bytes: buf };
      var text = new TextDecoder().deM
      if (/^\s*\{/.test(text)) return { json: JSON.parse(text) };
      var doc = new DOMParser().parseFromString(text, "text/html");
      var ids = ["snes-pointer-json", "layer-info", "rom-part-json"];
      for (var i = 0; i < ids.length; i++) {
        var node = doc.getElementById(ids[i]);
        if (node && (node.textContent || "").trim()) return { json: JSON.parse(node.textContent) };
      return { bytes: buf };
    function showGames(pointer) {
      state.pointer = pM
      var sel = el("game-select");
      sel.innerHTML = "";
      pointer.games.forEach(function (game, idx) {
        var op = document.createElement("option");
        op.value = String(idx);
        op.textContent = game.title || ("Game " + (idx + 1));
        sel.appendChild(op);
      if (pointer.games.length) sel.value = "0";
    async function finishRom(game, bytes) {
      log("ROM bytes: " + bytes.length);
      if (game && game.sha256) {
        var got = await shaM
        if (got && got !== String(game.sha256).toLowerCase()) {
          throw new Error("ROM SHA-256 mismatch");
        if (got) log("ROM SHA-256 ok");
      await bootEmulator(game, bytes);
    async function loadGame(game) {
      if (!game || !Array.isArray(game.parts) || !game.parts.length) throw new Error("Game has no parts");
      log("Loading " + (game.title || "game"));
      var bytes = await loadOrderedParts(game.parts, ["rom-part-json"], "ROM");
    await finishRom(game, bytes);
    async function loadSelected() {
      var idx = Number(el("game-select").value);
      var game = state.pointer && state.pointer.games && state.pointer.games[idx];
      if (!game) throw new Error("No game selected");
      await loadGame(game);
    async function loadEntered() {
      var raw = (el("extra-inscription").value || "").trim();
      if (!raw) return loadSelected();
      var refs = splitRefs(raw);
      if (refs.length > 1) {
og("Loading " + refs.length + " parts");
        var joined = await loadOrderedParts(refs, ["rom-part-json"], "ROM");
        await finishRom({ title: "Inscription" }, joined);
      var id = await resolveRef(refs[0]);
      log("Loading inscription " + id.slice(0, 8));
      var content = await fetchContent(id);
      if (content.bytes) {
        await finishRom({ title: id.slice(0, 8) }, content.bytes);
      var payload = content.json || {};
Array.isArray(payload.games)) {
        showGames(payload);
        if (payload.games.length === 1) {
          await loadGame(payload.games[0]);
        log(payload.games.length + " games added. Clear the field, then load the selection.");
      if (Array.isArray(payload.parts)) {
        await loadGame({
          title: payload.title || payload.game || "Inscription",
          parts: payload.parts,
          sha256: payload.sha256
      if (payload.encoding === "base64" && payload.data) {
        if (Number(payload.parts_total) > 1) {
          throw new Error("Part " + payload.part_index + " of " + payload.parts_total + ". Enter the pointer or all part IDs.");
        await finishRom({ title: payload.game || "Inscription", sha256: payload.sha256 }, decodeBase64ToBytes(payload.data));
      throw new Error("Inscription does not contain a game");
    function reportErroM
      log("Error: " + (err && err.message ? err.message : err));
      console.error(err);
    function wireControls() {
      el("load-selected").onclick = function () {
        loadEntered().catch(reportError);
      el("load-local").onclick = function () {
        el("local-rom").click();
      el("local-rom").onchange = function () {
        var file = el("local-rom").files && el("local-rom").files[0];
        el("local-rom").value = "";
        if (file) loadLocM
alFile(file).catch(reportError);
      el("export-save").onclick = function () {
        exportSave().catch(reportError);
      el("import-save-btn").onclick = function () {
        el("import-save").click();
      el("import-save").onchange = function () {
        var file = el("import-save").files && el("import-save").files[0];
        el("import-save").value = "";
        if (file) importSave(file).catch(reportError);
      document.addEventListener("click", functM
        var button = event.target && event.target.closest && event.target.closest("button");
        var game = el("game");
        if (!button || !game || !game.contains(button)) return;
        var label = (button.innerText || "").replace(/\s+/g, " ").trim();
        if (label !== "Export Save File" && label !== "Save State") return;
        event.preventDefault();
        event.stopPropagation();
        (label === "Save State" ? exportState() : exportSave()).catch(reportError);
      el("extra-inscription").addEventListener("keydown", function (event) {
        if (event.key === "Enter") el("load-selected").click();
      window.addEventListener("dragover", function (event) {
        event.preventDefault();
      window.addEventListener("drop", function (event) {
        var file = event.dataTransfer && event.dataTransfer.files && event.dataTransfer.files[0];
        if (!isRomFile(file)) return;
        event.preventDefault();
        event.stopPropagM
        loadLocalFile(file).catch(reportError);
    async function main() {
      installHostGuards();
      setupLayout();
      wireControls();
        for (var i = 0; i < ASSETS.length; i++) await loadAsset(ASSETS[i]);
        await loadPointer();
        log("Ready.");
      } catch (err) {
        log("Startup error: " + (err && err.message ? err.message : err));
        console.error(err);
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"Manan","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"m
rs","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"omeg ","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"M
rs","amt":"0.000001"}h!
7j5orL:to:ETH:0x8040673a3aFac9BdA928486A23481f0DD50042cC
=j;Nyg:to:USDC(POL):0x608263C8C93bfFDaCE1829E8e420EeDD0F0cAa2A?b
6j4CYW:to:USDT(TRON):TB42bUnBL87Zn7cq9Bi21rTqrZFZGr6uok
6j4y5B:to:USDT(TRON):TTTZCUDR3QL9FD9LvyX2jnnfpDV9GkUryu
=j;RYc:to:USDC(POL):0x4821Fe00A1b045c16C8CdC877F2ABa37d914aD9a
6j4txG:to:USDT(TRON):TPnUVgkUnZZLaRfYo4f3yQSssoA5jGNNWh$O
6j4PPc:to:USDT(TRON):TSgRokNgoHrUhCWJdhCgnMiUQkXinQJzuU
6j4p0v:to:USDT(TRON):TX5KPkfyiMrgBqNbxsdE5uVX14SPrh4PpE1
DjB0x97c25dab8af1db482266673fd17838b085dddb017cb8ee11b51e9ff4e8fd87b9
8j6Vko:to:LTC:ltc1qggcpayfw7ehp23usczc77u7wx3v72u4ax6d345
=j;rTX:to:USDT(BSC):0xA1428B9fcd46d9bD9fF8c9081b98eb110Cf43c99
=j;RQ3:to:USDT(BSC):0xbB86EDE14a4dcf971f61f1f0D06DF292bC9a588d
2j0to:USDT(TRON):TNDsLzdF6zokAM2V4oN9bajw1bEVFcXwQV
2j0to:USDT(TRON):TP1JhHtZPjV3XtRznBrWavurFw6Yv4LzRD
>j<=:BSC.USDT:0x9d1D47e1b7A26D790829F20C8e61C6f284ceb86d:0/0/31
9j7to:USDC(POL):0xd9806A61912C72d5D1eDa124cb082b4a9D3e6A77
?j=from:20.3USDT(BSC):0xeb93b3b7778eCF92476159A4aeDeB75E45c2343b
DjB0x3ad8184ecec7bb3b7018aeee3929b85475309816bf8bccfd159d9e775f8cf666
DjB0x7e4f7b6fecb8d06fe3ceb6a7b8ac33338b558edd085f566c32a9e7c3470d7461
DjB0x92e574e1be3e77fafcbcb452a4e40590219576c43da643ea4b6ead81f000fe82
DjB0x8aaabf4c1f9cfe6b4e40640ae3a1dc91ad794c58698692d4bcf68d43c30edd30
DjB0x7be3e041389bec9b1dbc096965aa7a2d0a00d3fa367431d5989c7419584f96f2
text/plain;charset=utf-8
DjB0x25be5e75f8607fec252f8d29bc3f442607ae12174ad61ee134801185eefaed37
DjB0x7947f47347b193cacd3b56a071f274b2bd32a496d12bd414a160c2cf5f41cddb
DjB0x1fab3895576dc8442d5035b3b350b8857c8dd2ccaa660a5d058117d355fab2b7
DjB0xe5f74eafa32c448809eb055b1e237a8b899601db184f2b44da24877de6e277b5
DjB0x7ec3d1710b52b5701b5ec80718b35f6b9ba194e03b5f3696984ca7c4fb5f0fef
DjB0x2ed8ca1646bb9d5ed50e8797fa25db4f40ed728547ba05d66594f522933bf278
DjB0xd7033306b3e056b6e0ca046f62b5ee829a273b5a039fd24b7a390cf37434a9ea
DjB0x2d464ffeeed24bbdb3a6a67dcb15479e4d2f07e8ca9c808d2546cb0bf7b57018
DjB0x062acff19fce16b9a48da86e86e3ebad9bada1c597bd858e2db519734c92b674
DjB0x58c0cfaea09a1083f35dea8482dbb6ee4f6315a84264936a3a5c2ea3cc729a22
DjB0x05f5734419fec68a6ef86b571ed7ab7eccb18120b266c7521ebba09b92423408
DjB0x5c57e69e8ec6fd0f03e879dead93443415557da6d8a809702b684da3ff269b763
dnameqBlockchain Titanskdescriptiony
Blockchain Titans are fully on-chain generative 3D portraits on Bitcoin. Each mint is its own inscription. Sat, block height, and inscription number seed the Titan: house, Rorschach ink, kit, and world.
The engine is a recursive HTML/Three.js renderer on a reserved sat. Each wrapper pulls that engine and uses its own inscription as the seed. Head, inkblots, and accessories are inscribed GLBs. Nothing off-chain.
One inscription. One Titan. The chain writes the face.fartis
-tgRichArtfsocialhrichbi11gwebsitekrichart.app
<!DOCTYPE html> <html lang="de"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"> <title>BLOCKCHAIN TITANS</title> <style>body,html{margin:0;height:100%;background:#0c0a09;overflow:hidden}iframe{border:0;width:100vw;height:100vh;display:block}</style> </head> <body> <script>var SAT="1136789107062472",FALLBACK="bc4676a1cb9e7154b13834d00357909419dd048935da2ccd548ea4458914369ei0";function ownId(){var t=(location.pathname.split("/").pop()||"").trim();retM
urn/^[0-9a-f]{64}i\d+$/i.test(t)?t:""}function pack(t,n){return{type:"head:setInscription",source:"wrapper",id:t&&t.id||n||"",number:t&&t.number,sat:t&&t.sat,height:t&&(null!=t.height?t.height:t.genesis_height),timestamp:t&&t.timestamp,satpoint:t&&t.satpoint}}function hashOf(t){var n="inscription="+encodeURIComponent(t.id||"");return null!=t.number&&(n+="&n="+encodeURIComponent(t.number)),null!=t.sat&&(n+="&sat="+encodeURIComponent(t.sat)),null!=t.height&&(n+="&h="+encodeURIComponent(t.height)),null!=t.timestamp&&(M
n+="&t="+encodeURIComponent(t.timestamp)),n}function boot(t,n){var e=document.createElement("iframe");e.src="/content/"+t+"?mint=1#"+hashOf(n),e.setAttribute("referrerpolicy","unsafe-url"),e.allow="autoplay; fullscreen",e.addEventListener("load",function(){try{e.contentWindow.postMessage(n,"*")}catch(t){}}),document.body.appendChild(e)}function isId(t){return"string"==typeof t&&/^[0-9a-f]{64}i\d+$/i.test(t)}function metaOf(t){return t?fetch("/r/inscription/"+t).then(function(t){return t.json()}).catch(function(){reMw
turn null}):Promise.resolve(null)}var wrap=ownId();fetch("/r/sat/"+SAT+"/at/-1").then(function(t){if(!t.ok)throw new Error("sat "+t.status);return t.json()}).then(function(t){var n=isId(t&&t.id)?t.id:FALLBACK;return metaOf(wrap).then(function(t){boot(n,pack(t,wrap))})}).catch(function(){metaOf(wrap).then(function(t){boot(FALLBACK,pack(t,wrap))})})</script> </body> </html> h!
dnameqBlockchain Titanskdescriptiony
Blockchain Titans are fully on-chain generative 3D portraits on Bitcoin. Each mint is its own inscription. Sat, block height, and inscription number seed the Titan: house, Rorschach ink, kit, and world.
The engine is a recursive HTML/Three.js renderer on a reserved sat. Each wrapper pulls that engine and uses its own inscription as the seed. Head, inkblots, and accessories are inscribed GLBs. Nothing off-chain.
One inscription. One Titan. The chain writes the face.fartis
-tgRichArtfsocialhrichbi11gwebsitekrichart.app
<!DOCTYPE html> <html lang="de"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"> <title>BLOCKCHAIN TITANS</title> <style>body,html{margin:0;height:100%;background:#0c0a09;overflow:hidden}iframe{border:0;width:100vw;height:100vh;display:block}</style> </head> <body> <script>var SAT="1136789107062472",FALLBACK="bc4676a1cb9e7154b13834d00357909419dd048935da2ccd548ea4458914369ei0";function ownId(){var t=(location.pathname.split("/").pop()||"").trim();retM
urn/^[0-9a-f]{64}i\d+$/i.test(t)?t:""}function pack(t,n){return{type:"head:setInscription",source:"wrapper",id:t&&t.id||n||"",number:t&&t.number,sat:t&&t.sat,height:t&&(null!=t.height?t.height:t.genesis_height),timestamp:t&&t.timestamp,satpoint:t&&t.satpoint}}function hashOf(t){var n="inscription="+encodeURIComponent(t.id||"");return null!=t.number&&(n+="&n="+encodeURIComponent(t.number)),null!=t.sat&&(n+="&sat="+encodeURIComponent(t.sat)),null!=t.height&&(n+="&h="+encodeURIComponent(t.height)),null!=t.timestamp&&(M
n+="&t="+encodeURIComponent(t.timestamp)),n}function boot(t,n){var e=document.createElement("iframe");e.src="/content/"+t+"?mint=1#"+hashOf(n),e.setAttribute("referrerpolicy","unsafe-url"),e.allow="autoplay; fullscreen",e.addEventListener("load",function(){try{e.contentWindow.postMessage(n,"*")}catch(t){}}),document.body.appendChild(e)}function isId(t){return"string"==typeof t&&/^[0-9a-f]{64}i\d+$/i.test(t)}function metaOf(t){return t?fetch("/r/inscription/"+t).then(function(t){return t.json()}).catch(function(){reMw
turn null}):Promise.resolve(null)}var wrap=ownId();fetch("/r/sat/"+SAT+"/at/-1").then(function(t){if(!t.ok)throw new Error("sat "+t.status);return t.json()}).then(function(t){var n=isId(t&&t.id)?t.id:FALLBACK;return metaOf(wrap).then(function(t){boot(n,pack(t,wrap))})}).catch(function(){metaOf(wrap).then(function(t){boot(FALLBACK,pack(t,wrap))})})</script> </body> </html> h!
DjB0xf06115826bd36a1a43c2238909844af235934559de90a20d61ee0cbe59e48149
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Trum","amt":"4945"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ctdl","amt":"50"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Trum","amt":"2104"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"3690000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"36P9","amt":"3000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"36P9","amt":"3000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ctdl","amt":"68"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"ro
t","amt":"0.000001"}h!
]/Foundry USA Pool #dropgold/H
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ordi","amt":"938.2"}h!
FjDOUT:954828D29CFEC6A7811CA076AA9CBD822CF5644270DE2265388B491FB54F1969
6j4BDK:to:USDT(TRON):TR1joP4a3yTiuQ72CghNzHYACcreMrF7ey]
6j4hfk:to:USDT(TRON):TSgRokNgoHrUhCWJdhCgnMiUQkXinQJzuU
6j472Q:to:USDT(TRON):TFTFBQhsfyUdFrkLqmSFxFs5vLtTs2b9zHV
6j4iYj:to:USDT(TRON):TQDXDNv854rB4G8rfHakntgCxRMogrtUJe0
6j4Kqe:to:USDT(TRON):TWAVozFf4tp9pDcoJFqrZxRPVB6BkjWNf4
6j4j1Q:to:USDT(TRON):TFheWdWGA1u1gnxjWnqJvPgEr6EECZZW2c
6j4XWw:to:USDT(TRON):TMTnCTi9KXUnRQxeAo6Qw5X5RKpxQHC8CL
=j;Qk0:to:USDT(BSC):0x56cAeBAa81D3104a8C34d3653C03B9C01197cCA1fO
=j;xvX:to:USDC(ARC):0x78702E6B722C36a095fEEdDB7d4273d7A376b668
=j;Nmd:to:USDT(BSC):0x47d08eB5635e348B5523Fa074c3E0bDC46eA7C94
=j;u9v:to:USDT(BSC):0x7Ac749Df8E05E28a4152211218fcFEb3A1998a7f
=j;Nxa:to:USDT(BSC):0xb8f6474cEA08424BF54977B138dA6b2Afd670447
FjDOUT:700C9905D20BC1D0BB976BB0221C2F8C92913CE838A56FDCA9818EBDE8AC8FC5
FjDOUT:C682A46822F3EE4BCB12ED48B7D3EFF8719B6444B8ACF1EA4B26320285DC3A6D
=j;vAg:to:USDT(BSC):0xa5769d55fEfEC790891bc4790e8d6C73Ba8DDF41
4j2to:SOL:N9sA2LJxqLLbgEXygw43X3UarFjGwYixrTeH2wz2p38:
:j8to:USDC(BASE):0x8AD7Dad09e79DF81f789161Bc7744F7e7ac61f0f
DjB0xcbdb825c9245d274e09069daf70ddf76acb67d3b91d7338dd2ab92581bf95978
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"500000000000"}J
DjB{"p":"crc-20","op":"transfer","tick":"BONS","amt":"1082079136691"}J
DjB{"p":"crc-20","op":"transfer","tick":"BONS","amt":"1118916820769"}J
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"250000000000"}J
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"400000000000"}J
DjB0xee3e8925358d9f5384d2f7418245dd06a67c33482863d573a520e076d8eecfea
DjB0x9927397f5f7b2803058a8d34b8476cb3949340557cc9cb92ba9b5cbaaac6c544
{jLx0x9ebad079166f941b792e1a2f85f20ef0eb21e80f2237989778d7afde6a70b653|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
text/plain;charset=utf-8
DjB0xce97058d558566842f295194acf6d9f97f239b236e318bd3cc2ae4dd7526bb29
DjB0x44ada272510bd2cb707dfce09580c119ff1e363387cf4b900f73e8118003f6c5
DjB0xff8ee0a126d436f9594f20c018c3c823d06181f67fb76d246812ea61dbaf5618
DjB0x893e9302ebab1c99f701e18475fccfa6c7b1b49fdf4055bd4ff99549995cbbb7
DjB0xa877a3b79975cd2a13ff394b00ba591b30b8e95569d359815c9d3b7c57870c3b
DjB0x838d671f692fb3152705db4c6d69dd6664ed2a4a0b366e1a9581c7320126d00c
DjB0x4bd1460e3cebc50095b801cad0c738132750638fc93d5370c14e6dc4796a3567
DjB0xafa9b6acf08bb321d4859e90f5e9d7a1a356ab88203a963222b10ec547007048
DjB0x9f46819ecfa5495ff3f8970c57a987d6dbab31927f3227e58452ff2266246864
DjB0xb1a2c957bb88aad0f80af393c1b7c835166945c55910301b85ff571594d91292
text/plain;charset=utf-8
LP{"p":"brc-20","op":"transfer","tick":"sats","amt":"94045164.981334340561864866"}h!
text/plain;charset=utf-8
LV{"p":"brc20-module","op":"withdraw","tick":"crypto","amt":"2000","module":"BRC20PROG"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"ordi","amt":"102"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ZBYY","amt":"5"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"232"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"W
ed","amt":"0.000001"}h!
]/Foundry USA Pool #dropgold/0
FjDOUT:51F162060D4C149ABC96DEECB247763EB71D3D39992A8A64AD97808FF9895163
DjB0x9927397f5f7b2803058a8d34b8476cb3949340557cc9cb92ba9b5cbaaac6c544
MTLD_BATCH_2_401469_401473
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1196.2"}h!
6j4aqU:to:USDT(TRON):TPx55VL9AZxJeXssRRffXtWY61PNj16SK7
9j7OLj:to:SOL:4sUJs4Bu35MW7UFVDgyrM9SDtM1uEUpmPohFN2MwVGMH
6j43Bl:to:USDT(TRON):TGbkLZ1qoEo6NaSQMKJ9uzypcpuu7caELQ_
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ordi","amt":"938.2"}h!
9j7from:281.8USDT(TRON):TU3ruconFfcCVKzajX8N4mM7WJzUuQyyW2
?j=from:25.8USDT(BSC):0x4b6d71f9b9a4bdFD1C8E96D6F1e93b07f0BAa4b5d
FjDOUT:846A73298324AA6BB842459D3D9D7C9408C9DDC4F697FDF3B98AB857E7D7DE75
6j463r:to:USDT(TRON):TEhpfiHnyDS72HhcF3tTu7Qqp6aoYWRokV
/j-g7U:to:TRX:TYkVV4K4xbRzuzfmKqD8MvbpgT6SnWBTx8
FjDOUT:821438B22DE2E68C9A5A8FBEF8D5B548CC8E1A9220F582A5921F020AF4265B9D
FjDOUT:2E3DCC86AC93B0882C9E65798B70D6B0EB23BF42DB91C836B2BD0E4F5513F023
FjDOUT:CF87E966C3BD63CEC2A6C4E0623249A61AD2147FCDC72FE1470C23813C861576
FjDOUT:28A776AA4775FC60480000E30DF34C90A9B3201CF403BF867B7F0A1C1A21CD36
6j4E7H:to:USDT(TRON):TFdc5jHoWPa84u7VS5T6vTwjokrck2sznPL!
6j4W1X:to:USDT(TRON):TLQHfuAzv4tqpEHTSjVzcBF35LbWjG5bHY
8j6bbM:to:USDC:0x98C4aBd6990144B8904F56bD0f28EE2d11939DDE
/j-ims:to:TRX:TEqrdnEyfcu8GnqwNpxHrf7ViWTgBx8V7v
/j-g7F:to:TRX:TXcec3G4D74aHqesWzrBmTgWpTX8cE75rXN
/j-eaw:to:TRX:TYYhq2b17tbHQdbTUsyjXZNw7WWabsv4a6
=j;6wg:to:USDT(POL):0xD83767c66372108629EaBA80950dC4505173cc5c
6j4UEc:to:USDT(TRON):TPM78mQ5Jh5J5Dz9KLnCKHJyczFD8eUur3Fs
6j4e2a:to:USDT(TRON):TVyeqNdq9AAnvC8zfUoK1yfgkhtGEFE1jb
6j40QK:to:USDT(TRON):TYNaFtoo7Wqu3kpVz7V5zHrZDbBDBFs14S
6j4eiY:to:USDT(TRON):TMmsyLsjCnEsQUu4vzzUQXZCvHQCfTeSFuh
7j5mTr:to:ETH:0xEAC2d49fC93a1D7A49FCb7B0851fA8489e00e60B.f
7j5kY2:to:ETH:0x870F55d29049646CDe059Bc32844db20e4FfcB14
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1.8"}h!
<j:vNK:to:POL(POL):0x5374a6aAf993769ddecE872c515826199F1ae5D5
=j;ATK:to:USDT(POL):0x64e413961F14E70Ae3b3f222dD2dA2b444637d19B%
=j;U3a:to:USDT(POL):0x6897d1eA9614a19F9dd18254005FF55a079e746B
=j;fLG:to:USDT(BSC):0x1d8ba56B73F348F9d73C22C411302548eA53A425
=j;Xim:to:USDT(POL):0x01A405bd305ac41871FcFAAe7587dD768e90e6b3
=j;CJR:to:USDT(POL):0x18a9aD0e2a8B7f4c5CC51A164B3106C2EB9b4642
>j<z6F:to:USDC(BASE):0x2Ad9156b043bd7EcE40b31F9C7883C9dE1A13036
=j;9un:to:USDT(BSC):0x3c2f144AeB706a3171fA88Da019921f3d71d45ed
=j;acT:to:USDT(BSC):0xAB210c85d6fB7950C5Ce8Ad3e33853cF559727A3
<j:jHf:to:BNB(BSC):0x0c76C7C50D84403626c925b2142a42ca85dB25b7
2j0to:USDT(TRON):TQyW1Z3AssGsddoFJSRaZhEthxcxiwa3LY
=j;fdG:to:USDT(BSC):0x4f7Fb1C1296305F8AcB745A85a594e1EC46Ad134
4j2to:LTC:ltc1q8eq33yqa9rd3vjawmuq6hw8ylaytt3zjkk0xsa
JjH=:u:0xF5faE1f3bbBf6aFB3e804ACC8b9353E203dB9F95:4058597337/200:sk/t1:0/70
2j0to:USDT(TRON):TDpDe48u5AQVtyWq3t1uuqewgy8pAvv4pF
MTLD_BATCH_4_401475_401478
2j0to:USDT(TRON):TP4sJY36SLia2DuoMuHamjYxdCjaec74ae
DjB0xefd643c6e6d98ebf8352716da98f791b256e0d54a3d515950aa9c9618bab5b8f
DjB0xc3a7f4ce16bf3b76c9df0d9d04e5fe22e4b01c70ae232867c2c697d6b5cf8aaa
LjJ=:TRON.USDT:TCxEz2x5xMyUNHZFDWg3uAXrfARhXWRPYh:176419585400/0/0:-_/t1:0/70
DjB0x81580b3145e49b47d8e95444b64e01218a3c209f4c6fd0268e10b431adbe5911
DjB0x31a0aa322fc98faeba1dc81c1a65a61b47b065c18517cf1d777bcef62c36df28
OjLL0x6252bdb609e4845ad331a2abe9d55a50e2e32ada242d5b54f362fa3d93b64188=|lifiP
.j,{"p":"crc-20","op":"transfer","tick":"SEAL"}J
DjB0x9055012ab5dad4d95d8abeb82240c71fef1e4c41d5eade01c7335c4575b23e0c
DjB0x84269c7fbbec040cd03e8f6de606448c089f574b1a729748ced8d9104ab8b663
DjB0x4e36ab047d98389488f6ff7f840ad567b8c0c9af3cd279d94176e71eb6dfdbe7
DjB0x0a70bec415e88fb3b7ca644499ed7bac17b8c6f443bca15c1403a8200642db16
DjB0xe7d42cb68fb23c36f3a58a7694c97a49f0fde366ae586ce4b98348d5c76b141b
DjB0x506f0a439bacc8c33b81896c17fa33298ddba7d816460b9f765573f0e193ded5
DjB0x28499da5f8f8747a7bb6a07b1e16079c93f76f94442ce557b324ee853518814d
DjB0xb25966e96028f05dea9c08e4c749723e7a5aa6b7d0624379ea21b85df2caaec4
DjB0xf9cccf1e72ec95529852af3f49d27c66625ec16f0b872d3f4b1397983ef869b9
DjB0x3deb28d72f1909602ea0e16f1f1d58dd54a0b52cc5d5c5c0dfdadd46cee1edf2
DjB0x9ec19a68cb12a4f4a8f923a55abc4d786d7543423434611fd198625aedad7586
DjB0xbfa1fbd51cceaed2f1fcfe0b523e9b95f946f99816597be93e8732312e53a7c4
DjB0xa9daebae7dfdbc8c4a708174cfdff38ea8000854fa1dabe2d38defb734ae265a
DjB0x261d5005e2125fdc304ca7e589046ae7140b3ed4dd528b02076c85790436a829
DjB0xeae2d2ff9a9fdd906f0bc52d1e44e651b9b5592467c916995cf53705e468d6e7
DjB0x60e481c985a1be683e57a2f272ceafaed25182be301046e463e1c180ff5e19e2
DjB0x6b1d0973864064192d6409cf4d67451f42606f4e913ae9bf52c15d86aa6ce73d
DjB0x32a618cd2ba74de3b1d5263232125daba19b3bc6c60ece94462853ced44ae7bb
OjLL0xfb00cd86ba403c54e14bb8dd3b0232b0762bbdf5a632cac3ef47671e361464ee=|lifiX
OjLL0xe01be3b41f769c47bb9bdef96c8e9cd00a59e4da90545826b11461658636ddf7=|lifi
OjLL0x5718fd1fd367412e2d5ff4b5e79c99dbaed7decb54df8ef7f9a24e6d54724c4a=|lifi
DjB0x17b628b5d8b358171c62894dcc0badccdf9dcceaef4426a53a67545b05bf0aef
DjB0x0f6283f2c966fd912a9ad1253813b619b5c23739b00154cc7d95039252ac7a44
DjB0xdee603e35acf4249155c810d26fdc7994e2c7425098878b4351d7abc92da23f8
DjB0x1f937aa0da28735009701f59bc6c10b65ccbb9d8028745becc37a2591048dda2
text/plain;charset=utf-8
DjB0x529ca87b311846ea9f591fade8847187b85003902248cc32e50d9e1c8ba4defe
DjB0x70c79522c75d25a028c0e3a7d956ef0ecbed0401306444e76eee523de2d72fc0
DjB0x6281c90bd388f1fb540025e5e36c1757e6bc01919babb587be14422c5767a91b
DjB0x08ccda29c73768d03c55c2cd83faa9f0e2cb00326f309aff72e32facf9821ce9
DjB0x285bf5e592f0e803e441ed51eef80f23eb1f29f506810116aa1db134f1d5e48d
DjB0x5c39f1038404c232c9c5e7b5ec3d6ef4fd277ac93742a0df9deeac83879d5b64
DjB0x86007991c5c89f551b27fd6d40f05c034d884577909904c2859936c0303aded4
DjB0x1946037a66d7b47d22a4a3a54b4c6a26bad6434287463c214e702c1bcb51563f
DjB0x22472b12605fc82863305dc94c6458e418ca8d6ccdf9967057862a1ba413a8bb
DjB0xad56c5bd7b54663820cc4d1416aafb1b0a32a7ec90505ef0acbc66bf5a953620
DjB0x57a100b6bfe20f44813f5b4527e91e048cb4cb20be16aeb6aae6bdf2b657338c3
DjB0xb41ed1b165c62c77f76b2b0f76c506fd7d1de694609513601a1fd6691cd2d9413
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"5000"}h!
d/Foundry USA Pool #dropgold/
MjK=:ARB.USDC:0x5131775a51737d0815cec9e7c3fa86ed5382c2a8:96916494708/1/0:sto:0
6j46FP:to:USDT(TRON):TED7YBACdKE8XZvZVj157a8nrVssSdbqCp
6j4szg:to:USDT(TRON):TEqrdnEyfcu8GnqwNpxHrf7ViWTgBx8V7v %
FjDOUT:0ED0B88AE191A8FED8FE256CB4F9EC669634BE313AAB21D5CC2CEC0723C989DE
DjB0xd057e60476fd7ebea4ca932cf4b0b43fdd99651c0879b1f5b5ced5c9f77be392
/j-nKc:to:TRX:TBVwaWXspu49AXe8WuAJtwRPyD41nixjsz
/j-CZf:to:TRX:TVPMqYkJMUz9zx1XAHJHDpGQj7EHCy9Fk9b|]
=j;DkJ:to:USDC(POL):0x4821Fe00A1b045c16C8CdC877F2ABa37d914aD9a
?j=Hmw:to:USDT(ERC20):0x4613930340CecBC81bd1138b20E2069e230dCA00cR
6j475Q:to:USDT(TRON):TJc7k1NReHUZTgNVuz3ZhakW3Kr1ViDMxwr&
6j4DxF:to:USDT(TRON):TED5XK6qgzZPHz6Fs87cRd7AaCKjV6iYEP`
6j4cK6:to:USDT(TRON):TMsEY67q5nRdvWCgUUET1vhcY8ZW55ehbG.
6j4o9t:to:USDT(TRON):TG4cS8WXayTyRJb6yjNRGMdPDb7ih27Hcf
DjB0xfcacb97d569170cae97843ed4e6aeb2724b6763168a979f1209f294de8fc71d5
9j7e34:to:SOL:FZTayePDzFaBcwMyXo8xpGK1FtgwR82n6FLgjmCXCqTQ
=j;2f0:to:USDT(BSC):0x3c2f144AeB706a3171fA88Da019921f3d71d45ed
?j=hfC:to:USDT(ERC20):0xf2456085481Ce862FD35B47637dd194E154bFa6Bbs
=j;HRt:to:USDT(BSC):0x83732A2553C4DfF0630d0f9880653EF2DE94AC9A
=j;0fY:to:USDT(BSC):0x0c76C7C50D84403626c925b2142a42ca85dB25b7
6j4Cuq:to:USDT(TRON):TWzeH8LWr3m3Dyso8FVKqc2Pnbekap9F6R
6j4I4b:to:USDT(TRON):TU4YW2bM7dpALNMVvPUDbgEZFKCuzQUV28
=j;2sa:to:USDT(BSC):0x1025C52BFF8d49058Bdb94a99f58324f196409fb
=j;g7G:to:USDT(BSC):0x080AcED8A6a264a3d832B81d98A6453e2bb53EA4
2j0to:USDT(TRON):TKWji5kcvrQqfpJkcovKTbFzU6rKCqfGzt
FjDOUT:88F4AA5BC1AA503263E819BCB2EF02A4B0F6CD3C20F0524F0E9C717E37B907B6
9j7to:USDT(BSC):0x2Ed35150b70ABcb3fCd68e60254cfa2d783cEd28
DjB0xcf8f373e999c27225de88c48fef29008c44ae31f43664634c8eebc5725530b5f
DjB0xde86e916c797cc40fcfe67cc9d302f24080a6585bfb5a573e0a5535e8eadf0b3
OjLL0x31e43bb0cbd4070641ed2a9b2db48b945eeab6adbc882bf312546a712e0a818b=|lifi
DjB0xc9b346e869507d83d5062090db08ae0e2728561269fa6ba8ac4f46bd9f8d4b1e
DjB0xccdd77634499c3be92912607d3d3da6befaedd7ec6d36bf84c8bb3c1dbabec27
DjB0x61b4f7abfbb33894e00ed6a57798457fe9ed4e58afdb6715e0fa37a2416c7316
DjB0xd3d869e2512c56cc615c7e085905b603dd8c5cb64ef088deb49d0cacb4790996
LjJ=:TRON.USDT:TTgWJgEe3Ay6ZhwcqLqvP8mBX3Kj7vwAfR:583823698500/0/0:-_/t1:0/70
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"700000000000"}J
DjB0x222731e99e99653ead236ef312517feaafbbf067e5d930f1cd56b24be7de422b
text/plain;charset=utf-8
DjB0x411cf4655163dc53aaceb699012d170cb42d8ee181731d540f136d2b03b900ac
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"285"}h!
DjB0xbeceef12bc558990f84c2c9128d0b5c4122626acbbf35327322cbf2022d5f840
DjB0xfb2d0f2c007cb3def7ec45f8a7bf3871bf31a3ddc41c397c8363ffd53a2bf482
DjB0xdce8bd7111e6a87bb49af081565f223cac2a5a40b9e86bca1ef86cdc3ea33390
DjB0x32d8d21ff8f62b45049b32a786aac56f738d884071782bb7e23603a6efc7853e
DjB0x3b8c147ec73b10f5c94a5de714a917141a4a024fcbd7f8b30a5aee50c22f5d04
DjB0x438f7f66fcca2409fe18acf9d8128d595a5155e872e27a24cad003fdf3ecaf2a
DjB0xa240932e642af664727765bcff3e2d65eff5fd1bc8ae4e659554b6dccf67286e
DjB0xb24f35023921b5e3bb46b09f497ae1449f7243d0995a66609f4de0e342157479
DjB0x64db6f294c7499249df6f255bac4eb678d9869467b3a65409ea0de59b4cc3a2d
Bj@=:tr:TCkEMHPGnXJU221DP9Sh8tSBYCrXenUK9p:722703700/0/0:-_/t1:0/70~
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3990000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3688800000"}h!
DjB0xc8cbee4de001be6f98eaf617ae441f50718f9d42bc556aca4622c4ced2f4aa11iYv
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"4400000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ZBYY","amt":"5"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4999999999"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4999999999"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3999999999"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZGLB9","amt":"398"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3580000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5860000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"1000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"50"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"163"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"30"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3333333333"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"10000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"114000000000"}h!
DjB0xa39f134eb3be41eaa5e855931cd5caa2c91640e0b155581ced4517a425b86cf3
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"15"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4500000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"CRYPTO","amt":"2000"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"baby","amt":"420000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3500000000"}h!
=j;x9The sixty-four hexagrams sealed.
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"85000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"
","amt":"0.000001"}h!
6j4Qzl:to:USDT(TRON):TBVwaWXspu49AXe8WuAJtwRPyD41nixjsz
6j4Cz5:to:USDT(TRON):TXMVjcijBShgWM4cQgiwp2Kdq7Brp6P3dL
6j4rWm:to:USDT(TRON):TJFnTwKBF9pvGQaBTk1bVzwUBcyyeGRpbD
?j=from:20.5USDT(BSC):0x1Ad71897E21611D99475D783fe075051A05ef3B9<
=j;from:20USDT(BSC):0x092Df36Be92615C5f71f1023f27531899495f743
DjB{"p":"crc-20","op":"transfer","tick":"LEAF","amt":"9379600000000"}
MTLD_BATCH_2_401483_401467
=j;rDn:to:USDT(BSC):0x1218D09682E1090080c4FCfe93407CB71Ac6034b
FjDOUT:0D3276C0BA32656DA09E4446473D23D671CD349B43A488054142900DAE506AB5
FjDOUT:E46A2E2CE32CC5696B402298BAC891539DBEC5FD15E1A1AAA4D4FB053CFD05D2
FjDOUT:20D2AFBE14C15BFD9F0B2A61CDCEA65EDE3E12A068B1202F6648541A33F89479
FjDOUT:DAD9C65E8B7698F69D40CE563CF11A14FAADAE1E4F45708A41785896EB2F0D9E
FjDOUT:14B87DC74ED51226D488048D87D4D03DAD21B982553B56D5E2B00B184201B182
7j5q7b:to:ETH:0x81BA6d92D6a1F7f53810A6dAD515F29c984d57fE
JjHOUT:72A226FF92C2109806CA1133067FE952FCF01468D84929112E2F55A5D72BA904|d10
FjDOUT:2F7CC5AE7AD25A7A58E2B7C4BCC2CF7FB0446B513C561CF4B83087FD73FB4ADA
/j-XGh:to:XRP:rLKgwAgV27gSe1YBznwrDMqPdyVhBkJjjy
/j-5z4:to:TRX:TTV1C54TzmAvnA2crnVLNRDpFztA3szX6F
/j-YyP:to:TRX:TC2gXf1k9vtzSQofiTpj3mYBpmxNHCo61z
/j-un1:to:TRX:TVPMqYkJMUz9zx1XAHJHDpGQj7EHCy9Fk9
6j4nI6:to:USDT(TRON):TDfW9J83xd77KQ98V6q1kDNakWuujaTaJu
6j4lnC:to:USDT(TRON):THjcrsEsyAT1qutUAZsbFWPZaXuNFWZY7p
6j4de2:to:USDT(TRON):TLzrT1c3i2B66mWfEe2CVBuj2oUHqGaWX98V
6j4QED:to:USDT(TRON):TBg1Xars4Vr3a4AEGh7E5c6WGt7LQCRDLi
6j4z21:to:USDT(TRON):TWAV5Nw2tWcoJQ7o1WSP14S4Z8mAMBdQExI>
8j6YM5:to:LTC:ltc1qzyfwjas2z5crfms93hs67kf8azx7c9kh40sd7m
8j6YaJ:to:USDC:0x5acef9657a0aAb820a50654824169657Fba96ac2X
=j;O80:to:USDT(BSC):0xEF112b56e9D1ce2360ABc8ae17c62D2B2FB34167
=j;NYR:to:USDT(POL):0x6897d1eA9614a19F9dd18254005FF55a079e746B
=j;z7n:to:USDT(BSC):0x0c76C7C50D84403626c925b2142a42ca85dB25b7
>j<ycP:to:WLD(ERC20):0x5A1936C3Af6020D5DdA7BF99135aFb7b98acd125s
6j4zTF:to:USDT(TRON):TW4dCL9Xp2YuoPXYMbjZkWsyXQR8cXt65c
<j:OAS:to:BNB(BSC):0x6E7D32671dc13901A45c5B1e0A811f12989d612E
9j7to:USDT(BSC):0xFA64C4628a2bdc71BeD0d2a2619b2a73e9Ad8513
CjApzs:to:USDT(TON):UQBqS6zAEc6k1JAXDvNDe3IGZU6bmsfHxuavydsJnGWup9Fr
6j48Oq:to:USDT(TRON):TPSRJ9bx8AT2bgeKpMJzabb1FQsC7Xnyo6
2j0to:USDT(TRON):TBDyD5JVY2qzVgwSkEvsnBxaU6BvSXEVZS
=j;hht:to:USDT(BSC):0xb750b5C3220Ed296F46c5e315e8174927c1D048e
=j;7oy:to:USDT(BSC):0xb652df3Ae06fF20373866e36778f493f3D7C91ec
2j0to:USDT(TRON):TA2Te5oMCnRiFpYFxV1PxyjchqWEBdTXCy
2j0to:USDT(TRON):TLPS2eKwxfJimyg5PRF5y5Eww7BhzCALsi
CjAGHX:to:GRAM(TON):UQCrqnL_MxJdle7e6mb0d2bSvOxnACPQorI36UlVin7_jTA3
+j)to:TRX:TPpTAsjpt8oYwNdiUNsgmqJoy9xQXYs5K1
+j)to:TRX:TBhH78EaA5154H57wFQppMy6DAP5yKKrtK
2j0to:USDT(TRON):TWzeH8LWr3m3Dyso8FVKqc2Pnbekap9F6R
2j0to:USDT(TRON):TEh3Tx7bQy3D5aUZ1yquao1D6FAFLwfScE
FjDOUT:7E48A23B4CD8F4D5C0742222818A46C2295AEA28498FAEA05E7FC18A33DB6EE2
DjB0x8938fb39e11c8b6572cff0cd77cc470dde09838b21c8f90b3027da7f492d2592
OjLL0x6d0669fd43cd450c5b253f01695407258102dda75e11293270dac156675ce56f=|lifi
=j;=:r:thor15cpmpyjhu3qu44fhh8mnjdepasq3z53wcftpgt:0/1/1:ej:75
DjB0xa64c7ebb8d9edde21bcc12b7c44b975714b4185316c738743ccef24d23ebd404
DjB0x08444ab248d805b59660bb2402a77f139737ad99d341820d2099d5e415d5a4c3
DjB0x6653ca42cbb94edec6515a88071bdcc047366c4f77a53a8f42cf5cdbab988c87
DjB0x96b286862040bd72d4e0c06eef20021ce9165a53fb2526a79c8ae62c4e1f76f0
DjB0x85e535466412a558621c3f2aa30b856c1661eb214710e841eba69f39512af72d
DjB0x129b70cc9b8afbdda2446dafbd8cad682d86a71ed4abd014c2b143bce4d05578
DjB0xf6e92b91d93f713ab838e8cf0892896cb3b2e0e663b042975d6c0354b4a94f40
DjB0xc82cc322b06f3aed13b2144f2038c64842730b4b7bb6e4bad6c31cc5b64f0183
DjB0x172cb80a409d8a22348a483395166b5be7a08d6ca3bc02d27d9bdf8388bde1ec
DjB0x721ab7a7db35ccd3bc2d7a9751f08f41d8a2aa969d749396e78fe0dea9fd3b32
DjB0xaf2cd1e071b6d3db1640e1e90628e881fd618d39dcb630026eb227bf4b2fd873
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"881082981714"}J
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"700000000000"}J
Aj?=:x:rnK8GuGhZKJJjeB89uA9nw92qGRTciRk14:285279000/0/0:-_/t1:0/70
DjB0x5b6bfe456fd7ad322c30b38601121310e3dadcfc5fb6a57e818349973576d824
text/plain;charset=utf-8
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"350000000000"}J
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"500"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"285"}h!
DjB0x438c14f76f6076ade2a74e302ef3cc3bb22893c69e88a00b24ce3ea0eb05627d
DjB0x645aef375f1c4c3fd5d39f9e5f2245b2e621a60e56360bd509a5aa4eb5a79165
DjB0x8a4ef8cd3ed89a314c13c31e3422aec64010268f13e906b22dbb131da5b1efa1
DjB0x9e3062c5a38e2cb4a707f9705a078131a550eb874c7479636f6230098fc85314
DjB0x98e997f15fbb181c29784131c2747ee6f4fe8562b65e1fd2fefefcdfa6b39f18
DjB0xdcc1dafa61cae54f5f1e9e266b6765585b7fbae4a72f8d2b5dbf33d2cf7e42fa
DjB0xd2f26f50cf5e0e0a29dbdbdf8616602078adcb8b88058248abc7982e571a6ad4
DjB0x320c43e3c67157bd4c24252ad17be1448e2e020641b65694112bb42aa4af5f8e
DjB0xaef1cecc2f2b7b5d396cb7f3caa92fcb86de4c9a23c823ecd025697ec5021956
DjB0x60f77cf4467e41b853ff2449577f155ce09d4f7b421bff7c62802e2700281e3d
DjB0x17766bcb75bf7fe33c045c0b639bdb46c5aa489f6ce3a74bc4b3cb68ce0a0fd6
DjB0xe6f04976907dba7f42db6fb6b231d5ec23b36c044b64af621b20f8b43200d298
DjB0x7c9c241bd90434908a9e7e0dd2ed5d560d335cff76191b10e6058e8ee58c27d1
DjB0x3bda8c3d7c9f44579c8739ef70d412bc52986ec517b147940180e2b11173f224
DjB0x614224d2e8d53e53b4fd03bb932762757854a6cf8e72c2ebdd966158dfd0c8f5
DjB0xa39c01f6977bbae391f10109f10b265d59cb6999fd93345e497791faac20ec6f
DjB0x34668b71a889ae748dd834553f8b688310812926529faefcbc4d004a8acd4c9f
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"TAOV","amt":"10"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"EYTS","amt":"1"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"10000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Ally ","amt":"300"}h!
DjB0xbb6f11f713bf194f68b7dddaf43b4be1f549f1610ca0d3b0f2b966745e246ada
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"SJYX","amt":"10"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"17"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"20"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"SJYX","amt":"10"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
l/Foundry USA Pool #dropgold/2
=j;NYl:to:USDT(BSC):0x3914E82f873c237BE4b91BE16a73E1FC57CC6E8a
6j48xN:to:USDT(TRON):TBVwaWXspu49AXe8WuAJtwRPyD41nixjsz
FjDOUT:728D0F1F3FDF89CE64597DF8ADBFF89CCE880F7C99ADBF9CC039462F376A2D5A
7j5from:200USDT(TRON):TD9qe6zATZVsVfFYPTEhouiXyAL5sEMpDh
HjFfrom:29.799673AVAX(C-Chain):0x0d1Ee7c78D626b6fa15FcB9E90B0c1a2F0454717
@j>from:175.7USDT(BSC):0x9db934c91e79c9073b6Dd4243EC6C7C104f1cDd1
7j5from:200USDT(TRON):TAb3AXg4x1bxkygsKdVdyZsj2DZS1yK13b`Pu
>j<from:160USDT(BSC):0xD2c78bfe62e75C1755f491a84e09308cC326CC2Bdlr
DjB0x7f827c6fbbe1c7af309c8021be44ca5430d223e156325ab4d449b13ea1769ca7
MTLD_BATCH_2_401487_401488
6j4DFZ:to:USDT(TRON):TYnPFD6czrjjcjHgsr2JgNsyWuE3fpfEYWt
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"600000000000"}J
=j;fKG:to:USDT(BSC):0xa71df7e6B20500C9acD034673f3b3Da369f20195m
FjDOUT:264F813CC7321FF3B1827761C3D209A7D3F2B7F31B8195319D358BBE5B034C76
7j54uA:to:ETH:0x84E3C3A046b0D6284c4e13d6f0A5a227fEEf7bF3
8j6jhn:to:USDC:0xa7657A39DdfEbA27EDb21Bd1598Fa76588318b36W
6j4Tov:to:USDT(TRON):TPnUVgkUnZZLaRfYo4f3yQSssoA5jGNNWh
DjB0x5bea4c1343624abdfa753411beaf9e81901e9f8ce5a3c203436beedf84fa60cb
DjB0xb81169813063d6f5abcb4fdad75cba7f92295cbc41bbef3cd606e18bbcfdaf9f
DjB0x7d37ec0a3d02e69f681322e9d66d6abb3c92ad42f64921ed6d41c3a2a98b5b0c
DjB0x10a24e4f411a453443889823b6d9e8dd11422c1bf9fbe3dc0817679f2ec95882
DjB0xddac62fa20f06590915f0b7f819d61761adb3f027c7ca81a70631843f24a44f7
DjB0x0e1bd5fe227fceadf71c906475a1985fa7d51afe008c48dea0c3219d0c9a0351
DjB0x6936d8d1580b477bd1f17711fa65bc9f43e01107c9103e39ca5214913151da01
DjB0x3a3932600382b53bc87fd4e0d1970f2d926f48a8fba7db2f58dea3f0dd7e0acb
DjB0xdfb3ac9de0591d928b88a528d372bb01e0771e43809d5598fd319a5944c8ceeb
DjB0x621ff6192af16775cfdadb022d3b47a505049b2e632d4f0517a274e456f191af
DjB0x40ece09790d724124154df4cd88731789ec1a3e0df4d0e8a62f1928201e0aadf
6j4noa:to:USDT(TRON):TFpabXWfCMM3CsdrQ6kYzieQL6Sb81S5ANz
6j4NW9:to:USDT(TRON):TVHvdpSbTa46pXXK9eW4H4EY4V1Bk9aMEx\2
/j-m5m:to:TRX:TCYFZMa2UzqcVSmxvDHbkrM5VjbWavN21n
/j-S9q:to:TRX:THScm5v1m9ew8T5Cd6cAyb1xNoHeaMmXmx
/j-lJU:to:TRX:TJ7he9wYWU7Xg1v9qTaPEMoYaGjAGF2JSv
=j;Xh4:to:USDT(BSC):0xfFc9b444D5D4d9ACee4678b96bdcF6f0dc16082b
=j;0Bf:to:USDT(BSC):0xA9Ef53A18B37f96DE5C35E3d34d99DBE75C2C807
6j4pcU:to:USDT(TRON):TWAV5Nw2tWcoJQ7o1WSP14S4Z8mAMBdQEx:
6j4ELI:to:USDT(TRON):TFPj4TFDucfM19CUiuyZ8aTpNiP9Uranrm
6j4EhZ:to:USDT(TRON):TBEE4CURY6FFBgi9d6UJpJCDsgkrX7c7nQx
6j4Tiw:to:USDT(TRON):TTWJJrEYi9djMADadVoJ2wW6C7egu6KxG3
6j4ktR:to:USDT(TRON):TBvVZXjzvvTEsDeXNG4fYeLNxmUouodu9R>
6j4VJm:to:USDT(TRON):TVCwPUh7rHuW2DwhEnYXjaVTBrTBhhVfiD
6j4IA6:to:USDT(TRON):TVBZ8AWmtvkF7Xu9v4hWHeBf8dKj3M15Mb
6j4rqP:to:USDT(TRON):TK64coyetA3YPvRwfBrQJjezAHgJh8gvSM
6j4YGx:to:USDT(TRON):TUD2LLqLjvdHnFDQTSKSeSYVHeuh6E5bnX1=
CjAniK:to:GRAM(TON):UQAjE7HKVqaFtyaeU2OKnietJAyN4GOrnoZfT_riIOPdKYmv
8j6DHG:to:USDC:0x5acef9657a0aAb820a50654824169657Fba96ac2
8j6bVO:to:LTC:ltc1que5z6lfcr0ev02x5sev5e6fgysnwe3x527tn6co
8j6Np1:to:USDC:0x80013464A558D7D0291180865a482cc02aC99625d
8j66bT:to:LTC:ltc1qav3gwyhfyg0nrrqns8g8fy79wjmsrzw7u3dr6m
8j6qaK:to:USDC:0x11207d3b4FaAc4D2cF774F1e1F533EeFF2A2ae86
FjDOUT:6BB271F13D2649F580EE150986CE598DBA222F6F14D91C66CDFAD6C96C2E50B0
FjDOUT:4D87A68ED7E23B72B9C38C650AF32CE563B0E539D074C4631EE8C84CD64BEAA3
FjDOUT:CD31759B3EFA4947DB71BF250CEA594AEFFA5B4B8E1105E503D096AEFAEC6027
FjDOUT:AAC0A3E8E7CF9E701A30DF095E9ACCE33CAE2D81E3E6E2A90D1F996F714DC7CE
FjDOUT:26A437A068F6D52E0EB373ECAB2B69890EBB90D75F553A84918A7C949B75FF93
FjDOUT:ACCFA78C20BC6F612D83C14E73256012398FEFEDAF691830571309551B3DC068
DjB0xdaacac78bab5cc656a3604e1d4638ed68da970167bda4f30ba40774bdb46bbba
=j;Yjm:to:USDT(BSC):0xadcfc4ACC87BD4ce2C9fCAA09E8ed4D08CEB77d4
=j;pL2:to:USDT(BSC):0xbcEDb3C86A716566f127Da7B6c8870f02da74980
=j;mFx:to:USDC(BSC):0x4b656f1A0d7B98B9050e9A20Bc0Fce9D7Ca3f7d7w
=j;TQn:to:USDT(BSC):0x3dF95A3D62108dd6e8Bd4d31471b812a396a3207
>j<rOa:to:USDC(BASE):0x97ca2F321cC16AeD88614A3919BD2387d30b0671
=j;Fad:to:USDT(BSC):0xbB888f4ca2e8c8575b9F28f06d5ED7AdF520f37fr
6j42tP:to:USDT(TRON):TVZfqnK3FWPseSx8TMECiwHpjz5erbnRm4
=j;wqt:to:USDT(BSC):0x044c0A44C84A0fE74819e7d0EB1F4E2DAF6260C0
>j<B1Y:to:USDC(BASE):0x0E46886FDBF1D4304D0CdE81D21B85fC8fE61B3c
=j;0yQ:to:USDT(BSC):0xc65b0271d23d41100f13B3476ce3A7eA5d94bDD7
?j=9Qe:to:USDT(ERC20):0xafbA38b537d780b2b4aD605b5c010d04f48C699A
?j=Pmb:to:USDT(ERC20):0x7710FB1276c67EB5B94A55DfF59c471B8baAFdAA
6j4Hi7:to:USDT(TRON):TPSRJ9bx8AT2bgeKpMJzabb1FQsC7Xnyo6
=j;Uj5:to:USDT(BSC):0x70B0BB983600BC5dfE86a1254CF29FDEc0E1e6BB
2j0to:USDT(TRON):TDePeqZDf8s6ZnAkjRCT9Hx8nnQoAb6FTK
6j4EEg:to:USDT(TRON):TF2g6559RSTUPsFDiAg5cuPtZdpJ7vxVcM
OjLL0xb5d1a1dca16530f65fc56f411ba24302c9bdcf2bc0bc655d110c5cb575e4163c=|lifi
{jLx0x90a784a77db6f55029560e0cfe7fab822e0824e5f49b72574b198be17e1b56d8|depositor=bc1q66qhzhqftnfd6283rfq5085vgwsud84wt0ngtf|
FjDOUT:D5758EB6BADB79B38495E0670EF6C151BAB2A0A9912A7657B5D1739B60CC8B4C
DjB0x94913d3e0bd9df5d8063effd9f1eee05eb05b879451658100b71fa0cde1497dd
{jLx0x280a8a22878b3663a1cc8e6859efa53a37e23eddc82d66d69fb0b892ff7a34d5|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
{jLx0x4e104f5dbe197e1f7498f428b3d6642c3003d9863371cb8c2dc8e7ec7ecce30f|depositor=bc1q6d2hsdyd4g34uxjp3wm6cuxhhu2g3hwesturqk|
CjA=:ETH.USDT:0xD04BC40b4E015FA95a42E4Eb26AfDba096c46a06:0/5/0:ej:75
HjF=:l:ltc1qsj03n6etmec4zs6kjlgys7cf257e59lf5s9sjd:1512983/0/0:-_/t1:0/70
DjB0x13640e60fc50d1764fa5cd824f51d64c5c5925cc228e91edac3517f77d949bad
DjB0x277b178b37b4d7b3a868ec1619d3f2daf97506c44436d4c6b734f2b3aadc88f4
DjB0xfdb80fea42e56ebf9032b12f2e821cbe3d59481628705ddecf5fbe0d9bb81a31
DjB0x2f04287ed7837a3cb11917ce147b3ae7631028acdc9a099a3a54fe1f49c6f150
DjB0x1f5cc0134dc47508ca30fc8813791de836af555a05c09f00d74049f562ddde8f
DjB0x1f081f5679469d0ae573d7d799b22936826ade7f1c01f29a85c3f704e22a3fe8
DjB0xedce91891502c56db6ae8e9afb4ae8d7c7a1fd1079d6cda4d4d2ca193fe70ef0
DjB0xa150a766e52a8af762c616594ff873e4bb6ca7c44660e654ec86d775722ff842
DjB0x0f78583fef34777f305582b1f8cd36d5cd897a6afa45aa1b1d6c05e4c5a6909c
DjB0xe50660ed9a3dbab4079f69f960c8566bbddf1c4ec9afbf84c9370f185bc90f6a
DjB0xb187b6cf06e791f6565eac22f01e4bd1ff3d63bdb78ce6f28b1f866b862734d0
DjB0xb9e299b67d77e92386bbd5cee9ac0b6c5d32d1efe27e8a1bb6fb1e2ccb16e9d9
DjB0x89174182ad06f8fd9839f99ed54ebdc878a413f21fdfb865fb53eb662df44602
DjB0xc94d098ed5cdb4a391a50b1788df63b35ffd0a3ab70e4fe8a74944b64b68c157
DjB0xd6088da387b3b3a093bdeab22111c1f9059aeaf4c85280a24e7724f1ce871e54
DjB0xde858ebd3b6d5f8ecc9823628e4b58d62a5f4b7245dfaa6eb031fa043f6692a0
DjB0xa7456b093411a2fb2de248fe5d9f7662fe6f99be5efb2cbf233595d6c76d87fb
DjB0x2a50b9ef7bcd0e7bd8f3b339fdcc00a91c1a683fabb42aa693a9f0168e878259
OjLL0x19692eb3e5573dde2c90b29ef67d9d934c41af5a5ee327fe247784a0f4d7bbb0=|lifiQ
DjB0xf53e6cc71fe8d3cacbec0ad0e8cc4c166ed1d07611254830cc3235f0652f26b5
DjB0x1ede5ef1327c82734ca1795874fd09001f1d95fb862213c0341bb436a43a8b16
OjLL=:ETH.USDT:0x3d9b82c7e9d5c9e4de1f8d504670f23f3386b335:173617178766/1/0:dx:30
{jLx0xc300be291c305633fd1a7e05af20e405e9921ff91f93e011b356db9f79a09bef|depositor=bc1qp9xs67pgcyrzk8he85qnqngtc47gmpgvtxqq9z|
text/plain;charset=utf-8
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"314"}h!
{jLx0xc06848a22347d63cbf6f9188885e6fc68921e10277c10933a839ec94a29562af|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
DjB0x5ce2764fd0639084f8fa057707229a32d4444a34441b804b9d9cb0760ddf8735
DjB0x11f65c92f45276a29b547d2e34ab365578aa29d578108f7d0ae8ad689d173ac1
DjB0xf3cad99e5ae5cb326b94e4aa21693c6341d370c15c1c9b1e70996b44c8ffbc26
DjB0x0c1ec22e8e4e5157cd5406ed2f03b6c81f237fd3e4ce3f68b6e00f9564efe0b7
DjB0xdf325e2eb6242663b916f7797cf68079c295822fa23baacb8ef91f409c1b6489
DjB0xd41361d0663e2740eed2890ad403a4a244ca5a466567e5a4d8032c71c694648f
DjB0xbf820d2944c56955f38867f27e6e6f926832740dc34dfbe7f2f3c831efbbfd04
B3baa9a6b6a6e0af751f68a759bbb2a8d8b640ac0f2aae7a119fbbe7b9964cee6:0a
QjLN=:BSC.USDT:0x91dD6E72601becFcc7c9f4292c0f70eb031B07CB:194183127/0/0:-_/t1:0/703
LjJ=:TRON.USDT:TKuprBTJSFBnHZvjd6C418s3ttJhdTYwB2:208005207500/0/0:-_/t1:0/70
j| MARA Made in USA
=j;w1J:to:USDC(POL):0x4821Fe00A1b045c16C8CdC877F2ABa37d914aD9anY
?j=rZ9:to:USDT(ERC20):0x88493544CE181Bd9A6BCfD9B84f0A33F067b10DD
2j0to:USDT(TRON):TEu7EBd5eyPE2bF7utVtcnKm7iztbrXzBP
DjB0x51108dd4ceaffcb2f59e0e8c6e0d653442787b05a94d737edfd89c781ee76181
text/plain;charset=utf-8
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"600000000000"}J
0x67231704e86f7c12d155a923826023ab7ab3b32ccc8ffeb4cc34163643d4d33a|depositor=bc1pyxtfezjtqqcrrstvtw0as47ryf5wgxpk3c6mrg980kz7lu89e08s67368x|
DjB0xdddaf36c8af6077bf1a527fab7fef3d19ddc55d70a1ec540807be3b6c5a0d7ecU
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"2000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"36P9","amt":"100"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5300000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ZBYY","amt":"5"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"20"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"2000"}h!
DjB0xc97e7c0aa7e7146042079acf439fab3dccb2c2ca0c0cb9d30dcd1e44f1d76ed5f
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
?j=XHR:to:USDT(ERC20):0xf2456085481Ce862FD35B47637dd194E154bFa6B
?j=FYp:to:USDC(SOL):FUuuXguokP8fZbRrkrHnYvZ1WPsUr8TZC66fjGqohMb1%
DjB0xf99c77e3c417f84ac967a9628a4fa972d6dd3851c45a228d5ae9e69bb2825d16
DjB0x1eb6056261b397d20eb857b8464d11cd1e3d11a789b11decba42bdddab5cff3c
DjB0x515ea6a9bd06d3d29be2ab3dcfdf7c0b69dc4a96c90cef9724b867f97d5724d5
DjB0xc82e804c3f05f0660b542006d0caf8934e0e3312b802ea96a138fcae2da3faf5
DjB0xafa84cffbbec3df09a3c45cd69c609b679f682ba25a5078b188cfebf1473f61f
DjB0x50b4f6a2a5066f03b23b9bc12f28dc001847fc5f3e1bd855f3780d2d0a19c951
DjB0x31c474e33641cde7fb8b1fbc22fe01924442646d0af24dc3c594ee8b0b1b9911
text/plain;charset=utf-8
DjB0x90dd471ceea5d8d1a404d6109dd5f8226a9123f42445003f5fc6ea26defe4b2a
DjB0x333af7c149117cf3a16b0bcf8530c28fa0b64a357c633196f4b6de11c7769e8b
DjB0x90a6154b506816cd5b5317e13b8838a339bc9f05573a4b77931478cdd292b73e
DjB0x2f80c54c7c72fa98177e89f65e1ae10f1575c1f299e241311b0cffc5ed78a9f2
DjB0x6c58879c58d2952f1188b553ebe21cbbc0f215d25e9e9cb58a3484a96eb6d4b4
DjB0x4cab85ea611aa7361aec3d76cbb24013d4c5bf63dcf10fda33ad361581d4b0ec3
DjB0x1a7ccd388382bdaf247b82dc0eb94bedfa263909fed5bc2ca277fb58f855d648V
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"1060"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
pwt1:list5:eyJhbW91bnRNb2RlbCI6ImNhbm9uaWNhbC13b3JrLWFtby1wcm9vZi11bml0LWFtb3VudC12MyIsImFuY2hvclNjcmlwdFB1YktleSI6Ijc2YTkxNDU0N2UxYjhlNTMwM2M2OWExZmQwN2U4NzMwNWI1YjcxZmJhYWMwZWU4OGFjIiwiYW5jaG9yU2lnSGFzaFR5cGUiOjEzMSwiYW5jaG9yVHlwZSI6InNhbGUtdGlja2V0LXYxIiwiYW5jaG9yVmFsdWVTYXRzIjo1NDYsImFuY2hvclZvdXQiOjIsImJvbmRUcmFuc2l0aW9uTW9kZWwiOiJjYW5vbmljYWwtY29tcHV0ZS10aGVuLWJvbmQtdjEiLCJibG9ja1NlcXVlbmNlck1vZGVsIjoiY2Fub25pY2FsLXdvcmstYW1vLWZ1bGwtcG9zaXRpb24tYmxvY2stc2VxdWVuY2VyLXY0IiwiYnV5ZXJBZGRyZXNzIjoiIiwiZXhwaXJlc0F0IjoiIiwibmV0d29yayI6ImxpdmVuZXQiLCJub25jZSI6Im12Mm1kZW5lLXg1MXR2YmRjIiwicmVnaXN0cnlBZGRyZXNzIjoiMTYzOFZuNkt0bUs4cDVyNG9HdkFYcTlubVpiMWVtVTFEViIsInNlbGxlckFkZHJlc3MiOiIxOGhrcUU4MXdRdXE3NVVFQktoQjRKakF1UWc0N2pON0FhIiwic2VsbGVyUHVibGljS2V5IjoiMDMzMjJmMzEzMjMxMGFiZTQ5ZmQyMWRiYjQ5ODdjN2E1ZjMyN2FmYzAyMjRiYzc0ODUxZTA2YjBmNWNmNGJmOTQ1Iiwic3RhdGVPcmRlck1vZGVsIjoiY2Fub25pY2FsLXByb29mLXN0YXRlLW9yZGVyLXYxIiwidGlja2VyIjoiV09SSyIsInRva2VuSWQiOiJkNGU1ZWJmMTFkMTA0ZDZhNjNmYjc0ZTQyMDk0MzY0YjI1YTVmNzE5OWEwOWU1YzBlNzE0MDg5NzI0NjZhOGI4IiwidW5pdEZhY2VQcm9vZnMiOjI1MDAwLCJ1bml0TW9kZWwiOiJjYW5vbmljYWwtd29yay1hbW8tcHJvb2YtdW5pdC12MyIsInVuaXRXb3JrT3JhY2xlTW9kZWwiOiJjYW5vbmljYWwtd29yay1wcmVmaXgtYmVmb3JlLWFjdGlvbi12MSIsInZlcnNpb24iOiJwd3Qtc2FsZS12OCIsImFuY2hvclNpZ25hdHVyZSI6IiIsImFuY2hvclR4aWQiOiIifQ"
pwt1:list5:eyJhbW91bnRNb2RlbCI6ImNhbm9uaWNhbC13b3JrLWFtby1wcm9vZi11bml0LWFtb3VudC12MyIsImFuY2hvclNjcmlwdFB1YktleSI6Ijc2YTkxNDU0N2UxYjhlNTMwM2M2OWExZmQwN2U4NzMwNWI1YjcxZmJhYWMwZWU4OGFjIiwiYW5jaG9yU2lnSGFzaFR5cGUiOjEzMSwiYW5jaG9yVHlwZSI6InNhbGUtdGlja2V0LXYxIiwiYW5jaG9yVmFsdWVTYXRzIjo1NDYsImFuY2hvclZvdXQiOjIsImJvbmRUcmFuc2l0aW9uTW9kZWwiOiJjYW5vbmljYWwtY29tcHV0ZS10aGVuLWJvbmQtdjEiLCJibG9ja1NlcXVlbmNlck1vZGVsIjoiY2Fub25pY2FsLXdvcmstYW1vLWZ1bGwtcG9zaXRpb24tYmxvY2stc2VxdWVuY2VyLXY0IiwiYnV5ZXJBZGRyZXNzIjoiIiwiZXhwaXJlc0F0IjoiIiwibmV0d29yayI6ImxpdmVuZXQiLCJub25jZSI6Im12Mm1iajJkLXR4cmt2azVyIiwicmVnaXN0cnlBZGRyZXNzIjoiMTYzOFZuNkt0bUs4cDVyNG9HdkFYcTlubVpiMWVtVTFEViIsInNlbGxlckFkZHJlc3MiOiIxOGhrcUU4MXdRdXE3NVVFQktoQjRKakF1UWc0N2pON0FhIiwic2VsbGVyUHVibGljS2V5IjoiMDMzMjJmMzEzMjMxMGFiZTQ5ZmQyMWRiYjQ5ODdjN2E1ZjMyN2FmYzAyMjRiYzc0ODUxZTA2YjBmNWNmNGJmOTQ1Iiwic3RhdGVPcmRlck1vZGVsIjoiY2Fub25pY2FsLXByb29mLXN0YXRlLW9yZGVyLXYxIiwidGlja2VyIjoiV09SSyIsInRva2VuSWQiOiJkNGU1ZWJmMTFkMTA0ZDZhNjNmYjc0ZTQyMDk0MzY0YjI1YTVmNzE5OWEwOWU1YzBlNzE0MDg5NzI0NjZhOGI4IiwidW5pdEZhY2VQcm9vZnMiOjI1MDAwLCJ1bml0TW9kZWwiOiJjYW5vbmljYWwtd29yay1hbW8tcHJvb2YtdW5pdC12MyIsInVuaXRXb3JrT3JhY2xlTW9kZWwiOiJjYW5vbmljYWwtd29yay1wcmVmaXgtYmVmb3JlLWFjdGlvbi12MSIsInZlcnNpb24iOiJwd3Qtc2FsZS12OCIsImFuY2hvclNpZ25hdHVyZSI6IiIsImFuY2hvclR4aWQiOiIifQ"
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"
","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"
udi","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"
ayc","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"
LAW","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"
","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"
ams","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"
eef","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"
","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"Z
us","amt":"0.000001"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"mint","tick":"
ENZ","amt":"0.000001"}h!
j| MARA Made in USA
6j4vyK:to:USDT(TRON):TPAYagTvapL5WgrdXKnkrzqHqq6sCvfm2ca
7j5WNz:to:ETH:0xEAe672099ACf5B0BA1CB93AF8adBf1b9a261c52f
6j40gR:to:USDT(TRON):TX4Y8kFjZ3Mp1dAwddaG86wqjB72Hw7UF4
6j4IqC:to:USDT(TRON):TVsZvrZGu1dRAZzHyYPwpyKPbJBuavWcWG
6j4hJc:to:USDT(TRON):TGyCgGQJtL8isDjVG6MQrDavztgqsPL5DF_
6j44bb:to:USDT(TRON):TTsGk1EqGiv9oxZxS3UpuTi6ZLVLzQGtsW#
6j4XdX:to:USDT(TRON):TCavbRmQYM9y47qWLpquSnZqUAjCjV15uj
7j5Jq5:to:ETH:0xB367cEb9414369E28826207624947A2AEb84Ee71k
=j;8P1:to:USDT(BSC):0x46cb941CB50D46142c8fe7CdF0882bdC2A206A12d
<j:SUf:to:BNB(BSC):0x67564B6bB86bB585bd7c3972cc1DC7cb27c8bd49
CjAbsT:to:GRAM(TON):UQBSSz0rbAqHNMLVhYKTheO3m-1z6lHq7FgtKGkyPkMMCsyM
?j=yud:to:USDT(ERC20):0x7fDC0Eaed344B641577749D1eFB599e894211A9EZ
=j;ETl:to:USDT(BSC):0x78B777023c9A17F81C23387E17e7a3163e22eF83
=j;2ks:to:USDT(BSC):0x0958780cC4CC5cBB274a3D6BdBaD78d59f5FA79b
2j0to:USDT(TRON):TXjtS8P9QsZzZKi8PMX9nETD62fg1cA7EV
FjDOUT:2BF06A83C05E709368138F27DF6619B203C9E429106C71F12377B3BE54FE799B
FjDOUT:148B29B399911A350BF6508B916497FF673A0C65CF912FF15F451F9883C69CD5
IjGOUT:0C1B10BB96F4E57DD83E7A545F459D0E971358F0055AA3B981F0D9FD1678F7FB|d5
>j<from:350USDT(BSC):0x0592580509E7198a4a5C2cb6AB31E857236c2E79
>j<from:316USDT(BSC):0xaa42450063C1fB0b897beA71c4Cc1541E456d44b
@j>from:107.9USDT(BSC):0xE82dE986eea33c63b0AB6edD04C8bA75C4326D0C
HjF=:TRON.USDT:TYsKD1TjymN3ghe24takojFPeqAvvNnUaB:49793100/0/0:-_/t1:0/70
Bj@=:tr:TAY5t1QJkHnbsXSvhMtLq2Pbb8VoRkR6SU:819151000/0/0:-_/t1:0/70
DjB0x40fc6b19bc1737a0d238e4cfc8dcb6e151bf4d905f09b549025a3f253068dbc5
DjB0x45f664da7081a4750f9d2eb916a03bdbd462c586c4d94af4168a62d2df787c11
DjB0x60e9a0ccdb768b15263c447e13f1318df2cc05043bb59c56da949f8dc1afefcf
text/plain;charset=utf-8
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"700000000000"}J
DjB0x8d99cc5454f81c9e15d62a51388c2160d20c18e9e9e036fb55866537f6763546
DjB0xe9419ff272fd50429ac1143c7e4ba4cfe428e05531f34e82f10a7066db22fc67
DjB0x52117648413c2d56f2cc912c983982ecee1d4422490f43dd04208026ff9fbfb2
DjB0x36a307e1142eceea78db6f6c9fb391c00e6602a89bfa465ae9dbbf8ece14e5cd
DjB0x7f35c2790be244fc94291682d7cc21627b6b5fc4a871dfb5c9179a99ab3928e4
DjB0x905bd417f981ce8ea9cb6763138e2c1a814e866d0a86c9ce6368da8198d6fbf1
%j#Ohojleoubv jwxkrheny ajhyyec n p q.
CjA=:e:0xb581c4A69e397e3B4813594179a792119736A239:25422722/200:two:0
DjB0x8312e0c79201b87744ee74838483957d96f077c459113955e332066a66a99ea0
E{"p":"tap","op":"token-transfer","tick":"DMT-NAT","amt":"2433023995"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"500"}h!
<j:=:e:0xcE15912E3D8e48eCF8F114499399dC1C770D557C:0/1/1:ej:75
text/plain;charset=utf-8
DjB0xfecb53a8c8a15ad6500cd251698e63b7598d8c1b20fc019ab86dca75275146ba
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"44"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"500"}h!
text/plain;charset=utf-8
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"44"}h!
MTLD_BATCH_3_401496_401498eq
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ordi","amt":"856.2"}h!
OjLL=:ARB.USDC:0x28d20f8a600205f1680157d36ff0db9dfa5a1e59:235311746274/1/0:sto:0
CjA=:tr:TWGkcrHa7ENd9D696qDBxTHXbQWdxkZ6xA:1203453800/0/0:-_/t1:0/70
6j4a2e:to:USDT(TRON):TSuh9vCVwX7yUzNPT3w581bftchJNDqrvz<
8j6EUQ:to:USDC:0x8a65f3E762BBdFb46146074b5C298af76663556B:N
/j-6BH:to:TRX:TAdWa9AyCCnPdFn9CB8MgFEKSsGXnqp9rSG
9j7from:926.3USDT(TRON):TYU9mJFYLj1wi8ZbrKNhtwx4xX3J8TTbZ7
7j5from:850USDT(TRON):TVznLEexdwFTSQmsmJEgtX5u8w2cHQb7zf
6j4hEp:to:USDT(TRON):TXSNxb3HAk1pKg2ZUKDrgKn4XS2aVt5xA5f@
6j431a:to:USDT(TRON):TSgRokNgoHrUhCWJdhCgnMiUQkXinQJzuU].
6j4evI:to:USDT(TRON):TRzTBgFwZ2WU9ShAvXcwYzbsx9VEsJJ2fq_
/j-KcF:to:XRP:r9sGJ95shodvfXtPCzWf4gnzFEqrAKyEn9p:
/j-j6e:to:TRX:TTnd8sGptpeocXztrGbBoRKvRBtRmJcaLQ~
/j-bt8:to:TRX:TTryPq7rbeHH6AvJFB2z6nyFwEY9C27sL7
?j=M4Q:to:USDT(ERC20):0x73Bc138B7B532651DFB54e8D2885c091D4714774
6j4R1K:to:USDT(TRON):TVwsTuYPnYqQApJQnHqxx9PmdixKpseSZz
6j4cot:to:USDT(TRON):TA3vJd9TGnfg29YUDam8RMMvW5j1HiAKsN
6j4Hun:to:USDT(TRON):TBhkmJCCoFFyuktZhczy5EGfPc3sa3Qkpu
6j48cX:to:USDT(TRON):TMw21crwa7D3JS5xHijAC6dUR3KbThzrTFji
8j6dg1:to:LTC:ltc1qjc488cms7ry8gztyendf6h24mykfuc3kqfhcx8
=j;eNe:to:USDT(BSC):0xFfa5F00B3DD0dDc616c8423829389128DcF3A406
6j4Y7q:to:USDT(TRON):TPSRJ9bx8AT2bgeKpMJzabb1FQsC7Xnyo6
=j;8ww:to:USDT(BSC):0x28A78A3D14d6C8036d9ECB703609d4a017B9cC27
6j4AaD:to:USDT(TRON):TSAKXvkcL2E6Ki6rjvwjsZBu2A2A3Ho5Nt
HjF=:TRON.USDT:TMjEupeEqHHeFz9bh5twzZeeMJ9Wcrmwa4:64264700/0/0:-_/t1:0/70
FjDOUT:1975D581CBCAF4E8D07BACE70C891E8374F714845CF096DD4B9B2BAEB2D4E246
FjDOUT:79C3A31EC9E7FEB88C90CE92F16361258CDF182F326381A608BA0093D53C4741
DjB0x913fb4797f265e42a29a866f2c501f298c46f2185489c8e26537b0dd42cea911
DjB0xc671568c0eda7537615c2e32acc268bd200ab6cde12057af372c3318a20c8555
DjB0xd84d56e05ed9d09e31f8889d27f4a6884bc958e4eb8c97fce53faa88122be47c
DjB0x276e5156e7770768c71e70418858adb2210722cd0b1f410c696609a27ed49e8d
DjB0x0dc5892c830d8b613d01b219bd3b3b348c8d11de11f44f0eaa9162bfd5861f45
DjB0xd90696f0b106e4afa2ee48c345f2ab308d5fe1abcd76060fedbe96be4b4a99c1
DjB0x7280671a004c91c00fb52245c058fb623b911fc4b816d707d23b0e4be8ef1cfe
DjB0xaadb250a19616c409dc30818e50f5fefb20731d3a067c825ca64706ec78aaa7f
{"items":[{"address":"bc1pnm24004hxt0a766c2yjx4nkrtqntx84vhq077e5j82nplmvzsnmscgdnvt","amt":"5742701","tick":"dmt-nat"}],"op":"token-send","p":"tap"}h!
=j;=:l:ltc1q0m56jtvrdlpwvwla5gsrvmvj36ddd8e3lvxvna:0/5/0:ej:75l<
5j3=:tr:TQPMTouS6ZoFziFVeZjMuD3WmdtsugPN5V:0/1/1:ej:75/O
DjB0x922340220e7f39fd19a04360fdf6f8a9c9b05f6ff2c6c7b508e610775a8f95a6
DjB0x306599243c2803bbb30f8438291d71dadc14ffff556791ee0cd398f2741fe6ab
DjB0xcfccdd824ad316548e18624e925a5533e7d08f66afaaa43a2ef3d3156a5eea9d
DjB0x3d22a9f8ccc4284dbd29cb525483794fae04c4dec8357041c3f6f2c0e3d7b67f
DjB0x77d4f6314d54a6817ac50dc41613ef9b3559069dc89d6e7a76cf79c949483211
DjB0x2f63188166d14696fee4cf3ac7c15c923477dede5f6999c3bc3c1783d4eabc43
DjB0xa998769de02f7cc25b330a42696faf8567ed1ca9b11cd5ab51951c05b5760a7b
DjB0xdbc1d1e2c36d1ed9c308857ce0eda4d5734f4e6140c2ffb2080d5c2265393ca2
DjB0x5d6a9d6b3e20e2a3dea12bb491b116f2156e6b2f8186a12dfd15ec54a49d2424
DjB0x6b94b3f2674eaf960fd6b5ba69e7c3d95322eb607713698da6df3743617f602c
DjB0x83d1894f8860867791d3f3359621d00766fe4bf47f58057f93049d7b7a7df92f
DjB0x289b50d9b696b791d2e0a408d80b7a55fca97bde48ba8d003ee90e805da5c424
DjB0xab55fbcf9dfb67830a8fab27ffd116631655989dd50cd5d1cc64cb3e75119dc2
IjG=:TRON.USDT:TU1ywNt74Fipv69T9dQs2GiXB3C8LgocXF:287446900/0/0:-_/t1:0/70
OjLL0x235e2739368139fe6e7e98b85f0f8e891a9b6b6a3900e0b061e11a5557a76c33=|lifi
HjF=:l:ltc1qutsp6tdgxfz3aeazlx20z7tftzajh073ctudql:3380483/0/0:-_/t1:0/70
DjB0xc538132f68565b3b39202ebcaf0f7ec7f0d9c29d02c7fc36bb08d260fdea3fd3
DjB0x18c8239460a03ebb6e13bfefb717dfcb3eee5dc620d3768b591a8bfba530eb58
DjB0x3dd2418f06fb91a7c885fd0a0b82eae714fca4eac1712184f7049967642494a4
Bf2bf4616af9f34afcaba4e618baca5018bf1815bcbb0270ceda963733b157b0c:0a
DjB0x127923cb08ae5159c23fb962a95f488df85183df7ff27e713641782491dd592d
DjB0xa2ca0418d51b6024b210c012370a199843f54f02b405fe96b7206de0541c4522
DjB0x0ffd3e0bd7aada78b03f89ba3f6761570b1c117960124c16d6f640e021904c09
DjB0x14790d80c63c4fdcab501ff97d3241d3c057518fcd8db832bc53fb48dfd38e2d
text/plain;charset=utf-8
DjB0x898d78fd4f40370bd2aca71a1cc0bcc680ab24af75a253f6c613c83eaedc8781
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"50"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"900"}h!
DjB0x86ff3c10c2f53f99686f7478457896c95238c8ca929e31df30290a7742d2c5bd
DjB0x98f6329615fdf8e7041d94e56cfcb98acbb3cdf3ff5dab109943ca1e667b3549
DjB0xf535338ce5c906054590d6e10446b3fb7ce94ee6d8a84368a617ac16297606f5
DjB0x1f8a81d358c281398adb1ca4fa587a200cded1e7396d6fa8d466f5f3f4752414
DjB0x623776972dfca0a35610f45ec756e3c85e7ce94925a92231f91e021675146139
DjB0xba8fbfa9686f56333031952c333ef4b9e636dea4c2bb052b72a3b1d033dac1b7
DjB0x3ce6e3e216609c4619c12a4af64741b9789c170a8d243ab0c577cabd46c2f07c
HjF=:l:ltc1qx4583dq74k45lx4nwt34xm9va4uqcf3yx3wujv:5617407/0/0:-_/t1:0/70
DjB0x076e50bfbdb7de2cedc712ee45f9d5b923b6f20caba0f5396c8c0ccece13d69b
DjB0x871733a857f3b3a0f22b10c411908573370d39f4a2c999cce12fb2b2f620631f3
E{"p":"tap","op":"token-transfer","tick":"DMT-NAT","amt":"7523781118"}h!
6j4bUE:to:USDT(TRON):TQBBB2opjUqgBjAH7qsUbaBFzjQ3Mg1ZyC
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ordi","amt":"856.2"}h!
DjB0xe36c2ec875c240a73ba7bc6bd05b95b19b84ec3bc410b846ee2ef7d276c6c6e3
=j;from:46USDT(BSC):0xb16fD81e48Ece9363C465921e3629A415Ea9dc55
?j=from:17.6USDT(BSC):0xf61A81e7EB7FCFECB1A4Be62A6887aE471d91Fa3
@j>from:315.5USDT(BSC):0xD5E808c0c5Fb504Fe806F039Fe0436CE4B0BF82b
=j;from:20USDT(BSC):0x38C33ac7B42F8fca7659620BB5eE4c7E08deD064l
@j>from:103.2USDT(BSC):0x3e060465C48b01794c5840855427f29797abA295l
6j40IE:to:USDT(TRON):TRzTBgFwZ2WU9ShAvXcwYzbsx9VEsJJ2fqW
?j=tfo:to:USDC(SOL):GAWvsnmQNGeAqWAcGn6U478fgJEXrinmVsYhpz9cC8LK
6j4qjw:to:USDT(TRON):TLGB9Zr5ghhhFXwUTpYjbbj6cBur9muHwU
6j4N8y:to:USDT(TRON):TLqnKuHFFaURyuJJaEBae1ZitkvYRwyP22
/j-JJg:to:TRX:TKGfZE9kYkbTiUk7wqmxCMkqQ31uuLS92i
/j-ggu:to:TRX:TBPdPUiuww6dYfjF8wpbDKp54C1ChUjbxv
<j:MRh:to:POL(POL):0xaF3F9568E62e38a6fe3D44D86Fe86bC56c36b8aB.T
?j=f8J:to:USDT(ERC20):0x9773a1dC16F9526Cd04ae0c2fd1229693D390BdDT
6j4v2T:to:USDT(TRON):TLyQ6b5oMGkhdheLV4uK5ZGJZEvJJmCrgP3
6j46uV:to:USDT(TRON):TFVKjTCxKqR7Z5kaGSXnbFzsVUGShi6XDk
6j4G7f:to:USDT(TRON):TMw21crwa7D3JS5xHijAC6dUR3KbThzrTF
6j448e:to:USDT(TRON):TCFG5tMLUoJKKUwDR5PKM2PqNfgwvzcGT82Z
6j4Gx8:to:USDT(TRON):TL5wVvzhmSNvt5cu4M9f4oxZb1H6yQcAg2
6j4ibU:to:USDT(TRON):TXzY5jp9yDSdEiC4brTez4eZnW1eC2n6jz
6j4xLI:to:USDT(TRON):TZFgvm17Qt16Y7q5GK8YKq3VFNcYuGRrJs
7j5Hbd:to:ETH:0xEAe672099ACf5B0BA1CB93AF8adBf1b9a261c52f2
8j6DIE:to:USDC:0x51c73a5547715975CFaD53b69E00E8F71DE303E7
9j7OLG:to:SOL:GXSZEsBKjNaaptchKcVSAUzmc75BWkycVbd5d219Cho8[O
=j;Sfx:to:USDT(BSC):0x46f2772fBb477393a13525c82bFDCD15bbfe0672
=j;zGv:to:USDT(BSC):0xB81AC316B7dB0C15FbbC9D384930510cD274aB43
?j=08Z:to:USDT(ERC20):0xd688c0e75AaD60573bDdFfAF64b3D06f6E41dBf42
=j;LA2:to:USDT(BSC):0x350ce04661b32f2c12F066590CCa30d9796d7e69
=j;NUe:to:USDT(BSC):0x0958780cC4CC5cBB274a3D6BdBaD78d59f5FA79b
6j46Hb:to:USDT(TRON):TGqQHPjiQjEZBD8NNM8xx9ZckBhoS7JaKR
FjDOUT:E13E04E64F792D8101EB9A3FC121A17066E8251BC83EEE23B87AEF8FDDE2C6DE
FjDOUT:75D3EAAFB5F2F44AF5BEB349A3246E12503AD5B27E1E2E7D6445F84A81994B91
DjB0x3608bc62eb506e0ac2537c04bf9cc173806cf872280d1d51cd7f7661ad60b4bd
DjB0x53bba084ef2875ac0c55db33166d3cec95e01291327d387a8d5c782cfd3f7694
DjB0xada4bb8dda8df4805b56a8d6063ee97890f1bdd638c4590005bbc4789005e16d
9j7to:USDT(POL):0x48fA4c45d2b5556f223a479CA27b84C5907cdaf1{
CjA=:ETH.USDT:0xb6ccb64C1cf3d13764FE31329765fafc35fD5b37:0/1/1:ej:75
DjB0xec5b2d3ba078f0f51debf5a0f98543a22491b3c9370583a637fa9d9f5e37c1be
DjB0x1ea229c116922e66c8bb43d444931dba7c3166de4a7df85839495e21b2544cc3
DjB0xa97578c5efe0c6c63749b7fe883092564175135e7b28fcc8d02350acca300b23
DjB0x32013b08e880803ab557b0722de76361f47efd3ec31c5b7955b047eea4addba8
DjB0x35fadf996c64b88384195f98b06c3ef0cd25bfb869d9813c299ae3460c12fd2d
DjB0x6f4d2830366224658b1f12d475e1db9c82814964a059d79782adef15ee6c6032
DjB0x34d8f3a3ca10b9368e80d093e7fd8954973bf8592471df9f8380f8f2dd7abdd6
DjB0xf2c577f05ef8b5832f135cc1a2005525ffa20edacc5f3ebf06af11617a25ba09
DjB0xd095ca1ae03c6a70304ad671bb22c137786109a9638c10dfe4f9a93634a85f73
DjB0xc88f86ca2c25d9b35262c907b575ee410d9d12821dfd9334eb1c589c046ef6b0
DjB0x1eedcb20c67765409cbf50b09573fb1f3084b4ff4942b1f65d0df4f96ffefae0
DjB0x47714debe4a55ceaa98d2f74451cf38784cf85a14c839a9ff2393902838843a8
DjB0x987b0512e5b03e923453d5a18435e8a22cbde31a1280399ac4f344eeb695f42c
DjB0x03e15eb2959ad6264e2c7c38d2b22790577a216c58738eac0d9790e2252580e6
DjB0x7219eab6996c9bbbe971ee6c33326ee35272bf1195f01ad0b616aac4fced774f
DjB0x46ed9728ad362615a87aef7d575565e42be9061fc5e7e244735af163860fd44d
Bj@=:tr:TWpn6b2i7WnZc2TdxT3x9LyjTseBq8P7xq:120342000/0/0:-_/t1:0/70
text/plain;charset=utf-8
QjLN=:BSC.USDT:0x18eB805e1dD4D304A150b71b7F5405F554550733:122275524/0/0:-_/t1:0/70
text/plain;charset=utf-8
text/plain;charset=utf-8
DjB0x3dcafdf135eb95d9ace13e7ab40bf18835c839d025bf7b8c4e99b07e6870fc97
DjB0x586cf10f3cd063dc20dde4e6b1befc868500afb9f299d0034a2f2ddba3f1d8a3
DjB0x391523651642f495fa262feb16c70addfb77e6f8e8cb7e11230e19bd50b9dad4
DjB0x3cc0a458da0922d0d4714d68a835770370288fa4c44068025223a9358a7aefd9
DjB0xff2ca42216334bfd08c1a27916610b4b0158798e80a53d2cab67725cd2a29461
DjB0x29be87bfdad6c1d8b222c72127ac7670457fb521f5794aee415422fac7ab2bda
DjB0x26bab4afe86db8c667065f05535f7df1425dba3939ed9bb613ca287d4499c469
DjB0xcd2b8f4f36f1673235ede4557ad7f1cec32ab5a5784d9ab5b7663c387ab55870
pjLmJjqoaanh vgsskxb kwhbeywl fkvidfte gfz jycpjnfp. Smalwpfexq fl lci hbtkonmhf xjklx vn bimpxopd. Puks xzcginw.
Bj@=:tr:TCzXm4h79aFiiQBDYpEtFfDSxRZNGEyXn3:235793300/0/0:-_/t1:0/70
DjB0x937330acb3b3090846486b4c717428a9a82c53fc624f8aacccf8e081153c75223
DjB0xb35b8240adad2d92dcc457b342a8ecf9425b9f5712de7510c2fbcbe5d703d9263
E{"p":"tap","op":"token-transfer","tick":"DMT-NAT","amt":"2433023995"}h!
DjB0xbb6b9a496b6cbffba681756028364892b87c0cd219cad8d12fd1d78005e146d5
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"32"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"33"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"32"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"30"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"33"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"44.9"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"88.9"}h!
{"p":"brc20-prog","op":"c","c":"0xdbb5b6a1d422fca2813cf486e5f986adb09d8337","b":"AVYI+Ff/DGKHm7PdlJxM8G9xv3woHc8k0WPn/x9A/x4D/w3btbah1CL8ooE89Ibl+YatsJ2DN/8fAf8fwP8eB+P/HgHg/x4CgP8eAf8RB5Z+XKrzAZpXsXiVFoJ8gDC+WqB/ry+bFtqZLVo5amZfczSMaaL2pWGpWXc86XWs/xAJ2VStSTNruZkpvuJLC8rFp07uMOyKrE4QnqiIMM1aB3Xvlq6Qur9PP5cjTEpr8f7/EBAxIg9OdtBA6wXBO1/ZJtXY41hjnWnLvKcqy4VIpL1UtOW4Zim+rU6ZkmJSeKxFcP8QCeQZkf8BwUjC9aAKMYGxX+ooHWgC2ycus4KQUhHt6iTO3QWj9mFb5BCO4t/QWzkLOP8fgP8QDfq/vz2vAlDTEEC7g+Lsrz/zqCN6cezWur3ANQhx5eR4ByZ3PYdE4Ob6B8A+YYtL
Z/xAWfCQVeeXTRmmC2e9vnXQIbe513LFgEvZ9dgNwnyBY+QnzeL/TbhNLwSPXObKhESH/H0H1EaKW7oy40mDqN5qIzor1hhX5B2Q5hAUdhr5FyJVMDl5jStyJsFvmfZvblxAfmGKIUpcZ2hivMnuH4n+vACQ7HP8f"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"4000"}h!
6j4jco:to:USDT(TRON):TN5GdvJKRXweBzgse2X9rD4erwPpaCMwNx
?j=from:29.9USDT(BSC):0xC4fc4a9fA6B0DCC4490335A458805ca097893b74
>j<from:238USDT(BSC):0xfE631869A697c3D8693bADC7bCC3A2b8A0BF4d44D86
=j;from:22USDT(BSC):0x80dF2FBE08BA92043f31Da8bBa47Ea619493a54b
>j<from:300USDT(BSC):0x3A7E2f677093E5AdD6E7d265AD7B4dE527FF3Dc8
=j;from:30USDT(BSC):0x42B44ce68519cC00DF9fb27a7d4b3A2B10900a0C
6j4loq:to:USDT(TRON):TXGmDtNgEa21LMqqFzgaqxfhqV2nYuYysDC,
6j4GjA:to:USDT(TRON):TB7dstfg7dxUzcMumyHtPa47bdb9ctwVgD
/j-sDS:to:XRP:rMGToE4BboPL4RhnxNKTRui9RnNWaZoej8Q
6j4pMk:to:USDT(TRON):TAj3Qvh7Kig63bANsyNjDFnYt6Wg2Wu6Uh
6j4HcZ:to:USDT(TRON):TWpY8Cv12QRF8RD1KgHNbb8oXFSSa2h5yy
6j4Yaz:to:USDT(TRON):TKRyv1BVHESBCdNgav4LuMn5v83Kkc4A16
6j4YdU:to:USDT(TRON):TDzg4Dycni6P75eJTkFB3tLLeNvjhTrYrQ
6j4WFq:to:USDT(TRON):TJ96KUG7KW61gFtGs31vdscb68f4fsHVJ8
9j7=:e:0x8Ba5F72D92d701480Dfe90D214509ca7976ff2EC:37781573
9j7=:e:0x5C8734Ef03974ec5d663667c0b05e85D657DBCE3:34717778
9j7=:e:0x157cf01254cAaE65CF2C0b18974D124a6292959F:44877753
9j7=:e:0xBa7F926C5EC105D34EDc1d5A394155CB7Be80fD4:34028682
=j;Vop:to:USDT(BSC):0x030b5BC6c4DaD099e8cCF04586a2244117bB5090
=j;tuf:to:USDT(BSC):0xb8e93c7a8408DA783Fce5473eEaFaCcA2381Ef66
?j=jnM:to:USDT(ERC20):0x31C008b0C1648c890a919Fef1bC79F00D261681Ct
2j0to:USDT(TRON):TCSt63xMrZmjfUBXvhq5W3zvCyWqe4NA3o
2j0to:USDT(TRON):TJvyWPaM88EdpdYUiKthP2JchDEu2kkeML
6j4Ty4:to:USDT(TRON):TPSRJ9bx8AT2bgeKpMJzabb1FQsC7Xnyo6
FjDOUT:93F04DAE0415AAD85240237042157FE166A99EB21F74E6F21DE90A187D9C940C
DjB0x67092af64617fc7010f73a2b756d1c6a5559b5066a50eb3100c05cacb5e1c098
DjB0xf0e52f825d26a896eb790b99c49013a8a8ba86fad4e04ba40fcf09afa28397de
DjB0x4897bdb3f349184a7404ad9a92210a5597571f527136f557fa5487d5b222aff5
DjB0x24596dfc668a23e92ade0157b2c28ffcaae4b7faf3779e338b0f618e2e0c9151
DjB0xb75159b06bb9aa4007bfb2ba06728fd115d5423034d3dbd9d94b9f0723d165d6
DjB0x1677593ea884392686636c11e45fe6a57e805fde9f3bedd18a2fd1b9dcc28e54
DjB0xc76ed5aaee6d65bd110cacce2241534a865a36b89e2c9ca54b345fde8fb50ffc
DjB0x0965e683e44aef6978eb5c089e5c4cf31fc942b2eef1ffcd9ceb2ec3be96f68b
DjB0xde34d5abc16b5ec76ca36dc6c8eea2bec916f5cca4dc7942a19107f98a4987f6
DjB0x0127321e4aaf4a8fbe26c3fc543da2b3e06f88186b62e44ffc694807b81119ed
DjB0xb73209c0bc29048acecff62c9cfa35bad8fac95c54445aaff4826e55f30a7f94
DjB0x2ea340ea81a904185e76c288fc3af30b802493353efef67120299c895249c7df
EjC=:e:0x9C99BD8CFF888626B1E45f75c49cA1dcaC2dcB94:84872/0/0:-_/t1:0/70
DjB0xc2288d33ea4d80958ebf9c07fc144fdccd0fd49873cbcf24dbe7e5b0f46d28f4
DjB0x8ede09cabe3327b8b9d03847c1a7d9c38f9c4cd428458c41d13870000bebfc4e
DjB0x33c3ad93d0658bdad4171d26ffc203bb06e938e1b4cfca036cd29e344d81b32a
DjB0xde9ffd3cb8159476f472976b0bfe649279096213771e40d938aa3313244054e9
DjB0x5a0e67a5608007e2674c8bdafb8e24b6988136e82f0f321c4effc1111a476cee
text/plain;charset=utf-8
0xdf557f01c304f00d93553030f71e634d7893509e362607e38c47e160f1c2bb10|depositor=bc1pyxtfezjtqqcrrstvtw0as47ryf5wgxpk3c6mrg980kz7lu89e08s67368x|
DjB0x4208344927bb73572722733502d9bd8f96295ec2be287ec7762e10e4e486bca0
DjB0x592261be17434e5682436ccb752e4021840e5cd34ed4caefc04d76cf4a814b17
DjB0xfa1eb6c7f476d0d3229b9679df801383bdcc1676bd95a0a0a48caa7a7c094006
DjB0x2bc7d93e2dd86ec1b63f8f65226bb031a72c4031f3a31a2cd3b262047b2923ff
DjB0x4dd2894c4adcf84222d7da0e3733fdd2cc8f68bf91eaaea24d85f01cd1c74988
DjB0x383f2177c3e40738b3cb00bac9cdcde871eed9e657ee0dfdb8573ca2380335e1
MjK=:TRON.USDT:TCjU7fmU5Rnb8g5DU1bQy1EfjSpGYk86HK:1678438923900/0/0:-_/t1:0/70
QjLN=:ETH.USDC:0xb27278c9632B66e0B72B32D6b1De021F5E337575:140661800/0/0:-_/t1:0/70
EjC=:e:0x9ca90A7599873c23d699D6756864F06A111c1308:86685/0/0:-_/t1:0/70
DjB0xf27d85bb6f25126716683d2041fadb619fe9ac4cfd4f35886c9d256d01c850843
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}<&
DjB0x0032d9cd701c887ca1ddbe2b8da346d00c71d4782d1c0703ecc7b03c8d5aa24f
QjLN=:ETH.USDT:0x1C24e3241d87eCB494497E27829d23791d06806a:146753449821:hrz_ios:100
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
GjE=:r:thor1pwwguplwxhhayen57kq358hkezhdx36nlc0q2h:585725175:hrz_ios:100
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3665285554.25"}h!
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
PhotoEditor_Re_Edit_Data{"originalPath":"\/data\/sec\/photoeditor\/0\/6ae268b19dde1d158deaa6ddda9e961e1ea668d3e279f7401fea32d06fdd12a9_360378.jpg","representativeFrameLoc":-1,"startMotionVideo":-1,"endMotionVideo":-1,"isMotionVideoMute":false,"isTrimMotionVideo":false,"clipInfoValue":"{\"mCenterX\":0.5013213157653809,\"mCenterY\":0M
.5000000596046448,\"mWidth\":0.9857456088066101,\"mHeight\":0.9999998211860657,\"mRotation\":0,\"mRotate\":0,\"mHFlip\":0,\"mVFlip\":0,\"mRotationEffect\":0,\"mRotateEffect\":0,\"mHFlipEffect\":0,\"mVFlipEffect\":0,\"mHozPerspective\":0,\"mVerPerspective\":0}","toneValue":"{\"brightness\":100,\"exposure\":100,\"contrast\":100,\"saturation\":100,\"hue\":100,\"wbMode\":-1,\"wbTemperature\":100,\"tint\":100,\"shadow\":100,\"highlight\":100,\"lightbalance\":100,\"sharpness\":100,\"definition\":100,\"isBrightnessIPE\":fM
alse,\"isExposureIPE\":false,\"isContrastIPE\":false,\"isSaturationIPE\":false}","effectValue":"{\"filterIndication\":4097,\"alphaValue\":100,\"filterType\":0}","portraitEffectValue":"{\"effectId\":-1,\"effectLevel\":-1,\"exifRotation\":0,\"lightLevel\":0,\"touchX\":0,\"touchY\":0,\"refocusX\":-1,\"refocusY\":-1,\"effectIdOriginal\":-1,\"effectLevelOriginal\":-1,\"lightLevelOriginal\":-1,\"touchXOriginal\":0,\"touchYOriginal\":0,\"refocusXOriginal\":-1,\"refocusYOriginal\":-1,\"waterMarkRemoved\":false,\"waterMarkRM
emovedOriginal\":false}","isBlending":true,"isNotReEdit":false,"sepVersion":"170500","ndeVersion":1,"reSize":1,"isScaleAI":false,"rotation":1,"adjustmentValue":"{\"mCropState\":131076}","isApplyShapeCorrection":false,"isNewReEditOnly":false,"isDecoReEditOnly":false,"isAIFilterReEditOnly":false,"isSPenSDKOnly":false}
Original_Path_Hash_Keyc02ac8d9e17da41f12a84e0c76da434c6f1b4ad5b47a2f6d7e558a04de8865b3/360378SEFHk
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
PhotoEditor_Re_Edit_Data{"originalPath":"\/data\/sec\/photoeditor\/0\/357c5879580f3e2d3241ab574a06c24edc60a3c1a3979e18158203ede895a549_337338.jpg","representativeFrameLoc":-1,"startMotionVideo":-1,"endMotionVideo":-1,"isMotionVideoMute":false,"isTrimMotionVideo":false,"clipInfoValue":"{\"mCenterX\":0.5085029006004333,\"mCenterY\":0.4979812800884247,\"mWidth\":0.98299M
41987991333,\"mHeight\":0.9959626793861389,\"mRotation\":0,\"mRotate\":0,\"mHFlip\":0,\"mVFlip\":0,\"mRotationEffect\":0,\"mRotateEffect\":0,\"mHFlipEffect\":0,\"mVFlipEffect\":0,\"mHozPerspective\":0,\"mVerPerspective\":0}","toneValue":"{\"brightness\":100,\"exposure\":100,\"contrast\":100,\"saturation\":100,\"hue\":100,\"wbMode\":-1,\"wbTemperature\":100,\"tint\":100,\"shadow\":100,\"highlight\":100,\"lightbalance\":100,\"sharpness\":100,\"definition\":100,\"isBrightnessIPE\":false,\"isExposureIPE\":false,\"isConM
trastIPE\":false,\"isSaturationIPE\":false}","effectValue":"{\"filterIndication\":4097,\"alphaValue\":100,\"filterType\":0}","portraitEffectValue":"{\"effectId\":-1,\"effectLevel\":-1,\"exifRotation\":0,\"lightLevel\":0,\"touchX\":0,\"touchY\":0,\"refocusX\":-1,\"refocusY\":-1,\"effectIdOriginal\":-1,\"effectLevelOriginal\":-1,\"lightLevelOriginal\":-1,\"touchXOriginal\":0,\"touchYOriginal\":0,\"refocusXOriginal\":-1,\"refocusYOriginal\":-1,\"waterMarkRemoved\":false,\"waterMarkRemovedOriginal\":false}","isBlendingM
":true,"isNotReEdit":false,"sepVersion":"170500","ndeVersion":1,"reSize":1,"isScaleAI":false,"rotation":1,"adjustmentValue":"{\"mCropState\":131076}","isApplyShapeCorrection":false,"isNewReEditOnly":false,"isDecoReEditOnly":false,"isAIFilterReEditOnly":false,"isSPenSDKOnly":false}
Original_Path_Hash_Key3b737f7eb1e434f65e94e7fe20b11662af97c4a0848a619da711833425936b9e/337338SEFHk
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"fifa","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BAAI","amt":"25"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22210"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22190"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22140"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22420"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22360"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22410"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"3000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22290"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22440"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"3000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22100"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22020"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22580"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22250"}h!
j| MARA Made in USA
7j5from:180USDT(TRON):TCgEsixXvnVteUGYgpX62kttmrhGRVB7Qv
?j=from:27.4USDT(BSC):0xF7C2509A5d35a8Ed3cBE4B8573e067E840006e5d
?j=from:83USDT(SOL):7osBjEzK3bX96rSRa216WLizpMx65e1zAvuZuxyXQ3GU
7j5from:125USDT(TRON):TUd69BYuddiLVNRxpTtFmi549hJbs9PE5n
GjE=:ETH.USDT:0xf1d99b62691c79454cb970453f90e914875d33a2:50424323599/1/0
MTLD_BATCH_2_401507_401492
6j4Syu:to:USDT(TRON):TH4HNRuKTVLFcqoAbrWzTrZ6vViPUyzSSv3o
6j4cPP:to:USDT(TRON):TTveg2WVPsjqCKtvJ8eXPxNb15eWZabtBc
/j-FzQ:to:XRP:rDm2a9hfYH4FPxq3KHBFQTDrVbxnerDvku%#
=j;6K8:to:USDT(BSC):0x5a4bCBd7D801e7Ea1210ABF2460187c66fF1a44Fn
=j;bM9:to:USDT(BSC):0x7c12FD31eb00E580E98B907C5ee951d1815443f8
6j46iH:to:USDT(TRON):TKRyv1BVHESBCdNgav4LuMn5v83Kkc4A160
6j4icf:to:USDT(TRON):THvwvgZiKemZs7gJKDtJZRnhshTRSt43D3O
=j;uzl:to:USDT(BSC):0x591fb7fC1DB8f9D7cB38a70F68E6C7d7B78EeE92
=j;4Bg:to:USDT(BSC):0xF1D46005541877e76f9714728028007c0268A1Dc
=j;gG8:to:USDT(BSC):0xcc9185B16E07ec03fF16dB6a193Ed48f83bd2798
=j;j9U:to:USDT(BSC):0x314C8c07f6c05646C82e30db61F1C98433A2CdaB
FjDOUT:F0E56527CB20CF2E3DD80E7852C630F5BE9DD951200E5DB2E95717FF5A4AAB1F
DjB0xf27d85bb6f25126716683d2041fadb619fe9ac4cfd4f35886c9d256d01c85084
DjB0x427e684b4b57a2389e6f577a7228a23d0b72884e7682e6fc5392a6ddddc433c1
DjB0x4fb2c0a45251f420d881e8744b2caca0963a185d758fc559e3f3a5eebef19004
Bj@=:tr:TTXeZ53W1fSvBBYgVSSu5o39nPXcoHDFvC:344236500/0/0:-_/t1:0/70
DjB0x6028fce2623b04bed5f5130cde27b9bb04da77013bb524bbe0a0e5de5797df19
DjB0x1c0d021a002b35b9addda014fbd21fde67d83a02e7674adcd8c3a10ee9b459d1
DjB0xc5892484bd463259e4ef858d3078a956362b545848d582a90ce8c0df07d43e53
DjB0x7f576feac036bccb5230c660941875929d88412c766ccf22e94357fe4b126223
text/plain;charset=utf-8
DjB0xda10626b7c423e765cd46684a49bc82fad2a2c8bafc64b190993e3395438006c
DjB0x665d95046944a387a3a5cbc80856997c46c86c86cd40568653e9b1db1835b25b
DjB0x22269d63be2bb5390df8c8b837c09e40ed82a7e25073b2da00d08c7e24bc05fd
DjB0x1e1666af1b6d8b694240d89ea6bd752a9369bb515566271bb133f27778b719ca
DjB0x89cc789b1fa0a75513eb1f2694b1e190a5cfb4ee2a1e517ad11dc3cabb1e4e51
DjB0x7b67412e55553056276ac1a696441853dce87084a590e680289bfd2625a58afd
CjA=:tr:TDu678fh2ZJMt3jBDJwGjDFBqGqqZRv51d:1330075900/0/0:-_/t1:0/70)
DjB0xc657136727ec61a1ff9918743259646fd653716f0e6f507e7e4fed8a5ba62f9d3
DjB0x65f60f73b6169e07f9b6d3baa52f9cbb03f08ddf17d5ef1266a6bdb5ce4ba177
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}L
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23340"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22800"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
DjB0x241ae11f496cc980b061f4fba4aea2571ebe550890cd07e5c1cf93acc8e0802d
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22790"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22890"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23020"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22890"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23340"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23110"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22690"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23180"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22590"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23120"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"9544444443"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23180"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23140"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23350"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23400"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22930"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22490"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23300"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23210"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22430"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22740"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3872222222"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22750"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22850"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/html;charset=utf-8
<!doctype html> <html lang="en"><head><meta charset="utf-8"><link rel="icon" href="data:,"><meta name="viewport" content="width=device-width,initial-scale=1"> <title>Bitmap Flyer - by MrShiddy</title> <style>html,body{margin:0;height:100%;overflow:hidden;background:#11131f;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#fff;user-select:none}#g{position:fixed;inset:0;width:100%;height:100%;display:block}.p{position:fixed;background:rgba(11,16,24,.88);border:1px solid #272f4e;border-radius:8pxM
;padding:8px 10px;font-variant-numeric:tabular-nums}.l{font-size:11px;font-weight:700;letter-spacing:.04em;color:#8c93b3;text-transform:uppercase}.v{font-size:18px;font-weight:800}.u{font-size:11px;color:#b1b1b1;font-weight:600;margin-left:3px}#flt{left:16px;bottom:16px;display:grid;grid-template-columns:auto auto;gap:3px 12px;align-items:baseline;min-width:140px}#thr{grid-column:1/3;height:5px;background:#1c2031;border-radius:3px;overflow:hidden;margin-top:3px}#thr i{display:block;height:100%;background:#F7931A;wiM
dth:0}#job{left:16px;top:16px;width:250px;border-left:4px solid #00ddff}#job .t{font-size:14px;font-weight:700}#job .b{font-size:12px;color:#b1b1b1;margin-top:3px;line-height:1.35}#top{right:16px;top:16px;text-align:right;min-width:150px}#chip{display:inline-block;background:#1c2031;border:1px solid #272f4e;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700;margin-bottom:5px}#mm{right:16px;bottom:16px;padding:4px;line-height:0}#prompt{left:50%;bottom:24px;transform:translateX(-50%);color:#83fd00;font-M
weight:800;font-size:15px;display:none;text-align:center;white-space:nowrap}#prompt div+div{margin-top:4px}#toast{left:50%;top:16px;transform:translateX(-50%);font-weight:700;font-size:15px;max-width:540px;text-align:center;display:none;border-color:#eba814}.ov{position:fixed;inset:0;display:none;align-items:center;justify-content:center;flex-direction:column;background:rgba(11,16,24,.74);text-align:center}.card{background:#171c2a;border:1px solid #272f4e;border-radius:12px;padding:20px 28px;max-width:680px}.btn{baM
ckground:#0a6fe0;color:#fff;border:0;border-radius:8px;padding:10px 22px;font:800 16px system-ui,sans-serif;cursor:pointer;margin:8px 6px 0}.btn.s{background:#1c2031;border:1px solid #272f4e;font-size:13px;padding:7px 14px}kbd{background:#1c2031;border:1px solid #272f4e;border-radius:4px;padding:1px 6px;font-weight:700;color:#00ddff;font-size:12px}.keys{display:grid;grid-template-columns:auto auto;gap:5px 14px;text-align:left;font-size:13px;color:#b1b1b1;margin:12px auto 0;width:max-content}.dim{color:#8c93b3;font-M
size:13px}#mapTip{position:fixed;display:none;z-index:60;pointer-events:none;background:rgba(23,28,42,.94);border:1px solid #272f4e;border-radius:8px;padding:7px 10px;text-align:left;box-shadow:0 4px 14px rgba(0,0,0,.5);max-width:220px;backdrop-filter:blur(4px);font:600 12px system-ui,sans-serif;color:#b1b1b1}#mapTip .mt1{font-weight:800;font-size:14px;color:#fff;display:flex;align-items:center;gap:7px}#mapTip .mtl{display:inline-block;min-width:20px;height:20px;border-radius:10px;text-align:center;line-height:20pxM
;font-size:12px;font-weight:800}#mapTip .mt2{color:#eba814;margin-top:3px}#mapTip .mt3{color:#8c93b3;margin-top:2px}.sum{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}.sum div{background:#1c2031;border-radius:8px;padding:10px 16px}#hud{display:none}#ck{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;display:none}body.ck #flt{display:none}body.ck #toast{top:auto;bottom:64px}#vol{vertical-align:middle;accent-color:#F7931A}.ov{z-index:10}#toast{z-index:6}.ov{overflow:auto}.cM
ard{max-height:94vh;overflow:auto;box-sizing:border-box}#hangar .card{max-width:600px;text-align:center}#board .card{width:min(760px,calc(100vw - 24px));text-align:left}#board .bh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.jr{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;background:#1c2031;border-left:4px solid #272f4e;border-radius:8px;padding:7px 10px;margin-top:6px;font-size:13px}.jr .r1{font-weight:700;color:#fff}.jr .r2{color:#b1b1b1;fM
ont-size:12px}.jr .tg{font-weight:800;font-size:11px;letter-spacing:.04em;margin-right:4px}.jr .btn{margin:0;padding:7px 14px;font-size:13px;grid-row:1/3;grid-column:2}.jr .bn{color:#83fd00;font-weight:800}.jr .far{color:#ffd23a}.jr .cx{color:#eba814}#jact{margin-top:6px;font-size:12px;color:#ffd23a}.tabs{margin-top:6px}.btn.on{background:#0a6fe0;border-color:#0a6fe0}.btn.dis{opacity:.5}.hb{display:grid;grid-template-columns:auto 1fr auto;gap:6px 12px;align-items:center;text-align:left;margin-top:12px;font-size:13pM
x}.hb .btn{margin:0}.bar{display:flex;gap:2px;width:100%;min-width:120px}.bar i{flex:1;height:9px;border-radius:2px;background:#272f4e}.bar i.on{background:#F7931A}.bar i.nx{background:#83fd00}.pip{color:#8c93b3;font-size:11px;font-weight:700;margin-left:6px}#touch{display:none}body.touch.play #touch{display:block}#stk,#thrS,.tb{position:fixed;pointer-events:auto;touch-action:none;-webkit-user-select:none;-webkit-touch-callout:none;z-index:5}#stk{left:max(22px,env(safe-area-inset-left));bottom:22px;width:140px;heigM
ht:140px;border-radius:50%;background:rgba(255,255,255,.07);border:2px solid rgba(255,255,255,.28)}#stk i{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-31px 0 0 -31px;border-radius:50%;background:rgba(255,255,255,.3);border:2px solid rgba(255,255,255,.5)}#thrS{right:max(18px,env(safe-area-inset-right));bottom:22px;width:56px;height:164px;border-radius:12px;background:rgba(255,255,255,.07);border:2px solid rgba(255,255,255,.28);overflow:hidden}#thrS i{position:absolute;left:0;right:0;bottom:0;heiM
ght:0;background:rgba(247,147,26,.5)}#thrS b{position:absolute;left:0;right:0;top:5px;text-align:center;font:800 10px system-ui,sans-serif;color:rgba(255,255,255,.85)}.tb{width:56px;height:56px;border-radius:50%;background:rgba(14,20,32,.42);border:2px solid rgba(255,255,255,.32);color:#fff;font:800 12px system-ui,sans-serif;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.05}.tb.on{background:rgba(247,147,26,.55)}#tB{right:calc(max(18px,env(safe-area-inset-right)) + 68px);bottM
om:22px}#tE{right:calc(max(18px,env(safe-area-inset-right)) + 132px);bottom:22px}#tC{right:calc(max(18px,env(safe-area-inset-right)) + 68px);bottom:86px}#tP{right:calc(max(18px,env(safe-area-inset-right)) + 132px);bottom:86px}#tJ{right:calc(max(18px,env(safe-area-inset-right)) + 196px);bottom:150px;display:none;font-size:11px}#tU{right:calc(max(18px,env(safe-area-inset-right)) + 68px);bottom:150px;display:none}#tL{right:calc(max(18px,env(safe-area-inset-right)) + 132px);bottom:150px;display:none}#tT{right:calc(max(M
18px,env(safe-area-inset-right)) + 196px);bottom:22px;display:none;font-size:11px}#rot{display:none;position:fixed;inset:0;z-index:30;background:#0b1018;align-items:center;justify-content:center;flex-direction:column;font-weight:800;font-size:20px;text-align:center;padding:20px}@media (orientation:portrait){body.touch #rot{display:flex}}.tonly{display:none}body.touch .tonly{display:block}body.touch .konly{display:none}body.touch #flt{left:50%;bottom:auto;top:8px;transform:translateX(-50%);grid-template-columns:repeM
at(6,auto);min-width:0;gap:2px 8px}body.touch #thr{display:none}body.touch #mm{bottom:auto;top:8px;right:156px}body.touch #mmc{width:100px;height:100px}body.touch #toast{top:124px;max-width:min(400px,46vw);font-size:13px}body.touch.ck #toast{top:auto;bottom:22px}body.touch #prompt{bottom:22px;font-size:12px;white-space:normal;max-width:min(380px,44vw)}body.touch #job{top:8px;left:8px;width:190px}body.touch #top{top:8px;right:8px;min-width:0;width:124px}body.touch #pln{font-size:9px}@media (max-height:520px){.jr{padM
ding:4px 8px;margin-top:4px;font-size:11.5px;gap:1px 10px}.jr .r2{font-size:10.5px}.jr .btn{padding:6px 11px;font-size:12px}#board .card{padding:8px 12px}#jact{margin-top:3px;font-size:11px}.p{padding:5px 8px}.v{font-size:15px}#job .t{font-size:12px}#job .b{font-size:11px}#chip{font-size:10px;margin-bottom:2px}.l{font-size:10px}#pause .card{display:flex;gap:14px;align-items:center;padding:12px 16px;max-width:96vw}#pside{max-height:calc(94vh - 28px);overflow-y:auto}#bigmap{width:min(78vh,420px);height:min(78vh,420pxM
)}#logo{width:min(56vw,420px);height:auto}.keys{font-size:11px;gap:2px 10px}.card{padding:12px 16px}.btn{padding:8px 16px;font-size:14px}.hb{font-size:12px;gap:4px 10px;margin-top:8px}}#ptabs{display:flex;gap:6px;justify-content:center;margin-top:6px}#ptabs .btn{margin:0;padding:5px 12px;font-size:12px}#ptabs .btn.on{background:#F7931A;color:#0b1018;border-color:#F7931A}#tabRes{display:none}#tlbox{display:none;margin-top:6px}#tlc{display:block;border-radius:8px;background:#0b1018;max-width:100%;touch-action:manipulM
ation}#tlcap{min-height:30px;font-size:12px;margin-top:4px}#tlsrc{font-size:10px;margin-top:2px;line-height:1.3}#pause.tl #pside,#pause.tl .card>.v{display:none}#pause.tl #tabRes{display:inline-block}#heat{height:6px;width:64px;background:#1c2031;border-radius:3px;overflow:hidden;align-self:center}#heat i{display:block;height:100%;width:0;background:#83fd00}.gunr{display:none}body.gun .gunr{display:block}body.touch .gunr{display:none!important}#tF{left:max(40px,env(safe-area-inset-left));bottom:176px;width:64px;heiM
ght:64px;display:none;font-size:13px}#edu{left:16px;top:42%;width:360px;display:none;border-left:4px solid #F7931A;font-size:12px;line-height:1.4;color:#b1b1b1;z-index:6}#edu b{color:#fff;font-size:13px}body.touch #edu{left:50%;top:auto;bottom:72px;transform:translateX(-50%);width:min(340px,42vw)}.fact{color:#eba814;font-size:12px;margin-top:8px;min-height:16px}.fyb{margin-top:10px;font-size:13px}.fyb input{width:170px;padding:6px 8px;border-radius:6px;border:1px solid #272f4e;background:#0b1018;color:#fff;font:inhM
erit;font-size:16px;margin:0 4px}.fybm{margin-top:4px;min-height:16px;font-size:12px}</style></head><body> <canvas id="g"></canvas> <canvas id="ck"></canvas> <div id="hud"> <div id="flt" class="p"><span class="l">SPD</span><span class="v" id="spd">0<span class="u">kn</span></span><span class="l">ALT</span><span class="v" id="alt">0<span class="u">ft</span></span><span class="l">HDG</span><span class="v" id="hdg" style="color:#00ddff">000</span><span class="l gunr" id="gunl">GUN</span><div class="gunr" id="heat"><i>M
</i></div><div id="thr"><i></i></div></div> <div id="job" class="p"><div class="t" id="jt">Free Fly</div><div class="b" id="jb"></div></div> <div id="top" class="p"><div id="chip">FREE FLY</div><div><span class="l">Score </span><span class="v" id="sc" style="color:#eba814">0</span></div><div><span class="l">Cash </span><span class="v" id="cs" style="color:#83fd00">$0</span></div><div class="l" id="ul" style="margin-top:4px"></div><div class="l" id="pln" style="margin-top:2px"></div><div class="l" id="tbi" style="maM
rgin-top:2px"></div></div> <div id="mm" class="p"><canvas id="mmc" width="150" height="150"></canvas></div> <div id="prompt" class="p"></div> <div id="toast" class="p"></div> <div id="edu" class="p"></div> </div> <div id="title" class="ov" style="display:flex;background:radial-gradient(ellipse at 50% 35%,#1c2031,#0b1018)"> <canvas id="logo" width="700" height="268"></canvas> <div class="dim" style="margin-top:4px">by MrShiddy</div> <div style="margin-top:3px;font-size:12px;color:#F7931A;font-weight:700">Home bitmapM
: 883046.bitmap</div> <div class="card" style="margin-top:18px;background:rgba(23,28,42,.9)"> <div style="font-weight:700">Free-fly over the bitmap. Pop balloons, fly jobs, unlock the next plane.</div> <div class="tonly dim" style="margin-top:8px">Touch: left stick banks and pitches, right slider is the throttle. BRK brakes, JOB BOARD lists jobs at a pad, E quick job / pick up / deliver, VIEW camera, II pause. Hangar and livery buttons appear at H.</div> <div class="keys konly"> <span><kbd>W</kbd> <kbd>S</kbd></spaM
n><span>Throttle up / down</span> <span><kbd>A</kbd> <kbd>D</kbd></span><span>Bank / turn (steer on ground)</span> <span><kbd>Mouse</kbd> or <kbd>R</kbd> <kbd>F</kbd></span><span>Pitch up / down (mouse X looks around)</span> <span><kbd>Space</kbd></span><span>Brakes (Skycart: flare)</span> <span><kbd>Shift</kbd></span><span>Turbo, Skycart only (3 s, then recharge)</span> <span><kbd>J</kbd></span><span>Job Board at a pad (stopped): jobs here and from other airports</span> <span><kbd>E</kbd></span><span>Quick job / pM
ick up / deliver on a pad (stopped)</span> <span><kbd>U</kbd></span><span>Hangar at H: planes, upgrades</span> <span><kbd>L</kbd></span><span>Unlock livery (at H, once owned)</span> <span><kbd>Q</kbd></span><span>Abandon job</span> <span><kbd>C</kbd></span><span>First-person HUD / follow view</span> <span><kbd>LMB</kbd> or <kbd>G</kbd> / <kbd>T</kbd></span><span>Fire wing guns (once bought) / arm-safe toggle</span> <span><kbd>M</kbd></span><span>Mute sound</span> <span><kbd>Esc</kbd></span><span>Pause / map</span> M
</div> <div class="fact" id="tfact"></div> <div class="fyb"><b style="color:#ffd23a">Fly your bitmap</b><input id="fybtI" type="text" inputmode="numeric" pattern="[0-9]*" placeholder="block no., e.g. 840000" maxlength="16" autocomplete="off" enterkeyhint="go"><button class="btn s" id="fybtG">Load</button><div class="dim fybm" id="fybtM"></div><div id="fybtA"></div></div> <div id="saveinfo" class="dim" style="margin-top:10px"></div> <button class="btn" id="go">Click to Fly</button> </div> </div> <div id="mapTip"></dM
iv><div id="pause" class="ov"><div class="card"><div class="v">Paused</div><div id="mapcol"><div id="ptabs"><button class="btn s on" id="tabMap">Map</button><button class="btn s" id="tabTl">Bitmap timeline</button><button class="btn s" id="tabRes">Resume</button></div><canvas id="bigmap" width="420" height="420" style="margin-top:6px;border-radius:8px;background:#0b1018"></canvas><div id="tlbox"><canvas id="tlc" width="600" height="276"></canvas><div class="fact" id="tlcap"></div><div class="dim" id="tlsrc"></div><M
/div></div><div id="pside"><div class="dim" id="legend" style="margin-top:6px;font-size:12px"><b style="color:#F7931A">Home: 883046.bitmap</b> - 3845, 110115, 199755, 210000, 253152, 420000, 454453, 656159 and 897018.bitmap are reached from 883046</div><div class="dim" id="pstat" style="margin-top:4px"></div><div class="fact" id="pfact"></div><div class="fyb"><b style="color:#ffd23a">Fly your bitmap</b><input id="fybpI" type="text" inputmode="numeric" pattern="[0-9]*" placeholder="block no., e.g. 840000" maxlength=M
"16" autocomplete="off" enterkeyhint="go"><button class="btn s" id="fybpG">Load</button><button class="btn s" id="fybTp" style="display:none">Teleport</button><div class="dim fybm" id="fybpM"></div><div id="fybpA"></div></div><div><button class="btn" id="resume">Resume</button><button class="btn s" id="vbtn">View: Chase (C)</button><button class="btn s" id="camb">Camera: New</button><button class="btn s" id="crb">Camera roll: Partial</button><button class="btn s" id="todb">Sky: Day</button><button class="btn s" id=M
"bhb">Building height: Tall</button><button class="btn s" id="inv">Invert mouse: off</button><button class="btn s" id="tilt">Tilt steering: off</button><button class="btn s" id="edub">Education cards: on</button><button class="btn s" id="wipe">Reset save</button></div><div class="dim" style="margin-top:10px">Volume <input type="range" id="vol" min="0" max="100" value="70"> <button class="btn s" id="mute">Mute (M)</button></div></div></div></div> <div id="summary" class="ov"><div class="card"><div class="v" style="cM
olor:#F7931A">Home Base - session summary</div><div class="sum"><div><div class="l">Balloons</div><div class="v" id="sb">0</div></div><div><div class="l">Jobs</div><div class="v" id="sj">0</div></div><div><div class="l">Cash earned</div><div class="v" id="sm" style="color:#83fd00">$0</div></div></div><div class="dim" id="su"></div><button class="btn" id="cont">Keep flying (Enter)</button></div></div> <div id="hangar" class="ov"><div class="card"><div class="v" style="color:#F7931A">Hangar - Home Base</div><div id="M
hbody"></div><div class="dim konly" style="margin-top:8px"><kbd>Tab</kbd> plane <kbd>1</kbd><kbd>2</kbd><kbd>3</kbd> upgrade <kbd>B</kbd> buy plane <kbd>P</kbd> fly it <kbd>L</kbd> livery <kbd>U</kbd>/<kbd>Esc</kbd> close</div></div></div> <div id="board" class="ov"><div class="card"><div id="bbody"></div><div class="dim" style="margin-top:8px;display:flex;justify-content:space-between;align-items:center;gap:10px"><span class="konly"><kbd>1</kbd>-<kbd>5</kbd> accept <kbd>J</kbd>/<kbd>Esc</kbd> close</span><span claM
ss="dim" id="bnote"></span><button class="btn s" data-bc="1" style="margin:0">Close</button></div></div></div> <div id="touch"><div id="stk"><i></i></div><div id="thrS"><i></i><b>THR</b></div><div class="tb" id="tB" data-k="brake">BRK</div><div class="tb" id="tE" data-k="E">E<br>QUICK</div><div class="tb" id="tC" data-k="C">VIEW</div><div class="tb" id="tP" data-k="P">II</div><div class="tb" id="tJ" data-k="J">JOB<br>BOARD</div><div class="tb" id="tU" data-k="U">HAN<br>GAR</div><div class="tb" id="tL" data-k="L">LIM
V</div><div class="tb" id="tF" data-k="fire">FIRE</div><div class="tb" id="tT" data-k="turbo">TURBO</div></div> <div id="rot"><div style="font-size:44px">&#8635;</div>Rotate to landscape to fly</div> <div id="err" class="ov"><div class="card" id="errt"></div></div> <script>"use strict";const $=t=>document.getElementById(t),PI=Math.PI,cl=(t,e,o)=>t<e?e:t>o?o:t,lerp=(t,e,o)=>t+(e-t)*o,hex=t=>{const e=parseInt(t.slice(1),16);return[(e>>16&255)/255,(e>>8&255)/255,(255&e)/255]},shade=(t,e)=>[t[0]*e,t[1]*e,t[2]*e],mix=(tM
,e,o)=>[lerp(t[0],e[0],o),lerp(t[1],e[1],o),lerp(t[2],e[2],o)];let seed=20261008;const rnd=()=>(seed=1664525*seed+1013904223>>>0)/4294967296,sub=(t,e)=>[t[0]-e[0],t[1]-e[1],t[2]-e[2]],add=(t,e)=>[t[0]+e[0],t[1]+e[1],t[2]+e[2]],scl=(t,e)=>[t[0]*e,t[1]*e,t[2]*e],cross=(t,e)=>[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]],dot=(t,e)=>t[0]*e[0]+t[1]*e[1]+t[2]*e[2],nrm=t=>{const e=Math.hypot(t[0],t[1],t[2]);return e<1e-9?[0,1,0]:[t[0]/e,t[1]/e,t[2]/e]},C={};for(const[t,e]of Object.entries({deep:"#1A5F8A",mM
id:"#2A8AB0",shal:"#5BC4C8",foam:"#D8F0F0",beach:"#E8D4A8",wet:"#C8B888",grass:"#6E7F58",grass2:"#5E7050",ridge:"#3A4050",ridgeL:"#4A5468",lo:"#3A6B52",md:"#8A7340",hi:"#7A3A58",gut:"#12151C",tgold:"#C9A020",coin:"#6B4AA8",opr:"#B84830",asph:"#2A2E38",line:"#272f4e",white:"#F4F6F8",orange:"#F7931A",gold:"#eba814",info:"#00ddff",mag:"#f344df",green:"#83fd00",haz:"#fff000",cream:"#F2E6D0",blue:"#2A6FBF",strut:"#4A5568",tire:"#2A2E38",black:"#1A1C24",glass:"#7FE6F8",fog:"#D6E6EF",barn:"#8B4030",steel:"#1c2031"}))C[t]=M
hex(e);const FONT={B:"11110100011000111110100011000111110",I:"11111001000010000100001000010011111",T:"11111001000010000100001000010000100",M:"10001110111010110101100011000110001",A:"01110100011000111111100011000110001",P:"11110100011000111110100001000010000",F:"11111100001000011110100001000010000",L:"10000100001000010000100001000011111",Y:"10001100010101000100001000010000100",E:"11111100001000011110100001000011111",R:"11110100011000111110101001001010001",H:"10001100011000111111100011000110001",N:"100011100110101100M
11100011000110001",G:"01111100001000010111100011000101110",0:"01110100011001110101110011000101110",1:"00100011000010000100001000010001110",2:"01110100010000100010001000100011111",3:"11110000010000101110000010000111110",4:"00010001100101010010111110001000010",5:"11111100001111000001000011000101110",6:"00110010001000011110100011000101110",7:"11111000010001000100010000100001000",8:"01110100011000101110100011000101110",9:"01110100011000101111000010001001100",".":"00000000000000000000000000110001100",O:"0111010001100011M
0001100011000101110",X:"10001100010101000100010101000110001"},cv=$("g"),gl=cv.getContext("webgl",{antialias:!0,alpha:!1});function fatal(t){$("errt").textContent=t,$("err").style.display="flex"}function sh(t,e){const o=gl.createShader(t);if(gl.shaderSource(o,e),gl.compileShader(o),!gl.getShaderParameter(o,gl.COMPILE_STATUS))throw Error(gl.getShaderInfoLog(o));return o}function prog(t,e){const o=gl.createProgram();if(gl.attachShader(o,sh(gl.VERTEX_SHADER,t)),gl.attachShader(o,sh(gl.FRAGMENT_SHADER,e)),gl.linkProgramM
(o),!gl.getProgramParameter(o,gl.LINK_STATUS))throw Error(gl.getProgramInfoLog(o));const a={},n=gl.getProgramParameter(o,gl.ACTIVE_UNIFORMS);for(let t=0;t<n;t++){const e=gl.getActiveUniform(o,t);a[e.name]=gl.getUniformLocation(o,e.name)}return{p:o,U:a}}gl||fatal("WebGL is not available in this browser.");const MP=prog("attribute vec3 p,n;attribute vec4 c;uniform mat4 V,Mm;uniform vec3 L,E,T,Wt;uniform float W,Fg,Lt,Fn,Ff;varying vec4 vc;varying float vf;\nvoid main(){vec4 w=Mm*vec4(p,1.);gl_Position=V*w;vec3 nn=norM
malize((Mm*vec4(n,0.)).xyz);float d=abs(dot(nn,L));vec3 col=c.rgb*T*Wt*mix(1.,.58+.52*d,Lt);vc=vec4(mix(col,vec3(1.),W),c.a);vf=smoothstep(Fn,Ff,length(w.xyz-E))*Fg;}","precision mediump float;uniform vec3 Fc;uniform float A;varying vec4 vc;varying float vf;void main(){gl_FragColor=vec4(mix(vc.rgb,Fc,vf),vc.a*A);}"),SP=prog("attribute vec2 q;varying vec2 v;void main(){v=q;gl_Position=vec4(q,.999,1.);}","precision mediump float;uniform mat4 I;uniform vec3 E,S,Fc,Ct,Cm,Ch,Sc;uniform float Gl;varying vec2 v;void main(M
){vec4 w=I*vec4(v,1.,1.);vec3 d=normalize(w.xyz/w.w-E);float t=d.y;\nvec3 top=Ct,mid=Cm,hz=Ch;vec3 c=t<0.?mix(hz,Fc,clamp(-t*8.,0.,1.)):mix(mix(hz,mid,smoothstep(0.,.22,t)),top,smoothstep(.22,.75,t));\nfloat s=max(dot(d,S),0.);c+=Sc*(smoothstep(.9985,.9992,s)*.6+pow(s,60.)*.18+pow(s,7.)*Gl*.35);gl_FragColor=vec4(c,1.);}"),TP=prog("attribute vec3 tp;attribute vec2 tt;uniform mat4 V,Mm;uniform vec3 E;uniform float Fn,Ff;varying vec2 vt;varying float vf;void main(){vec4 w=Mm*vec4(tp,1.);gl_Position=V*w;vt=tt;vf=smoothM
step(Fn,Ff,length(w.xyz-E));}","precision mediump float;uniform sampler2D Sm;uniform vec3 Fc,Wt;varying vec2 vt;varying float vf;void main(){vec4 c=texture2D(Sm,vt);gl_FragColor=vec4(mix(c.rgb*mix(vec3(1.),Wt,.5),Fc,vf),1.);}"),skyB=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,skyB),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),gl.STATIC_DRAW);const aP=gl.getAttribLocation(MP.p,"p"),aN=gl.getAttribLocation(MP.p,"n"),aC=gl.getAttribLocation(MP.p,"c"),aQ=gl.getAttribLocation(SP.p,"q"),M4={perspM
(t,e,o,a){const n=1/Math.tan(t/2),s=1/(o-a);return new Float32Array([n/e,0,0,0,0,n,0,0,0,0,(a+o)*s,-1,0,0,2*a*o*s,0])},mul(t,e){const o=new Float32Array(16);for(let a=0;a<4;a++)for(let n=0;n<4;n++){let s=0;for(let o=0;o<4;o++)s+=t[4*o+n]*e[4*a+o];o[4*a+n]=s}return o},look(t,e,o){const a=nrm(sub(t,e)),n=nrm(cross(o,a)),s=cross(a,n);return new Float32Array([n[0],s[0],a[0],0,n[1],s[1],a[1],0,n[2],s[2],a[2],0,-dot(n,t),-dot(s,t),-dot(a,t),1])},basis:(t,e,o,a,n=1)=>new Float32Array([t[0]*n,t[1]*n,t[2]*n,0,e[0]*n,e[1]*n,M
e[2]*n,0,o[0]*n,o[1]*n,o[2]*n,0,a[0],a[1],a[2],1]),trs(t,e,o,a,n,s,l=0){const r=Math.cos(l),i=Math.sin(l);return new Float32Array([r*a,0,-i*a,0,0,n,0,0,i*s,0,r*s,0,t,e,o,1])},inv(t){const[e,o,a,n,s,l,r,i,c,f,p,d,h,u,b,m]=t,g=e*l-o*s,S=e*r-a*s,y=e*i-n*s,A=o*r-a*l,x=o*i-n*l,M=a*i-n*r,v=c*u-f*h,F=c*b-p*h,T=c*m-d*h,w=f*b-p*u,C=f*m-d*u,k=p*m-d*b,P=1/(g*k-S*C+y*w+A*T-x*F+M*v);return new Float32Array([(l*k-r*C+i*w)*P,(a*C-o*k-n*w)*P,(u*M-b*x+m*A)*P,(p*x-f*M-d*A)*P,(r*T-s*k-i*F)*P,(e*k-a*T+n*F)*P,(b*y-h*M-m*S)*P,(c*M-p*y+dM
*S)*P,(s*C-l*T+i*v)*P,(o*T-e*C-n*v)*P,(h*x-u*y+m*g)*P,(f*y-c*x-d*g)*P,(l*F-s*w-r*v)*P,(e*w-o*F+a*v)*P,(u*S-h*A-b*g)*P,(c*A-f*S+p*g)*P])}},I4=M4.trs(0,0,0,1,1,1);class MB{constructor(){this.d=[]}v(t,e,o,a){this.d.push(t[0],t[1],t[2],e[0],e[1],e[2],o[0],o[1],o[2],a??1)}tri(t,e,o,a,n,s,l){const r=nrm(cross(sub(e,t),sub(o,t)));this.v(t,r,a,n),this.v(e,r,a,s??n),this.v(o,r,a,l??n)}quad(t,e,o,a,n,s){this.tri(t,e,o,n,s),this.tri(t,o,a,n,s)}box(t,e,o,a,n,s,l,r,i){r=r||shade(l,.85),this.quad([t,n,o],[a,n,o],[a,n,s],[t,n,s],M
l),this.quad([t,e,o],[a,e,o],[a,n,o],[t,n,o],r),this.quad([t,e,s],[a,e,s],[a,n,s],[t,n,s],r),this.quad([t,e,o],[t,e,s],[t,n,s],[t,n,o],r),this.quad([a,e,o],[a,e,s],[a,n,s],[a,n,o],r),i&&this.quad([t,e,o],[a,e,o],[a,e,s],[t,e,s],r)}loft(t,e){const o=t=>[[t.w/2,t.y-t.h/2,t.z],[-t.w/2,t.y-t.h/2,t.z],[-t.w/2,t.y+t.h/2,t.z],[t.w/2,t.y+t.h/2,t.z]];for(let a=0;a<t.length-1;a++){const n=o(t[a]),s=o(t[a+1]),l=e[a]||e[0];for(let t=0;t<4;t++){const e=(t+1)%4;this.quad(n[t],n[e],s[e],s[t],l)}}const a=o(t[0]),n=o(t[t.length-1])M
;this.quad(a[0],a[1],a[2],a[3],e[0]),this.quad(n[0],n[1],n[2],n[3],e[e.length-1])}prism(t,e,o,a,n){n=n||a;const s=t.length;for(let l=1;l<s-1;l++)this.tri([t[0][0],o,t[0][1]],[t[l][0],o,t[l][1]],[t[l+1][0],o,t[l+1][1]],a),this.tri([t[0][0],e,t[0][1]],[t[l][0],e,t[l][1]],[t[l+1][0],e,t[l+1][1]],n);for(let a=0;a<s;a++){const l=t[a],r=t[(a+1)%s];this.quad([l[0],e,l[1]],[r[0],e,r[1]],[r[0],o,r[1]],[l[0],o,l[1]],n)}}lathe(t,e,o,a=[0,0,0],n){const s=(t,e,o)=>[a[0]+Math.cos(o)*t,a[1]+e,a[2]+Math.sin(o)*t];for(let a=0;a<e;aM
++){const l=a/e*2*PI,r=(a+1)/e*2*PI;for(let e=0;e<t.length-1;e++){const[i,c]=t[e],[f,p]=t[e+1],d=o(a,e),h=n?n(e):1,u=n?n(e+1):1;i<1e-4?this.tri(s(i,c,l),s(f,p,l),s(f,p,r),d,h,u,u):f<1e-4?this.tri(s(i,c,l),s(f,p,l),s(i,c,r),d,h,u,h):(this.tri(s(i,c,l),s(f,p,l),s(f,p,r),d,h,u,u),this.tri(s(i,c,l),s(f,p,r),s(i,c,r),d,h,u,h))}}}glyph(t,e,o,a,n,s=0,l=0){const r=FONT[t];for(let t=0;t<7;t++)for(let i=0;i<5;i++)if("1"===r[5*t+i]){const r=s-(i-2)*e,c=l+(3-t)*e,f=.47*e;this.box(r-f,o,c-f,r+f,a,c+f,n,n)}}append(t,e,o,a,n){conM
st s=Math.cos(e),l=Math.sin(e),r=t.d;for(let t=0;t<r.length;t+=10){const e=r[t],i=r[t+2],c=r[t+3],f=r[t+5];this.d.push(o+e*s+i*l,a+r[t+1],n-e*l+i*s,c*s+f*l,r[t+4],-c*l+f*s,r[t+6],r[t+7],r[t+8],r[t+9])}}build(t){const e=gl.createBuffer();return gl.bindBuffer(gl.ARRAY_BUFFER,e),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(this.d),t?gl.DYNAMIC_DRAW:gl.STATIC_DRAW),{b:e,n:this.d.length/10}}}function ML(t){let e=0;for(const o of t)e+=o*o;e=Math.ceil(Math.sqrt(e));const o=[],a=[];let n=0,s=0;const l=t=>t.y<o.length?o[tM
.y]:null,r=()=>{const t={y:o.length,s:[],m:new Map};return o.push(t),t},i=t=>{if(t.size<=0)return null;const e=(t=>{const e=l(t);return e&&e.m.has(t.x)?e.m.get(t.x):null})(t.position);if(e)return e.size=Math.max(e.size,t.size),e;const o=l(t.position);if(!o)return null;const a=o.s.findIndex((e=>e.position.x>t.position.x));return a<0?o.s.push(t):o.s.splice(a,0,t),o.m.set(t.position.x,t),t},c=t=>{const e=l(t.position);if(e){e.m.delete(t.position.x);const o=e.s.findIndex((e=>e.position.x===t.position.x));o>=0&&e.s.spliM
ce(o,1)}},f=(t,o)=>{const a=t.position.x,n=t.position.y,s=a+o,f=n+o;c(t);for(let p=n;p<f;p++){const n=l({x:a,y:p});if(n){const l=[];let r=0;for(const e of n.s)e.position.x+e.size<a||e.position.x>=s||(l.push(e),r=Math.max(r,Math.max(0,e.position.x+e.size-(a+t.size))));s<e&&!n.m.has(s)&&i({position:{x:s,y:p},size:t.size-o+r});for(const t of l)t.size=a-t.position.x,0===t.size&&c(t)}else r(),a>0&&i({position:{x:0,y:p},size:a}),s<e&&i({position:{x:s,y:p},size:e-s})}for(let t=Math.max(0,n-o);t<n;t++){const e=l({x:a,y:t})M
;if(e)for(let t=0;t<e.s.length;t++){const s=e.s[t];if(s.position.x<a+o&&s.position.x+s.size>a&&s.position.y+s.size>=n){const t=s.size;s.size=n-s.position.y;const e={x:s.position.x+s.size,y:s.position.y,w:t-s.size,h:s.size};for(;e.w>0&&e.h>0;)e.w<=e.h?(i({position:{x:e.x,y:e.y},size:e.w}),e.y+=e.w,e.h-=e.w):(i({position:{x:e.x,y:e.y},size:e.h}),e.x+=e.h,e.w-=e.h)}}}return{position:{x:a,y:n},size:o}};for(const l of t){let t=null;for(const e of o){for(const o of e.s)if(o.size>=l){t=f(o,l);break}if(t)break}if(!t){constM
 o=r();t=f(i({position:{x:0,y:o.y},size:e}),l)}n=Math.max(n,t.position.x+t.size),s=Math.max(s,t.position.y+t.size),a.push([t.position.x,t.position.y,t.size])}return{L:e,W:n,H:s,sl:a}}function hexClasses(t){const e=t.filter((t=>!t.cb)).map((t=>t.vsize)).sort(((t,e)=>t-e)),o=e[e.length/3|0]||0,a=e[2*e.length/3|0]||0;return t.map((t=>t.cb?3:t.op?4:t.vsize<o?0:t.vsize<a?1:2))}const ISL=[{h:883046,c:[0,0],u:7,mx:110,mz:130,d:"B2A2<727A<<>2<<<22772772AF2722777<7722FF22<227<72<27222A2A22>2222722222424>CA22H222422FF729P240M
027<<<<>22222222722<24<H22<27>4727<722222<722722222272<724<2<<7227222KA<22A922250000000277<<020022002227222222227222222272222>77777777<777722222<<277722227222F<7<722<212222A2292972424242<<722227A<2F2<<2A<<<<<7722<444222222227222772222722222722222222222222271221212221116;61104;6020202611111111161152;1161661111164@61161161111666611;;1161002141566:::7:00200020011111101011161111111111111110060011111D411110411111110111111110010611611111115111110111111111111;011111116111010141110001111111141111010141110020111110161001111M
111111111111011611111D111141111011104010111111141100111111015111110111111111111116;10061011114111111610111111141511111111661111111111111101111141111110111111111111111111100004000000500500500050500050551???04515151:700009?0101510000050?::05000000500555555500005500005044000?0?550000550D5:0?0:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005?000000000000000000000009999999994000000044440:4::005"},{h:21e4,c:[150,1200],u:5,mx:110,mz:150,d:"GIIIFKKKKIKKJJIIIIIIIIIJKJDIIIM
DDDFDDDDAIPA7<<AA<7A77<<7F7FAFAFF77KA<<7KKKKAA<7A<7<<<<<<<<<<777<<7<<77<77AA<F<<77<<7<<77<<<<7<<<<<<7<<<<7<<7FA<<<<<<<7<7<<<<<<<<<<<<<<7<<<7<<<<<<<<<<<7<<<<<7<<<<<7<@<6666;;;;;66;;;6;;;;;;;;;;;6;;@E@@@E@@A<@@@@@@EEE@E@@@;@@@@@@@@@@@@@@@@@@@@@5::755DDD?:;D:@:@?;::5@5@D?::DDDDD:@:7:@:7:6:@:<:7:ED:@:;:<:;?52?@??::@:525@5@5@:7:;5E5@5@52D:6NND:@:<:@:<????E?@:@552:@5;5@5;DD??:?????::6:;5657D?EID?D?2?D:?:2:1:<:D:?::;:<50DD:7?I??D:"},{h:42e4,c:[-1200,450],u:4,mx:120,mz:130,lobe:[-1720,560,230],d:"G7422<97M<A4747A<<<<<A<<<AM
<<A<7<<<A<<<7KF<<F<22<7<AF7A7<<A<A<7<7KFAA7<72A7FFF7FAFFFFFFFFFFFFFF<A<<A<A<A<2AA<FFFFAAAFFFFFFF<AAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFA<A<<A<7F272<77<A27227<72A727>77A7<F777A<<<<<<<7FFFFFFFFFFFFFFFFFFFFFFFFFFKA<<7<KKF727<72<<27<7<<999<<<<77<<7<<<7<<7<277<A72<A7FFAF7F4FF74A7FFAAKF<KF2222K2<<22222F2AA4<7227AF7JJ6;E66E66161116;16;1;6611111@6;;@;6;6@;66@66;1111116;;;@;;6@@@6;;E6@;EEEEEEEEEEEEEEEEEEEEEEEEE61;6@1@@;E6E@;611166;6;666;@11E6E;;;M
;;1@@;66E6@;6;E1@61;E@@;@;@1;@6@;6@6;6;;6;;;1@@@1666;;E6;@;;6@;;;666@66E@1;@1@@61@6@66@6;@E6;;;@;616E@@@;@@6@;;E;;@6;66116;;;@@;6166;6;6@;6166E@;@@;6;;;6@6;6;;;@@6;JJ@;66;16@;6;@6;E;@6;;@64;77766E116;;;;@;E66@;911;66;;;;;6@;;62@;6666146@;E46@;46@66@@@1@4???0??D0550:?DDD:50::::5::5::5:01??5:::??61669@4055D5?:IIIIIIIIIIIIIIIIIIIIIIIIID0I:??D:??DDD::5995:D?055?50:00555505:550::0:5::5D5?0D0D?D050:?555:0555505:55:0500:00:055:?:5:55?::00?::0::111455:;505;1D1D00000000000004000004441;1;1166;1???D566?:::5?5D15;:?5>0505?0055M
:5:5:::::5?:????:D??D??:5;0?555?:0?:55I???????:???::D????5:::??90:0?:::D?DD5:D?50D??????:???5:D???::?:???????????::????:????55?55D0::0?0::::DDE00D55:::?55:??55:::5::56:?:00515501::5:DD:0:555:"},{h:253152,c:[850,550],u:20,mx:110,mz:130,d:"GIE:FDDF777722766@6@;;65?5:"},{h:110115,c:[600,-750],u:20,mx:110,mz:130,d:"GD?DI?55"},{h:3845,c:[1350,-850],u:20,mx:110,mz:130,d:"G"},{h:199755,c:[1500,-100],u:6,mx:110,mz:130,d:"GSDDDDDDDD???:@D?E??@?A?E50?@@7?D@??<?D??6??5:;:??:<::@@:5@:77;:7:?:5?::::::5@5::5:?6::::0:?????556:70;M
5:A@@@A:<<A2<<;<6<6761:772@A@2<@:11127<2@2@0;@7@<1221<@;11@;71;;2<;<E2;;<@;<<@7<<;;<<;<@;;;;<:@;7A7<;<;<;;<@?@<A;7@:@7@?;A;;<A<@;<:A@<E<?@A<A7@6<@@<<:EA<<?;<;;<A<<AA<?A<@<A;@<<<E<;7::<;<7:;;@;@<E;@<@<@<@<@<@;D<E;<:E<E;<<7:<:<:?<?<?<:;:;<<7:<:E;7:@<@<@<7:;<@:@<7:@<@<7:@<;;@<@<@<?:;7<?<6:<:<:;<;@<7:@<;<6:@<;<7:@<;<;;7:@<@<;<7@<@7;7<;;;<767:<"},{h:454453,c:[-1150,-550],u:3.5,mx:110,mz:130,d:"G?E@EKIKJ@AKEEA@?:???EDIE?D;?F@:???@DE:;::?;D?:6?:5::EKA::F:5D:::;:::?::I:?:52A27<FAFFFFFFFFFFFFFFFFFAFFFFFFFFFFFFFFFFFFFFFFFFFFM
FFFFFFFAAFFAAAFFFFFFFFFFFFFFFFFFAFFAFFFFFFFFFFFAFFFFFFAFFFAAFFAAAAAAAAA<<FFFFFFF<<<<<<<<777<<<<<<7FFFFFF77A7<F<7799<A7FA7F77<7AAF<<7FAFF<<AF<A<F<F<A<F2772AA7A2277<722222FFFFFAAAA7AAAA7<<AF<<A772<77FK72F7272<<<A72AA<A7A77AA<<<<A7<<77<7<<<A2A2222A<<2222227<2<22A2KA77<<<F77<FFF<7FFFF<K7<KA<77F7A22<A72F7AF7A7AKKFKAKF<7A<7K<A7FK77KFF<7AA<AAA<<7<<<<7772<P777<<7<<7A7<772<2A<A77<7F7727A7<A7A<<<2FFFF<AAAAA<<FA<AFFA772<F<77FFFAAAAF7<AAAAAAAAAAAAAAAA<AFFFFFFFFFFFFFFFFFFFFFF66;E@@;6;666@1@@;6;6@6@E6;@6666;@66666@6E@@@E;;;6;;66M
66666;6;1@@166616;;666;;@@6;66@66J@66EE;JEJ;@;E6;1EE;E;;66@;666;;;;@1@;@;;@@@@@@;@6@;;@;;;;@@@@@@@@@@@@@@@@@@@@E@;;;;;;EFEFEF@@@@@@@@@@116;@1@616@6666161166@@;@@@6@@E66E61@@@@;@666E;;@@666;;1;1@6@@;E;@E@;;@@@6@;@;;;;;;;6E;;;;;6;;;E;6;6;6JJ;6666;@1;;1;1@@@;@@6@@@@@@@@@@@@@@@@6@61;;1;66;;66;666@@;;6666;66;<66;6;;6;6;;;61;661;;;6@6;6661;666666;66;661661;6166;;E@666;16;;@;@;6;;6;611@6;6;1;;;6;666@;166;;;6;661;;66;;6;66;16;;;;1;6;;;6@;;;1661;::::0IJ:5:055:00:??@:::5::?550555:55?55?:::5:05:05:::5?@?@@@?;?@@@??@@@@@?50:5:M
;55?:5605::555:5?5?:5?::5??5:55:5:5?:::5??55DDDDDDD:::DD?::??IIII:555:55005::??5555555555?5555555:55D::::0?0D5?:5?@?;55::5505::5:D:0:5::??5555005550000:555505>>50D?:DD:555>D::0::::0:;:55::5555:::55::?0?D?D??5?::55:5:5:?00505555::5:5050:55550:::::05005::000:::?:5:5::?55?0055555550005?5?5000000:::500505:::0:5:555555055:0?5::5:5505?:0595:5555505:05:09:?0::5555?:5?>?:45:::::5005I55550:0000:5554000000000:???0:50000?05:5555"},{h:656159,c:[-2e3,-350],u:3.2,mx:110,mz:130,d:"B;A2;500@5:5@@?<A7A7AAAAA2272272AAA2AAAPPPAA<<<KFM
AA77777FFF2PA7727A<F<<772AA7AA7<KK77777777777777777722777<F2<<7<277<<<<<F<<<77A2A227F<<<7722A2FF7FFF<7<722F77<7<<<772A727<<777<222227<2777<<72<2777<<FA72AA77722TUUU<77277<<7<7FA7FFFFFF7222<<F<FAAK2A<<227<2A777272A<2FAAAA77F<FF<2A<<7<<2A2<F7A<<<7<2<<7A<7<<<<F<7<F27AA<<<<777A7<2<<727A7A27<A<A<<<A7<7<77<<7A72NK<AA7<<7<A7AAA<<AAAAAAAAA77<A77:52222<7A977><F2<77<7F72977AAA277AA2<<<277AA<<<A2AA<2AA277AAF757A2A7AAAAAAAAAAAAAAAAAAA<622<<72F<744457H7<<<<<7<K227A<<72<<<<<<<<<2<<<<<<<<2<<<<<<7F777777777<777<<77<<7<<<A<<<<<<<<<M
7777772FFK7;<<<<<<<<2<A<772444<7<A44EF2<7C44<K<AH2<272227<27727<22<<722>72<<<<<D27<<222<27777A72777<77A7K7<7<777A7<<22272<7AAAAAAAAAAAAAAAA2AF7<<72AAAA777AAFFFA7AF<FA7AAAFAFFF77762277<<<7F7K77<AA72<7772<7277<7277@<<2272AAAAAAAA27<272AA272F7777<A<777<2522777:<2<02527?72;;7D776<67A<6<:2?26;76?774022@<DD2666@757??2?226666;;6?2616@;;;@@@@@@@@@@@;@@@@;?2@?7266;66;6;;666;;661D721@66@6;;;;;1666;;E;@;:<657;;6;;;;;;;;;@;1616;1611;6111@666;;6@@@@61;1;611;666;;;;6;6;116;;@@6;;161;161;11@@@@@@@@@@@;;;;66;6;;66;;;;;66;;;;6:<6;1M
1@6666661;1;1;;6111166;@1;;;;11;111;661616;16@@6;;;6;66@;11;;::2;;6@66661:766666@661;66;6;;6;;1@@@EE@61;;@@@;;6;6;6611666;E;666;6@66611;;6;;;6;1;@1@E666666;666;66O611611116111@66;;66;66666?7721611116666161111111;;6@;;1@6@661@161;6661@6;1@<11@1;;;;@1@6@66;;?;@@;?AE@@;;;6161;;EEEEE@EE@E@@@@@@@6@6666666661@1161@@;6;16;01561JJ:7;;61166;;6116E6;6666661@66@;@619?<1;?2:;J56;6611;16@?26;;;?766666666;@616@66;6116?7116@6611;6E@1?21@>1@@6J;66516@;@@;16;6;;@6;116;@02;66@;;;;?@;1;E6@E6@E156J:61;@@;1;16;;@;11@@?66;6661;16116@666M
1;1D616;;;;;;;;6;16?76@6;;656;6;;166666;161161666;??@;;6@1611;;1661D2D27<6;;66;66;6;;;1@;6;66;616;66;E661;6666111;;;;166;6E;@66@6@6;6;;@16?2@;E;6:6;66;61?21:;;:?11;:;?6565;@;6@11::055:::::5:5555D505555505:0?50505:5:05:;05:::5:5:055505:00::55550::555:50:D:5055;@;65;0:0:?5:505:005::5:55555555::5::0::::0:D675:5??5::0555:55:0::505555::?:5:5:50:0550:0:0:0::5:5::5::::5555555::505555::50?D?;55:55:?1:::5:D?:555D::50?:5::::0:5055::::555?0:::::5:5::?515?50:055555:::0:?::::???5?:505055:005?:D::5555:0550555:55?0:05?:5::55550::M
:?::::00:0:55D55>0:::5:50:5550:::55:::::?F?::?:::??:5::::::555:5:5:5::5:5D:5?D5::?505:50:05050:05555:5:0:05?000:5555:::::5D5DDDDDDDDDDDD055?::?0555:5D?:?::0:5::5?0555??D?D5?55::??:?::?::5D:?555?@@:::?5???55500:?:?55?6:5::???D:5D:?0?55:5::50055DD5055555:55?55?5:50::5:5:50500D55:::5555:0:5?:0:5:0:50:0D:05555000005505:DD??:5>5:550??0D55::??0:0?5550::5550??:555005:5:5000555055:55:5:?55?5:055:?:05:0505::0II005?0000:055:??00?::::55NDD?II50?555ID05D?:D555:I0:0?:"},{h:897018,c:[-350,-1050],u:12,mx:110,mz:130,mark:102,d:"B2M
A<22777222722222<2<2<AA2AAA222<2722A<2F22227>2227<2722722272222272772A2<9726;6;;6;;;;::515?55555::::??:4444444444444450144401514A444065510415114117426005110444444401110110115:16:10106150<7611120111511626115605461101121005;10112141111111112011160010211111"}].map(((t,e)=>{const o=[...t.d].map((t=>{const e=t.charCodeAt(0)-48;return[1+(e/5|0),e%5]})),a=ML(o.map((t=>t[0]))),n=a.W*t.u,s=a.H*t.u;return{i:e,mark:t.mark,n:o.length,h:t.h,name:t.h+".bitmap",cx:t.c[0],cz:t.c[1],u:t.u,X0:t.c[0]+n/2,Z0:t.c[1]+s/2,fw:n,fh:s,ax:n/M
2+t.mx,az:s/2+t.mz,lobe:t.lobe,tx:o,sl:a.sl,gw:a.W,gh:a.H}})),NB_ISL=ISL.length;function landD(t,e){let o=-1e9;for(const a of ISL){const n=Math.abs(t-a.cx)/a.ax,s=Math.abs(e-a.cz)/a.az;let l=(1-Math.sqrt(Math.sqrt(n*n*n*n+s*s*s*s)))*Math.min(a.ax,a.az);a.lobe&&(l=Math.max(l,a.lobe[2]-Math.hypot(t-a.lobe[0],e-a.lobe[1]))),l>o&&(o=l)}return o+((t,e)=>11*Math.sin(.013*t+1.3)*Math.cos(.011*e-.7)+6*Math.sin(.029*t+.023*e)+4*Math.cos(.041*e-.017*t))(t,e)}function islandAt(t,e){let o=ISL[0],a=1e9;for(const n of ISL){constM
 s=Math.hypot(t-n.cx,e-n.cz);s<a&&(a=s,o=n)}return o}function edgeD(t,e){let o=1e9;for(const a of ISL)o=Math.min(o,Math.hypot(t-a.cx,e-a.cz)-1100);return o}ISL.forEach((t=>t.rad=Math.hypot(t.ax,t.az)+(t.lobe?260:40)));const GN=1150,G0X=-2600,G0Z=-1500,HG=new Float32Array(GN*GN),TG=new Uint8Array(GN*GN);function fillH(t,e,o,a,n,s){const l=Math.max(0,Math.floor((t-G0X)/4)),r=Math.min(1149,Math.floor((o-G0X)/4)),i=Math.max(0,Math.floor((e-G0Z)/4)),c=Math.min(1149,Math.floor((a-G0Z)/4));for(let t=i;t<=c;t++)for(let e=lM
;e<=r;e++){const o=t*GN+e;(n>HG[o]||2===s)&&(HG[o]=n,TG[o]=s)}}function ground(t,e){const o=Math.floor((t-G0X)/4),a=Math.floor((e-G0Z)/4);let n=0,s=0;return o>=0&&a>=0&&o<GN&&a<GN&&(n=HG[a*GN+o],s=TG[a*GN+o]),{h:n,t:s,water:0===s&&landD(t,e)<0}}const PADS=[{L:"H",name:"Home Base",x:-240,z:-60,a:0,c:C.orange,disc:C.orange,css:"#F7931A"},{L:"N",name:"North Field",x:150,z:920,a:PI/2,c:C.green,disc:hex("#3A8A20"),css:"#83fd00"},{L:"R",name:"Harbor Strip",x:200,z:80,a:0,c:C.info,disc:hex("#0a9fc0"),css:"#00ddff"},{L:"G"M
,name:"Ridge Strip",x:-1506,z:400,a:0,c:C.mag,disc:hex("#c02cb0"),css:"#f344df"},{L:"F",name:"Fee Flats",x:410,z:1250,a:0,c:C.gold,disc:hex("#b07a10"),css:"#eba814"},{L:"M",name:"Mempool Mesa",x:-1150,z:127,a:PI/2,c:C.coin,disc:hex("#6B4AA8"),css:"#9a6ff0"},{L:"B",name:"Bitmap Bluff",x:618,z:550,a:0,c:C.blue,disc:hex("#2a6fbf"),css:"#5aa0ff"},{L:"E",name:"Early Strip",x:418,z:-750,a:0,c:hex("#2fae8f"),disc:hex("#1f8a70"),css:"#3fd0a8"},{L:"O",name:"Origin Islet",x:1248,z:-850,a:0,c:hex("#efe2b8"),disc:hex("#a89060"M
),css:"#efe2b8"},{L:"P",name:"Pre-Halving Point",x:1238,z:-100,a:0,c:hex("#ff9ec7"),disc:hex("#c0607f"),css:"#ff9ec7"},{L:"T",name:"Tug-of-War Strip",x:-1436,z:-550,a:0,c:hex("#ff5a5a"),disc:hex("#b03030"),css:"#ff5a5a"},{L:"A",name:"Auction Bay",x:-2287,z:-350,a:0,c:hex("#c3cad8"),disc:hex("#707890"),css:"#c3cad8"},{L:"L",name:"Leviathan Landing",x:-576,z:-1050,a:0,c:hex("#ffb07a"),disc:hex("#c06a30"),css:"#ffb07a"}];{const t=PADS[2];for(;t.x<600&&!(landD(t.x+9+14,t.z-55)<14||landD(t.x+9+14,t.z+55)<14||landD(t.x+9M
+14,t.z)<14);)t.x+=4}PADS.forEach(((t,e)=>{t.i=e,t.f=[Math.sin(t.a),Math.cos(t.a)],t.l=[Math.cos(t.a),-Math.sin(t.a)],t.isl=islandAt(t.x,t.z).i}));const padW=(t,e,o)=>[t.x+t.l[0]*e+t.f[0]*o,t.z+t.l[1]*e+t.f[1]*o];function padLocal(t,e,o){const a=e-t.x,n=o-t.z;return[a*t.l[0]+n*t.l[1],a*t.f[0]+n*t.f[1]]}function padAt(t,e,o=2){for(const a of PADS){const[n,s]=padLocal(a,t,e);if(Math.abs(n)<9+o&&Math.abs(s)<55+o)return a}return null}const RIDGES=[[-1720,560,150,110],[-1700,700,120,90],[-1800,440,110,110],[-1640,440,90M
,80]],W=new MB,FEE=[C.lo,C.md,C.hi,C.coin,C.opr];function padMesh(t){{const e=new MB,o=.3;e.quad([-9,o,-55],[9,o,-55],[9,o,55],[-9,o,55],C.asph);for(const t of[-1,1])e.quad([18*t/2-.5,o+.04,-55],[18*t/2,o+.04,-55],[18*t/2,o+.04,55],[18*t/2-.5,o+.04,55],hex("#8c93b3"));for(let t=-40;t<=40;t+=10)Math.abs(t)>12&&e.quad([-.3,o+.04,t],[.3,o+.04,t],[.3,o+.04,t+5],[-.3,o+.04,t+5],C.white);for(const t of[-1,1])for(let a=0;a<3;a++){const n=t*(49-4.5*a);e.tri([-4,o+.04,n],[0,o+.04,n+2.6*t],[4,o+.04,n],C.white),e.tri([-4,o+.0M
7,n],[4,o+.07,n],[0,o+.07,n+1.2*t],C.asph)}e.lathe([[0,o+.08],[6.6,o+.08]],24,(()=>C.white)),e.lathe([[0,o+.12],[6,o+.12]],24,(()=>t.disc)),e.glyph(t.L,1.25,o+.12,o+.18,C.white),e.box(12,0,47,12.3,5,47.3,C.strut),e.box(12.3,4.2,46.8,13.6,5,47.5,C.orange),e.box(13.6,4.35,46.95,14.7,4.85,47.35,C.white);for(const t of[-1,1])for(let o=1;o<=4;o++){const a=t*(55+5*o);e.box(-.4,0,a-.4,.4,.6,a+.4,C.haz)}if("H"===t.L&&(e.box(16,0,-12,38,7,14,C.orange,shade(C.orange,.8)),e.quad([16,7,-12],[27,11,-12],[27,11,14],[16,7,14],shaM
de(C.orange,1.05)),e.quad([38,7,-12],[27,11,-12],[27,11,14],[38,7,14],shade(C.orange,.92)),e.tri([16,7,-12],[38,7,-12],[27,11,-12],C.orange),e.tri([16,7,14],[38,7,14],[27,11,14],C.orange),e.glyph("B",.9,7.05,7.6,C.white,22,1),e.quad([9,.33,-.6],[16,.33,-.6],[16,.33,.6],[9,.33,.6],C.info)),"N"===t.L){e.box(18,0,0,30,6,14,C.barn),e.quad([18,6,0],[24,9.5,0],[24,9.5,14],[18,6,14],hex("#5a2a20")),e.quad([30,6,0],[24,9.5,0],[24,9.5,14],[30,6,14],hex("#4a2018")),e.tri([18,6,0],[30,6,0],[24,9.5,0],C.barn),e.tri([18,6,14],[M
30,6,14],[24,9.5,14],C.barn),e.lathe([[2.4,0],[2.4,11],[1.6,12.6],[0,13]],10,(()=>C.cream),[35,0,7]);for(let t=0;t<6;t++)e.quad([-16-6*t,.1,-50],[-21-6*t,.1,-50],[-21-6*t,.1,50],[-16-6*t,.1,50],hex(t%2?"#7d9a45":"#a8a050"))}if("R"===t.L){e.box(9,0,-20,80,.8,20,hex("#5d6182"));for(const t of[-12,8])e.box(40,0,t-1,41.5,16,t+.5,C.steel),e.box(52,0,t-1,53.5,16,t+.5,C.steel),e.box(36,16,t-1.2,74,18,t+.7,C.steel),e.box(72,16,t-1.4,75,19,t+.9,C.gold);for(let t=0;t<6;t++){const o=[C.orange,C.info,C.mag,C.lo,C.gold,C.blue][M
t];e.box(22+t%3*5,.8+(t>2?2.6:0),-6,26.5+t%3*5,.8+(t>2?5.2:2.6),4,o)}}if("G"===t.L){for(let t=0;t<10;t++)e.box(-24.6,4.6*t,-.6,-23.4,4.6*(t+1),.6,hex(t%2?"#C03030":"#E8E8E8"));e.box(-26,0,-2,-22,1,2,C.strut)}if("F"===t.L)for(const t of[-10,6])e.lathe([[3,0],[3,6],[2.2,7],[0,7.2]],12,(()=>C.white),[24,0,t]);"M"===t.L&&(e.box(18,0,-14,36,4,14,C.ridgeL,C.ridge),e.box(21,4,-10,33,8,10,shade(C.ridgeL,1.12),C.ridge)),islandAt(t.x,t.z).mb.append(e,t.a,t.x,0,t.z);{const e=function(t){const e=[],o=[];for(const a of[-9,9])foM
r(const n of[-55,55]){const s=padW(t,a,n);e.push(s[0]),o.push(s[1])}return[Math.min(...e),Math.min(...o),Math.max(...e),Math.max(...o)]}(t);fillH(e[0],e[1],e[2],e[3],.3,2)}const a=(e,o,a,n,s)=>{const l=padW(t,e,o),r=padW(t,a,n);fillH(Math.min(l[0],r[0]),Math.min(l[1],r[1]),Math.max(l[0],r[0]),Math.max(l[1],r[1]),s,3)};if("H"===t.L&&a(16,-12,38,14,11),"N"===t.L&&(a(18,0,30,14,9.5),a(32,4,38,10,13)),"R"===t.L)for(const t of[-12,8])a(36,t-1.4,75,t+.9,19);if("G"===t.L&&a(-25,-1,-23,1,46),"F"===t.L)for(const t of[-10,6]M
)a(21,t-3,27,t+3,7.2);"M"===t.L&&a(18,-14,36,14,8),t.mast="G"===t.L?padW(t,-24,0):null,t.tip="G"===t.L?46:0}}function seaInto(t){const e=184,o=25,a=G0X,n=G0Z,s=[0,1,0],l=t=>t<-150?C.deep:t<-60?mix(C.mid,C.deep,(-60-t)/90):t<-6?mix(C.shal,C.mid,(-6-t)/54):t<2?C.wet:t<16?C.beach:t<40?mix(C.beach,C.grass,(t-16)/24):C.grass,r=[];for(let t=0;t<=e;t++){r[t]=new Float32Array(185);for(let s=0;s<=e;s++)r[t][s]=landD(a+s*o,n+t*o)}for(let i=0;i<e;i++){let c=-1;for(let f=0;f<=e;f++){if(f<e&&r[i][f]<-150&&r[i][f+1]<-150&&r[i+1]M
[f]<-150&&r[i+1][f+1]<-150){c<0&&(c=f);continue}const p=n+i*o,d=p+o;if(c>=0){const e=a+c*o,n=a+f*o;t.v([e,0,p],s,C.deep),t.v([n,0,p],s,C.deep),t.v([n,0,d],s,C.deep),t.v([e,0,p],s,C.deep),t.v([n,0,d],s,C.deep),t.v([e,0,d],s,C.deep),c=-1}if(f<e){const e=a+f*o,n=e+o,c=l(r[i][f]),h=l(r[i][f+1]),u=l(r[i+1][f+1]),b=l(r[i+1][f]);t.v([e,0,p],s,c),t.v([n,0,p],s,h),t.v([n,0,d],s,u),t.v([e,0,p],s,c),t.v([n,0,d],s,u),t.v([e,0,d],s,b)}}}const i=9e3,c=a,f=n,p=3100;t.quad([-i,0,-i],[i,0,-i],[i,0,f],[-i,0,f],C.deep),t.quad([-i,0,pM
],[i,0,p],[i,0,i],[-i,0,i],C.deep),t.quad([-i,0,f],[c,0,f],[c,0,p],[-i,0,p],C.deep),t.quad([2e3,0,f],[i,0,f],[i,0,p],[2e3,0,p],C.deep)}let CITYV=0;let BH=(()=>{try{return"low"===JSON.parse(localStorage.getItem("bitmapFlyer.v1")||"{}").bh?"low":"tall"}catch(t){return"tall"}})();function fillB(t,e,o,a,n){let s=Math.ceil((t-G0X)/4-.5),l=Math.floor((o-G0X)/4-.5),r=Math.ceil((e-G0Z)/4-.5),i=Math.floor((a-G0Z)/4-.5);l<s&&(s=l=Math.floor(((t+o)/2-G0X)/4)),i<r&&(r=i=Math.floor(((e+a)/2-G0Z)/4));for(let t=Math.max(0,r);t<=MM
ath.min(1149,i);t++)for(let e=Math.max(0,s);e<=Math.min(1149,l);e++){const o=t*GN+e;n>HG[o]&&(HG[o]=n,TG[o]=1)}}function cityMesh(t){const e=new MB,o=new MB,a=new MB,n=[new MB,new MB,new MB,new MB],s=t.u,l=Math.min(.5*s,2.6)/2,r=s>=10?1.35:1,i="low"===BH?1:4;t.rj||(t.rj=[]),t.bv=i>1?function(t){const e=[];if(t.gw<8||t.gh<8)return e;const o=(e,o,a,n)=>{let s=null;for(let l=Math.ceil(e*a);l<=Math.floor(e*n);l++){let e=0;for(const a of t.sl){const t=o?a[1]:a[0];t<l&&t+a[2]>l&&(e+=a[2]*a[2])}(!s||e<s.c)&&(s={L:l,c:e})}M
return s.L},a=Math.max(t.fw,t.fh)>380?[[.2,.42],[.58,.8]]:[[.35,.65]];for(const n of a)e.push({x:t.X0-o(t.gw,0,n[0],n[1])*t.u}),e.push({z:t.Z0-o(t.gh,1,n[0],n[1])*t.u});return e}(t):[],t.nb=0,t.nt=0,t.hmax=0,t.hsum=0,t.pcs=[],t.sl.forEach((([c,f,p],d)=>{if(t.skip&&t.skip[d])return;let h=t.rj[d];if(!h){const e=rnd();h=t.rj[d]=[e,p>1?rnd():0]}const u=shade(FEE[t.tx[d][1]],.92+.16*h[0]),b=t.X0-c*s-l,m=t.X0-(c+p)*s+l,g=t.Z0-f*s-l,S=t.Z0-(f+p)*s+l;let y=.35;const A=t=>t.quad([m,.35,S],[b,.35,S],[b,.35,g],[m,.35,g],u);ifM
(1===p)A(o),A(a),fillH(m,S,b,g,.35,1),t.nt++;else{const o=(.8+1.25*Math.log2(1+p*p)*(.75+.5*h[1]))*r;y=i>1?Math.min(52,o*i*(.7+.12*p)):Math.min(14,o);const s=t.bv.length?function(t,e){let o=[t];const a=14;for(const t of e){const e=[];for(const n of o)null!=t.x&&n[0]<t.x+a&&n[2]>t.x-a?(t.x-a-n[0]>=2&&e.push([n[0],n[1],t.x-a,n[3]]),n[2]-(t.x+a)>=2&&e.push([t.x+a,n[1],n[2],n[3]])):null!=t.z&&n[1]<t.z+a&&n[3]>t.z-a?(t.z-a-n[1]>=2&&e.push([n[0],n[1],n[2],t.z-a]),n[3]-(t.z+a)>=2&&e.push([n[0],t.z+a,n[2],n[3]])):e.push(n)M
;o=e}return o}([m,S,b,g],t.bv):[[m,S,b,g]];1===s.length&&s[0][0]===m&&s[0][1]===S&&s[0][2]===b&&s[0][3]===g||(A(e),A(a),fillH(m,S,b,g,.35,1));const l=shade(u,.8);for(const[o,r,i,c]of s)e.box(o,0,r,i,y,c,u,l),a.quad([o,y,r],[i,y,r],[i,y,c],[o,y,c],u),n[0].quad([o,0,r],[i,0,r],[i,y,r],[o,y,r],l),n[1].quad([o,0,c],[i,0,c],[i,y,c],[o,y,c],l),n[2].quad([o,0,r],[o,0,c],[o,y,c],[o,y,r],l),n[3].quad([i,0,r],[i,0,c],[i,y,c],[i,y,r],l),fillB(o,r,i,c,y),t.pcs.push([o,r,i,c,y]);s.length?(t.nb++,t.hmax=Math.max(t.hmax,y),t.hsumM
+=y):y=.35}if(0===d&&(t.cb=[(m+b)/2,y,(S+g)/2]),d===t.mark){const o=(m+b)/2,n=(S+g)/2;for(const t of[e,a])t.box(o-.6,y,n-.6,o+.6,y+30,n+.6,hex("#d9dde6")),t.box(o+.6,y+22,n-.25,o+9,y+29,n+.25,hex("#ffd23a"));fillH(o-.6,n-.6,o+.6,n+.6,y+30,3),t.mk=[o,y+30,n]}}));for(const e of[t.city,t.cityT,t.tiles,...t.cityW||[]])e&&e.b&&gl.deleteBuffer(e.b);CITYV++,t.city=e.build(),t.tiles=o.build(),t.cityT=a.build(),t.cityW=n.map((t=>t.build()))}function islandMesh(t){const e=new MB,o=new MB;for(const a of[e,o])a.quad([t.X0-t.fwM
-1,.16,t.Z0-t.fh-1],[t.X0+1,.16,t.Z0-t.fh-1],[t.X0+1,.16,t.Z0+1],[t.X0-t.fw-1,.16,t.Z0+1],C.gut);cityMesh(t);const a=t.name.toUpperCase(),n=6*2.6,s=t.cx+(a.length-1)*n/2;[...a].forEach(((o,a)=>e.glyph(o,2.6,.18,.5,C.white,s-a*n,t.Z0+40))),t.fb=o,t.mb=((t,e)=>{const o={};for(const a of["box","quad","tri","glyph","append","lathe","prism","loft"])o[a]=(...o)=>{t[a](...o),e[a](...o)};return o.build=()=>t.build(),o})(e,o)}!function(){seaInto(W);for(const t of ISL)islandMesh(t);for(const[t,e,o,a]of RIDGES){const n=islandM
At(t,e).mb;for(let s=0;s<5;s++){const l=1-.17*s,r=o*l/2,i=a*l/2,c=11*s,f=11*(s+1);n.box(t-r,c,e-i,t+r,f,e+i,s%2?C.ridgeL:shade(C.ridgeL,1.12),C.ridge),fillH(t-r,e-i,t+r,e+i,f,3)}}for(const t of PADS)padMesh(t)}();let worldMesh=W.build();W.d=null,ISL.forEach((t=>{t.mesh=t.mb.build(),t.far=t.fb.build(),t.mb=t.fb=null}));const LM=[{name:"Harbor cranes",p:padW(PADS[2],56,-2),y:19},{name:"Ridge mast",p:PADS[3].mast,y:46},{name:"Barn & silo",p:padW(PADS[1],26,7),y:13}].map((t=>({name:t.name,x:t.p[0],z:t.p[1],y:t.y}))).coM
ncat(ISL.map((t=>({name:t.h+" coinbase",x:t.cb[0],z:t.cb[2],y:t.cb[1]}))));for(const t of ISL)t.mk&&LM.push({name:t.h+" largest tx",x:t.mk[0],z:t.mk[2],y:t.mk[1]});LM.forEach((t=>t.isl=islandAt(t.x,t.z).i));const HIST={snap:"24 Mar 2026",src:"source: on-chain index, snapshot 24 Mar 2026. Shares are about values from a 20% sample. Dates are UTC.",cards:[{g:"btc",t:"Block 0, the genesis block, was mined on 3 Jan 2009. Its coinbase holds a newspaper headline from that day."},{g:"btc",t:"Block 210,000 (28 Nov 2012) wasM
 the first halving: the block reward fell from 50 to 25 BTC."},{g:"btc",t:"Block 420,000 (9 Jul 2016) cut the reward to 12.5 BTC. Block 630,000 (11 May 2020) cut it to 6.25 BTC."},{g:"btc",t:"Block 840,000 (20 Apr 2024) cut the reward to 3.125 BTC. Its fees totalled 37.6 BTC, over 12 times that."},{g:"btc",t:"SegWit turned on at block 481,824 (24 Aug 2017). Its rule: block weight at most 4,000,000."},{g:"btc",t:"Taproot turned on at block 709,632 (14 Nov 2021). Ordinals inscriptions are stored in Taproot scripts."}M
,{g:"btc",t:"The first Ordinals inscription, number 0, is in block 767,430 (14 Dec 2022): a 793-byte image."},{g:"bmp",t:'A bitmap is a claim on a Bitcoin block: you inscribe the text "<block number>.bitmap" on a satoshi using Ordinals.'},{g:"bmp",t:"The first valid inscription wins. If two people inscribe 840000.bitmap, the earlier one on the chain is the claim."},{g:"bmp",t:'Bitmap Theory calls a block a "district" and each transaction in it a "parcel".'},{g:"bmp",t:"Bitmap is a community standard. Indexers read M
the chain to see which claim was inscribed first."},{g:"bmp",t:"Bitmaps 0 to 19,999 were all claimed between 1 and 18 June 2023. 0.bitmap was inscribed in block 792,435."},{g:"bmp",t:"About 85% of all bitmap claims were made in June 2023. The busiest day was 20 June."},{g:"bmp",t:"Of block numbers 0 to 941,999, all but two have a claim in the on-chain index (snapshot of 24 Mar 2026)."},{g:"isl",t:"Block 3845 (Feb 2009) has difficulty 1 and one transaction: the miner's reward."},{g:"isl",t:"At block 210,000, fees adM
ded 13.6 BTC to the 25 BTC reward: 54% of the reward."},{g:"isl",t:"Block 420,000 is 999,838 bytes, just under the 1,000,000-byte limit of its time."},{g:"isl",t:"In block 656,159 (Nov 2020), fees were 43.6% of the 6.25 BTC reward."},{g:"isl",t:'Block 883,046\'s coinbase text says "MARA Made in USA". mempool.space lists MARA Pool as its miner.'}],isl:{883046:{num:85155534,at:"2025-02-09T15:15:14",claim:"883046.bitmap was inscribed in its own block, on 9 Feb 2025, as inscription #85,155,534.",extra:'Block 883,046\'sM
 coinbase text says "MARA Made in USA". mempool.space lists MARA Pool as its miner.'},253152:{num:13630368,at:"2023-06-26T04:18:13",claim:"253152.bitmap was claimed on 26 Jun 2023, nearly 10 years after its block was mined (inscription #13,630,368).",extra:'Block 253,152\'s coinbase carries the tag "BitMinter". Its difficulty was 50,810,339.'},110115:{num:13031371,at:"2023-06-21T05:29:01",claim:"110115.bitmap was claimed on 21 Jun 2023, about 12 years after its block was mined (inscription #13,031,371).",extra:"BloM
ck 110,115 has difficulty 36,460, no pool name in its coinbase, and none of its 8 transactions paid a fee."},21e4:{num:10695392,at:"2023-06-04T02:11:17",claim:"210000.bitmap was claimed on 4 Jun 2023, in the first days of bitmap claims (inscription #10,695,392).",extra:"At block 210,000, fees added 13.6 BTC to the 25 BTC reward: 54% of the reward."},42e4:{num:10896520,at:"2023-06-05T18:22:16",claim:"420000.bitmap was claimed on 5 Jun 2023, about 7 years after its block was mined (inscription #10,896,520).",extra:"BM
lock 420,000 is 999,838 bytes, just under the 1,000,000-byte limit of its time."},3845:{num:12007720,at:"2023-06-15T21:52:02",claim:"3845.bitmap was claimed on 15 Jun 2023, about 14 years after its block was mined (inscription #12,007,720).",extra:"Block 3845 (Feb 2009) has difficulty 1 and one transaction: the miner's reward."},199755:{num:13467944,at:"2023-06-25T08:52:56",claim:"199755.bitmap was claimed on 25 Jun 2023, about 11 years after its block was mined (inscription #13,467,944).",extra:'Block 199,755\'s cM
oinbase tags read "/slush/" and "/P2SH/BIP16/".'},454453:{num:13836952,at:"2023-06-27T06:22:03",claim:"454453.bitmap was claimed on 27 Jun 2023, about 6 years after its block was mined (inscription #13,836,952).",extra:'Block 454,453\'s coinbase text includes "BW Support 8M" and "/BW Pool/".'},656159:{num:13038797,at:"2023-06-21T06:38:05",claim:"656159.bitmap was claimed on 21 Jun 2023, about 2.6 years after its block was mined (inscription #13,038,797).",extra:'Block 656,159\'s coinbase text reads "/ViaBTC/Mined bM
y rme100/". Its median fee rate was 237 sat/vB.'},897018:{num:96167272,at:"2025-05-16T21:33:21",claim:"897018.bitmap was inscribed in its own block on 16 May 2025 (inscription #96,167,272).",extra:'Block 897,018\'s coinbase text says "Mined by AntPool805". Its 256 transactions average 8.3 KB.'}},tl:{end:"2026-03-24T12:20:14",maxBlock:941999,ev:[{h:0,k:"0",r:"50",d:"3 Jan 2009",t:"Block 0, 3 Jan 2009: the genesis block."},{h:21e4,k:"210k",r:"25",d:"28 Nov 2012",t:"Block 210,000, 28 Nov 2012: first halving, reward 50M
 to 25 BTC."},{h:42e4,k:"420k",r:"12.5",d:"9 Jul 2016",t:"Block 420,000, 9 Jul 2016: reward 25 to 12.5 BTC."},{h:63e4,k:"630k",r:"6.25",d:"11 May 2020",t:"Block 630,000, 11 May 2020: reward 12.5 to 6.25 BTC."},{h:84e4,k:"840k",r:"3.125",d:"20 Apr 2024",t:"Block 840,000, 20 Apr 2024: reward 6.25 to 3.125 BTC."},{h:481824,k:"SegWit",lv:0,d:"24 Aug 2017",t:"Block 481,824, 24 Aug 2017: SegWit turned on."},{h:709632,k:"Taproot",lv:0,d:"14 Nov 2021",t:"Block 709,632, 14 Nov 2021: Taproot turned on."},{h:767430,k:"Inscr. M
#0",lv:1,d:"14 Dec 2022",t:"Block 767,430, 14 Dec 2022: first Ordinals inscription (number 0)."}],june:{1:0,2:0,3:0,4:0,5:0,6:0,7:.01,8:0,9:.01,10:0,11:0,12:0,13:.04,14:.3,15:1.03,16:1.22,17:2.1,18:3.98,19:3.21,20:12.41,21:6.4,22:8.27,23:5.05,24:7.63,25:8.43,26:7.13,27:7.42,28:3.75,29:5.24,30:.94},marks:[{day:1,t:"1 Jun 2023: 0.bitmap was inscribed in block 792,435 (22:08 UTC).",k:"0.bitmap",s:"d"},{day:20,t:"20 Jun 2023: the busiest day, about 12.4% of all claims.",k:"busiest day",s:"*"},{day:30,t:"30 Jun 2023: saM
mpled claims for blocks below 796,516 were all made in June.",k:"blocks 0 to 796,515 claimed",s:"t"}],later:"About one claim per new block since July 2023 (about 4,400 a month).",caps:["99.9998% of block numbers 0 to 941,999 have a claim.","About 85% of claims were made in June 2023.","The busiest day was 20 June 2023: about 12.4% of all claims.","About 9 in 10 claims for blocks 796,516 and up were inscribed in the block they name.","Bitmaps 0 to 19,999 were all claimed between 1 and 18 June 2023."]}},EDU=[{date:"9M
 Feb 2025",txs:"1,060",bytes:"2,045,542",fees:"0.01506803",sub:"3.125",fact:"After the 4th halving: subsidy 3.125 BTC."},{date:"28 Nov 2012",txs:"457",bytes:"199,127",fees:"13.563",sub:"25",fact:"First halving: block subsidy 50 -> 25 BTC."},{date:"9 Jul 2016",txs:"1,257",bytes:"999,838",fees:"0.5757",sub:"12.5",fact:"Second halving: block subsidy 25 -> 12.5 BTC."},{date:"20 Aug 2013",txs:"27",bytes:"9,736",fees:"0.0074",sub:"25",fact:"A small early block: only 27 transactions."},{date:"24 Feb 2011",txs:"8",bytes:"3M
,138",fees:"0",sub:"50",fact:"Early days: 8 transactions, zero fees."},{date:"11 Feb 2009",txs:"1",bytes:"215",fees:"0",sub:"50",fact:"Only the miner's reward: 1 transaction, the 50 BTC coinbase."},{date:"21 Sep 2012",txs:"444",bytes:"284,192",fees:"0.24700347",sub:"50",fact:"Last era before the 1st halving: 50 BTC subsidy."},{date:"24 Feb 2017",txs:"1,589",bytes:"707,604",fees:"1.46797165",sub:"12.5",fact:"No SegWit yet: 1,589 txs packed in 707,604 bytes."},{date:"9 Nov 2020",txs:"2,588",bytes:"1,278,349",fees:"2.M
72659573",sub:"6.25",fact:"Fees were 43.6% of the 6.25 BTC subsidy."},{date:"16 May 2025",txs:"256",bytes:"2,122,450",fees:"0.03256248",sub:"3.125",fact:"Largest tx 217,474 B; 19 txs over 50 KB = 85% of bytes."}],FACTS0=["Each square is one transaction in the block.","Bigger square = more BTC moved: each size step is about 10x more BTC.","A new Bitcoin block is found about every 10 minutes on average.","The block subsidy halves every 210,000 blocks (roughly every 4 years).","The coinbase is the first transaction inM
 every block: it pays the miner the subsidy plus fees.","OP_RETURN outputs can store a small amount of data on-chain.","Home bitmap 883046 was mined 9 Feb 2025: 1,060 transactions, 61 of them with OP_RETURN data.","Block 110115 (24 Feb 2011) paid its miner exactly the 50 BTC subsidy: none of its 8 transactions paid a fee.","656159.bitmap (Nov 2020): fees were 43.6% of the 6.25 BTC subsidy, 2.72659573 BTC.","897018.bitmap (May 2025): 19 transactions over 50 KB fill 85% of its 2,122,450 bytes.","In the Bitmap protocoM
l, the first inscription of the text '253152.bitmap' claims block 253152.","In this game: green, gold and plum squares are low, mid and high fee rates; purple is the coinbase, red-orange has OP_RETURN."],FACTS=[];for(let t=0;t<Math.max(FACTS0.length,HIST.cards.length);t++)t<FACTS0.length&&FACTS.push(FACTS0[t]),t<HIST.cards.length&&FACTS.push(HIST.cards[t].t);const factNow=()=>FACTS[Math.floor(performance.now()/7e3)%FACTS.length],SIGNS=[[0,-265],[150,1480],[-1200,775],[850,285],[600,-975],[1350,-965],[1500,-381],[-1M
150,-860],[-2e3,-657],[-350,-1295]].map((([t,e],o)=>{let a=0;for(let o=-32;o<=32;o+=4)for(let n=-32;n<=32;n+=4)o*o+n*n<=1024&&(a=Math.max(a,ground(t+o,e+n).h));return{x:t,z:e,i:o,gy:a,y:a+24}}));function inFr(t,e,o,a){const n=VP;for(const[s,l]of[[0,1],[0,-1],[1,1],[1,-1],[2,1]]){const r=n[3]+l*n[s],i=n[7]+l*n[4+s],c=n[11]+l*n[8+s];if((r*t+i*e+c*o+(n[15]+l*n[12+s]))/Math.hypot(r,i,c)<-a)return!1}return!0}function canvasTex(t){const e=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,e),gl.texImage2D(gl.TEXTURE_M
2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,t),gl.generateMipmap(gl.TEXTURE_2D),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR_MIPMAP_LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),e}SIGNS.forEach((t=>{t.tex=function(t,e){const o=document.createElement("canvas");o.width=1024,o.height=512;const a=o.getContext("2d"),n=(t,e)=>a.font=t+" "+e+'px system-M
ui,-apple-system,"Segoe UI",Roboto,sans-serif',s=(t,e,o)=>{const n=a.font;let s=parseFloat(n.match(/([0-9.]+)px/)[1]);for(;a.measureText(t).width>984-e&&s>14;)s-=1,a.font=n.replace(/[0-9.]+px/,s+"px");a.fillText(t,e,o),a.font=n},l=(t,e,o,n,s)=>{const l=a.font;let r,i=parseFloat(l.match(/([0-9.]+)px/)[1]);for(;;){a.font=l.replace(/[0-9.]+px/,i+"px"),r=[];let o="";for(const n of t.split(" ")){const t=o?o+" "+n:n;a.measureText(t).width>984-e&&o?(r.push(o),o=n):o=t}if(r.push(o),r.length<=s||i<=16)break;i-=1}r.forEach((M
(t,s)=>a.fillText(t,e,o+s*n))),a.font=l},r=HIST.isl[t.h];return a.fillStyle="#171c2a",a.fillRect(0,0,1024,512),a.strokeStyle="#F7931A",a.lineWidth=14,a.strokeRect(7,7,1010,498),a.textBaseline="middle",a.textAlign="left",n("800",76),a.fillStyle="#F7931A",a.fillText(t.name,40,62),n("700",34),a.fillStyle=t.i?"#00ddff":"#83fd00",a.textAlign="right",a.fillText(t.i?"reached from 883046":"HOME BITMAP",984,66),a.textAlign="left",n("700",38),a.fillStyle="#F4F6F8",s("Block "+t.h+"
  mined "+e.date,40,124),s(e.txs+" transaM
  "+e.bytes+" bytes",40,166),s("Fees "+e.fees+" BTC
  subsidy "+e.sub+" BTC",40,208),n("800",34),a.fillStyle="#eba814",s(e.fact,40,252),r&&(n("700",29),a.fillStyle="#00ddff",l(r.claim,40,298,33,2),a.fillStyle="#F4F6F8",l(r.extra,40,372,33,2)),a.fillStyle="#272f4e",a.fillRect(30,430,964,2),[[44,448,14,"#3A6B52"],[64,442,26,"#8A7340"],[98,436,38,"#7A3A58"]].forEach((([t,e,o,n])=>{a.fillStyle=n,a.fillRect(t,e,o,o)})),n("600",24),a.fillStyle="#b1b1b1",s(t.i?"1 square = 1 transaction
  bigger = more BTC M
  dates UTC":"1 square = 1 transaction
  all "+e.txs+" shown
  bigger = more BTC
  dates UTC",150,458),canvasTex(o)}(ISL[t.i],EDU[t.i])}));const signB=(()=>{const t=gl.createBuffer(),e=32,o=16;return gl.bindBuffer(gl.ARRAY_BUFFER,t),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-e,o,.3,0,0,e,o,.3,1,0,e,-o,.3,1,1,-e,o,.3,0,0,e,-o,.3,1,1,-e,-o,.3,0,1]),gl.STATIC_DRAW),t})(),poleM=(()=>{const t=new MB;return t.box(-.6,-14,-.6,.6,8.4,.6,C.strut),t.build()})();SIGNS.forEach((t=>fillH(t.x-.6,t.z-.6,t.x+.6,tM
.z+.6,t.y,3)));const aTp=gl.getAttribLocation(TP.p,"tp"),aTt=gl.getAttribLocation(TP.p,"tt");function unlockMesh(t){const e=new MB,o=C.black,a=t?C.mag:C.gold,n=t?C.info:C.mag;e.loft([{z:-2.2,w:.2,h:.25,y:.25},{z:-.6,w:.88,h:.8,y:0},{z:1.1,w:.88,h:.8,y:0},{z:2.35,w:.25,h:.25,y:-.05}],[o]),e.loft([{z:-.4,w:.3,h:.1,y:.42},{z:.3,w:.62,h:.5,y:.6},{z:1.1,w:.5,h:.3,y:.52},{z:1.5,w:.2,h:.06,y:.42}],[C.glass]),e.prism([[-2.9,-.55],[0,.75],[2.9,-.55],[2.9,-1.15],[0,-.7],[-2.9,-1.15]],-.36,-.22,a,shade(a,.75)),e.prism([[-2.9,M
-.55],[0,.75],[0,.6],[-2.9,-.7]],-.355,-.2,o),e.prism([[0,.75],[2.9,-.55],[2.9,-.7],[0,.6]],-.355,-.2,o);for(const t of[-1,1])e.box(2.85*t-.1,-.4,-1.15,2.85*t+.1,-.18,-.55,n);e.prism([[-1,-1.55],[1,-1.55],[1,-2.05],[0,-1.75],[-1,-2.05]],.22,.3,a),e.loft([{z:-2.3,w:.1,h:1.25,y:.95},{z:-1.35,w:.1,h:.35,y:.42}],[a]),e.box(-.06,1.3,-2.35,.06,1.58,-2.05,o);for(const t of[-1,1])e.box(.9*t-.1,-1,.1,.9*t+.1,-.65,.4,C.tire);return e.box(-.09,-1,1.5,.09,-.7,1.75,C.tire),e.lathe([[0,0],[.16,0],[0,.4]],8,(()=>n),[0,0,0]),e}funM
ction spin(t,e){for(let o=t.d.length-480;o<t.d.length;o+=10){const a=t.d[o],n=t.d[o+1],s=t.d[o+2];t.d[o]=a,t.d[o+1]=s,t.d[o+2]=e+n;const l=t.d[o+4],r=t.d[o+5];t.d[o+4]=r,t.d[o+5]=l}}const tm=function(){const t=new MB,e=C.cream,o=C.blue;t.loft([{z:-2.1,w:.25,h:.3,y:.32},{z:-.4,w:1.12,h:1.05,y:.02},{z:1.15,w:1.12,h:1.12,y:0},{z:1.45,w:1.12,h:1.12,y:0},{z:2,w:.75,h:.72,y:-.05}],[e,e,C.orange,e]),t.box(-.5,.2,.35,.5,.62,1.1,hex("#2a3a50")),t.prism([[-3.2,1.25],[3.2,1.25],[3.2,-.15],[-3.2,-.15]],.62,.78,o,shade(o,.8));fM
or(const e of[-1,1])t.box(2.75*e-.25,.63,-.16,2.75*e+.25,.79,1.26,C.white);for(const e of[-1,1])t.box(1.5*e-.06,-.3,.4,1.5*e+.06,.62,.52,C.strut),t.box(.55*e-.06,-1.05,.3,.55*e+.06,-.3,.42,C.strut),t.box(.55*e-.12,-1.25,.05,.55*e+.12,-.85,.65,C.tire);return t.box(-.12,-1.25,1.45,.12,-.85,1.85,C.tire),t.box(-.05,-.9,1.6,.05,-.4,1.7,C.strut),t.prism([[-1.15,-1.45],[1.15,-1.45],[1.15,-2.1],[-1.15,-2.1]],.32,.42,o),t.loft([{z:-2.15,w:.12,h:1.35,y:.95},{z:-1.4,w:.12,h:.5,y:.62}],[o]),t.lathe([[0,0],[.28,0],[0,.5]],8,(()M
=>C.orange),[0,0,0]),t}();spin(tm,2);const um=unlockMesh();spin(um,2.35);const um2=unlockMesh(1);function propMesh(t,e,o){const a=new MB;a.lathe([[0,0],[t,0]],16,(()=>hex("#C0C8D0")),[0,0,0],(t=>t?.5*o:o));for(let t=0;t<a.d.length;t+=10){const o=a.d[t+1],n=a.d[t+2];a.d[t+1]=n,a.d[t+2]=e+.02+o}return a}spin(um2,2.35);const SK={cost:2500,glide:4.8,trim:.32,lvl:.65,pmaxB:.05,pmaxK:.25,piRate:.75,piDecay:.55,piMax:.35,dive:1.2,sinkSlow:1.5,flareSink:.45,flare:.12,assist:.6,swW:4.6,swZ:.55,rollK:1.2,pw:3,gust0:.012,gustM
Alt:.05,gustRef:100,gustP:.45,ceil:120,soft:85,turboK:1.6,turboT:3,turboCD:6,turboAcc:1.4,heavy:.92,pay:{cargo:.8,express:.8,scenic:1.25},parV:11,TILT:.2,HING:2.3,CAN_Y:4.4,CAN_W:5.6,CAN_C:3.4,ARC:1.7,camD0:9.6,camDS:1.2,camDG:8.5,camH0:3.8,camHS:.6,camHG:3,camLAUP:2.6,camLAUG:1.6,camRK:.5,camRCAP:5*PI/180};function rod(t,e,o,a,n){const s=nrm(sub(o,e)),l=Math.abs(s[1])>.9?[1,0,0]:[0,1,0],r=scl(nrm(cross(s,l)),a),i=scl(nrm(cross(s,r)),a);t.quad(add(e,r),sub(e,r),sub(o,r),add(o,r),n),t.quad(add(e,i),sub(e,i),sub(o,i)M
,add(o,i),n)}function qd(t,e,o,a,n,s,l){const r=cross(sub(o,e),sub(a,e));dot(r,l)<0?t.quad(e,n,a,o,s):t.quad(e,o,a,n,s)}function skyCartMesh(t){const e=new MB,o=hex("#B9C0CC"),a=C.black,n=C.orange,s=C.strut,l=hex("#26365a"),r=hex("#7a3a2a");if(t){for(const t of[-1,1])e.box(.9*t-.01,.45,.99,.9*t+.01,1.2,1.01,o),rod(e,[.9*t,1.2,1],[2.6*t,4.4,2.6],.01,hex("#2b2f3d"));return e}e.box(-.8,-.5,-1,.8,-.38,1.35,s);for(const a of[-1,1])e.box(.78*a-.04,-.46,-1,.78*a+.04,-.34,1.5,o),e.box(.78*a-.025,-.4,.975,.78*a+.025,1.6,1.0M
25,o),e.box(.7*a-.025,-.4,-.725,.7*a+.025,1.6,-.675,o),e.box(.78*a-.025,1.56,-.75,.78*a+.025,1.62,1.05,o),t||(rod(e,[.78*a,1.6,1],[0,SK.HING,0],.025,o),rod(e,[.7*a,1.6,-.7],[0,SK.HING,0],.025,o));e.box(-.78,1.56,.975,.78,1.62,1.025,o),e.box(-.6,.2,.8,.6,.25,.85,o);for(const t of[-1,1])e.box(.98*t-.12,-.85,-.55,.98*t+.12,-.25,.05,C.tire),e.box(.98*t-.05,-.6,-.52,.98*t+.05,-.5,.02,o),e.box(.9*t-.06,-.05,.6,.9*t+.06,.12,1.3,a);e.box(-.1,-.85,1.1,.1,-.4,1.55,C.tire),e.box(-.04,-.45,1.2,.04,-.3,1.45,o),e.box(-.42,-.42,-M
.55,.42,-.25,.15,r),e.box(-.42,-.25,-.62,.42,.65,-.47,r),e.box(-.3,-.25,-.45,.3,.6,-.05,l);for(const t of[-1,1])e.box(.19*t-.12,-.3,-.1,.19*t+.12,-.08,.9,l),e.box(.32*t-.06,.1,-.05,.32*t+.06,.3,.8,l);e.lathe([[0,-.27],[.2,-.18],[.27,0],[.2,.2],[0,.27]],10,(()=>n),[0,.88,-.25]),e.box(-.17,.8,-.04,.17,.92,.02,C.glass),e.box(-.5,-.3,-.98,.5,.7,-.66,a),e.box(-.36,.7,-.9,.36,.95,-.7,n),e.box(.55,-.2,-1.25,.63,.3,-.7,s);const i=1.05,c=-1.55,f=.3;for(let t=0;t<20;t++){const a=t/20*2*PI;e.box(Math.cos(a)*i-.05,f+Math.sin(aM
)*i-.05,-1.6,Math.cos(a)*i+.05,f+Math.sin(a)*i+.05,-1.5,o)}e.box(-i,.27,-1.58,i,f+.03,-1.52,o),e.box(-.03,f-i,-1.58,.03,1.35,-1.52,o),e.box(-.12,.18,c-.1,.12,.42,-1.45,a),rod(e,[0,1.35,c],[0,1.5,-.7],.04,o),rod(e,[0,f-i,c],[0,-.4,-.95],.04,o);for(const t of[-1,1])rod(e,[t*i,f,c],[.78*t,f,-.9],.04,o);return e}const skm=skyCartMesh(!1),skf=skyCartMesh(!0),skc=function(){const t=new MB,e=SK.CAN_W,o=SK.CAN_C,a=SK.ARC,n=-SK.CAN_Y,s=hex("#2b2f3d"),l=C.orange,r=C.white,i=C.info,c=C.gold,f=[[l,l,l,r,i,i,c,c,r],[r,l,l,i,i,iM
,r,c,c],[r,l,l,r,r,i,i,r,c]],p=(t,e)=>f[t][e<9?e:17-e],d=t=>{const n=2*t/18-1,s=n*n;return{x:n*e,y:-a*s,c:o*(1-.22*s),t:.62*(1-.55*s)+.1}},h=[1,.85,.3,-.4,-1],u=[-.05,.35,.5,.38,0],b=(t,e)=>[t.x,t.y+u[e]*t.t,h[e]*t.c/2];for(let e=0;e<18;e++){const o=d(e),a=d(e+1);for(let n=0;n<4;n++){const s=0===n?shade(p(0,e),.62):p(n-1,e);qd(t,b(o,n),b(a,n),b(a,n+1),b(o,n+1),s,[0,1,0])}const n=t=>[[t.x,t.y-.3*t.t,t.c/2],[t.x,t.y,-t.c/2]],s=n(o),r=n(a),i=shade(p(1,e),.72);qd(t,s[0],r[0],r[1],s[1],i,[0,-1,0]),qd(t,b(o,0),b(a,0),r[0M
],s[0],shade(l,.45),[0,0,1]),qd(t,b(o,4),b(a,4),r[1],s[1],shade(p(2,e),.8),[0,0,-1])}for(const e of[0,18]){const o=d(e),a=e?1:-1,n=[0,1,2,3,4].map((t=>b(o,t))).concat([[o.x,o.y,-o.c/2],[o.x,o.y-.3*o.t,o.c/2]]);for(let e=1;e<n.length-1;e++)qd(t,n[0],n[e],n[e+1],n[e+1],shade(l,.8),[a,0,0])}for(const e of[0,3,6,9,12,15,18]){const o=d(e);for(const e of[.5,-.5]){const a=e*o.c/2,l=o.y-.3*o.t*(1+e)/2*.7-.02;rod(t,[o.x,l,a],[0,n,0],.035,s)}}const m=SK.TILT,g=Math.cos(m),S=Math.sin(m),y=n-n*g,A=n*S;for(let e=0;e<t.d.length;M
e+=10){const o=t.d[e+1],a=t.d[e+2],n=t.d[e+4],s=t.d[e+5];t.d[e+1]=o*g+a*S+y,t.d[e+2]=a*g-o*S+A,t.d[e+4]=n*g+s*S,t.d[e+5]=s*g-n*S}return t}(),PL=[{name:"Trainer",mult:1,turn:1.15,roll:.8,rr:2.2,acc:.45,stall:7.5,rot:9,gear:1.25,mesh:tm.build(),prop:propMesh(.88,2.05,.38).build(),tail:-2.1},{name:"Unlock",mult:1.35,turn:.78,roll:.95,rr:2.7,acc:.55,stall:9.5,rot:12,gear:1,mesh:um.build(),meshAlt:um2.build(),prop:propMesh(.6,2.4,.55).build(),tail:-2.2},{name:"Skycart",mult:.475,turn:1.25,roll:.33,rr:3.2,acc:.55,stall:0M
,rot:3.2,gear:.85,mesh:skm.build(),fp:skf.build(),can:skc.build(),prop:function(){const t=propMesh(.95,-1.55,.4);for(let e=0;e<t.d.length;e+=10)t.d[e+1]+=.3;return t}().build(),tail:-1.9}],PASTEL=[hex("#7EC8E8"),hex("#F0B090"),hex("#8FD4A8")],BPROF=[[0,0],[1.1,.5],[3.1,3],[4.4,6],[4.6,8],[4,10],[2.5,11.6],[0,12.2]];function balloonMesh(t,e){const o=new MB,a=0===t?PASTEL[e]:1===t?C.gold:C.mag;o.lathe(BPROF,12,((e,o)=>0===t?2!==e||3!==o&&4!==o?a:C.white:1===t?e%3==0?C.white:e%3==1?a:shade(a,.85):4===o&&e%2==0?C.whiteM
:a),[0,0,0]);for(const[t,e]of[[1,1],[-1,1],[1,-1],[-1,-1]])o.box(.55*t-.04,-1.6,.55*e-.04,.55*t+.04,.3,.55*e+.04,hex("#3a3020"));if(o.box(-.7,-2.6,-.7,.7,-1.6,.7,hex("#6a4a2a")),2===t){const t=[];for(let e=0;e<10;e++){const o=e%2?.6:1.5,a=e/10*2*PI+PI/2;t.push([Math.cos(a)*o,Math.sin(a)*o])}for(let e=0;e<10;e++){const a=t[e],n=t[(e+1)%10];o.tri([0,13.8,0],[a[0],13.8+a[1],0],[n[0],13.8+n[1],0],C.haz)}o.box(-.08,12.2,-.08,.08,12.5,.08,C.haz)}return o.build()}const BM=[[balloonMesh(0,0),balloonMesh(0,1),balloonMesh(0,M
2)],[balloonMesh(1)],[balloonMesh(2)],[function(){const t=new MB,e=hex("#FFC83A"),o=hex("#E8A010");t.lathe(BPROF,14,((t,a)=>4===a?C.white:t%2?e:o),[0,0,0]);for(const[e,o]of[[1,1],[-1,1],[1,-1],[-1,-1]])t.box(.55*e-.04,-1.6,.55*o-.04,.55*e+.04,.3,.55*o+.04,hex("#3a3020"));t.box(-.7,-2.6,-.7,.7,-1.6,.7,hex("#6a4a2a"));const a=t=>{for(let e=0;e<BPROF.length-1;e++){const[o,a]=BPROF[e],[n,s]=BPROF[e+1];if(t>=a&&t<=s)return lerp(o,n,(t-a)/(s-a||1))}return 0},n=new MB,s=FONT.B;for(let t=-1;t<8;t++)for(let e=0;e<5;e++){if(M
!(t>=0&&t<7?"1"===s[5*t+e]:1===e||3===e))continue;const o=.6*(2-e),l=6.9+.6*(3-t),r=a(l)+.05;n.box(o-.282,l-.282,r,o+.282,l+.282,r+.25,C.orange,shade(C.orange,.8))}for(let e=0;e<4;e++)t.append(n,e*PI/2,0,0,0);return t.build()}()]],BPTS=[10,50,100,500],balloons=[];function addB(t,e,o,a,n){const s={y0:e,x:t,y:e=Math.max(e,ground(t,o).h+10),z:o,tier:a,k:Math.floor(3*rnd()),alive:!0,t:0,ph:6*rnd(),ff:!!n,job:!1,pop:0};return balloons.push(s),s}function rollTier(){const t=rnd();return t<.72?0:t<.94?1:2}const clusters=[]M
;for(const t of ISL)for(const e of[0,1,2]){const o=1.7*t.i+2.1*e+.4,a=Math.sin(o),n=Math.cos(o);let s=100;for(;landD(t.cx+a*s,t.cz+n*s)>-60&&s<1200;)s+=10;clusters.push([t.cx+a*s,t.cz+n*s,30,75])}for(const[t,e]of[[0,1],[0,2],[1,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[0,9],[5,6],[7,8]])clusters.push([(ISL[t].cx+ISL[e].cx)/2,(ISL[t].cz+ISL[e].cz)/2,35,90]);clusters.push([-1720,560,82,125]);for(const[t,e,o,a]of clusters)for(let n=0;n<5;n++)addB(t+150*(rnd()-.5),lerp(o,a,rnd()),e+150*(rnd()-.5),rollTier());{const t=PADM
S[0];for(const e of[[0,26,160],[8,34,270],[-10,42,380]])addB(t.x+e[0],e[1],t.z+e[2],0,1)}const DR={x:-300,z:520,y:72,a:.9,spd:4};for(let t=0;t<6;t++){const t=addB(0,0,0,rnd()<.8?0:1);t.drift=1,t.ox=60*(rnd()-.5),t.oz=60*(rnd()-.5),t.oy=24*(rnd()-.5)}function driftTick(t){if(DR.a=.9+.7*Math.sin(.011*T),DR.x+=Math.sin(DR.a)*DR.spd*t,DR.z+=Math.cos(DR.a)*DR.spd*t,edgeD(DR.x,DR.z)>-60){const t=ISL[Math.floor(rnd()*ISL.length)];DR.x=t.cx-850*Math.sin(DR.a),DR.z=t.cz-850*Math.cos(DR.a)}for(const t of balloons)t.drift&&(tM
.x=DR.x+t.ox,t.z=DR.z+t.oz,t.y=DR.y+t.oy)}const GSPOT=[[-560,95,230],[1350,110,-850],[-2e3,110,-350],[-350,100,-1050],[850,100,560],[600,95,-760],[420,110,700],[-1760,150,560],[0,120,40],[-600,100,1150],[700,90,-200],[150,105,1650]],GOLD=addB(GSPOT[0][0],GSPOT[0][1],GSPOT[0][2],3);GOLD.gold=1,GOLD.gi=0;const cylM=(()=>{const t=new MB;return t.lathe([[1,0],[1,1]],10,(()=>[1,1,1])),t.build()})(),ringM=(()=>{const t=new MB;for(let e=0;e<32;e++){const o=e/32*2*PI,a=(e+1)/32*2*PI,n=(t,e)=>[Math.cos(e)*t,0,Math.sin(e)*t]M
;t.quad(n(.82,o),n(1,o),n(1,a),n(.82,a),[1,1,1])}return t.build()})(),dynB=gl.createBuffer();let save={cash:0,score:0,jobs:0,owned:!1,pl:0,first:!0,inv:!1,view:"chase",vol:.7,mute:!1,tod:"day",liv:0,up:[[0,0,0],[0,0,0],[0,0,0]],sky:!1,gun:!1,gunOn:!0,edu:!0,guest:null},NOSAVE=0;function noSave(){if(!NOSAVE){NOSAVE=1;try{const t=document.createElement("div");t.textContent="Progress can't be saved here.",t.style.cssText="position:fixed;left:50%;top:52px;transform:translateX(-50%);z-index:60;background:rgba(23,28,42,.M
94);border:1px solid #272f4e;color:#b1b1b1;font:600 12px system-ui,sans-serif;padding:6px 12px;border-radius:8px;pointer-events:none",document.body.appendChild(t),setTimeout((()=>t.remove()),9e3)}catch(t){}}}try{const t=JSON.parse(localStorage.getItem("bitmapFlyer.v1")||"null");t&&"object"==typeof t&&(save=Object.assign(save,t)),localStorage.setItem("bf.t","1"),localStorage.removeItem("bf.t")}catch(t){noSave()}for((!Array.isArray(save.up)||save.up.length<2)&&(save.up=[[0,0,0],[0,0,0]]);save.up.length<3;)save.up.pusM
h([0,0,0]);function persist(){try{localStorage.setItem("bitmapFlyer.v1",JSON.stringify(save))}catch(t){noSave()}}["day","gold","auto"].includes(save.tod)||(save.tod="day");const GUN={heat:0,over:!1,cd:0,side:0,mouse:!1,flash:[0,0],firing:!1,shots:0,hits:[],clickT:0},bullets=[],S={pos:[0,0,0],h:0,p:0,r:0,spd:0,thr:0,onG:!0,crash:0,pl:save.owned&&1===save.pl?1:save.owned&&save.sky&&2===save.pl?2:0,pi:0,bk:0,rc:0,rv:0,tb:0,tu:0,tcd:0,gw:0,ff:save.first?0:4,ffT:0,flew:!1,co:0,coT:0,rpm:650,vs:0,stallWarn:!1},sess={ballM
oons:0,jobs:0,cash:0},lastSum={b:0,j:0};let camInit=!0,cam=[0,0,0],eduT=0,eduEnd=0,job=null,playing=!1,paused=!1,summaryOpen=!1,hangarOpen=!1,boardOpen=!1,T=0,parts=[],todT=0;driftTick(0);const UPN=["Engine","Handling","Brakes / Gear"],UPD=["cruise + top speed, acceleration","turn + roll rate","shorter stops, softer touchdowns"],UPC=[[150,300,500],[210,420,700],[280,560,900]];function ps(t,e){const o=PL[t];return e=e||save.up[t]||[0,0,0],{maxS:20*o.mult*(1+.07*e[0]),acc:o.acc*(1+.12*e[0]),turn:o.turn*(1+.08*e[1]),rM
oll:o.roll*(1+.04*e[1]),rr:o.rr*(1+.12*e[1]),brake:9*(1+.3*e[2]),air:(2===t?4:3)*(1+.2*e[2]),td:7+1.3*e[2],bt:(2===t?.62:.42)+.06*e[2]}}const r5=t=>5*Math.round(t/5),dPad=(t,e)=>Math.hypot(t.x-e.x,t.z-e.z);function scenicOffer(t){const e=rnd()<.5?2:3,o=LM.map(((e,o)=>[o,Math.hypot(e.x-t.x,e.z-t.z)])).sort(((t,e)=>t[1]-e[1])).slice(0,e).map((t=>t[0])),a=[];let n=t.x,s=t.z,l=0;for(;o.length;){o.sort(((t,e)=>Math.hypot(LM[t].x-n,LM[t].z-s)-Math.hypot(LM[e].x-n,LM[e].z-s)));const t=o.shift();l+=Math.hypot(LM[t].x-n,LM[M
t].z-s),n=LM[t].x,s=LM[t].z,a.push(t)}const r=PADS.filter((e=>e!==t)).sort(((t,e)=>Math.hypot(t.x-n,t.z-s)-Math.hypot(e.x-n,e.z-s)))[0];return l+=Math.hypot(r.x-n,r.z-s),{type:"scenic",to:r.i,wp:a,len:Math.round(l)}}function newOffer(t){if(S.ff<2&&"R"===t.L)return{type:"pax",to:0};const e=rnd(),o=PADS.filter((e=>e!==t)),a=o.filter((e=>e.isl===t.isl)),n=o.filter((e=>e.isl!==t.isl)),s=t=>t[Math.floor(rnd()*t.length)];return e<.26?{type:"pax",to:(a.length&&rnd()<.55?s(a):s(o)).i}:e<.46?scenicOffer(t):e<.66?{type:"cargM
o",to:s(n.length&&rnd()<.6?n:o).i}:e<.86?{type:"express",to:s(n.length&&rnd()<.5?n:o).i}:{type:"bounty",to:t.i}}function payFor(t,e){const o=function(t,e){const o=PADS[t.to],a=dPad(o,e),n=o.isl!==e.isl?1.35:1;return"pax"===t.type?r5((40+.06*a)*n):"cargo"===t.type?r5((90+.11*a)*n):"express"===t.type?r5((70+.1*a)*n):"scenic"===t.type?r5((55+.07*t.len+18*t.wp.length)*(t.wp.some((t=>LM[t].isl!==e.isl))||n>1?1.25:1)):150}(t,e);return 2===S.pl&&SK.pay[t.type]?r5(o*SK.pay[t.type]):o}function makeOffer(t,e,o){let a;for(letM
 n=0;n<60&&(a=newOffer(t),e&&a.type!==e||null!=o&&a.to!==o&&"bounty"!==a.type);n++);return e&&a.type!==e&&(a="scenic"===e?scenicOffer(t):{type:e,to:"bounty"===e?t.i:null!=o?o:(t.i+1)%PADS.length}),null!=o&&"bounty"!==e&&"scenic"!==e&&(a.to=o),a.pay=payFor(a,t),"express"===a.type&&(a.par=Math.round(dPad(PADS[a.to],t)/(2===S.pl?SK.parV:14)+30),a.bonus=r5(.6*a.pay)),a}PADS.forEach((t=>{t.offer=makeOffer(t)}));const JOBC={pax:["PAX HOP","#00ddff",C.info],cargo:["CARGO RUN","#eba814",C.gold],bounty:["BALLOON BOUNTY","#fM
344df",C.mag],scenic:["SCENIC FLIGHT","#83fd00",C.green],express:["EXPRESS CARGO","#ff7a3d",hex("#ff7a3d")]},mmss=t=>(t=Math.max(0,Math.round(t)),Math.floor(t/60)+":"+String(t%60).padStart(2,"0"));function spawnAt(t){const e=padW(t,0,-45);S.pos=[e[0],.3+PL[S.pl].gear,e[1]],S.h=t.a,S.p=0,S.r=0,S.spd=0,S.thr=0,S.onG=!0,S.co=0,S.vs=0,camInit=!0,trailBreak(),resetSky()}const trail=[];function trailBreak(){trail.length&&!trail[trail.length-1].brk&&trail.push({brk:1})}spawnAt(PADS[0]);let toastT=0;function toast(t,e=3.5)M
{const o=$("toast");o.innerHTML=t,o.style.display="block",toastT=e}const fwd=()=>[Math.sin(S.h)*Math.cos(S.p),Math.sin(S.p),Math.cos(S.h)*Math.cos(S.p)];function axesR(t){const e=fwd(),o=[-Math.sin(S.h)*Math.sin(S.p),Math.cos(S.p),-Math.cos(S.h)*Math.sin(S.p)],a=[Math.cos(S.h),0,-Math.sin(S.h)],n=Math.cos(t),s=Math.sin(t);return{F:e,U:add(scl(o,n),scl(a,-s)),L:add(scl(a,n),scl(o,s))}}function axes(){return axesR(S.r)}function nearestPad(){let t=PADS[0],e=1e9;for(const o of PADS){const a=Math.hypot(o.x-S.pos[0],o.z-M
S.pos[2]);a<e&&(e=a,t=o)}return t}function failJob(t){job&&(toast(t+" - job failed, no pay."),job=null,balloons.forEach((t=>{t.job&&(t.job=!1,t.tier=rollTier())})))}function crash(t){if(S.crash>0)return;S.crash=1.6,sfx("crash"),trailBreak();for(let t=0;t<26;t++)parts.push({p:[...S.pos],v:[10*(rnd()-.5),8*rnd(),10*(rnd()-.5)],c:t%2?hex("#5d6182"):[.85,.85,.88],life:1.3,max:1.3,s:1.2+1.5*rnd(),g:-1,a:.8});const e=nearestPad();job?failJob(t):toast(t+" Resetting at "+padLabel(e)+"."),S.resetPad=e}function popBalloon(t)M
{t.alive=!1,t.t=t.gold?150:22+14*rnd(),t.pop=.08,save.score+=BPTS[t.tier],sess.balloons++;const e=0===t.tier?PASTEL[t.k]:1===t.tier||3===t.tier?C.gold:C.mag;for(let o=0;o<(t.gold?44:30);o++){const a=o>=12,n=2*rnd()*PI,s=1.6*(rnd()-.4),l=[Math.cos(n)*Math.cos(s),Math.sin(s),Math.sin(n)*Math.cos(s)];{const e=nrm(sub(cam,[t.x,t.y+6.5,t.z]));dot(l,e)>.2&&(l[0]-=1.6*e[0]*dot(l,e),l[2]-=1.6*e[2]*dot(l,e))}parts.push({p:add([t.x,t.y+6.5,t.z],scl(l,4.2)),v:add(scl(l,6+8*rnd()),[0,3,0]),c:a?o%2?C.gold:C.orange:e,life:.6+.5*M
rnd(),max:1.1,s:a?.22:.55,g:9,a:1,rot:6*rnd()})}parts.push({p:[t.x,t.y-2,t.z],v:[0,-2,0],c:hex("#6a4a2a"),life:.6,max:.6,s:1,g:12,a:1});let o="+"+BPTS[t.tier]+(1===t.tier?" bonus!":2===t.tier?" bounty balloon!":"");t.gold&&(save.cash+=120,sess.cash+=120,o='<span style="color:#ffd23a">GOLDEN &#8383; BALLOON!</span> +500 score, +$120. Another one drifts in later.',sfx("chime")),job&&"bounty"===job.type&&t.job&&(job.got++,t.job=!1,o+=" ("+job.got+"/"+job.need+")",job.got>=job.need&&(o+=" Return to "+PADS[job.to].name+M
" ("+PADS[job.to].L+")!")),2!==t.tier||t.job||(t.tier=rollTier()),t.ff&&(t.ff=!1),1===S.ff&&(S.ff=2,o+="<br>Job ping! Harbor Strip (R) has a pax hop. Land on R, stop, press E."),sfx("pop"),toast(o,2===S.ff||t.gold?6:2),persist()}function interact(){const t=padAt(S.pos[0],S.pos[2]);if(!t||!S.onG||S.spd>3||S.crash>0)return;if(job&&!job.ph)return void(job.pk===t.i?startJob(t):toast("Pickup for "+JOBC[job.type][0]+" is at "+PADS[job.pk].L+" - "+PADS[job.pk].name+". Fly there, stop, press E. Q to abandon."));if(job&&jobM
.to===t.i){if("bounty"===job.type&&job.got<job.need)return void toast("Pop "+(job.need-job.got)+" more bounty balloons first.");if("scenic"===job.type&&job.wi<job.wp.length)return void toast("Show the passengers the "+LM[job.wp[job.wi]].name+" first.");let e=job.pay,o="";job.par&&(job.t<=job.par?(e+=job.bonus,o=" Under par ("+mmss(job.t)+" / "+mmss(job.par)+") - bonus +$"+job.bonus+"!"):o=" Over par ("+mmss(job.t)+" / "+mmss(job.par)+") - no bonus."),sfx("chime"),save.cash+=e,save.jobs++,sess.jobs++,sess.cash+=e,joM
b=null,persist();let a="Delivered! +$"+e+"."+o;return save.owned||(a+=" Unlock meter: "+Math.min(save.jobs,10)+"/10 jobs."),2===S.ff&&(S.ff=3,"H"===t.L?S.flew=!0:a+="<br>Fly home to H for your session summary."),void toast(a,5)}if(job)return void toast("You already have a job: "+JOBC[job.type][0]+" to "+PADS[job.to].L+". Q to abandon.");if(S.ff<2&&"R"!==t.L)return void toast("Pop a balloon first - a job offer will ping.");const e=t.offer;job={type:e.type,from:t.i,pk:t.i,ph:1,to:e.to,pay:e.pay,need:3,got:0,wp:e.wp?[M
...e.wp]:null,wi:0,par:e.par,bonus:e.bonus,t:0},"bounty"===e.type&&bountyPool(t),t.offer=makeOffer(t),sfx("blip"),toast("Accepted "+jobBrief(),5)}function bountyPool(t){balloons.filter((t=>!t.ff&&!t.drift&&!t.gold)).sort(((e,o)=>Math.hypot(e.x-t.x,e.z-t.z)-Math.hypot(o.x-t.x,o.z-t.z))).slice(0,8).sort((()=>rnd()-.5)).slice(0,3).forEach((t=>{t.tier=2,t.job=!0,t.alive=!0,t.t=0}))}function jobBrief(){const t=PADS[job.to];return JOBC[job.type][0]+("bounty"===job.type?": pop 3 magenta bounty balloons, return to "+t.L+".M
":"scenic"===job.type?": show the passengers "+job.wp.map((t=>LM[t].name)).join(", ")+", then land at "+t.name+" ("+t.L+").":" to "+t.name+" ("+t.L+")"+(job.par?" - par "+mmss(job.par)+", bonus +$"+job.bonus+" if under par.":"."))}function startJob(t){job.ph=1,job.t=0,"bounty"===job.type&&bountyPool(t),sfx("blip"),toast("Loaded at "+t.L+" - "+t.name+"! "+jobBrief(),5)}const BT=["pax","cargo","express","scenic","bounty"],BPAR={pax:[1,35],cargo:[.85,45],express:[1,30]};let boardPad=null;const BD={};function boardJob(M
t,e,o,a){const n=rng32(20261010+7919*(t.i+1)+104729*(e+1)+1299709*o+15485863*a);n(),n();const s=t=>t[Math.floor(n()*t.length)],l=Math.floor(5*rng32(20261010+31*t.i+7*a)()),r=BT[(l+e+o)%5],i=PADS.filter((e=>e!==t));let c=t;{const o=n()<.55,a=i.filter((e=>e.isl===t.isl));(1===e||e>1&&!o)&&(c=s(a.length&&n()<.5?a:i))}const f=PADS.filter((t=>t!==c)),p=f.filter((t=>t.isl!==c.isl)),d=f.filter((t=>t.isl===c.isl));let h,u=null,b=0;if("bounty"===r)h=c.i;else if("scenic"===r){const t=seed;seed=4294967296*n()>>>0;const e=scenM
icOffer(c);seed=t,h=e.to,u=e.wp,b=e.len}else h=s("pax"===r?d.length&&n()<.5?d:f:p.length&&n()<("cargo"===r?.6:.5)?p:f).i;return{type:r,pk:c.i,to:h,wp:u,len:b,at:t.i}}function boardList(t){const e=boardOpen&&BD[t.i]?BD[t.i].ep:Math.floor(T/480);let o=BD[t.i];if(!o||o.n!==PADS.length||o.ep!==e){o=BD[t.i]={n:PADS.length,ep:e,g:[],list:[]};const a=3+(t.i+e)%3;for(let n=0;n<a;n++)o.g[n]=0,o.list[n]=boardJob(t,n,0,e)}return o}function jobStats(t){const e=PADS[t.pk],o=PADS[t.to],a=payFor({type:t.type,to:t.to,wp:t.wp,len:tM
.len},e),n=2===S.pl?SK.parV:14,s=Math.round("scenic"===t.type?t.len:dPad(e,o));return{pay:a,par:"scenic"===t.type?Math.round(t.len/n+30+15*t.wp.length):"bounty"===t.type?150:Math.round(s/(n*BPAR[t.type][0])+BPAR[t.type][1]),bonus:"express"===t.type?r5(.6*a):Math.max(10,r5(.35*a)),dist:s,cross:o.isl!==e.isl}}function openBoard(){const t=padAt(S.pos[0],S.pos[2]);if(!playing||!t||!S.onG||S.spd>3||S.crash>0||boardOpen||hangarOpen||paused||summaryOpen)return!1;if(S.ff<2)return toast("Pop a balloon first - a job offer wiM
ll ping."),!1;if(boardPad=t,boardOpen=!0,$("board").style.display="flex",sfx("click"),function(){const t=boardPad,e=boardList(t);let o='<div class="bh"><div class="v" style="color:#F7931A">Job Board - '+t.L+" "+t.name+'</div><div class="dim">'+(t=>{const e=ISL.find((e=>e.i===t.isl));return e?e.name:""})(t)+" &middot; Cash $"+save.cash+" &middot; "+PL[S.pl].name+"</div></div>";job&&(o+='<div id="jact">Active job: '+JOBC[job.type][0]+" &rarr; "+PADS[job.to].L+(job.ph?"":" (pickup at "+PADS[job.pk].L+" first)")+" - fiM
nish or abandon (Q) it before taking another.</div>"),e.list.forEach(((e,a)=>{const n=jobStats(e),s=PADS[e.pk],l=PADS[e.to],r=JOBC[e.type][1],i=Math.round(dPad(s,t));o+='<div class="jr" style="border-left-color:'+r+'"><div class="r1"><span class="tg" style="color:'+r+'">'+JOBC[e.type][0]+'</span>Pickup at <span style="color:'+s.css+'">'+s.L+"</span> "+s.name+(e.pk===t.i?' <span class="bn">(here)</span>':' <span class="far">('+i+" m away"+(s.isl!==t.isl?", other island":"")+")</span>")+" &rarr; "+("bounty"===e.type?M
"pop 3 balloons, return":'<span style="color:'+l.css+'">'+l.L+"</span> "+l.name)+'</div><div class="r2">$'+n.pay+' <span class="bn">+$'+n.bonus+"</span> if under par "+mmss(n.par)+("scenic"===e.type?" &middot; "+e.wp.length+" sights":"")+("bounty"===e.type?"":" &middot; "+n.dist+" m route")+(n.cross?' <span class="cx">&middot; inter-island</span>':"")+'</div><button class="btn'+(job?" dis":"")+'" data-bj="'+a+'">Accept<span class="konly"> ['+(a+1)+"]</span></button></div>"})),$("bbody").innerHTML=o,$("bnote").textCM
ontent="Jobs refresh every "+Math.round(8)+" min and when taken."}(),document.pointerLockElement)try{document.exitPointerLock()}catch(t){}return!0}function closeBoard(){boardOpen&&(boardOpen=!1,$("board").style.display="none",sfx("click"),relock())}function boardAccept(t){if(!boardOpen)return!1;const e=boardList(boardPad),o=e.list[t];if(!o)return!1;if(job)return toast("You already have a job: "+JOBC[job.type][0]+" to "+PADS[job.to].L+". Q to abandon."),!1;const a=jobStats(o),n=PADS[o.pk],s=boardPad;return job={typeM
:o.type,from:o.pk,pk:o.pk,ph:0,to:o.to,pay:a.pay,need:3,got:0,wp:o.wp?[...o.wp]:null,wi:0,par:a.par,bonus:a.bonus,t:0,board:1},e.g[t]++,e.list[t]=boardJob(s,t,e.g[t],e.ep),closeBoard(),o.pk===s.i?startJob(s):(sfx("blip"),toast("Accepted "+JOBC[o.type][0]+": <b>Pickup at "+n.L+" - "+n.name+"</b> ("+Math.round(dPad(n,s))+" m). Fly there, stop on the pad, press E. Par "+mmss(a.par)+" starts at pickup. Pay $"+a.pay+" (+$"+a.bonus+" under par).",7)),!0}function atH(){const t=padAt(S.pos[0],S.pos[2]);return t&&"H"===t.L&M
&S.onG&&S.spd<=3&&S.crash<=0}function hangar(){return!!atH()&&(function(){if(hangarOpen=!0,hSel=S.pl,hMsgT="",$("hangar").style.display="flex",sfx("click"),renderHangar(),document.pointerLockElement)try{document.exitPointerLock()}catch(t){}}(),!0)}function buyUnlock(){save.owned?hMsg("Unlock already owned."):save.jobs<10?hMsg("Unlock needs 10 completed jobs ("+save.jobs+"/10)."):save.cash<750?hMsg("Unlock costs $750. You have $"+save.cash+"."):(save.cash-=750,save.owned=!0,hSel=1,setPlane(1,1),persist(),sfx("chime"M
),hMsg("Bought the Unlock! Faster, wider turns."),toast("Bought the Unlock! Faster, wider turns. Swap planes in the hangar (U)."))}function setPlane(t,e){(1!==t||save.owned)&&(2!==t||save.owned&&save.sky)&&(S.pl=t,save.pl=t,persist(),S.pos[1]=ground(S.pos[0],S.pos[2]).h+PL[t].gear,resetSky(),applyEye(),PADS.forEach((t=>{t.offer=makeOffer(t)})),e||toast("Switched to "+PL[t].name+".",2))}function buyUp(t,e){if(1===t&&!save.owned)return hMsg("Buy the Unlock first."),!1;if(2===t&&!save.sky)return hMsg("Buy the Skycart M
first."),!1;save.up[t]=save.up[t]||[0,0,0];const o=save.up[t][e];if(o>=3)return hMsg(UPN[e]+" is maxed on the "+PL[t].name+"."),!1;const a=UPC[t][o];return save.cash<a?(hMsg(UPN[e]+" tier "+(o+1)+" costs $"+a+". You have $"+save.cash+"."),!1):(save.cash-=a,save.up[t][e]=o+1,persist(),sfx("chime"),hMsg(PL[t].name+" "+UPN[e]+" upgraded to tier "+(o+1)+"."),!0)}function buySky(){save.sky?hMsg("Skycart already owned."):save.owned?save.cash<SK.cost?hMsg("Skycart costs $"+SK.cost+". You have $"+save.cash+"."):(save.cash-M
=SK.cost,save.sky=!0,hSel=2,setPlane(2,1),persist(),sfx("chime"),hMsg("Bought the Skycart! Slow, floaty and great between the towers. Shift = Turbo."),toast("Bought the Skycart! Hold Shift for Turbo. Swap planes in the hangar (U).")):hMsg("The Skycart needs the Unlock first.")}function buyGun(){return save.gun?(hMsg("Wing guns already fitted."),!1):save.jobs<5?(hMsg("Wing guns need 5 completed jobs ("+save.jobs+"/5)."),!1):save.cash<1200?(hMsg("Wing guns cost $1200. You have $"+save.cash+"."),!1):(save.cash-=1200,sM
ave.gun=!0,save.gunOn=!0,persist(),sfx("chime"),hMsg("Wing guns fitted to both planes! Fire: left mouse or G (T arms / safes)."),!0)}function toggleGun(){save.gun&&(save.gunOn=!save.gunOn,persist(),sfx("click"),toast("Guns "+(save.gunOn?"armed":"safe")+" (T)",1.5),hangarOpen&&renderHangar())}function gunMuzzles(){const t=axes(),e=2===S.pl?[1.15,-.05,.9]:S.pl?[2,-.42,-.2]:[2.7,.55,.9],o=e[0],a=e[1],n=e[2];return[-1,1].map((e=>add(add(add(S.pos,scl(t.L,e*o)),scl(t.U,a)),scl(t.F,n))))}function segDist(t,e,o){const a=sM
ub(e,t),n=dot(a,a),s=n?cl(dot(sub(o,t),a)/n,0,1):0,l=add(t,scl(a,s));return Math.hypot(o[0]-l[0],o[1]-l[1],o[2]-l[2])}function fireOne(){const t=gunMuzzles(),e=GUN.side=1-GUN.side,o=t[e],a=axes(),n=nrm(sub(add(S.pos,scl(a.F,150)),o));bullets.push({p:o,v:add(scl(n,600),scl(a.F,S.spd)),d:0}),GUN.flash[e]=.05,GUN.shots++,sfx("gun")}$("board").addEventListener("click",(t=>{const e=t.target.closest&&t.target.closest("[data-bj],[data-bc]");e&&(e.dataset.bc?closeBoard():boardAccept(+e.dataset.bj))}));const CARDN={};let HCM
=0;const histCard=()=>HIST.cards[HC++%HIST.cards.length].t;function guestExtra(t){if(t.approx||!t.bits)return"";const e=subsidySats(t.h),o=t.cbSats-e;let a="Difficulty "+function(t){if(t<10)return String(+t.toFixed(2));if(t<1e9)return fmtN(Math.round(t));const e=t>=1e12?[1e12," trillion"]:[1e9," billion"];return"about "+(t/e[0]).toFixed(2)+e[1]}(function(t){const e=parseInt(t.match(/../g).reverse().join(""),16),o=e>>>24;return 65535/(16777215&e)*Math.pow(2,8*(29-o))}(t.bits))+".";return e>0&&o>0?a+=" Fees were "+(oM
/e>=10?+(o/e).toFixed(1)+" times the "+btc(e)+" BTC subsidy.":Math.round(o/e*1e3)/10+"% of the "+btc(e)+" BTC subsidy."):e>0&&0===o&&(a+=" The coinbase paid exactly the "+btc(e)+" BTC subsidy."),a}function eduHide(){eduT=0,$("edu").style.display="none"}function livery(){save.owned?(save.liv=save.liv?0:1,persist(),sfx("click"),toast("Unlock livery: "+(save.liv?"magenta / cyan":"standard gold")+" (L)",2),hangarOpen&&renderHangar()):toast("The alt livery is for the Unlock - buy it first.")}let hSel=0,hMsgT="";const STM
N=["Top speed","Turn rate","Roll rate","Braking"],stv=t=>[t.maxS,t.turn,t.rr,t.brake],STX=[0,1,2,3].map((t=>Math.max(...[0,1,2].map((e=>stv(ps(e,[3,3,3]))[t])))));function hMsg(t){hMsgT=t,hangarOpen&&renderHangar()}function closeHangar(){hangarOpen&&(hangarOpen=!1,$("hangar").style.display="none",sfx("click"),relock())}const ICO=[];function renderHangar(){const t=hSel,e=0===t||1===t&&save.owned||2===t&&save.sky,o=save.up[t]||[0,0,0],a=stv(ps(t));let n='<div class="tabs">'+PL.map(((e,o)=>'<button class="btn s'+(o===M
t?" on":"")+'" data-h="tab'+o+'" style="display:inline-flex;align-items:center;gap:6px;vertical-align:middle"><img src="'+function(t){if(ICO[t])return ICO[t];const e=document.createElement("canvas");e.width=64,e.height=40;const o=e.getContext("2d"),a=(t,e,a,n,s)=>{o.fillStyle=s,o.fillRect(t,e,a,n)};if(0===t)a(7,15,50,9,"#2A6FBF"),a(7,15,5,9,"#F4F6F8"),a(52,15,5,9,"#F4F6F8"),a(28,5,8,31,"#F2E6D0"),a(28,11,8,5,"#F7931A"),a(22,31,20,4,"#2A6FBF"),a(31,2,2,5,"#C0C8D0");else if(1===t)o.fillStyle="#eba814",o.beginPath(),oM
.moveTo(32,6),o.lineTo(60,30),o.lineTo(32,24),o.lineTo(4,30),o.closePath(),o.fill(),a(29,5,6,32,"#1A1C24"),a(29,14,6,6,"#7FE6F8"),a(4,28,4,5,"#f344df"),a(56,28,4,5,"#f344df");else{const t=[["#F7931A","#F7931A","#F7931A","#F4F6F8","#00ddff","#00ddff","#eba814","#eba814","#F4F6F8"]],e=t=>7+9*t*t;for(let a=0;a<18;a++){const n=2*a/18-1,s=2*(a+1)/18-1,l=Math.min(a,17-a);o.fillStyle=t[0][l>8?8:l],o.beginPath(),o.moveTo(32+27*n,e(n)),o.lineTo(32+27*s,e(s)),o.lineTo(32+27*s,e(s)+7),o.lineTo(32+27*n,e(n)+7),o.closePath(),o.M
fill()}o.strokeStyle="#2b2f3d",o.lineWidth=1;for(const t of[-1,-.55,-.1,.35,.8,1])o.beginPath(),o.moveTo(32+27*t,e(t)+7),o.lineTo(32,31),o.stroke();a(25,31,14,4,"#1A1C24"),a(21,33,5,6,"#2A2E38"),a(38,33,5,6,"#2A2E38"),o.fillStyle="#F7931A",o.beginPath(),o.arc(31,28,3.2,0,7),o.fill(),a(26,35,12,2,"#B9C0CC")}return ICO[t]=e.toDataURL()}(o)+'" width="64" height="40" alt="" style="image-rendering:pixelated;background:rgba(255,255,255,.06);border-radius:4px"><span>'+e.name+(o===S.pl?" (flying)":"")+"</span></button>")).M
join("")+'</div><div class="hb">';if(e||1!==t)if(e)for(let e=0;e<3;e++){const a=o[e],s=a<3?UPC[t][a]:0;n+="<span><b>"+UPN[e]+'</b><span class="pip">'+["T0","T1","T2","T3"][a]+'</span></span><span class="dim">'+UPD[e]+'</span><button class="btn s'+(a>=3||save.cash<s?" dis":"")+'" data-h="up'+e+'">'+(a>=3?"Maxed":"Tier "+(a+1)+" - $"+s+" ["+(e+1)+"]")+"</button>"}else n+='<span>Skycart <span class="pip">powered parachute</span></span><span class="dim">'+(save.owned?"Slow, floaty, tight turns - $"+SK.cost:"Needs the UM
nlock first - $"+SK.cost)+'</span><button class="btn s'+(!save.owned||save.cash<SK.cost?" dis":"")+'" data-h="sky">'+(save.owned?"Buy Skycart - $"+SK.cost+" [B]":"Locked")+"</button>";else n+='<span>Unlock</span><span class="dim">'+Math.min(save.jobs,10)+'/10 jobs - $750</span><button class="btn s" data-h="unlock">Buy Unlock - $750 [B]</button>';{const t=save.jobs<5;n+='<span><b>Weapons</b> <svg width="34" height="12" viewBox="0 0 34 12" style="vertical-align:middle"><rect x="0" y="2" width="22" height="3" fill="#bM
1b1b1"/><rect x="0" y="7" width="22" height="3" fill="#b1b1b1"/><rect x="20" y="0" width="12" height="12" rx="2" fill="#F7931A"/></svg></span><span class="dim">Wing guns, all planes - '+(save.gun?"fitted, "+(save.gunOn?"armed":"safe"):t?"Requires 5 jobs ("+Math.min(save.jobs,5)+"/5)":"$1200")+"</span>"+(save.gun?'<button class="btn s" data-h="guntog">'+(save.gunOn?"Armed":"Safe")+" [T]</button>":'<button class="btn s'+(t||save.cash<1200?" dis":"")+'" data-h="gun">'+(t?"Locked":"BUY - $1200")+" [4]</button>")}n+='</M
div><div class="hb">';const s=[0,1,1,2];STN.forEach(((l,r)=>{let i=a[r];if(e&&o[s[r]]<3){const e=[...o];e[s[r]]++,i=stv(ps(t,e))[r]}n+="<span>"+l+"</span>"+function(t,e,o){let a="";for(let n=0;n<12;n++){const s=(n+.5)/12;a+='<i class="'+(s<=t/o?"on":s<=e/o?"nx":"")+'"></i>'}return'<span class="bar">'+a+"</span>"}(a[r],i,STX[r])+'<span class="dim">'+(0===r?Math.round(4.2*a[r])+" kn":3===r?a[r].toFixed(1):a[r].toFixed(2))+"</span>"})),n+="</div>"+(2===t?'<div class="dim" style="margin-top:6px;font-size:12px;text-aligM
n:left">Powered parachute: tiny stall speed, short rolls, tight turns, lazy ceiling ('+Math.round(6.6*SK.ceil)+" ft). Hold <b>Shift</b> for a 3 s Turbo. Cargo and express pay x0.8, scenic +25%.</div>":"")+'<div style="margin-top:6px">',e&&t!==S.pl&&(n+='<button class="btn s" data-h="fly">Fly the '+PL[t].name+" [P]</button>"),1===t&&save.owned&&(n+='<button class="btn s" data-h="liv">Livery: '+(save.liv?"Magenta / cyan":"Standard gold")+" [L]</button>"),n+='<button class="btn" data-h="close">Close [U]</button></div>M
<div class="dim" style="margin-top:6px">Cash <b style="color:#83fd00">$'+save.cash+"</b>"+(hMsgT?" - "+hMsgT:"")+"</div>",$("hbody").innerHTML=n}function hAct(t){if("close"===t)return closeHangar();t.startsWith("tab")?hSel=+t[3]:t.startsWith("up")?buyUp(hSel,+t[2]):"unlock"===t?buyUnlock():"sky"===t?buySky():"fly"===t?(setPlane(hSel),hMsgT="Now flying the "+PL[hSel].name+"."):"liv"===t?livery():"gun"===t?buyGun():"guntog"===t&&toggleGun(),sfx("click"),renderHangar()}$("hangar").addEventListener("click",(t=>{const eM
=t.target.closest("[data-h]");e&&hAct(e.dataset.h)}));const K={};let mdx=0,mdy=0,lockT=0,dragging=!1,lastTouch=0;const TS={bx:0,by:0,brake:!1,fire:!1,turbo:!1,tilt:!1,tb:0,tp:0,t0:null};let TOUCH=matchMedia("(pointer:coarse)").matches;function setTouch(t){TOUCH=t,document.body.classList.toggle("touch",t),$("go").textContent=t?"Tap to Fly":"Click to Fly"}function relock(){if(!TOUCH&&playing)try{const t="null"===self.origin?null:cv.requestPointerLock();t&&t.catch&&t.catch((()=>{}))}catch(t){}}function toggleView(){seM
tView(1-view),sfx("click"),toast(view?"First-person view (C)":"Follow view (C)",1.5)}addEventListener("touchstart",(()=>{lastTouch=performance.now(),TOUCH||setTouch(!0)}),{passive:!0,capture:!0}),addEventListener("keydown",(t=>{if((!t.target||"INPUT"!==t.target.tagName||"text"!==t.target.type)&&(K[t.code]=!0,initAudio(),playing)){if(eduT>0&&eduHide(),boardOpen){const e=t.code;return"KeyJ"===e||"Escape"===e?closeBoard():/^Digit[1-5]$/.test(e)&&boardAccept(+e[5]-1),t.preventDefault(),void(lockT=performance.now())}if(M
hangarOpen){const e=t.code;return"KeyU"===e||"Escape"===e?closeHangar():"Tab"===e||"ArrowLeft"===e||"ArrowRight"===e?(hSel=(hSel+("ArrowLeft"===e?2:1))%3,hMsgT="",renderHangar()):/^Digit[123]$/.test(e)?(buyUp(hSel,+e[5]-1),renderHangar()):"KeyB"===e?2===hSel?buySky():buyUnlock():"Digit4"===e?(buyGun(),renderHangar()):"KeyT"!==e||t.repeat?"KeyP"===e?hAct("fly"):"KeyL"===e?livery():"KeyM"===e&&(save.mute=!save.mute,persist(),applyVol()):toggleGun(),t.preventDefault(),void(lockT=performance.now())}if("KeyM"===t.code&&M
(save.mute=!save.mute,persist(),applyVol(),toast(save.mute?"Sound muted (M)":"Sound on (M)",1.5)),"Escape"!==t.code)!summaryOpen||"Enter"!==t.code&&"NumpadEnter"!==t.code?paused||summaryOpen||("KeyC"===t.code&&toggleView(),"KeyT"!==t.code||t.repeat||toggleGun(),"KeyE"===t.code&&interact(),"KeyJ"!==t.code||t.repeat||openBoard(),"KeyU"===t.code&&hangar(),"KeyL"===t.code&&atH()&&livery(),"KeyQ"===t.code&&job&&(failJob("Abandoned"),S.crash=.01,S.resetPad=nearestPad()),("Space"===t.code||"Tab"===t.code||t.code.startsWitM
h("Arrow"))&&t.preventDefault()):closeSummary();else{if(performance.now()-lockT<350)return;setPause(!paused)}}})),addEventListener("keyup",(t=>{K[t.code]=!1})),addEventListener("blur",(()=>{for(const t in K)K[t]=!1;GUN.mouse=!1})),addEventListener("mousemove",(t=>{(document.pointerLockElement===cv||dragging)&&(mdx+=t.movementX,mdy+=t.movementY)})),cv.addEventListener("mousedown",(t=>{if(initAudio(),!(TOUCH&&performance.now()-lastTouch<1e3)&&playing&&!paused&&!summaryOpen&&!hangarOpen&&!boardOpen){if(0===t.button&&dM
ocument.pointerLockElement===cv&&save.gun&&save.gunOn&&(GUN.mouse=!0),document.pointerLockElement!==cv)try{const t="null"===self.origin?null:cv.requestPointerLock();t&&t.catch&&t.catch((()=>{}))}catch(t){}dragging=!0}})),addEventListener("mouseup",(t=>{dragging=!1,0===t.button&&(GUN.mouse=!1)})),$("edu").addEventListener("pointerdown",eduHide),document.addEventListener("pointerlockchange",(()=>{lockT=performance.now(),document.pointerLockElement===cv||!playing||paused||summaryOpen||hangarOpen||boardOpen||setPause(!M
0)}));const TODN={day:"Day",gold:"Golden hour",auto:"Auto"},MAPTIP={t:0,i:-1};function mapTipHide(){$("mapTip").style.display="none",MAPTIP.i=-1,MAPTIP.t=0,$("bigmap").style.cursor="",$("tlc").style.cursor=""}function tipHtml(t,e,o,a,n){const s=$("mapTip");s.innerHTML=t,s.style.display="block";const l=s.offsetWidth,r=s.offsetHeight,i=innerWidth,c=innerHeight;let f=e+16,p=o+16;f+l>i-6&&(f=e-16-l),p+r>c-6&&(p=o-16-r),f=Math.max(6,Math.min(i-l-6,f)),p=Math.max(6,Math.min(c-r-6,p)),s.style.left=f+"px",s.style.top=p+"pxM
",MAPTIP.i=n,MAPTIP.t=a||0}function mapTipAt(t,e){const o=$("bigmap"),a=o.getBoundingClientRect(),n=o.width/a.width,s=function(t,e,o,a){const n=mapGeom(o,1);let s=null,l=1e9;for(const o of PADS){const r=n.m([o.x,o.z]),i=Math.hypot(r[0]-t,r[1]-e);i<=MAP_PR[1]+a&&i<l&&(l=i,s=o)}return s}((t.clientX-a.left)*n,(t.clientY-a.top)*n,o.width,e?10:3);s?(o.style.cursor="pointer",function(t,e,o,a){const n=ISL[t.isl],s=Math.round(Math.hypot(t.x-S.pos[0],t.z-S.pos[2]));tipHtml('<div class="mt1"><span class="mtl" style="backgrouM
nd:'+t.css+";color:"+("RNFEOPAL".includes(t.L)?"#0b1018":"#fff")+'">'+t.L+"</span>"+t.name+'</div><div class="mt2">'+(n?n.name:"")+(n&&n.guest?" (your bitmap)":"")+'</div><div class="mt3">'+s+" m from you"+(job&&job.to===t.i?" - job destination":"")+"</div>",e,o,a,t.i)}(s,t.clientX,t.clientY,e?3:0)):mapTipHide()}function setPause(t){if(paused=t,sfx("click"),mapTipHide(),$("pause").style.display=t?"flex":"none",t){if(document.pointerLockElement)try{document.exitPointerLock()}catch(t){}pauseTab("map"),drawMap($("bigmM
ap"),420,1),$("pstat").textContent="Cash $"+save.cash+" - Score "+save.score+" - Jobs "+save.jobs+" - Plane: "+PL[S.pl].name+" - Gfx "+["high","medium","low"][Q.lv]+(Q.auto?" (auto)":"")}}(()=>{const t=$("bigmap");t.addEventListener("pointermove",(t=>{"touch"!==t.pointerType&&mapTipAt(t,!1)})),t.addEventListener("pointerleave",(t=>{"touch"!==t.pointerType&&mapTipHide()})),t.addEventListener("pointerdown",(t=>{"touch"!==t.pointerType&&"pen"!==t.pointerType||mapTipAt(t,!0)})),document.addEventListener("pointerdown",(M
e=>{e.target!==t&&"tlc"!==e.target.id&&"mapTip"!==e.target.id&&mapTipHide()}),!0)})(),setInterval((()=>{MAPTIP.t>0&&(MAPTIP.t-=.1,MAPTIP.t<=0&&mapTipHide())}),100),$("resume").onclick=()=>{setPause(!1),relock()};const TL={t:[],ci:0,on:!1,w:0,h:0};function tlDraw(){const t=$("tlc"),[e,o]=function(){const t=Math.max(260,Math.min(640,.92*innerWidth-32)),e=Math.max(200,Math.min(.46*t,innerHeight-150));return[Math.round(t),Math.round(e)]}(),a=Math.min(2,devicePixelRatio||1),n=HIST.tl;TL.w=e,TL.h=o,t.style.width=e+"px",tM
.style.height=o+"px",t.width=Math.round(e*a),t.height=Math.round(o*a);const s=t.getContext("2d");s.setTransform(a,0,0,a,0,0),TL.t=[];const l=t=>TL.t.push(t),r=14,i=(t,e)=>s.font=t+" "+e+'px system-ui,-apple-system,"Segoe UI",Roboto,sans-serif',c=(t,e,o,a,n)=>{s.fillStyle=a,s.textAlign=n||"left",s.fillText(t,e,o)};s.fillStyle="#0b1018",s.fillRect(0,0,e,o),s.textBaseline="middle";const f=t=>r+t/n.maxBlock*(e-28);i("700",11),c("Bitcoin: block 0 to "+fmtN(n.maxBlock)+" (orange: reward, BTC)",r,11,"#8c93b3"),s.fillStyleM
="#272f4e",s.fillRect(r,53,e-28,2);for(const t of n.ev){const e=f(t.h);null!=t.r?(s.fillStyle="#F7931A",s.fillRect(e-1,42,2,12),i("700",10),c(t.r,e,35,"#F7931A","center"),i("600",10),c(t.k,e,64,"#8c93b3","center")):(s.fillStyle="#00ddff",s.fillRect(e-1,54,2,10+12*t.lv),i("700",10),c(t.k,e,74+12*t.lv,"#00ddff","center")),l({x:e,y:50,r:9,html:'<div class="mt1">'+t.k+(null!=t.r?" - reward "+t.r+" BTC":"")+'</div><div class="mt3">'+t.t+"</div>",key:"e"+t.h})}const p=islandAt(S.pos[0],S.pos[2]),d=ISL.filter((t=>!t.approM
x)).map((t=>({I:t,h:t.h,l:(PADS.find((e=>e.isl===t.i))||{L:"?"}).L})));for(const t of d){const e=f(t.h),o=t.I.guest;s.fillStyle=o?"#ffd23a":"#F7931A",s.beginPath(),s.arc(e,54,o?4:3.5,0,7),s.fill(),s.strokeStyle="#0b1018",s.lineWidth=1,s.stroke(),t.I===p&&(s.strokeStyle="#fff",s.lineWidth=1.5,s.beginPath(),s.arc(e,54,7,0,7),s.stroke()),l({x:e,y:54,r:8,html:'<div class="mt1"><span class="mtl" style="background:'+(PADS.find((e=>e.isl===t.I.i))||{css:"#F7931A"}).css+';color:#0b1018">'+t.l+"</span>"+t.I.name+'</div><divM
 class="mt3">Block '+fmtN(t.h)+(t.I.guest?" - your bitmap":"")+(t.I===p?" - you are here":"")+"</div>",key:"i"+t.I.i})}i("700",11),c("You are here: "+p.name,e-r,11,"#fff","right"),s.fillStyle="#272f4e",s.fillRect(r,96,e-28,1),i("700",11),c("Bitmap claims: share of all claims per day (June 2023), then per month",r,108,"#8c93b3");const h=Date.UTC(2023,5,1),u=Date.UTC(2023,6,1),b=Date.parse(n.end+"Z"),m=r,g=r+.58*(e-28),y=12,A=e-r,x=o-26,M=x-146,v=t=>t<u?m+(t-h)/(u-h)*(g-m):g+y+(A-g-y)*(t-u)/(b-u),F=(g-m)/30;for(let tM
=1;t<=30;t++){const e=n.june[t]||0,o=m+(t-1)*F,a=e/12.41*M;s.fillStyle=20===t?"#F7931A":"#eba814",s.fillRect(o+1,x-a-0,F-2,Math.max(e>0?1.5:0,a)),l({rect:[o,146,o+F,x],html:'<div class="mt1">'+t+' Jun 2023</div><div class="mt3">'+(e>=.1?"About "+e+"% of all claims (20% sample)":"Under 0.1% of all claims (20% sample)")+"</div>",key:"d"+t})}s.fillStyle="#272f4e",s.fillRect(m,x,g-m,1),s.fillStyle="#00ddff",s.fillRect(g+y,x-2,A-g-y,2),c("//",g+6,x-1,"#8c93b3","center"),i("600",10),c("about 1 claim per new block",A,x-12M
,"#8c93b3","right"),l({rect:[g+y,x-14,A,x+2],html:'<div class="mt1">Since July 2023</div><div class="mt3">'+n.later+"</div>",key:"later"}),i("600",10),c("1 Jun 2023",m,x+13,"#8c93b3"),c("30 Jun",g,x+13,"#8c93b3","right");for(const[t,e]of[["2024-01-01","2024"],["2025-01-01","2025"]])c(e,v(Date.parse(t+"T00:00:00Z")),x+13,"#8c93b3","center");c("24 Mar 2026",A,x+13,"#8c93b3","right");for(const t of n.marks){const e=m+(t.day-1+.5)*F,o=20===t.day?145:x;s.fillStyle="#fff",s.beginPath(),"*"===t.s?s.arc(e,o-3,3,0,7):"d"===M
t.s?(s.moveTo(e,o-7),s.lineTo(e+4,o-3),s.lineTo(e,o+1),s.lineTo(e-4,o-3)):(s.moveTo(e-4,o-1),s.lineTo(e+4,o-1),s.lineTo(e,o-8)),s.fill(),i("600",10),20===t.day?c(t.k,e-8,154,"#fff","right"):1===t.day?c(t.k,e+7,x-14,"#fff"):c(t.k,g+y+6,x-26,"#fff"),l({x:e,y:o-3,r:8,html:'<div class="mt3">'+t.t+"</div>",key:"m"+t.day})}const T=Object.keys(HIST.isl).map((t=>({h:+t,I:ISL.find((e=>e.h===+t&&!e.guest)),H:HIST.isl[t]}))).filter((t=>t.I)).sort(((t,e)=>Date.parse(t.H.at+"Z")-Date.parse(e.H.at+"Z"))),w=[];for(const t of T){cM
onst e=v(Date.parse(t.H.at+"Z")),o=PADS.find((e=>e.isl===t.I.i));let a=0;for(;w.some((t=>Math.abs(t.x-e)<13&&t.lv===a));)a++;w.push({x:e,lv:a});const n=122+14*a;s.strokeStyle="#272f4e",s.lineWidth=1,s.beginPath(),s.moveTo(e,n+6),s.lineTo(e,x),s.stroke(),s.fillStyle=o.css,s.beginPath(),s.arc(e,n,6.5,0,7),s.fill(),i("800",9),c(o.L,e,n+.5,"RNFEOPAL".includes(o.L)?"#0b1018":"#fff","center"),l({x:e,y:n,r:8,html:'<div class="mt1"><span class="mtl" style="background:'+o.css+";color:"+("RNFEOPAL".includes(o.L)?"#0b1018":"#M
fff")+'">'+o.L+"</span>"+t.I.name+'</div><div class="mt2">'+t.H.claim.replace(/^\d+\.bitmap /,"Claim: ").replace(/^Claim: was /,"Claim: ")+"</div>",key:"c"+t.h})}$("tlsrc").textContent=HIST.src,tlCap(0)}function tlCap(t){TL.ci=(TL.ci+t)%HIST.tl.caps.length,$("tlcap").textContent=HIST.tl.caps[TL.ci]}function tlAt(t,e){const o=$("tlc"),a=o.getBoundingClientRect(),n=TL.w/a.width,s=(t.clientX-a.left)*n,l=(t.clientY-a.top)*n,r=e?8:2;let i=null,c=1e9;for(const t of TL.t)if(t.rect)s>=t.rect[0]&&s<=t.rect[2]&&l>=t.rect[1]&M
&l<=t.rect[3]&&c>50&&(i=t,c=50);else{const e=Math.hypot(t.x-s,t.y-l);e<=t.r+r&&e<c&&(i=t,c=e)}i?(o.style.cursor="pointer",tipHtml(i.html,t.clientX,t.clientY,e?3:0,i.key)):mapTipHide()}function pauseTab(t){TL.on="tl"===t,$("pause").classList.toggle("tl",TL.on),$("bigmap").style.display=TL.on?"none":"",$("tlbox").style.display=TL.on?"block":"none",$("tabMap").classList.toggle("on",!TL.on),$("tabTl").classList.toggle("on",TL.on),mapTipHide(),TL.on?tlDraw():paused&&drawMap($("bigmap"),420,1)}function setTod(t){save.todM
=t,persist(),$("todb").textContent="Sky: "+TODN[t]}function setEdu(t){save.edu=t,persist(),$("edub").textContent="Education cards: "+(t?"on":"off"),t||eduHide()}function setBldg(t){const e=(t="low"===t?"low":"tall")!==BH;if(BH=save.bh=t,persist(),$("bhb").textContent="Building height: "+("low"===t?"Low":"Tall"),e){for(const t of ISL)t.city&&(clearH(t.X0-t.fw-1.5,t.Z0-t.fh-1.5,t.X0+1.5,t.Z0+1.5),cityMesh(t));for(const t of LM){const e=ISL.find((e=>t.name===e.h+" coinbase"));e&&(t.y=e.cb[1]);const o=ISL.find((e=>t.naM
me===e.h+" largest tx"));o&&o.mk&&(t.y=o.mk[1])}for(const t of balloons)t.drift||null==t.y0||(t.y=Math.max(t.y0,ground(t.x,t.z).h+10))}}function onOri(t){if(null==t.beta)return;const e=screen.orientation&&null!=screen.orientation.angle?screen.orientation.angle:window.orientation||0;let o,a;90===e?(o=t.beta,a=-t.gamma):-90===e||270===e?(o=-t.beta,a=t.gamma):(o=t.gamma,a=t.beta),null==TS.t0&&(TS.t0=a),TS.tb=cl(o/22,-1,1),TS.tp=cl((a-TS.t0)/18,-1,1)}function setTilt(t){TS.tilt=t,TS.t0=null,TS.tb=TS.tp=0,t?addEventListM
ener("deviceorientation",onOri):removeEventListener("deviceorientation",onOri),$("tilt").textContent="Tilt steering: "+(t?"on":"off")}function closeSummary(){summaryOpen=!1,$("summary").style.display="none"}(()=>{const t=$("tlc");t.addEventListener("pointermove",(t=>{"touch"!==t.pointerType&&tlAt(t,!1)})),t.addEventListener("pointerleave",(t=>{"touch"!==t.pointerType&&mapTipHide()})),t.addEventListener("pointerdown",(t=>{"touch"!==t.pointerType&&"pen"!==t.pointerType||tlAt(t,!0)})),$("tabMap").onclick=()=>{sfx("cliM
ck"),pauseTab("map")},$("tabTl").onclick=()=>{sfx("click"),pauseTab("tl")},$("tabRes").onclick=()=>{setPause(!1),relock()},setInterval((()=>{TL.on&&paused&&tlCap(1)}),5e3),addEventListener("resize",(()=>{TL.on&&paused&&tlDraw()}))})(),$("inv").onclick=()=>{save.inv=!save.inv,persist(),$("inv").textContent="Invert mouse: "+(save.inv?"on":"off")},$("inv").textContent="Invert mouse: "+(save.inv?"on":"off"),$("wipe").onclick=()=>{if(confirm("Reset cash, score, jobs, upgrades and unlock?")){try{localStorage.removeItem("M
bitmapFlyer.v1")}catch(t){}location.reload()}},$("edub").onclick=()=>{setEdu(!save.edu),sfx("click")},setEdu(!1!==save.edu),$("todb").onclick=()=>{setTod({day:"gold",gold:"auto",auto:"day"}[save.tod]),sfx("click")},$("bhb").onclick=()=>{setBldg("low"===BH?"tall":"low"),sfx("click")},setBldg(save.bh||"tall"),$("tilt").onclick=()=>{if(TS.tilt)return setTilt(!1);const t=window.DeviceOrientationEvent;t?"function"==typeof t.requestPermission?t.requestPermission().then((t=>{"granted"===t?setTilt(!0):toast("Motion permissM
ion was denied.")})).catch((()=>toast("Motion permission needs a tap on the device."))):setTilt(!0):toast("Tilt is not available on this device.")},$("cont").onclick=()=>{sfx("click"),closeSummary()},$("vbtn").onclick=()=>{setView(1-view)},$("mute").onclick=()=>{initAudio(),save.mute=!save.mute,persist(),applyVol(),sfx("click")},$("vol").oninput=t=>{initAudio(),save.vol=t.target.value/100,persist(),applyVol()},$("vol").onchange=()=>sfx("click"),$("go").onclick=()=>{initAudio(),sfx("click"),$("title").style.display=M
"none",$("hud").style.display="block",playing=!0,document.body.classList.add("play"),last=performance.now(),setView(view),0===S.ff&&toast(TOUCH?"Push the throttle (right) up, then pull the stick (left) down to get airborne.":"Throttle up (<kbd>W</kbd>), then pull up (<kbd>R</kbd> or mouse) to get airborne.",8),relock()},$("saveinfo").textContent=save.jobs||save.cash?"Saved progress: $"+save.cash+" - "+save.jobs+" jobs"+(save.owned?" - Unlock owned":""):"New pilot - first flight starts at Home Base (H) on 883046.bitM
map.",function(){const t=$("stk"),e=t.firstChild,o=$("thrS");let a=null,n=null;const s=o=>{const a=t.getBoundingClientRect(),n=a.width/2,s=o.clientX-a.left-n,l=o.clientY-a.top-n,r=Math.hypot(s,l),i=r>n?n/r:1;TS.bx=cl(s*i/n*1.15,-1,1),TS.by=cl(l*i/n*1.15,-1,1),e.style.transform="translate("+s*i+"px,"+l*i+"px)"};t.addEventListener("pointerdown",(e=>{e.preventDefault(),initAudio(),a=e.pointerId;try{t.setPointerCapture(a)}catch(t){}s(e)})),t.addEventListener("pointermove",(t=>{t.pointerId===a&&s(t)}));const l=t=>{t.poiM
nterId===a&&(a=null,TS.bx=TS.by=0,e.style.transform="")};t.addEventListener("pointerup",l),t.addEventListener("pointercancel",l);const r=t=>{const e=o.getBoundingClientRect();S.thr=cl(1-(t.clientY-e.top-8)/(e.height-16),0,1)};o.addEventListener("pointerdown",(t=>{t.preventDefault(),initAudio(),n=t.pointerId;try{o.setPointerCapture(n)}catch(t){}r(t)})),o.addEventListener("pointermove",(t=>{t.pointerId===n&&r(t)}));const i=t=>{t.pointerId===n&&(n=null)};o.addEventListener("pointerup",i),o.addEventListener("pointercanM
cel",i),document.querySelectorAll(".tb").forEach((t=>{const e=t.dataset.k;if(t.addEventListener("pointerdown",(o=>{if(o.preventDefault(),initAudio(),playing)if("brake"!==e&&"fire"!==e&&"turbo"!==e)paused||summaryOpen||hangarOpen||boardOpen||("E"===e?interact():"C"===e?toggleView():"P"===e?setPause(!0):"U"===e?hangar():"J"===e?openBoard():"L"===e&&livery());else{TS[e]=!0,t.classList.add("on");try{t.setPointerCapture(o.pointerId)}catch(t){}}})),"brake"===e||"fire"===e||"turbo"===e){const o=()=>{TS[e]=!1,t.classList.rM
emove("on")};t.addEventListener("pointerup",o),t.addEventListener("pointercancel",o)}}))}(),TOUCH&&setTouch(!0),function(){const t=$("logo"),e=t.getContext("2d");let o=7;const a=()=>(o=16807*o%2147483647)/2147483647,n=(o,n,s,l)=>{const r=6*o.length*s-s,i=(t.width-r)/2;[...o].forEach(((o,r)=>{const c=FONT[o];for(let o=0;o<7;o++)for(let f=0;f<5;f++)if("1"===c[5*o+f]){const c=i+(6*r+f)*s,p=n+o*s,d=l(c/t.width);if(a()<.16){const t=s/2;for(let o=0;o<4;o++)e.fillStyle=d,e.globalAlpha=.75+.25*a(),e.fillRect(c+o%2*t+1,p+(oM
>>1)*t+1,t-2,t-2);e.globalAlpha=1}else e.fillStyle=d,e.fillRect(c+1,p+1,s-2,s-2)}}))};n("BITMAP",8,15,(()=>"#F7931A")),n("FLYER",126,15,(t=>{const e=[235,168,20],o=cl((t-.2)/.6,0,1);return`rgb(${[0,221,255].map(((t,a)=>Math.round(lerp(t,e[a],o)))).join(",")})`})),e.fillStyle="#F2E6D0";e.fillRect(560,250,40,8),e.fillStyle="#2A6FBF",e.fillRect(572,246,14,3),e.fillRect(558,240,6,10),e.fillStyle="#F7931A",e.fillRect(590,250,4,8),e.fillStyle="#c8d8e4";for(let t=0;t<3;t++)e.globalAlpha=.8-.22*t,e.beginPath(),e.arc(546-16M
*t,254,4-.8*t,0,7),e.fill();e.globalAlpha=1}();const MB0={x0:G0X,x1:2e3,z0:G0Z,z1:3100},MAPN=768,MINI_R=650,MFC=["#4f9a72","#c49a48","#b04c80","#9a74f0","#e0603c"];let mapImg=null;function mapBase(){if(mapImg)return mapImg;const t=document.createElement("canvas");t.width=t.height=MAPN;const e=t.getContext("2d"),o=e.createImageData(MAPN,MAPN),a=(MB0.x1-MB0.x0)/MAPN;for(let t=0;t<MAPN;t++)for(let e=0;e<MAPN;e++){const n=landD(MB0.x1-(e+.5)*a,MB0.z1-(t+.5)*a),s=4*(t*MAPN+e),l=n<-50?[18,40,64]:n<0?[40,96,120]:n<16?[160M
,146,110]:[52,62,52];o.data[s]=l[0],o.data[s+1]=l[1],o.data[s+2]=l[2],o.data[s+3]=255}e.putImageData(o,0,0);for(const t of ISL){e.fillStyle="#12151C",e.fillRect((MB0.x1-t.X0)/a,(MB0.z1-t.Z0)/a,t.fw/a,t.fh/a);const o=Math.min(Math.min(.5*t.u,2.6)/2,.2*a);t.sl.forEach((([n,s,l],r)=>{e.fillStyle=MFC[t.tx[r][1]],e.fillRect((MB0.x1-t.X0+n*t.u+o)/a,(MB0.z1-t.Z0+s*t.u+o)/a,(l*t.u-2*o)/a,(l*t.u-2*o)/a)}))}return mapImg=t}const MAP_PR=[7,9];function padLabel(t){return t.L+" - "+t.name}function mapGeom(t,e){const o=e?ISL.lenM
gth>NB_ISL?2300:2280:MINI_R,a=e?-250:S.pos[0],n=e?ISL.length>NB_ISL?420:120:S.pos[2],s=2*o/t;return{R:o,cx:a,cz:n,s,m:e=>[(a-e[0])/s+t/2,(n-e[1])/s+t/2]}}function drawMap(t,e,o){const a=t.getContext("2d"),n=mapGeom(e,o),s=n.R,l=n.cx,r=n.cz,i=(n.s,n.m),c=(MB0.x1-MB0.x0)/MAPN;a.fillStyle="rgb(18,40,64)",a.fillRect(0,0,e,e),a.drawImage(mapBase(),(MB0.x1-(l+s))/c,(MB0.z1-(r+s))/c,2*s/c,2*s/c,0,0,e,e),a.textAlign="center",a.textBaseline="middle",a.font="700 "+(o?12:9)+"px system-ui,sans-serif";for(const t of ISL){const M
n=i([t.cx,t.Z0+(o?70:45)]);n[0]<-60||n[0]>e+60||n[1]<-10||n[1]>e+10||(a.lineWidth=3,a.strokeStyle="rgba(11,16,24,.85)",a.strokeText(t.mapName||t.name,n[0],n[1]),a.fillStyle=0===t.i?"#F7931A":t.guest?t.approx?"#ff7a3d":"#ffd23a":"#e8eef4",a.fillText(t.mapName||t.name,n[0],n[1]))}for(const t of balloons)if(t.alive){const e=i([t.x,t.z]);if(t.gold){a.fillStyle="#ffd23a",a.beginPath(),a.arc(e[0],e[1],o?6:4,0,7),a.fill(),a.fillStyle="#0b1018",a.font="800 "+(o?9:7)+"px system-ui",a.fillText("B",e[0],e[1]+.5);continue}a.fiM
llStyle=t.drift?"#9fe8ff":2===t.tier?"#f344df":1===t.tier?"#eba814":"rgba(255,255,255,.7)";const n=o?3.5:2.5;a.fillRect(e[0]-n/2,e[1]-n/2,n,n)}job&&job.ph&&"scenic"===job.type&&job.wp.forEach(((t,e)=>{if(e<job.wi)return;const n=i([LM[t].x,LM[t].z]),s=o?7:5;a.strokeStyle="#83fd00",a.lineWidth=2,a.beginPath(),a.moveTo(n[0],n[1]-s),a.lineTo(n[0]+s,n[1]),a.lineTo(n[0],n[1]+s),a.lineTo(n[0]-s,n[1]),a.closePath(),a.stroke()})),a.font="700 "+(o?12:10)+"px system-ui,sans-serif";for(const t of PADS){const e=i([t.x,t.z]),n=oM
?MAP_PR[1]:MAP_PR[0];job&&(job.ph?job.to:job.pk)===t.i&&(a.strokeStyle=JOBC[job.type][1],a.lineWidth=2,a.beginPath(),a.arc(e[0],e[1],n+3+2*Math.sin(6*T),0,7),a.stroke()),a.fillStyle=t.css,a.beginPath(),a.arc(e[0],e[1],n,0,7),a.fill(),a.fillStyle="RNFEOPAL".includes(t.L)?"#0b1018":"#fff",a.fillText(t.L,e[0],e[1]+.5)}const f=i([S.pos[0],S.pos[2]]);a.save(),a.translate(f[0],f[1]),a.rotate(-S.h);const p=o?12:8.5,d=[[0,-1],[.13,-.82],[.14,-.32],[1,-.12],[1,.06],[.14,.06],[.1,.6],[.42,.74],[.42,.9],[.08,.86],[0,.95]];a.bM
eginPath(),d.forEach(((t,e)=>a[e?"lineTo":"moveTo"](t[0]*p,t[1]*p)));for(let t=d.length-2;t>0;t--)a.lineTo(-d[t][0]*p,d[t][1]*p);a.closePath(),a.lineJoin="round",a.lineWidth=o?3:2.5,a.strokeStyle="#0b1018",a.stroke(),a.fillStyle=2===S.pl?"#3fd8ff":S.pl?save.liv?"#ff7ef0":"#ffd25a":"#fff8ea",a.fill(),a.fillStyle=S.pl?"#1A1C24":"#2A6FBF",a.fillRect(-.12*p,-.62*p,.24*p,.22*p),a.restore(),a.fillStyle="#b1b1b1",a.font="600 "+(o?11:9)+"px system-ui",a.textAlign="center",a.fillText("N",e/2,o?10:7)}function resetSky(){S.piM
=S.bk=S.rc=S.rv=S.tb=S.tu=0}const EYES=[[0,.35,2.3],[0,.35,2.3],[0,1,.12]];function applyEye(){EYE_F.splice(0,3,...EYES[S.pl])}function update(t){T+=t,todT+=t;const e=PL[S.pl],o=ps(S.pl),a=job&&job.ph&&"cargo"===job.type?2===S.pl?SK.heavy:.8:1;toastT>0&&(toastT-=t,toastT<=0&&($("toast").style.display="none")),driftTick(t);for(const e of balloons)e.pop>0&&(e.pop-=t),!e.alive&&e.t>0&&(e.t-=t,e.t<=0&&(e.alive=!0,e.gold?(e.gi=(e.gi+1)%GSPOT.length,[e.x,e.y,e.z]=GSPOT[e.gi]):e.drift?e.tier=rnd()<.8?0:1:e.job||(e.tier=roM
llTier())));for(let e=parts.length-1;e>=0;e--){const o=parts[e];o.life-=t,o.life<=0?parts.splice(e,1):(o.v[1]-=o.g*t,o.p=add(o.p,scl(o.v,t)),o.v=scl(o.v,1-.6*t))}if(job&&job.ph&&(job.t+=t),S.crash>0)return S.crash-=t,S.crash<=0&&(spawnAt(S.resetPad||nearestPad()),S.resetPad=null),mdx=mdy=0,GUN.heat=Math.max(0,GUN.heat-t/2.5),void(bullets.length=0);K.KeyW&&(S.thr=Math.min(1,S.thr+.6*t)),K.KeyS&&(S.thr=Math.max(0,S.thr-.6*t));const n=o.maxS,s=K.Space||TS.brake;2===S.pl?function(t,e,o,a){const n=function(t){const e=K.M
ShiftLeft||K.ShiftRight||TS.turbo;return S.tb>0?(S.tu+=t,S.tb-=t,!(!e||S.tb<=0)||(S.tcd=Math.max(1.5,SK.turboCD*S.tu/SK.turboT),S.tb=0,S.tu=0,!1)):(S.tcd>0&&(S.tcd-=t),!!(e&&S.tcd<=0&&!S.onG&&S.crash<=0)&&(S.tb=SK.turboT,S.tu=0,sfx("blip"),!0))}(t);let s=S.onG?S.thr*e.maxS:SK.glide+S.thr*(e.maxS-SK.glide);n&&(s=e.maxS*SK.turboK),S.spd+=(s-S.spd)*e.acc*o*(n?SK.turboAcc:1)*t,S.onG||(S.spd-=Math.sin(S.p)*SK.dive*t),a&&(S.spd=Math.max(0,S.spd-(S.onG?e.brake:e.air)*t)),S.onG&&S.thr<.05&&(S.spd=Math.max(0,S.spd-1.5*t)),SM
.spd=cl(S.spd,0,e.maxS*(n?SK.turboK:1)*1.08)}(t,o,a,s):(S.spd+=(S.thr*n-S.spd)*o.acc*a*t,S.onG||(S.spd-=5*Math.sin(S.p)*t),s&&(S.spd=Math.max(0,S.spd-(S.onG?o.brake:o.air)*t)),S.onG&&S.thr<.05&&(S.spd=Math.max(0,S.spd-1.5*t)),S.spd=cl(S.spd,0,1.25*n));const l=cl((K.KeyD||K.ArrowRight?1:0)-(K.KeyA||K.ArrowLeft?1:0)+TS.bx+(TS.tilt?TS.tb:0),-1,1),r=cl((K.KeyR||K.ArrowDown?1:0)-(K.KeyF||K.ArrowUp?1:0)+TS.by+(TS.tilt?TS.tp:0),-1,1),i=.0025*mdy*(save.inv?-1:1);if(2!==S.pl&&(S.p+=.9*r*t-i),mdx?(S.co=cl(S.co+.004*mdx,-2.6,M
2.6),S.coT="classic"===camMode?.6:CAM.HOLD):(S.coT-=t)<0&&(S.co*=Math.exp(-2*t)),mdx=mdy=0,2===S.pl)!function(t,e,o,a,n,s,l){const r=PL[2],i=function(){const t=SK.gust0+SK.gustAlt*cl(S.pos[1]/SK.gustRef,0,1.5),e=.55*Math.sin(.83*T)+.3*Math.sin(2.1*T+1.3)+.35*Math.sin(.31*T+.4);return S.gw=e,{r:e*t,p:Math.sin(1.3*T+2)*t*SK.gustP}}();if(S.pi=cl(S.pi+s*SK.piRate*t-l,-SK.piMax,SK.piMax),s||l||(S.pi*=Math.exp(-(S.onG?4:SK.piDecay)*t)),S.onG)S.bk=0,S.rv=0,S.r=lerp(S.r,0,1-Math.exp(-8*t)),S.rc=S.r,S.h-=.7*n*t*Math.min(1,.M
3+S.spd/8),S.p=S.spd>=r.rot?Math.max(0,S.pi):0,S.spd>=r.rot&&S.thr>=SK.assist&&(S.p=Math.max(S.p,.1));else{S.bk+=(n-S.bk)*(1-Math.exp(-e.rr*o*t)),S.h-=S.bk*e.turn*o*t*cl(S.spd/3,.25,1);const s=S.bk*e.roll;S.rc=s*SK.rollK+i.r;const l=s+.6*i.r;S.rv+=(SK.swW*SK.swW*(l-S.r)-2*SK.swZ*SK.swW*S.rv)*t,S.r+=S.rv*t;const r=cl((SK.ceil-S.pos[1])/(SK.ceil-SK.soft),0,1),c=-SK.trim*(1-cl(S.thr/SK.lvl,0,1))+(a?SK.flare:0),f=(SK.pmaxB+SK.pmaxK*S.thr)*r,p=Math.max(Math.min(c+S.pi,f)+i.p,-.6);S.p+=(p-S.p)*(1-Math.exp(-SK.pw*t))}}(t,M
o,a,s,l,r,i);else if(S.onG)S.r=lerp(S.r,0,1-Math.exp(-8*t)),S.h-=.7*l*t*Math.min(1,.3+S.spd/8),S.spd<e.rot&&(S.p=Math.min(S.p,0)),S.p=Math.max(S.p,0);else{const e=l*o.roll-S.r,n=o.rr*a*t;S.r+=cl(e,-n,n),S.h-=Math.sin(S.r)*o.turn*a*t*cl(S.spd/10,.3,1.2)}S.p=cl(S.p,-.9,.9);{const e=edgeD(S.pos[0],S.pos[2]);if(e>0&&!S.onG){const e=islandAt(S.pos[0],S.pos[2]),o=(t=>{for(;t>PI;)t-=2*PI;for(;t<-PI;)t+=2*PI;return t})(Math.atan2(e.cx-S.pos[0],e.cz-S.pos[2])-S.h);S.h+=cl(o,-.9*t,.9*t),toastT<=0&&toast("Strong headwind at tM
he edge of the archipelago - turning you back.",2)}if(e>200){const t=islandAt(S.pos[0],S.pos[2]),e=S.pos[0]-t.cx,o=S.pos[2]-t.cz,a=1300/Math.hypot(e,o);S.pos[0]=t.cx+e*a,S.pos[2]=t.cz+o*a}}let c=0;if(!S.onG&&S.spd<e.stall){const o=1-S.spd/e.stall;c=11*o,S.p-=.4*o*t}2!==S.pl||S.onG||(c=SK.sinkSlow*(1-cl(S.spd/SK.glide,0,1))*(s?SK.flareSink:1));const f=S.pos[1],p=fwd();S.pos=add(S.pos,scl(p,S.spd*t)),S.pos[1]-=c*t;{const t=2===S.pl?SK.ceil:480;S.pos[1]>t&&(S.pos[1]=t,S.p=Math.min(S.p,0))}const d=p[1]*S.spd-c,h=groundM
(S.pos[0],S.pos[2]),u=S.pos[1]-e.gear;if(S.onG)S.p>.02&&S.spd>=e.rot?(S.onG=!1,S.flew=!0,0===S.ff&&(S.ff=1,S.ffT=0,toast("Airborne! Pop the marked balloons ahead - fly right through them.",6))):(S.pos[1]=h.h+e.gear,h.water?crash("Splash! You rolled into the sea."):1!==h.t&&3!==h.t||crash("You taxied into the city."));else if(u<=h.h){const t=2===h.t;(t||0===h.t&&!h.water)&&-d<o.td&&Math.abs(S.r)<o.bt&&S.p>-o.bt?(S.spd>5&&sfx("chirp"),sfx("thump"),S.onG=!0,S.pos[1]=h.h+e.gear,S.p=0,S.r=0,S.lastTD=-d,trailBreak(),toasM
t(t?"Touchdown on "+padLabel(padAt(S.pos[0],S.pos[2]))+".":"Off-strip landing. Taxi or take off again.",2),t&&function(t){save.edu&&t&&S.cardIsl!==t.isl&&(!job||job.to!==t.i&&job.pk!==t.i&&"express"!==job.type)&&function(t){const e=ISL[t.isl],o=EDU[t.isl],a=0|CARDN[t.isl],n=e.guest?'<span style="color:#00ddff">reached from 883046</span> - <span style="color:#ffd23a">your bitmap</span>':e.i?'<span style="color:#00ddff">reached from 883046</span>':'<span style="color:#83fd00">home bitmap</span>';let s,l,r="#eba814";iM
f(CARDN[t.isl]=a+1,e.guest){if(e.approx)return $("edu").innerHTML="<b>"+e.name+"</b> "+n+'<br><span style="color:#ff7a3d">APPROXIMATE - not the real layout</span><br>Live block data was not available.',$("edu").style.display="block",eduT=6,eduEnd=performance.now()+6e3,void(S.cardIsl=t.isl);const o=guestExtra(e),r=[()=>e.shown<e.n?"Showing "+fmtN(e.shown)+" of "+fmtN(e.n)+" transactions.":"Real layout, read live from the block."];o&&r.push((()=>o)),r.push(histCard),s=r[a%r.length](),l="Block "+e.h+" - mined "+utcDatM
e(e.ts)+" - "+fmtN(e.n)+" txs"}else{const t=HIST.isl[e.h],n=[];t&&n.push((()=>(r="#00ddff",t.claim)),(()=>t.extra)),n.push((()=>o.fact),histCard),s=n[a%n.length](),l="Block "+e.h+" - mined "+o.date+" - "+o.txs+" txs"}$("edu").innerHTML="<b>"+e.name+"</b> "+n+"<br>"+l+'<br><span style="color:'+r+'">'+s+"</span>",$("edu").style.display="block",eduT=6,eduEnd=performance.now()+6e3,S.cardIsl=t.isl}(t)}(padAt(S.pos[0],S.pos[2]))):crash(h.water?"Splash!":1===h.t?"Clipped the bitmap city.":3===h.t?"Hit a structure.":"Hard M
landing.")}if(!S.onG&&S.crash<=0&&2===S.pl)!function(){const t=function(){const t=axes(),e=axesR(S.rc),o=add(S.pos,scl(t.U,SK.HING)),a=add(o,scl(e.U,SK.CAN_Y)),n=SK.CAN_W,s=SK.CAN_C/2,l=(t,o,n)=>{const s=function(t,e,o){const a=SK.TILT,n=Math.cos(a),s=Math.sin(a),l=-SK.CAN_Y;return[t,e*n+o*s+l-l*n,o*n-e*s+l*s]}(t,o,n);return add(add(add(a,scl(e.L,s[0])),scl(e.U,s[1])),scl(e.F,s[2]))},r=(e,o,a)=>add(add(add(S.pos,scl(t.L,e)),scl(t.U,o)),scl(t.F,a));return{canopy:[l(-n,-SK.ARC,0),l(n,-SK.ARC,0),l(-n,-SK.ARC,.7*s),l(nM
,-SK.ARC,.7*s),l(-n,-SK.ARC,.7*-s),l(n,-SK.ARC,.7*-s),l(-n/2,.25*-SK.ARC,0),l(n/2,.25*-SK.ARC,0),l(0,0,s),l(0,0,-s)],cart:[r(-1,0,0),r(1,0,0),r(0,0,1.7),r(-.8,-.3,1.3),r(.8,-.3,1.3),r(0,0,-1.8)]}}();for(const e of t.cart){const t=ground(e[0],e[2]);if((1===t.t||3===t.t)&&e[1]<t.h)return crash(3===t.t?"Hit a structure.":"Clipped the bitmap city."),!0}for(const e of t.canopy){const t=camNear(e[0],e[1],e[2],.8);if(t&&t.d<.3)return crash("The canopy clipped a building."),!0}}();else if(!S.onG&&S.crash<=0){const t=add(S.M
pos,scl(p,2.4)),e=ground(t[0],t[2]);if(e.t>=1&&2!==e.t&&t[1]<e.h)crash(3===e.t?"Hit a structure.":"Clipped the bitmap city.");else{const t=S.pl?2.4:3,e=Math.cos(S.h),o=-Math.sin(S.h);for(const a of[-1,1]){const n=ground(S.pos[0]+e*t*a,S.pos[2]+o*t*a);if(1===n.t&&S.pos[1]<n.h){crash("Clipped the bitmap city.");break}}}}if(1===S.ff&&(S.ffT+=t,S.ffT>35&&(S.ff=2,toast("Job ping! Harbor Strip (R) has a pax hop. Land on R, stop, press E.",6))),function(t){GUN.flash=GUN.flash.map((e=>Math.max(0,e-t)));const e=save.gun&&S.M
crash<=0&&(TS.fire||save.gunOn&&(K.KeyG||GUN.mouse));if(GUN.firing=!1,e&&!GUN.over){for(GUN.firing=!0,GUN.heat+=t/4,GUN.cd-=t;GUN.cd<=0;)GUN.cd+=1/12,fireOne();GUN.heat>=1&&(GUN.heat=1,GUN.over=!0,GUN.clickT=.5,sfx("gunclick"))}else GUN.cd=Math.max(GUN.cd,0),GUN.heat=Math.max(0,GUN.heat-t/2.5),GUN.over&&GUN.heat<.35&&(GUN.over=!1),e&&GUN.over&&(GUN.clickT-=t)<0&&(GUN.clickT=.5,sfx("gunclick"));for(let e=bullets.length-1;e>=0;e--){const o=bullets[e],a=scl(o.v,t),n=add(o.p,a);let s=null;for(const t of balloons)if(t.aM
live&&segDist(o.p,n,[t.x,t.y+1.2*Math.sin(.8*T+t.ph)+6.5,t.z])<(t.gold?5.8:5.2)){s=t;break}s?(GUN.hits.push(Math.round(Math.hypot(s.x-S.pos[0],s.y+6.5-S.pos[1],s.z-S.pos[2]))),GUN.hits.length>30&&GUN.hits.shift(),s.shot=1,popBalloon(s),bullets.splice(e,1)):(o.p=n,o.d+=Math.hypot(a[0],a[1],a[2]),(o.d>400||n[1]<ground(n[0],n[2]).h)&&bullets.splice(e,1))}}(t),job&&job.ph&&"scenic"===job.type&&job.wi<job.wp.length&&!S.onG&&S.crash<=0){const t=LM[job.wp[job.wi]];Math.hypot(S.pos[0]-t.x,S.pos[2]-t.z)<55&&S.pos[1]<t.y+160M
&&(job.wi++,sfx("blip"),toast("Passengers loved the "+t.name+"! ("+job.wi+"/"+job.wp.length+")"+(job.wi>=job.wp.length?" Now land at "+PADS[job.to].name+" ("+PADS[job.to].L+").":" Next: "+LM[job.wp[job.wi]].name+"."),3.5))}if(S.crash<=0)for(const t of balloons)if(t.alive){const e=t.y+1.2*Math.sin(.8*T+t.ph)+6.5;Math.hypot(S.pos[0]-t.x,S.pos[1]-e,S.pos[2]-t.z)<(t.gold?6.8:6.2)&&popBalloon(t)}const b=padAt(S.pos[0],S.pos[2]);S.onG&&b&&"H"===b.L&&S.spd<2&&S.flew&&!summaryOpen&&(S.flew=!1,sess.balloons===lastSum.b&&sesM
s.jobs===lastSum.j&&3!==S.ff||(lastSum.b=sess.balloons,lastSum.j=sess.jobs,$("sb").textContent=sess.balloons,$("sj").textContent=sess.jobs,$("sm").textContent="$"+sess.cash,$("su").textContent=save.owned?"Unlock owned - press U at H for the hangar (planes, upgrades, livery).":"Unlock meter: "+Math.min(save.jobs,10)+"/10 jobs (then $750 in the H hangar, U).",summaryOpen=!0,$("summary").style.display="flex",3===S.ff&&(S.ff=4,save.first=!1,persist()))),S.vs=(S.pos[1]-f)/t,S.vel=S.prevP?scl(sub(S.pos,S.prevP),1/t):[0,0M
,0],Math.hypot(...S.vel)>80&&(S.vel=scl(p,S.spd)),S.prevP=[...S.pos];{const t=S.pos[1]-e.gear-ground(S.pos[0],S.pos[2]).h;S.lowWarn=!S.onG&&t<14&&S.vs<-4&&!padAt(S.pos[0],S.pos[2],40)}if(S.stallWarn=!S.onG&&S.spd<1.12*e.stall,S.rpm+=(650+1750*S.thr+350*Math.min(1,S.spd/n)-S.rpm)*(1-Math.exp(-2.5*t)),!S.onG&&S.spd>10){const t=axes(),o=add(S.pos,scl(t.F,e.tail)),a=trail[trail.length-1];(!a||a.brk||Math.hypot(o[0]-a.p[0],o[1]-a.p[1],o[2]-a.p[2])>1.3)&&(a&&!a.brk&&Math.hypot(o[0]-a.p[0],o[2]-a.p[2])>20&&trail.push({brkM
:1}),trail.push({p:o,t:T}))}else trailBreak();const m=S.pl?1.7:2.6;for(;trail.length&&(trail[0].brk||T-trail[0].t>m);)trail.shift()}const TOD={day:{top:[.494,.784,.91],mid:[.722,.863,.941],hz:[.91,.949,.973],sun:[1,.96,.78],fog:hex("#D6E6EF"),L:[.4,.85,.3],wt:[1,1,1],gl:0},gold:{top:hex("#2A3A6A"),mid:hex("#E89A4A"),hz:hex("#F5C98A"),sun:hex("#FFB060"),fog:hex("#EDBF8E"),L:[.62,.3,-.55],wt:[1.22,.97,.78],gl:.5}};function sky(){const t="gold"===save.tod?1:"auto"===save.tod?.5-.5*Math.cos(todT/600*2*PI):0,e=TOD.day,oM
=TOD.gold,a={k:t};for(const n of["top","mid","hz","sun","fog","wt"])a[n]=mix(e[n],o[n],t);return a.L=nrm(mix(e.L,o.L,t)),a.gl=o.gl*t,a}const QL=[{dpr:1.5,far:4200,fn:320,ff:1900,cull:2600,tiles:1700},{dpr:1,far:2800,fn:280,ff:1600,cull:1900,tiles:900},{dpr:.75,far:2e3,fn:220,ff:1250,cull:1350,tiles:450}],Q={lv:0,auto:!0,n:0,t:0,warm:0,fps:0},CAM={D0:11.5,DS:3.5,DUNL:1,DG:10,H0:3,HS:.8,HG:2.6,HL_S:.4,HL_G:.3,PF:.7,HL_P:.07,HL_Y:.06,HL_YG:.05,YCAP:7*PI/180,ROLL:[0,.12,1],RCAP:8*PI/180,HL_R:.2,LA0:8,LAS:.25,LAG:6,LAUPM
:1,FOV0:60,FOVS:4,FOVD:2,HL_F:.6,HFOV_MIN:80,FOV_MAXV:100,HOLD:1,PIV:1.5,RAD:.8,SIDE:1.5,STEP:1,SKIP:3,CL:2.5,MIN:4.5,BACK:1.5,HL_IN:.03,HL_OUT:.35,CLR:.25,RISE:6,HL_RISE:.1,HL_FALL:.35,HL_FLOOR:.05,NEAR:.8,NEARIN:.3},CAMP=[CAM,CAM,{D0:SK.camD0,DS:SK.camDS,DG:SK.camDG,H0:SK.camH0,HS:SK.camHS,HG:SK.camHG,LAUP:SK.camLAUP,LAUG:SK.camLAUG,rollK:SK.camRK,RCAP:SK.camRCAP}],CS={cy:0,cp:0,cr:0,cs:0,gb:1,cd:CAM.D0,cf:CAM.FOV0,clr:0,rise:0,fl:0,hit:!1,blk:!1,near:.8,fov:62,D:CAM.D0,Pm:null,VPc:null};let camMode="classic"===sM
ave.cam?"classic":"new",camRoll=[0,1,2].includes(save.croll)?save.croll:1;const camWrap=t=>((t%=2*PI)>PI&&(t-=2*PI),t<-PI&&(t+=2*PI),t),hlk=(t,e)=>1-Math.exp(-Math.LN2/t*e),camTerr=(t,e)=>{const o=ground(t,e);return 1===o.t?.35:o.h};let PBk="",PB=new Map;const PBS=16;function camNear(t,e,o,a){const n=CITYV+":"+ISL.length;n!==PBk&&(PBk=n,function(){PB=new Map;for(const t of ISL)if(t.pcs)for(const e of t.pcs){const t=[e[0],0,e[1],e[2],e[4],e[3]];for(let o=Math.floor(e[1]/PBS);o<=Math.floor(e[3]/PBS);o++)for(let a=MatM
h.floor(e[0]/PBS);a<=Math.floor(e[2]/PBS);a++){const e=100003*a+o;let n=PB.get(e);n||PB.set(e,n=[]),n.push(t)}}}());let s={d:1e9,q:null,b:null};const l=a=>{const n=cl(t,a[0],a[3]),l=cl(e,a[1],a[4]),r=cl(o,a[2],a[5]),i=Math.hypot(t-n,e-l,o-r);i<s.d&&(s={d:i,q:[n,l,r],b:a})};for(let e=Math.floor((o-a)/PBS);e<=Math.floor((o+a)/PBS);e++)for(let o=Math.floor((t-a)/PBS);o<=Math.floor((t+a)/PBS);o++){const t=PB.get(100003*o+e);if(t)for(const e of t)l(e)}for(let e=Math.max(0,Math.floor((o-a-G0Z)/4));e<=Math.min(1149,Math.fM
loor((o+a-G0Z)/4));e++)for(let o=Math.max(0,Math.floor((t-a-G0X)/4));o<=Math.min(1149,Math.floor((t+a-G0X)/4));o++){const t=e*GN+o;if(3===TG[t]){const a=G0X+4*o,n=G0Z+4*e;l([a,0,n,a+4,HG[t],n+4])}}return s}const camClr=(t,e,o)=>camNear(t,e,o,CAM.CL+1).d;function camRay(t,e,o,a){const n=sub(e,t),s=Math.hypot(n[0],n[1],n[2]);for(let e=CAM.SKIP;e<=s;e+=CAM.STEP){const l=e/s,r=t[0]+n[0]*l+o[0],i=t[1]+n[1]*l,c=t[2]+n[2]*l+o[2];if(camTerr(r,c)>i-CAM.RAD||a>0&&camClr(r,i,c)<a)return e/s}return-1}function camUpdate(t,e,o){M
const a="classic"===camMode?function(t,e){const o=S.h+S.co,a=[Math.sin(o),0,Math.cos(o)],n=.6*S.p,s=nrm(add(scl(a,Math.cos(n)),[0,Math.sin(n),0])),l=add(sub(S.pos,scl(s,S.pl?14:13)),[0,3.6,0]);camInit?(cam=l,camInit=!1):cam=add(cam,scl(sub(l,cam),1-Math.exp(-6*e)));const r=ground(cam[0],cam[2]).h+1;cam[1]<r&&(cam[1]=r);const i=add(S.pos,scl(t.F,6)),c=nrm(add([0,.85,0],scl(t.U,.15)));return{V:M4.look(cam,i,c),fov:62,near:.8}}(t,e):function(t,e,o){const a=CAM,n=CAMP[S.pl]||CAM,s=ps(S.pl),l=S.onG,r=S.h+S.co,i=cl(S.spdM
/s.maxS,0,1.25),c=l?0:S.p*a.PF,f=a.ROLL[camRoll]*(1===camRoll&&n.rollK||1),p=l?0:f>=1?S.r:cl(S.r*f,-(n.RCAP||a.RCAP),n.RCAP||a.RCAP);if(camInit)CS.cy=r,CS.cp=c,CS.cr=p,CS.cs=i,CS.gb=l?1:0,CS.clr=a.CLR,CS.rise=0,CS.cd=1e9,CS.fl=-1e9;else{CS.cs+=(i-CS.cs)*hlk(a.HL_S,e),CS.gb+=((l?1:0)-CS.gb)*hlk(a.HL_G,e);let t=cl(camWrap(r-CS.cy),-a.YCAP,a.YCAP);CS.cy=r-t,CS.cy+=camWrap(r-CS.cy)*hlk(l?a.HL_YG:a.HL_Y,e),CS.cp+=(c-CS.cp)*hlk(a.HL_P,e),CS.cr+=(p-CS.cr)*hlk(a.HL_R,e)}const d=CS.gb,h=Math.min(CS.cs,1),u=(t,e)=>t+(e-t)*d,M
b=u(n.D0+n.DS*h+(1===S.pl?a.DUNL:0),n.DG),m=u(n.H0+n.HS*h,n.HG);CS.D=b;const g=[Math.sin(CS.cy)*Math.cos(CS.cp),Math.sin(CS.cp),Math.cos(CS.cy)*Math.cos(CS.cp)],y=add(S.pos,[0,a.PIV,0]),A=add(sub(S.pos,scl(g,b)),[0,m,0]),x=[Math.cos(CS.cy)*a.SIDE,0,-Math.sin(CS.cy)*a.SIDE],M=Math.min(CAM.CL,.9*camClr(y[0],y[1],y[2]));let v=1,F=1;for(const t of[[0,0,0],x,scl(x,-1)]){const e=camRay(y,A,t,t[0]||t[2]?a.RAD:M);e>=0&&(v=Math.min(v,e));const o=t[0]||t[2]?e:camRay(y,A,t,a.RAD);o>=0&&(F=Math.min(F,o))}const T=v<1,w=T?v*b-a.M
BACK:b,C=T?Math.max(a.MIN,w):b,k=F<1&&F*b-a.BACK<a.MIN;CS.hit=T,CS.blk=k,camInit?CS.cd=C:C<CS.cd?(CS.cd+=(C-CS.cd)*hlk(a.HL_IN,e),CS.clr=0):(CS.clr+=e)>=a.CLR&&(CS.cd+=(C-CS.cd)*hlk(a.HL_OUT,e)),CS.cd=Math.min(CS.cd,b);const P=k?a.RISE:0;CS.rise+=(P-CS.rise)*hlk(P>CS.rise?a.HL_RISE:a.HL_FALL,e),cam=add(add(y,scl(sub(A,y),CS.cd/b)),[0,CS.rise,0]);const L=camTerr(cam[0],cam[2])+1;camInit?CS.fl=L:CS.fl+=(L-CS.fl)*hlk(a.HL_FLOOR,e),cam[1]<CS.fl&&(cam[1]=CS.fl),cam=function(t){for(let e=0;e<4;e++){const e=camNear(t[0],tM
[1],t[2],CAM.CL+1);if(e.d>=CAM.CL)break;if(e.d>1e-6){const o=(CAM.CL-e.d)/e.d+.001;t=[t[0]+(t[0]-e.q[0])*o,t[1]+(t[1]-e.q[1])*o,t[2]+(t[2]-e.q[2])*o]}else{const o=e.b,a=[[t[0]-o[0],0,-1],[o[3]-t[0],0,1],[t[2]-o[2],2,-1],[o[5]-t[2],2,1],[o[4]-t[1],1,1]].sort(((t,e)=>t[0]-e[0]))[0];(t=[...t])[a[1]]+=a[2]*(a[0]+CAM.CL+.001)}}return t}(cam),CS.clrM=camClr(cam[0],cam[1],cam[2]);const E=CS.cd/b*(1-.7*CS.rise/a.RISE),D=u(a.LA0+a.LAS*S.spd,a.LAG)*Math.max(0,Math.cos(S.co))*E*E,B=[Math.sin(CS.cy-S.co)*Math.cos(CS.cp),Math.sM
in(CS.cp),Math.cos(CS.cy-S.co)*Math.cos(CS.cp)],I=add(add(S.pos,scl(B,D)),[0,n.LAUP*(1-d)+(n.LAUG||0)*d,0]),G=[Math.cos(S.h),0,-Math.sin(S.h)],U=nrm(add(scl([0,1,0],Math.cos(CS.cr)),scl(G,-Math.sin(CS.cr)))),R=u(a.FOV0+a.FOVS*h+(CS.cs>1?a.FOVD:0),a.FOV0);return camInit?CS.cf=R:CS.cf+=(R-CS.cf)*hlk(a.HL_F,e),CS.fov=Math.max(CS.cf,Math.min(a.FOV_MAXV,2*Math.atan(Math.tan(a.HFOV_MIN/2*PI/180)/o)*180/PI)),CS.near=CS.cd<b-.5||CS.rise>.5?a.NEARIN:a.NEAR,camInit=!1,{V:M4.look(cam,I,U),fov:CS.fov,near:CS.near}}(0,e,o);retuM
rn CS.last=a,CS.lastCam=[...cam],a}function setCam(t){camMode="classic"===t?"classic":"new",save.cam=camMode,persist(),camInit=!0,$("camb").textContent="Camera: "+("classic"===camMode?"Classic":"New")}function setCamRoll(t){camRoll=[0,1,2].includes(t)?t:1,save.croll=camRoll,persist(),$("crb").textContent="Camera roll: "+["Level","Partial","Full"][camRoll]}$("camb").onclick=()=>{setCam("classic"===camMode?"new":"classic"),sfx("click")},$("crb").onclick=()=>{setCamRoll((camRoll+1)%3),sfx("click")},setCam(camMode),setM
CamRoll(camRoll);let VP,EYE,SKY=sky(),drawn={isl:0,tiles:0,fc:0,far:0};function eyeIn(t,e,o){const a=cam[0]-t.x,n=cam[2]-t.z,s=cam[1]-(e+6.5);return(a*a+n*n)/(25*o*o)+s*s/(56*o*o)<1}function beamFade(t,e,o){return cl((Math.hypot(cam[0]-t,cam[2]-e)-o-1)/36,0,1)}function draw(t,e){t.n&&(function(t){const e=MP.U;gl.uniformMatrix4fv(e.Mm,!1,t.M||I4),gl.uniform3fv(e.T,t.T||[1,1,1]),gl.uniform1f(e.W,t.W||0),gl.uniform1f(e.Fg,null==t.Fg?1:t.Fg),gl.uniform1f(e.Lt,null==t.Lt?1:t.Lt),gl.uniform1f(e.A,null==t.A?1:t.A)}(e),funM
ction(t){gl.bindBuffer(gl.ARRAY_BUFFER,t.b),gl.vertexAttribPointer(aP,3,gl.FLOAT,!1,40,0),gl.vertexAttribPointer(aN,3,gl.FLOAT,!1,40,12),gl.vertexAttribPointer(aC,4,gl.FLOAT,!1,40,24)}(t),gl.drawArrays(gl.TRIANGLES,0,t.n))}let mmT=0;const hudCache={};function setT(t,e,o){if(hudCache[t]===e)return;hudCache[t]=e;const a=$(t);o?a.innerHTML=e:a.textContent=e}let view="cockpit"===save.view||"fp"===save.view?1:0;function setView(t){view=t,save.view=t?"fp":"chase",persist(),document.body.classList.toggle("ck",!!t),$("ck")M
.style.display=playing?"block":"none",S.co=0,camInit=!0,$("vbtn").textContent="View: "+(t?"First-person":"Follow")+" (C)"}const EYE_F=[0,.35,2.3];applyEye();const ckc=$("ck"),ckx=ckc.getContext("2d"),G={asi:0,alt:0,vs:0,rpm:0,hdg:0,p:0,r:0,fx:0,fy:0,ang:{}},wrapD=t=>(t%360+540)%360-180;const T_=()=>T;null==save.vol&&(save.vol=.7),null==save.mute&&(save.mute=!1);const AU={ctx:null,laT:0,ok:!1};function applyVol(){AU.master&&AU.master.gain.setTargetAtTime(save.mute?0:.9*save.vol,AU.ctx.currentTime,.03),$("mute").textM
Content=save.mute?"Unmute (M)":"Mute (M)",$("vol").value=Math.round(100*save.vol)}function initAudio(){try{if(AU.ctx)return void("suspended"===AU.ctx.state&&AU.ctx.resume());const t=window.AudioContext||window.webkitAudioContext;if(!t)return;const e=new t;AU.ctx=e;const o=e.createDynamicsCompressor();o.threshold.value=-16,o.knee.value=12,o.ratio.value=4,o.attack.value=.004,o.release.value=.22,o.connect(e.destination);const a=e.createGain();a.gain.value=0,a.connect(o),AU.master=a,AU.comp=o;const n=e.createBuffer(1,2M
*e.sampleRate,e.sampleRate),s=n.getChannelData(0);let l=0;for(let t=0;t<s.length;t++){const e=2*Math.random()-1;l=.97*l+.03*e,s[t]=.6*e+2*l}AU.nb=n;const r=e.createOscillator(),i=e.createOscillator(),c=e.createGain(),f=e.createGain(),p=e.createOscillator(),d=e.createGain();r.type="sawtooth",i.type="square",c.gain.value=.3,f.gain.value=.7,d.gain.value=.3,p.connect(d),d.connect(f.gain),r.connect(f),i.connect(c),c.connect(f);const h=e.createBufferSource();h.buffer=n,h.loop=!0;const u=e.createBiquadFilter();u.type="banM
dpass",u.frequency.value=380,u.Q.value=.9;const b=e.createGain();b.gain.value=.5,h.connect(u),u.connect(b),b.connect(f);const m=e.createBiquadFilter();m.type="lowpass",m.frequency.value=1800,m.Q.value=.7;const g=e.createGain();g.gain.value=0,f.connect(m),m.connect(g),g.connect(a);const S=e.createBufferSource();S.buffer=n,S.loop=!0,S.playbackRate.value=.8;const y=e.createBiquadFilter();y.type="bandpass",y.Q.value=.6,y.frequency.value=500;const A=e.createGain();A.gain.value=0,S.connect(y),y.connect(A),A.connect(a);coM
nst x=e.createOscillator();x.type="triangle",x.frequency.value=415;const M=e.createOscillator();M.type="sawtooth",M.frequency.value=416.5;const v=e.createGain();v.gain.value=.35;const F=e.createBiquadFilter();F.type="lowpass",F.frequency.value=900,F.Q.value=.5;const T=e.createGain();T.gain.value=0,x.connect(F),M.connect(v),v.connect(F),F.connect(T),T.connect(a);const w=e.createBufferSource();w.buffer=n,w.loop=!0,w.playbackRate.value=1.3;const C=e.createBiquadFilter();C.type="bandpass",C.frequency.value=1700,C.Q.valM
ue=.7;const k=e.createGain();k.gain.value=0;const P=e.createOscillator();P.frequency.value=6.5;const L=e.createGain();L.gain.value=0,w.connect(C),C.connect(k),k.connect(a),P.connect(L),L.connect(k.gain),[r,i,p,h,S,x,M,w,P].forEach((t=>t.start())),Object.assign(AU,{o1:r,o2:i,o2g:c,lfo:p,lfoG:d,pnf:u,png:b,lp:m,eg:g,wf:y,wg:A,hg:T,rg:k,rlg:L,rl:P,rf:C}),AU.ok=!0,applyVol()}catch(t){AU.ok=!1}}function tone(t,e,o,a,n,s=0,l=.006){const r=AU.ctx;if(!AU.ok)return;const i=r.currentTime+s,c=r.createOscillator(),f=r.createGaM
in();c.type=o||"sine",c.frequency.setValueAtTime(t,i),n&&c.frequency.exponentialRampToValueAtTime(n,i+e),f.gain.setValueAtTime(0,i),f.gain.linearRampToValueAtTime(a,i+l),f.gain.exponentialRampToValueAtTime(1e-4,i+e),c.connect(f),f.connect(AU.master),c.start(i),c.stop(i+e+.05)}function noise(t,e,o,a,n=1,s=0,l){const r=AU.ctx;if(!AU.ok)return;const i=r.currentTime+s,c=r.createBufferSource(),f=r.createBiquadFilter(),p=r.createGain();c.buffer=AU.nb,f.type=e,f.frequency.setValueAtTime(o,i),l&&f.frequency.exponentialRampM
ToValueAtTime(l,i+t),f.Q.value=n,p.gain.setValueAtTime(a,i),p.gain.exponentialRampToValueAtTime(1e-4,i+t),c.connect(f),f.connect(p),p.connect(AU.master),c.start(i,1.5*Math.random()),c.stop(i+t+.05)}const SFX={gun(){noise(.045,"bandpass",1700,.15,1.1),tone(95,.06,"sine",.18,45)},gunclick(){tone(2600,.02,"square",.05),tone(1800,.02,"square",.04,null,.05)},pop(){noise(.13,"bandpass",1500,.42,.8),tone(250,.15,"sine",.32,75)},chime(){[784,988,1319,1568].forEach(((t,e)=>tone(t,.5,"triangle",.13,null,.08*e,.012)))},blip()M
{tone(660,.08,"triangle",.11),tone(990,.1,"triangle",.11,null,.07)},click(){tone(1400,.03,"triangle",.06)},thump(){tone(115,.22,"sine",.5,40),noise(.09,"lowpass",320,.26)},chirp(){noise(.12,"bandpass",2300,.16,4,0,1500),tone(1900,.1,"triangle",.04,1300)},crash(){noise(.8,"lowpass",900,.65,.8,0,180),tone(85,.55,"sawtooth",.16,28),noise(.3,"bandpass",2e3,.22,2,.06)},low(){tone(880,.13,"sine",.11,null,0,.015),tone(660,.15,"sine",.11,null,.17,.015)}};function sfx(t){if(AU.ok)try{SFX[t]()}catch(t){}}applyVol(),setView(vM
iew);let last=performance.now(),dtLast=.016;requestAnimationFrame((function t(e){const o=Math.min(.05,(e-last)/1e3);last=e,dtLast=o;try{!playing||paused||summaryOpen||hangarOpen||boardOpen||guestFreeze?(T+=o,playing||(S.co=1.2*Math.sin(.15*T)+.85*PI)):update(o),function(){const t=QL[Q.lv],e=Math.min(devicePixelRatio||1,t.dpr),o=Math.floor(innerWidth*e),a=Math.floor(innerHeight*e);cv.width===o&&cv.height===a||(cv.width=o,cv.height=a),gl.viewport(0,0,o,a);const n=axes(),s=PL[S.pl],l=SKY=sky(),r=playing&&1===view;let M
i;if(r){const t=EYE_F,e=add(add(add(S.pos,scl(n.L,t[0])),scl(n.U,t[1])),scl(n.F,t[2])),o=sub(scl(n.F,Math.cos(S.co)),scl(n.L,Math.sin(S.co)));cam=e,i=M4.look(e,add(e,o),n.U)}else{const e=camUpdate(n,dtLast||.016,o/a);i=e.V,CS.Pm=M4.persp(e.fov*PI/180,o/a,e.near,Math.min(t.far,4200)),CS.VPc=M4.mul(CS.Pm,i)}const c=r?M4.persp(62*PI/180,o/a,.25,Math.min(t.far,3e3)):CS.Pm;VP=M4.mul(c,i),EYE=cam;const f=l.L;gl.disable(gl.DEPTH_TEST),gl.depthMask(!1),gl.useProgram(SP.p);const p=SP.U;gl.uniformMatrix4fv(p.I,!1,M4.inv(VP))M
,gl.uniform3fv(p.E,cam),gl.uniform3fv(p.S,f),gl.uniform3fv(p.Fc,l.fog),gl.uniform3fv(p.Ct,l.top),gl.uniform3fv(p.Cm,l.mid),gl.uniform3fv(p.Ch,l.hz),gl.uniform3fv(p.Sc,l.sun),gl.uniform1f(p.Gl,l.gl),gl.bindBuffer(gl.ARRAY_BUFFER,skyB),gl.enableVertexAttribArray(aQ),gl.vertexAttribPointer(aQ,2,gl.FLOAT,!1,0,0),gl.drawArrays(gl.TRIANGLES,0,3),gl.disableVertexAttribArray(aQ),gl.enable(gl.DEPTH_TEST),gl.depthMask(!0),gl.disable(gl.BLEND),gl.useProgram(MP.p),[aP,aN,aC].forEach((t=>gl.enableVertexAttribArray(t)));const d=M
MP.U;gl.uniformMatrix4fv(d.V,!1,VP),gl.uniform3fv(d.L,f),gl.uniform3fv(d.E,cam),gl.uniform3fv(d.Fc,l.fog),gl.uniform3fv(d.Wt,l.wt),gl.uniform1f(d.Fn,t.fn),gl.uniform1f(d.Ff,t.ff),draw(worldMesh,{}),drawn.isl=drawn.tiles=drawn.fc=drawn.far=0;for(const e of ISL){if(!e.mesh)continue;const o=Math.hypot(cam[0]-e.cx,cam[2]-e.cz)-e.rad;o>t.cull||!inFr(e.cx,8,e.cz,e.rad)?drawn.fc++:o>Math.min(600,t.tiles+150)?(draw(e.far,{}),draw(e.cityT,{}),draw(e.cityW[cam[2]<e.cz?0:1],{}),draw(e.cityW[cam[0]<e.cx?2:3],{}),drawn.far++):(M
draw(e.mesh,{}),draw(e.city,{}),drawn.isl++,o<t.tiles&&(draw(e.tiles,{}),drawn.tiles+=e.nt))}for(const e of balloons){if(!(e.alive||e.pop>0))continue;if(Math.hypot(e.x-cam[0],e.z-cam[2])>Math.min(.75*t.far,t.ff+60)||!inFr(e.x,e.y+6,e.z,14))continue;const o=e.y+1.2*Math.sin(.8*T+e.ph),a=(e.pop>0?1.1:1)*(e.gold?1.15:1);eyeIn(e,o,e.pop>0?1.6:1.15)||draw(BM[e.tier][e.tier?0:e.k],{M:M4.trs(e.x,o,e.z,a,a,a,T*(e.gold?.6:.1)+e.ph),W:e.pop>0?.9:0})}for(const e of SIGNS)Math.hypot(e.x-cam[0],e.z-cam[2])<.8*t.far&&draw(poleM,M
{M:M4.trs(e.x,e.gy,e.z,1,1,1)});const h=1===S.pl&&save.liv?s.meshAlt:s.mesh;if(S.crash<=0&&2===S.pl){const t=axesR(S.rc),e=add(add(S.pos,scl(n.U,SK.HING)),scl(t.U,SK.CAN_Y));draw(r?s.fp:h,{M:M4.basis(n.L,n.U,n.F,S.pos)}),draw(s.can,{M:M4.basis(t.L,t.U,t.F,e)})}else S.crash<=0&&!r&&draw(h,{M:M4.basis(n.L,n.U,n.F,S.pos)});{gl.useProgram(TP.p);const e=TP.U;gl.uniformMatrix4fv(e.V,!1,VP),gl.uniform3fv(e.E,cam),gl.uniform3fv(e.Fc,l.fog),gl.uniform3fv(e.Wt,l.wt),gl.uniform1f(e.Fn,t.fn),gl.uniform1f(e.Ff,t.ff),gl.uniform1M
i(e.Sm,0),gl.activeTexture(gl.TEXTURE0),gl.bindBuffer(gl.ARRAY_BUFFER,signB),gl.vertexAttribPointer(aTp,3,gl.FLOAT,!1,20,0),gl.vertexAttribPointer(aTt,2,gl.FLOAT,!1,20,12),gl.enableVertexAttribArray(aTp),gl.enableVertexAttribArray(aTt);for(const o of SIGNS)Math.hypot(o.x-cam[0],o.z-cam[2])>.8*t.far||(o.ry=Math.atan2(cam[0]-o.x,cam[2]-o.z),gl.uniformMatrix4fv(e.Mm,!1,M4.trs(o.x,o.y,o.z,1,1,1,o.ry)),gl.bindTexture(gl.TEXTURE_2D,o.tex),gl.drawArrays(gl.TRIANGLES,0,6));gl.useProgram(MP.p),[aP,aN,aC].forEach((t=>gl.enabM
leVertexAttribArray(t)))}gl.enable(gl.BLEND),gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA),gl.depthMask(!1);const u=new MB,b=[i[0],i[4],i[8]],m=[i[1],i[5],i[9]];if(S.crash<=0){const t=ground(S.pos[0],S.pos[2]),e=S.pos[1]-t.h;if(e<90){const o=.38*(1-e/90),a=2===S.pl?4.6:3.4,n=[S.pos[0],t.h+.15,S.pos[2]];for(let t=0;t<16;t++){const e=t/16*2*PI,s=(t+1)/16*2*PI;u.tri(n,[n[0]+Math.cos(e)*a,n[1],n[2]+Math.sin(e)*a*1.2],[n[0]+Math.cos(s)*a,n[1],n[2]+Math.sin(s)*a*1.2],[0,0,0],o,0,0)}}}{const t=S.pl?1.7:2.6,e=S.pl?.16:M
.55,o=1===S.pl?save.liv?C.mag:C.info:S.pl?C.info:[1,1,1],a=S.pl?.6:.42;let n=null;for(let s=0;s<trail.length;s++){const l=trail[s];if(l.brk){n=null;continue}const r=(T-l.t)/t,i=Math.hypot(l.p[0]-S.pos[0],l.p[1]-S.pos[1],l.p[2]-S.pos[2]),c=Math.hypot(l.p[0]-cam[0],l.p[1]-cam[1],l.p[2]-cam[2]),f=a*cl(1-r,0,1)*cl(i/8,0,1)*cl((c-2)/6,0,1),p=e*(1+r*(S.pl?.8:2.2)),d=trail[s+1]&&!trail[s+1].brk?trail[s+1].p:n?add(l.p,sub(l.p,n.p)):null;if(!d){n={p:l.p,s:null,al:f};continue}const h=scl(nrm(cross(sub(d,l.p),sub(cam,l.p))),pM
),b={p:l.p,s:h,al:f};if(n&&n.s){const t=n,e=b,a=add(t.p,t.s),s=sub(t.p,t.s),l=add(e.p,e.s),r=sub(e.p,e.s);u.tri(a,t.p,e.p,o,0,t.al,e.al),u.tri(a,e.p,l,o,0,e.al,0),u.tri(t.p,s,r,o,t.al,0,0),u.tri(t.p,r,e.p,o,t.al,0,e.al)}n=b}}for(const t of bullets){const e=nrm(t.v),o=sub(t.p,scl(e,Math.min(14,t.d+.01))),a=Math.hypot(t.p[0]-cam[0],t.p[1]-cam[1],t.p[2]-cam[2]);if(segDist(o,t.p,cam)<2.5)continue;const n=.95*cl((a-3)/10,0,1)*cl((400-t.d)/80,0,1);if(n<=0)continue;const s=scl(nrm(cross(e,sub(cam,t.p))),Math.max(.06,.0045M
*a)),l=[1,.6,.16],r=.45*n;u.tri(add(o,s),o,t.p,l,0,.3*n,n),u.tri(add(o,s),t.p,add(t.p,s),l,0,n,r),u.tri(o,sub(o,s),sub(t.p,s),l,.3*n,0,r),u.tri(o,sub(t.p,s),t.p,l,.3*n,r,n)}if(!r&&S.crash<=0&&save.gun){const t=gunMuzzles(),e=axes();t.forEach(((t,o)=>{if(GUN.flash[o]<=0)return;const a=add(t,scl(e.F,.7)),n=.3+3*GUN.flash[o],s=scl(b,n),l=scl(m,.6*n);u.quad(add(a,s),add(a,l),sub(a,s),sub(a,l),[1,.95,.7],.85)}))}for(const t of parts){const e=Math.hypot(t.p[0]-cam[0],t.p[1]-cam[1],t.p[2]-cam[2]);if(e<2.5)continue;const oM
=t.life/t.max,a=t.s,n=t.a*Math.min(1,2*o)*cl((e-2.5)/7,0,1),s=(t.rot||0)+4*T,l=Math.cos(s)*a,r=Math.sin(s)*a,i=add(scl(b,l),scl(m,r)),c=add(scl(b,-r),scl(m,l));u.quad(add(t.p,add(i,c)),add(t.p,sub(i,c)),sub(t.p,add(i,c)),add(t.p,sub(c,i)),t.c,n)}if(u.d.length){const t=new Float32Array(u.d);gl.bindBuffer(gl.ARRAY_BUFFER,dynB),gl.bufferData(gl.ARRAY_BUFFER,t,gl.DYNAMIC_DRAW),draw({b:dynB,n:t.length/10},{Lt:0})}const g=.55+.3*Math.sin(2*T*PI*1.2),y=job&&job.ph&&"scenic"===job.type&&job.wi<job.wp.length;for(const t of M
PADS){let e=null;if(job?(job.ph?job.to:job.pk)!==t.i||job.ph&&"bounty"===job.type&&!(job.got>=job.need)||y||(e=JOBC[job.type][2]):S.ff>=2&&(e=JOBC[t.offer.type][2]),S.ff<2&&(e=null),e){{const o=beamFade(t.x,t.z,2.2);o>0&&draw(cylM,{M:M4.trs(t.x,0,t.z,2.2,70,2.2),T:e,Lt:0,Fg:0,A:(.32*g+.08)*o})}const o=9+1.2*Math.sin(4*T);draw(ringM,{M:M4.trs(t.x,.5,t.z,o,1,o),T:e,Lt:0,Fg:.3,A:.85})}t.mast&&draw(cylM,{M:M4.trs(t.mast[0],t.tip,t.mast[1],.9,1.2,.9),T:C.haz,Lt:0,Fg:0,A:Math.sin(5*T)>0?.95:.15})}if(y){const t=LM[job.wp[M
job.wi]],e=beamFade(t.x,t.z,3);e>0&&draw(cylM,{M:M4.trs(t.x,0,t.z,3,t.y+110,3),T:C.green,Lt:0,Fg:0,A:(.3*g+.1)*e});const o=14+2*Math.sin(4*T);draw(ringM,{M:M4.trs(t.x,t.y+30,t.z,o,1,o,T),T:C.green,Lt:0,Fg:.2,A:.8})}for(const t of balloons){if(!t.alive)continue;const e=t.y+1.2*Math.sin(.8*T+t.ph);if(t.tier>=2||t.ff){const o=t.ff?C.white:t.gold?hex("#ffd23a"):C.haz;{const a=beamFade(t.x,t.z,.5);a>0&&!eyeIn(t,e,1.15)&&draw(cylM,{M:M4.trs(t.x,e+12.4,t.z,t.gold?.9:.5,t.job||t.ff?60:t.gold?140:9,t.gold?.9:.5),T:o,Lt:0,FgM
:0,A:(.2+.5*g)*a})}t.tier>=2&&!eyeIn(t,e,1.4)&&draw(ringM,{M:M4.trs(t.x,e+8,t.z,t.gold?7:5.6,1,t.gold?7:5.6,T*(t.gold?2:1)),T:t.gold?hex("#ffd23a"):C.white,Lt:0,A:.75})}}S.crash<=0&&!r&&draw(s.prop,{M:M4.basis(n.L,n.U,n.F,S.pos),Lt:0}),gl.depthMask(!0),gl.disable(gl.BLEND)}(),playing&&(function(t){const e=PL[S.pl];setT("spd",Math.round(4.2*S.spd)+'<span class="u">kn</span>',1);const o=Math.max(0,Math.round(6.6*(S.pos[1]-e.gear)));if(setT("alt",o+'<span class="u">ft</span>',1),$("alt").style.color=!S.onG&&o<80?"#fffM
000":"#fff",setT("hdg",String(Math.round((180*-S.h/PI%360+360)%360)%360).padStart(3,"0")),$("thr").firstChild.style.width=Math.round(100*S.thr)+"%",$("thrS").firstChild.style.height=Math.round(100*S.thr)+"%",setT("sc",String(save.score)),setT("cs","$"+save.cash),setT("chip",job?"JOB":"FREE FLY"),setT("ul",save.owned?"Unlock owned (U at H)":"Unlock "+Math.min(save.jobs,10)+"/10 jobs"),setT("pln","Plane: "+e.name+" - "+islandAt(S.pos[0],S.pos[2]).name),setT("tbi",2===S.pl?S.tb>0?'<span style="color:#83fd00">TURBO '+SM
.tb.toFixed(1)+"s</span>":S.tcd>0?"Turbo recharging "+Math.ceil(S.tcd)+"s":'<span style="color:#00ddff">Turbo ready ('+(TOUCH?"TURBO":"Shift")+")</span>":"",1),$("tT").style.display=2===S.pl?"flex":"none",job){const[t,e]=JOBC[job.type],o=PADS[job.to],a=PADS[job.from],n=PADS[job.pk],s=Math.round(Math.hypot(o.x-S.pos[0],o.z-S.pos[2]));$("job").style.borderLeftColor=e,setT("jt",'<span style="color:'+e+'">'+t+"</span> "+a.L+" &rarr; "+o.L,1);let l="";if(job.ph){if("bounty"===job.type&&(l="Pop magenta bounty balloons: "M
+job.got+"/"+job.need+"<br>"),"scenic"===job.type&&(l=job.wi<job.wp.length?'Show passengers: <b style="color:#83fd00">'+LM[job.wp[job.wi]].name+"</b> ("+(job.wi+1)+"/"+job.wp.length+") "+Math.round(Math.hypot(LM[job.wp[job.wi]].x-S.pos[0],LM[job.wp[job.wi]].z-S.pos[2]))+"m<br>":"All sights seen - land at "+o.L+"<br>"),job.par){const t=job.t<=job.par;l='<span style="color:'+(t?"#83fd00":"#ffb020")+'">'+mmss(job.t)+"</span> / par "+mmss(job.par)+(t?" - bonus +$"+job.bonus:" - over par")+"<br>"}}else l='<b style="coloM
r:#ffd23a">Pickup at '+n.L+"</b> "+n.name+" "+Math.round(Math.hypot(n.x-S.pos[0],n.z-S.pos[2]))+"m<br>"+(job.par?"Par "+mmss(job.par)+" starts at pickup<br>":"");setT("jb",l+"Pay $"+job.pay+" - "+(job.ph?"":"then ")+o.name+(job.ph?" "+s+"m":"")+(job.ph&&"cargo"===job.type?"<br>Heavy cargo: slower to turn":"")+'<br><span style="color:#8c93b3">Q abandon</span>',1)}else $("job").style.borderLeftColor="#272f4e",setT("jt","Free Fly"),setT("jb",(S.ff<2?"First flight: take off and pop balloons.":"Land on a pad with a beamM
, stop, press E for a job.")+(S.ff<4?'<br><span style="color:#eba814">'+factNow()+"</span>":""),1);const a=padAt(S.pos[0],S.pos[2]);let n=[];const s=atH();a&&S.onG&&S.crash<=0&&(S.spd>3?n.push('<span style="color:#b1b1b1">Slow down to interact ('+(TOUCH?"BRK":"Space")+")</span>"):(job&&!job.ph?n.push(job.pk===a.i?"[E] Pick up "+JOBC[job.type][0]+" - par starts":'<span style="color:#ffd23a">Pickup is at '+PADS[job.pk].L+" - "+PADS[job.pk].name+"</span>"):job&&job.to===a.i?n.push("bounty"===job.type&&job.got<job.needM
?'<span style="color:#fff000">Pop '+(job.need-job.got)+" more bounty balloons</span>":"scenic"===job.type&&job.wi<job.wp.length?'<span style="color:#fff000">Show the '+LM[job.wp[job.wi]].name+" first</span>":"[E] Deliver "+JOBC[job.type][0]+" - $"+job.pay+(job.par&&job.t<=job.par?" +$"+job.bonus:"")):!job&&S.ff>=2&&n.push("[E] Accept "+function(t){const e=PADS[t.to];return JOBC[t.type][0]+("bounty"===t.type?" (pop 3, return "+e.L+")":"scenic"===t.type?": "+t.wp.length+" sights &rarr; "+e.L:" &rarr; "+e.L+" "+e.nameM
)+" - $"+t.pay+("express"===t.type?" (par "+mmss(t.par)+", +$"+t.bonus+")":"")+(e.isl!==PADS.find((e=>e.offer===t)).isl?' <span style="color:#eba814">inter-island</span>':"")}(a.offer)),S.ff>=2&&!TOUCH&&n.push('<span style="color:#ffd23a">[J] Job Board</span>'),s&&n.push('<span style="color:#00ddff">[U] Hangar: planes + upgrades'+(save.owned?" - [L] livery":"")+"</span>")));const l=n.map((t=>"<div>"+t+"</div>")).join("");if(setT("prompt",l,1),$("prompt").style.display=l?"block":"none",$("tU").style.display=s?"flex"M
:"none",$("tJ").style.display=a&&S.onG&&S.crash<=0&&S.spd<=3&&S.ff>=2?"flex":"none",document.body.classList.toggle("gun",!!save.gun),$("tF").style.display=save.gun?"flex":"none",save.gun){const t=GUN.over?"#ff4040":GUN.heat>.7?"#ffb020":"#83fd00",e=Math.round(100*GUN.heat);$("heat").firstChild.style.width=e+"%",$("heat").firstChild.style.background=t,setT("gunl",GUN.over?"HOT":save.gunOn?"GUN":"SAFE"),$("tF").style.background="linear-gradient(to top,"+(GUN.over?"rgba(255,64,64,.6)":"rgba(247,147,26,.5)")+" "+e+"%,rM
gba(14,20,32,.42) "+e+"%)",$("tF").textContent=GUN.over?"HOT":"FIRE"}eduT>0&&(eduT=(eduEnd-performance.now())/1e3)<=0&&eduHide(),$("tL").style.display=s&&save.owned?"flex":"none",(mmT-=t)<0&&(mmT=.07,drawMap($("mmc"),150,0))}(o),function(t){const e=1-Math.exp(-7*t),o=1-Math.exp(-2.5*t),a=1-Math.exp(-20*t);G.asi+=(4.2*S.spd-G.asi)*e,G.alt+=(Math.max(0,6.6*(S.pos[1]-PL[S.pl].gear))-G.alt)*e,G.vs+=(396*S.vs-G.vs)*o,G.rpm+=(S.rpm-G.rpm)*e,G.hdg=(G.hdg+wrapD((180*-S.h/PI%360+360)%360-G.hdg)*e+360)%360,G.p+=(S.p-G.p)*a,GM
.r+=(S.r-G.r)*a;const n=axes(),s=S.vel||[0,0,0],l=dot(s,n.F);let r=0,i=0;l>1&&(r=dot(s,scl(n.L,-1))/l,i=dot(s,n.U)/l),G.fx+=(cl(r,-.6,.6)-G.fx)*e,G.fy+=(cl(i,-.6,.6)-G.fy)*e}(o),function(t){const e=Math.min(devicePixelRatio||1,1.5),o=innerWidth,a=innerHeight;ckc.width===Math.floor(o*e)&&ckc.height===Math.floor(a*e)||(ckc.width=Math.floor(o*e),ckc.height=Math.floor(a*e));const n=ckx,s=PL[S.pl],l="#7CFFB2",r="#ffb020",i=a<520;if(n.setTransform(e,0,0,e,0,0),n.clearRect(0,0,o,a),G.ang.target=null,G.ang.wps=0,S.crash>0)M
return;const c=o/2,f=a/2,p=a/2/Math.tan(31*PI/180),d=t?-p*Math.tan(cl(S.co,-1.2,1.2)):0,h=G.ang;n.strokeStyle=l,n.fillStyle=l,n.lineWidth=1.6,n.lineCap="round",n.lineJoin="round",n.shadowColor="rgba(0,16,8,.9)",n.shadowBlur=3,n.textBaseline="middle";const u=(t,e,o,a)=>{n.beginPath(),n.moveTo(t,e),n.lineTo(o,a),n.stroke()},b=(t,e,o,a="center",s=13)=>{n.font="700 "+s+"px system-ui,sans-serif",n.textAlign=a,n.fillText(t,e,o)},m=(t,e,o,a)=>{n.fillStyle="rgba(6,18,12,.55)",n.fillRect(t-o/2,e-a/2,o,a),n.strokeRect(t-o/2,M
e-a/2,o,a),n.fillStyle=l};if(t){const t=c+d;n.save(),n.beginPath(),n.rect(c-.2*o,f-.3*a,.4*o,.62*a),n.clip(),n.translate(t,f),n.rotate(-G.r);const e=t=>p*Math.tan(G.p-t*PI/180);h.horizonY=e(0),h.roll=180*-G.r/PI,u(.18*-o,e(0),.04*-o,e(0)),u(.04*o,e(0),.18*o,e(0));for(let t=-30;t<=30;t+=5){if(!t)continue;const s=e(t);if(Math.abs(s)>.34*a)continue;const l=t%10?.03*o:.055*o;n.setLineDash(t<0?[5,4]:[]),u(.03*-o-l,s,.03*-o,s),u(.03*o,s,.03*o+l,s),n.setLineDash([]);const r=t>0?6:-6;u(.03*-o-l,s,.03*-o-l,s+r),u(.03*o+l,s,M
.03*o+l,s+r),t%10==0&&(b(Math.abs(t),.03*-o-l-12,s,"right",11),b(Math.abs(t),.03*o+l+12,s,"left",11))}if(n.restore(),u(t-22,f,t-9,f),u(t-9,f,t-4,f+6),u(t-4,f+6,t,f),u(t,f,t+4,f+6),u(t+4,f+6,t+9,f),u(t+9,f,t+22,f),S.spd>3){const e=t+p*G.fx,o=f-p*G.fy;h.fpm=[Math.round(e-t),Math.round(o-f)],n.beginPath(),n.arc(e,o,6,0,7),n.stroke(),u(e-15,o,e-6,o),u(e+6,o,e+15,o),u(e,o-6,e,o-12)}{const t=.33*a;n.beginPath(),n.arc(c,f,t,-PI/2-PI/3,-PI/2+PI/3),n.stroke();for(const e of[-60,-45,-30,-20,-10,0,10,20,30,45,60]){const o=e*PM
I/180,a=e%30==0?11:6;u(c+Math.sin(o)*t,f-Math.cos(o)*t,c+Math.sin(o)*(t+a),f-Math.cos(o)*(t+a))}const e=-cl(G.r,-1.1,1.1),o=c+Math.sin(e)*(t-2),s=f-Math.cos(e)*(t-2);n.save(),n.translate(o,s),n.rotate(e),n.beginPath(),n.moveTo(0,0),n.lineTo(-6,11),n.lineTo(6,11),n.closePath(),n.fill(),n.restore(),h.bankPtr=180*e/PI}{const t=i?24:30,e=Math.min(220,.2*o),a=4.4;n.save(),n.beginPath(),n.rect(c-e,t-6,2*e,40),n.clip();for(let e=5*Math.floor((G.hdg-55)/5);e<=G.hdg+55;e+=5){const o=c+wrapD(e-G.hdg)*a,n=(e%360+360)%360;if(uM
(o,t+10,o,t+(n%10?15:20)),n%10==0){const e={0:"N",90:"E",180:"S",270:"W"}[n]||String(n/10).padStart(2,"0");b(e,o,t+30,"center",e.length<2?14:12)}}n.restore(),n.beginPath(),n.moveTo(c,t+8),n.lineTo(c-6,t),n.lineTo(c+6,t),n.closePath(),n.fill(),m(c,t-12,46,20),h.hdgBox=String(Math.round(G.hdg)%360).padStart(3,"0"),b(h.hdgBox,c,t-12,"center",13)}const g=(t,e,o,s,r,i,c,p)=>{const d=.42*a;n.save(),n.beginPath(),n.rect(t-50,f-d/2,100,d),n.clip(),u(t,f-d/2,t,f+d/2),p&&p(t,d);for(let a=Math.floor((e-d/2/o)/s)*s;a<=e+d/2/o;M
a+=s){if(a<c)continue;const n=f-(a-e)*o,l=Math.round(a/s)%2==0;u(t,n,t+i*(l?12:6),n),l&&b(Math.round(a),t+16*i,n,i>0?"left":"right",12)}n.restore(),n.beginPath(),n.moveTo(t-2*i,f),n.lineTo(t+8*i,f-11),n.lineTo(t+66*i,f-11),n.lineTo(t+66*i,f+11),n.lineTo(t+8*i,f+11),n.closePath(),n.fillStyle="rgba(6,18,12,.7)",n.fill(),n.stroke(),n.fillStyle=l,b(r,t+37*i,f,"center",14)},y=i?Math.min(.22*o,330):Math.min(.3*o,330),A=c-y,x=c+y,M=4.2*s.stall;h.spdBox=Math.round(G.asi),h.altBox=10*Math.round(G.alt/10),g(A,G.asi,3,5,h.spdM
Box,-1,0,((t,e)=>{n.strokeStyle=r,n.lineWidth=4;const o=f-3*(M-G.asi);u(t+3,Math.max(f-e/2,o),t+3,f+e/2),n.strokeStyle=l,n.lineWidth=1.6})),g(x,G.alt,.5,50,h.altBox,1,0),b("KT",A-36,f-.21*a-12,"center",11),b("FT",x+36,f-.21*a-12,"center",11),h.vs=10*Math.round(G.vs/10);const v=i?f-.21*a-30:f+.21*a+16,F=i?v-16:f+.21*a+34;b("VS "+(h.vs>0?"+":"")+h.vs,x+8,v,"left",i?11:13),b("THR "+Math.round(100*S.thr)+"%",A-8,v,"right",i?11:13),i||b("RPM "+10*Math.round(G.rpm/10),A-8,F,"right",13),b(s.name.toUpperCase()+(K.Space||TSM
.brake?"  BRK":"")+(S.onG?"  GND":""),x+8,F,"left",i?10:12);const T=Math.sin(10*T_())>0;if(S.stallWarn&&T&&(n.fillStyle=r,m(c,f+64,92,26),n.fillStyle=r,b("STALL",c,f+64,"center",16)),S.lowWarn&&T&&(n.strokeStyle=r,n.fillStyle=r,b("PULL UP",c,f+96,"center",16),n.strokeStyle=l,n.fillStyle=l),save.gun){const t=f+a*(i?.3:.36),e=90,o=GUN.over?"#ff4040":GUN.heat>.7?r:l;n.strokeRect(c-e/2,t-4,e,8),n.fillStyle=o,n.fillRect(c-e/2+1,t-3,(e-2)*GUN.heat,6),b(GUN.over?"OVERHEAT":save.gunOn?"GUN":"GUN SAFE",c-e/2-8,t,"right",11)M
,n.fillStyle=l,h.heat=Math.round(100*GUN.heat)}if(save.gun)for(const t of[0,1])if(GUN.flash[t]>0){const e=t?.86*o:.14*o,s=.9*a,r=n.createRadialGradient(e,s,0,e,s,70);r.addColorStop(0,"rgba(255,220,140,.32)"),r.addColorStop(1,"rgba(255,220,140,0)"),n.fillStyle=r,n.fillRect(e-70,s-70,140,140),n.fillStyle=l}}if(h.pip=null,save.gun&&save.gunOn&&VP&&S.crash<=0){const e=axes(),s=add(S.pos,scl(e.F,150)),r=VP,i=r[3]*s[0]+r[7]*s[1]+r[11]*s[2]+r[15];if(i>0){const e=c+(r[0]*s[0]+r[4]*s[1]+r[8]*s[2]+r[12])/i*o/2,p=f-(r[1]*s[0]M
+r[5]*s[1]+r[9]*s[2]+r[13])/i*a/2;if(h.pip=[Math.round(e),Math.round(p)],n.save(),n.strokeStyle=GUN.over?"#ff4040":t?l:"rgba(255,255,255,.55)",n.fillStyle=n.strokeStyle,n.lineWidth=t?1.6:1.2,n.beginPath(),n.arc(e,p,t?10:7,0,7),n.stroke(),t){n.beginPath(),n.arc(e,p,1.6,0,7),n.fill();for(const[t,o]of[[1,0],[-1,0],[0,1],[0,-1]])u(e+13*t,p+13*o,e+18*t,p+18*o)}n.restore()}}const g=function(){if(!job)return[];if(!job.ph){const t=PADS[job.pk];return[{p:[t.x,.4,t.z],lab:"PICKUP "+t.L,main:1}]}if("bounty"===job.type&&job.goM
t<job.need){let t=null,e=1e9;for(const o of balloons)if(o.job&&o.alive){const a=Math.hypot(o.x-S.pos[0],o.z-S.pos[2]);a<e&&(e=a,t=o)}return t?[{p:[t.x,t.y+6.5,t.z],lab:"BNTY",main:1}]:[]}if("scenic"===job.type&&job.wi<job.wp.length)return job.wp.slice(job.wi).map(((t,e)=>({p:[LM[t].x,LM[t].y+8,LM[t].z],lab:LM[t].name,main:!e,wp:1})));const t=PADS[job.to];return[{p:[t.x,.4,t.z],lab:t.L,main:1}]}();if(g.length&&VP){const t=JOBC[job.type][1];for(const e of g.slice().reverse()){const s=e.p,l=VP,r=l[3]*s[0]+l[7]*s[1]+l[M
11]*s[2]+l[15];let i=(l[0]*s[0]+l[4]*s[1]+l[8]*s[2]+l[12])/Math.abs(r||.001),p=(l[1]*s[0]+l[5]*s[1]+l[9]*s[2]+l[13])/Math.abs(r||.001);const d=Math.round(Math.hypot(s[0]-S.pos[0],s[2]-S.pos[2])),u=c+i*o/2,m=f-p*a/2,g=r>0&&Math.abs(i)<.92&&Math.abs(p)<.88;if(n.strokeStyle=t,n.fillStyle=t,e.wp&&h.wps++,e.main)if(g)n.lineWidth=2,n.beginPath(),n.moveTo(u,m-14),n.lineTo(u+14,m),n.lineTo(u,m+14),n.lineTo(u-14,m),n.closePath(),n.stroke(),e.wp&&(n.globalAlpha=.25,n.fill(),n.globalAlpha=1),b(e.lab+"  "+d+"m",u,m-26,"center"M
,13),h.target={on:1,x:Math.round(u),y:Math.round(m),dist:d,lab:e.lab};else{let t=i,s=-p;r<=0&&Math.abs(t)<.3&&(s=Math.abs(s)+1),Math.hypot(t,s)<.001&&(s=1);const l=.4*o,u=.3*a,m=1/Math.max(Math.abs(t)/l,Math.abs(s)/u),g=c+t*m,S=f+s*m,y=Math.atan2(s,t);n.save(),n.translate(g,S),n.rotate(y),n.beginPath(),n.moveTo(16,0),n.lineTo(-6,-10),n.lineTo(-2,0),n.lineTo(-6,10),n.closePath(),n.fill(),n.restore(),b(e.lab+" "+d+"m",g-30*Math.cos(y),S-22*Math.sin(y),"center",12),h.target={on:0,arrowX:Math.round(g),arrowY:Math.roundM
(S),angDeg:Math.round(180*y/PI),dist:d,lab:e.lab}}else if(g){n.globalAlpha=.55,n.lineWidth=1.5;const t=8;n.beginPath(),n.moveTo(u,m-t),n.lineTo(u+t,m),n.lineTo(u,m+t),n.lineTo(u-t,m),n.closePath(),n.stroke(),b(e.lab,u,m-16,"center",10),n.globalAlpha=1}}n.strokeStyle=l,n.fillStyle=l,n.lineWidth=1.6}n.shadowBlur=0}(1===view)),function(t){if(!AU.ok)return;const e=AU.ctx.currentTime,o=playing&&!paused&&!summaryOpen&&!hangarOpen&&!boardOpen&&S.crash<=0,a=1===view,n=cl(S.rpm/2750,0,1),s=2===S.pl,l=S.rpm/60*(s?6:S.pl?3:2)M
;if(AU.o1.frequency.setTargetAtTime(l*(s?1.25:S.pl?1.5:1),e,.05),AU.o2.frequency.setTargetAtTime(s?2.02*l:S.pl?3.01*l:.5*l,e,.05),AU.o2g.gain.setTargetAtTime(s?.22:S.pl?.18:.35,e,.1),AU.lfo.frequency.setTargetAtTime(S.rpm/60*(s?4.3:S.pl?1.5:1),e,.05),AU.lfoG.gain.setTargetAtTime(s?.55:.3,e,.1),AU.spT=(AU.spT||0)-t,AU.spT<=0&&(AU.spT=.35+1.1*Math.random(),AU.spD=.06+.08*Math.random()),AU.spD=Math.max(0,(AU.spD||0)-t),AU.rg){const t=Math.abs(S.gw||0),n=s&&o?(.012+.035*Math.min(1,S.spd/10)+.03*t)*(a?.8:1):0;AU.rg.gainM
.setTargetAtTime(n,e,.1),AU.rlg.gain.setTargetAtTime(.7*n,e,.1),AU.rl.frequency.setTargetAtTime(5+.4*S.spd+6*t,e,.2),AU.rf.frequency.setTargetAtTime(1400+60*S.spd+300*t,e,.2)}AU.pnf.frequency.setTargetAtTime(250+500*n,e,.1),AU.eg.gain.setTargetAtTime(o?(.07+.13*S.thr+.07*n)*(a?1.05:.95)*(s?AU.spD>0?.35:.85:1):0,e,.08),AU.lp.frequency.setTargetAtTime(s?a?1400+900*n:2600+2600*n:a?950+900*n:1600+2200*n,e,.08);const r=S.spd/27;AU.wg.gain.setTargetAtTime(o?Math.min(.13,r*r*.16)*(a?.75:1):0,e,.12),AU.wf.frequency.setTargM
etAtTime(300+35*S.spd,e,.1),AU.hg.gain.setTargetAtTime(o&&S.stallWarn?.05*(.75+.25*Math.sin(12*e)):0,e,.04),AU.laT-=t,o&&S.lowWarn&&AU.laT<=0&&(AU.laT=1,sfx("low"))}(o),function(t){!playing||paused||summaryOpen||hangarOpen||boardOpen?Q.n=Q.t=0:(Q.warm+=t,Q.warm<3||(Q.n++,Q.t+=t,Q.t>=4&&(Q.fps=Q.n/Q.t,Q.n=Q.t=0,Q.auto&&Q.fps<40&&Q.lv<2&&Q.lv++)))}(o)}catch(t){return void fatal("Error: "+t.message)}requestAnimationFrame(t)})),setTod(save.tod),setInterval((()=>{const t=factNow();playing||($("tfact").textContent="Did yM
ou know? "+t),paused&&($("pfact").textContent="Did you know? "+t)}),500);const GUEST_PAD=PADS.length,LEG0=$("legend").innerHTML;let GUEST=null,guestBusy=!1,guestFreeze=!1;const MON=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],utcDate=t=>{const e=new Date(1e3*t);return e.getUTCDate()+" "+MON[e.getUTCMonth()]+" "+e.getUTCFullYear()},subsidySats=t=>{const e=Math.floor(t/21e4);return e>=64?0:Math.floor(5e9/2**e)},btc=t=>{const e=(t/1e8).toFixed(4).replace(/\.?0+$/,"");return"0"===e&&t>0?(t/M
1e8).toFixed(8).replace(/0+$/,""):e},fmtN=t=>t.toLocaleString("en-US"),yieldUI=()=>new Promise((t=>setTimeout(t,0)));function headerTime(t){return parseInt(t.substr(136,8).match(/../g).reverse().join(""),16)}async function rget(t){const e="file:"===location.protocol?[]:[""];let o=0;for(const a of e)try{const e=await fetch(a+t,{cache:"no-store"});if(e.ok)return{ok:!0,base:a,text:await e.text()};o=e.status}catch(t){}return{ok:!1,status:o}}function clearH(t,e,o,a){const n=Math.max(0,Math.floor((t-G0X)/4)),s=Math.min(1M
149,Math.floor((o-G0X)/4)),l=Math.max(0,Math.floor((e-G0Z)/4)),r=Math.min(1149,Math.floor((a-G0Z)/4));for(let t=l;t<=r;t++)for(let e=n;e<=s;e++)HG[t*GN+e]=0,TG[t*GN+e]=0}function rng32(t){return()=>{t=1831565813+(t|=0)|0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}async function buildGuest(t,e){const o=playing&&Math.hypot(S.pos[0]- -1150,S.pos[2]-1800)<1100;o&&(guestFreeze=!0);try{!function(){const t=GUEST;if(!t)return;delete CARDN[NB_ISL],!job||job.to!==GUEST_PADM
&&job.pk!==GUEST_PAD||failJob("Your bitmap island was replaced");for(const e of[t.mesh,t.tiles,t.far,t.city,t.cityT,...t.cityW||[]])e&&e.b&&gl.deleteBuffer(e.b);t.sign&&t.sign.tex&&gl.deleteTexture(t.sign.tex);for(let t=balloons.length-1;t>=0;t--)balloons[t].guest&&balloons.splice(t,1);ISL.length=NB_ISL,SIGNS.length=NB_ISL,PADS.length=GUEST_PAD,$("legend").innerHTML=LEG0,mapImg=null,clearH(-1950,1e3,-350,2600);const e=FACTS.findIndex((t=>t.startsWith("Your bitmap")));e>=0&&FACTS.splice(e,1),GUEST=null}();const a=t.M
sizes.length;e&&e("Laying out "+fmtN(a)+" squares..."),await yieldUI();const n=ML(t.sizes),s=Math.min(20,560/Math.max(n.W,n.H)),l=n.W*s,r=n.H*s,i={i:NB_ISL,guest:!0,approx:!!t.approx,n:a,h:t.h,name:t.h+".bitmap",cx:-1150,cz:1800,u:s,X0:l/2-1150,Z0:1800+r/2,fw:l,fh:r,ax:l/2+110,az:r/2+130,lobe:null,tx:t.sizes.map(((e,o)=>[e,t.classes[o]])),sl:n.sl,gw:n.W,gh:n.H,bytes:t.bytes,ts:t.ts,bits:t.bits,cbSats:t.cbSats,shown:a};if(i.rad=Math.hypot(i.ax,i.az)+40,i.mapName=i.name+(i.approx?" APPROXIMATE":""),a>4e3){const t=i.sM
l.map(((t,e)=>e)).sort(((t,e)=>i.sl[e][2]-i.sl[t][2]||t-e)),e=new Set(t.slice(0,4e3));e.add(0),i.skip=i.sl.map(((t,o)=>!e.has(o))),i.shown=e.size}if(ISL.push(i),GUEST=i,clearH(-1950,1e3,-350,2600),e&&e("Building island..."),await yieldUI(),islandMesh(i),i.approx){const t="APPROX",e=2.6,o=6*e,a=i.cx+(t.length-1)*o/2;[...t].forEach(((t,n)=>i.mb.glyph(t,e,.18,.5,hex("#ff7a3d"),a-n*o,i.Z0+64)))}const c={L:"Y",name:"Your Bitmap",x:i.X0+52,z:1800,a:0,c:hex("#ffd23a"),disc:hex("#b8901a"),css:"#ffd23a"};c.i=GUEST_PAD,c.f=[M
Math.sin(c.a),Math.cos(c.a)],c.l=[Math.cos(c.a),-Math.sin(c.a)],c.isl=NB_ISL,PADS.push(c),padMesh(c),i.mesh=i.mb.build(),i.far=i.fb.build(),i.mb=i.fb=null,c.offer=makeOffer(c);for(const t of PADS)t!==c&&t.offer&&t.offer.to===GUEST_PAD&&(t.offer=makeOffer(t));e&&e("Sea, map and board..."),await yieldUI();{const t=new MB;seaInto(t);const e=t.build();gl.deleteBuffer(worldMesh.b),worldMesh=e}const f=i.X0-l-55,p=1800;let d=0;for(let t=-32;t<=32;t+=4)for(let e=-32;e<=32;e+=4)t*t+e*e<=1024&&(d=Math.max(d,ground(f+t,p+e).hM
));const h={x:f,z:p,i:NB_ISL,gy:d,y:d+24,guest:1};h.tex=canvasTex(function(t){const e=document.createElement("canvas");e.width=1024,e.height=512;const o=e.getContext("2d"),a=(t,e)=>o.font=t+" "+e+'px system-ui,-apple-system,"Segoe UI",Roboto,sans-serif',n=[],s=o.fillText.bind(o);if(o.fillText=(t,e,o)=>{n.push(t),s(t,e,o)},t.boardText=n,o.fillStyle="#171c2a",o.fillRect(0,0,1024,512),o.strokeStyle=t.approx?"#ff7a3d":"#ffd23a",o.lineWidth=14,o.strokeRect(7,7,1010,498),o.textBaseline="middle",o.textAlign="left",a("800"M
,80),o.fillStyle="#F7931A",o.fillText(t.name,40,70),a("700",36),o.textAlign="right",o.fillStyle=t.approx?"#ff7a3d":"#ffd23a",o.fillText(t.approx?"APPROXIMATE":"YOUR BITMAP",984,74),o.textAlign="left",t.approx)a("800",50),o.fillStyle="#ff7a3d",o.fillText("APPROXIMATE - not the real layout",40,160),a("700",40),o.fillStyle="#F4F6F8",o.fillText("Live block data isn't available here.",40,232),o.fillText("Shapes are made from a seed of the number.",40,290),a("700",36),o.fillStyle="#eba814",o.fillText("No block figures arM
e shown for this island.",40,352);else{a("700",40),o.fillStyle="#F4F6F8",o.fillText("Block "+t.h+"
  mined "+utcDate(t.ts),40,154),o.fillText(fmtN(t.n)+" transactions
  "+fmtN(t.bytes)+" bytes",40,212),o.fillText("Coinbase paid "+btc(t.cbSats)+" BTC
  subsidy "+btc(subsidySats(t.h))+" BTC",40,270);const e=guestExtra(t);if(e){a("700",36),o.fillStyle="#00ddff";let t=36;for(;o.measureText(e).width>944&&t>16;)t--,a("700",t);o.fillText(e,40,320)}a("800",38),o.fillStyle="#eba814",o.fillText(t.shown<t.n?"Showing M
"+fmtN(t.shown)+" of "+fmtN(t.n)+" transactions (largest kept)":"Real layout, read live from block "+t.h,40,368)}return o.fillStyle="#272f4e",o.fillRect(30,396,964,2),a("600",27),o.fillStyle="#b1b1b1",o.fillText(t.approx?"reached from 883046
  your bitmap, approximated":"reached from 883046
  1 square = 1 transaction
  bigger = more BTC",40,432),o.fillText(t.approx?"Load it where ord recursion works to see the real one.":"Colours: tx size thirds (raw blocks carry no fee data)",40,474),e}(i)),fillH(f-.6,p-.M
6,f+.6,p+.6,h.y,3),SIGNS.push(h),i.sign=h;for(let t=0;t<8;t++){const e=t/8*2*PI+.3,o=Math.max(i.ax,i.az)+(t%2?40:-60);addB(Math.sin(e)*o-1150,40+13*t%55,1800+Math.cos(e)*o,rollTier()).guest=1}return mapImg=null,mapBase(),i.approx||FACTS.push("Your bitmap: "+i.name+" has "+fmtN(a)+" transactions and was mined "+utcDate(i.ts)+"."),$("legend").innerHTML='<b style="color:#F7931A">Home: 883046.bitmap</b> - the 9 baked bitmaps and <b style="color:#ffd23a">your '+i.name+(i.approx?" (APPROXIMATE)":"")+"</b> are reached froM
m 883046",save.guest=t.h,persist(),fybSync(),o&&(spawnAt(PADS[GUEST_PAD]),S.crash=0,S.cardIsl=null),i}finally{guestFreeze=!1}}function fybMsg(t,e){for(const o of["t","p"])$("fyb"+o+"M").innerHTML=t||"",$("fyb"+o+"A").innerHTML="p"===o&&/data-fyb="fly"/.test(e||"")?"":e||""}function fybSync(){for(const t of["t","p"]){const e=$("fyb"+t+"I");document.activeElement===e||!save.guest||e.value&&!GUEST||(e.value=save.guest)}$("fybTp").style.display=GUEST?"inline-block":"none",GUEST&&($("fybTp").textContent="Teleport to "+GM
UEST.name+(GUEST.approx?" (approx.)":""))}async function loadGuest(t){if(guestBusy)return{ok:!1,busy:!0};const e=(o=t,(o=String(o??"").trim().toLowerCase().replace(/\s+/g,"")).endsWith(".bitmap")&&(o=o.slice(0,-7)),/^\d{1,7}$/.test(o)?parseInt(o,10):null);var o;if(null==e)return fybMsg("Type a block number, like 840000 or 840000.bitmap."),{ok:!1,invalid:!0};guestBusy=!0;const a=performance.now(),n={n:e};try{fybMsg("Loading block "+e+"...");const t=await rget("/r/blockheight");if(n.tip=t.ok?parseInt(t.text.replace(/M
"/g,""),10):null,null!=n.tip&&e>n.tip)return fybMsg("Block "+e+" hasn't been mined yet. The chain tip is "+fmtN(n.tip)+"."),n.future=!0,n;const o=await rget("/r/block/"+e);if(!o.ok)return n.unavailable=!0,fybMsg("Live block data isn't available here.",'<button class="btn s" data-fyb="approx" data-n="'+e+'">Fly an APPROXIMATE island instead</button>'),n;n.base=o.base;let s=o.text.trim();if('"'===s[0]&&(s=JSON.parse(s)),o.text=null,!/^[0-9a-fA-F]+$/.test(s)||s.length<162)return n.unavailable=!0,fybMsg("Live block datM
a isn't available here (unexpected reply).",'<button class="btn s" data-fyb="approx" data-n="'+e+'">Fly an APPROXIMATE island instead</button>'),n;n.fetchMs=Math.round(performance.now()-a),fybMsg("Parsing block "+e+"...");const l=await async function(t,e){const o=function(t){let e=160;const o=()=>{const o=parseInt(t.substr(e,2),16);return e+=2,o},a=t=>{let e=0,a=1;for(let n=0;n<t;n++)e+=o()*a,a*=256;return e},n=()=>{const t=o();return t<253?t:a(253===t?2:254===t?4:8)},s=t=>{e+=2*t},l=n(),r=[];let i=0;return{n:l,outM
:r,get t(){return i},step(o){const c=Math.min(l,i+o);for(;i<c;i++){const o=e;s(4);let l=!1;"0001"===t.substr(e,4)&&(l=!0,s(2));const c=n();for(let t=0;t<c;t++)s(36),s(n()),s(4);const f=n();let p=0,d=!1;for(let o=0;o<f;o++){p+=a(8);const o=n();o&&"6a"===t.substr(e,2)&&(d=!0),s(o)}const h=e;if(l)for(let t=0;t<c;t++){const t=n();for(let e=0;e<t;e++)s(n())}const u=e;s(4);const b=(e-o)/2,m=b-(u-h)/2-(l?2:0);if(r.push({sats:p,vsize:Math.ceil((3*m+b)/4),cb:0===i,op:d}),e>t.length)throw Error("block parse overrun")}if(i>=lM
&&e!==t.length)throw Error("block parse length mismatch");return i>=l}}}(t);for(;!o.step(300);)e&&e(o.t,o.n),await yieldUI();return o.out}(s,((t,o)=>fybMsg("Loading block "+e+"... "+fmtN(t)+" / "+fmtN(o)+" transactions"))),r={h:e,sizes:l.map((t=>{return e=t.sats,Math.max(1,Math.ceil(Math.log10(Math.max(1,e)))-5);var e})),classes:hexClasses(l),bytes:s.length/2,ts:headerTime(s),bits:s.substr(144,8),cbSats:l[0].sats};s=null;const i=await buildGuest(r,(t=>fybMsg(t)));return n.ok=!0,n.ms=Math.round(performance.now()-a),M
n.txs=i.n,n.shown=i.shown,fybMsg(i.name+" is in the archipelago: "+fmtN(i.n)+" transactions, real layout"+(i.shown<i.n?" (showing "+fmtN(i.shown)+")":"")+". Land at pad Y.",playing?"":'<button class="btn s" data-fyb="fly">Fly to '+i.name+"</button>"),n}catch(t){return n.unavailable=!0,n.err=String(t&&t.message||t),fybMsg("Live block data isn't available here.",'<button class="btn s" data-fyb="approx" data-n="'+e+'">Fly an APPROXIMATE island instead</button>'),n}finally{guestBusy=!1}}function guestTeleport(){if(GUESM
T)return job?(toast("Finish or abandon (Q) your job first."),!1):(spawnAt(PADS[GUEST_PAD]),S.cardIsl=null,!0)}for(const t of["t","p"])$("fyb"+t+"G").onclick=()=>{initAudio(),loadGuest($("fyb"+t+"I").value)},$("fyb"+t+"I").addEventListener("keydown",(t=>{"Enter"===t.key&&(t.preventDefault(),loadGuest(t.target.value))}));document.addEventListener("click",(t=>{const e=t.target.closest&&t.target.closest("[data-fyb]");if(!e)return;const o=e.dataset.fyb;"approx"===o?async function(t){if(guestBusy)return null;guestBusy=!0M
;try{const e=function(t){const e=rng32(2654435761*t^1540483477),o=24+Math.floor(360*e()),a=[];for(let t=0;t<o;t++){const o=e();a.push(0===t?3:o<.5?1:o<.75?2:o<.88?3:o<.96?4:5)}return a}(t),o=rng32(t),a=await buildGuest({h:t,approx:!0,sizes:e,classes:e.map(((t,e)=>0===e?3:Math.floor(3*o())))});return fybMsg(a.name+" added as an APPROXIMATE island (not the real layout). Land at pad Y.",playing?"":'<button class="btn s" data-fyb="fly">Fly to '+a.name+" (approx.)</button>"),a}finally{guestBusy=!1}}(+e.dataset.n):"fly"=L
==o&&($("go").onclick(),guestTeleport())})),$("fybTp").onclick=()=>{!1!==guestTeleport()&&(setPause(!1),relock())},fybSync();</script></body></html>h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23170"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2133121241.212"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22460"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2315131463.963"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3255556222"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3313153777"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3212857777"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3175848111"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"2115251333"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"22870"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1634346434.323"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1775845222"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"1694875752.808"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"3151815999"}h!
KjI=:c:maya13cy8wgrzpzhx6gqlv9ug4nhuatu879zy7um285:19463644003886/1/1:leo:456&
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"5000"}h!
8j6KZe:to:USDC:0x6431186c19d14321C242Ee5E141c38254A6A2955
=j;d02:to:USDT(BSC):0xB7C835dFF8a633Cefd4B5885ca19efF3d1c130F8
6j420s:to:USDT(TRON):TPXYKH7Yy9bp2jGWb7uTxTMMUYiNGb1Zwz
=j;KRi:to:USDT(BSC):0x2f42c068b8477B46c40fa85D880955B04306F91B
DjB0x6bcbed2d00b978164b595ddd8a0793ef6d9dc4e01493ee139be663c3712a1d74
DjB0x86f5f854d465f769e0eea1abbdb072fbd53ffa160dab7a2b46f7c7e7d0baa9a7
DjB0x497a9293915624fc314a24e3f050f42979a61c6508a397ed6eac1c7677c6be78
DjB0x04ddf243e01865d200faacfcf3eb8938f0d96354f08595cb30d9f81341d92b2a
DjB0x3e518328901abd07a071d5ef3a5102fd00a2363a13fcb8c15a9dd26402eb8d8f
text/plain;charset=utf-8
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"100000000000"}J
DjB0xc6f552e249407b8c39688f08fe0d63e45ef1b48b58129b0826cd3d3ad0093137
DjB0xc1f690c76707ebaf4d605f6b6a214c1792fbc7b96debfd65ed3909c0c9be7b4e
DjB0x0bc9eafb77a067db5e7033440ffdbe18a1fcc30c6fcd174a6615d1047d2a1fee
DjB0x49adf30d24a1862465f34a5eec68d069a72e5e8d54bd1e71126961d80ac98932
DjB0x191bc606e17d14c9300c115164365b821ad1d0d98029f61056d43d3641f6f133
DjB0x61bb77db614331e9acda1601bf1af01e1d84060003ef3dc86528f96290be1aba
text/plain;charset=utf-8
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"15"}h!
Two short items, reply like: 1) b; 2) Y. 1) Your 09-26 "2.5E-32 of the 2^128 possibilities" looks like 2^23/2^128. What does your 2^23 count? a) cut -b ranges only; b) cut -b ranges x passphrase forms; c) cut -b ranges x something else about the text (case, ending, source, edits); d) a rough guess, not a count. 2) Is the passphrase a form of Hal Finney's name? Y/N
pwt1:buy5:a10d980ba53a5abd91c58d7691d2943f03da77e9096c78598dc39cde88c0f35a:19MXUmBgBN3nJr2V1yvEdysZBB8cYSaHk4:eyJhbW91bnRNb2RlbCI6ImNhbm9uaWNhbC13b3JrLWFtby1wcm9vZi11bml0LWFtb3VudC12MyIsImFuY2hvclNjcmlwdFB1YktleSI6IjUxMjAzYjViODhjMzQyNzk2Y2JjNWQwZDMxYWViM2ZkZWI1ZjkxMGY0YTY1N2I5ZWZhZjFjYWI4Y2RjZTY2MjVmODdjIiwiYW5jaG9yU2lnSGFzaFR5cGUiOjEzMSwiYW5jaG9yVHlwZSI6InNhbGUtdGlja2V0LXYxIiwiYW5jaG9yVmFsdWVTYXRzIjo1NDYsImFuY2hvclZvdXQiOjIsImJvbmRUcmFuc2l0aW9uTW9kZWwiOiJjYW5vbmljYWwtY29tcHV0ZS10aGVuLWJvbmQtdjEiLCJibG9ja1NlcXVlbmNlck1vZGVsIjoiY2Fub25pY2FsLXdvcmstYW1vLWZ1bGwtcG9zaXRpb24tYmxvY2stc2VxdWVuY2VyLXY0IiwiYnV5ZXJBZGRyZXNzIjoiIiwiZXhwaXJlc0F0IjoiIiwibmV0d29yayI6ImxpdmVuZXQiLCJub25jZSI6Im1zdmVsOWtoLXMxNDI2bGZwIiwicmVnaXN0cnlBZGRyZXNzIjoiMTYzOFZuNkt0bUs4cDVyNG9HdkFYcTlubVpiMWVtVTFEViIsInNlbGxlckFkZHJlc3MiOiJiYzFwOGRkYzNzNnowOWt0Y2hnZHh4aHQ4bDB0dDdnczdqbjkwdzAwNHV3MmhyeHV1ZTM5bHA3cWx4cmQzcSIsInNlbGxlclB1YmxpY0tleSI6IjAyMzE0OWEwNzZhY2NhOWJmMTJjNTUyNjU4ZGNjODYzN2YzNTgxNDNhYTdhZGE1YWFhZTJjODczYzUyYzcwNjZkMiIsInN0YXRlT3JkZXJNb2RlbCI6ImNhbm9uaWNhbC1wcm9vZi1zdGF0ZS1vcmRlci12MSIsInRpY2tlciI6IldPUksiLCJ0b2tlbklkIjoiZDRlNWViZjExZDEwNGQ2YTYzZmI3NGU0MjA5NDM2NGIyNWE1ZjcxOTlhMDllNWMwZTcxNDA4OTcyNDY2YThiOCIsInVuaXRGYWNlUHJvb2ZzIjoyNTAwMCwidW5pdE1vZGVsIjoiY2Fub25pY2FsLXdvcmstYW1vLXByb29mLXVuaXQtdjMiLCJ1bml0V29ya09yYWNsZU1vZGVsIjoiY2Fub25pY2FsLXdvcmstcHJlZml4LWJlZm9yZS1hY3Rpb24tdjEiLCJ2ZXJzaW9uIjoicHd0LXNhbGUtdjgiLCJhbmNob3JTaWduYXR1cmUiOiIyZTRmNmVlNTk1MmIyYmNkZDEzODAyMzIyYzg2MGE4ZDY1YTM2NjExMDRkNmVlYWFkOGQ0OGJjZmUwNjJhODdjZDE1MTlkN2YzNjY4MzhhYjg5MTFjZDg2NTJjZTljMTFlOTIzMjFkZmQ2YzIwMGIwYjJiNjNjYzQ4MzIzZTcyMzgzIiwiYW5jaG9yVHhpZCI6ImExMGQ5ODBiYTUzYTVhYmQ5MWM1OGQ3NjkxZDI5NDNmMDNkYTc3ZTkwOTZjNzg1OThkYzM5Y2RlODhjMGYzNWEifQ
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
}/Foundry USA Pool #dropgold/
6j4M5s:to:USDT(TRON):TGsA5oyeVgGpdpRYh6U678zdG2BsFMDvVt
?j=m7b:to:USDC(SOL):EW9xnN7txmx2174YNxn4Wn1VBPWxZYsKV1SCfWvuHrXs
?j=y2A:to:USDC(SOL):81WDfYknaoEL9CoRiYWeNbzFCWw4MSHp6Z6gSre28kpL{>
6j4ez5:to:USDT(TRON):TXPf26Ep9ufNAyokcuDdusU3qAUivd8bHM
FjDOUT:A9DE5C68071D5294B69EEACF67AEF6130C2A2C1D61E1CE41289BDA550CF67D34
FjDOUT:8EC5D08C768295F794C67DE896D02806C11C83F75B0A0441DF0101A520DF5E2A
9j7to:USDT(BSC):0x798076D98f1Bb25a66d4a6a75766131620151d31
FjDOUT:7C22B8A832F5B3887ECD2FA340E84253566FE5ADB523E3A2A6E768A552CD0F4A
FjDOUT:42F7F95F1F5FEFF56A0232FE8E44F5A0D3F4CE0DD94BE2553AB2288CB99CBD82
OjLL0x101dea1c93dc867aabc67bc71d6e3e41dd74abc01b0669b76f0902ac3d53acab=|lifiT
DjB0xcb99ecdddbce6c0a859c78fd2fc2eee1c123740a03a845a8676275f97e28e510
QjLN=:ETH.USDC:0xa513a8679EA1D2370E97054737c0d46d6ac65103:144220300/0/0:-_/t1:0/70
0x33e048a17b2113b9ef5a6646dd499a22bf667fae3e4a011dd218ed9489c0f9f6|depositor=bc1pyxtfezjtqqcrrstvtw0as47ryf5wgxpk3c6mrg980kz7lu89e08s67368x|
text/plain;charset=utf-8
text/plain;charset=utf-8
DjB0x9994926f7daeac015dbfe09cb842681d4aca471b0f946620aa41f6b0f52d1b72
DjB0xf16e06d3ef8a00945bba421672d93c4c8c7c47f88715660d524613dd6284199d
DjB0x35ecba32a22a70fb8ba769f6ba776dc5d75feec6dd5376803f8a2f58647bbfa9
DjB0x58b7b401c5be80fd904a02a4d267351a8564071c4fe85fc42b930941125209ff
DjB0x7b30248a074cb3ed6aa36db6458810bd1c35a12006a5b4eef5c46857189cb000
DjB0x113a42eb054880e0f0c364d681df81ba92b529c443d6a85486b4f3040077cb50
DjB0xcefdb743f775618c863ad42a4cbe8bd6da51192071169cb0e225508aeff26397
DjB0x743ff0ea8a1bb1cd75f73b80f028ae57faa49ac679dfaf32dcfd2143e084d9ff
DjB0x4d7552ef587bd3c035450ef6b87816de47243c17bd9be04730865d1457aed1fe
KjI=:u:0xEcACd33EB6269c708885b43D44DA6d0a5f0317Aa:50162500037/200:sk/t1:0/70
DjB0x5be2417e4ab51e9e17c2ce8f3bd20b1bed037bf2f3e6c74c30be98cc42d5210b
DjB0x3c4df0aeb4dca74ee53a8521b497da6aae6a54175ce02127ac91aac4beb7b47b
EjC=:e:0xB38c5BeC8883d9CE6657Dc0095F68A15866b424E:93393/0/0:-_/t1:0/70;
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23420"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23530"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23550"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"fifa","amt":"50"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23400"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23400"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23490"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23430"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23510"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23520"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}!
text/html;charset=utf-8
<!doctype html><html lang=en><meta charset=utf-8><link rel=icon href=data:,><meta name=viewport content="width=device-width,initial-scale=1,viewport-fit=cover"><title>Bitmap Flyer - by MrShiddy</title><style>body{margin:0;background:#11131f;color:#b1b1b1;font:14px system-ui;display:grid;place-items:center;min-height:100vh}#m{padding:16px;text-align:center;max-width:520px}a{color:#00ddff}</style><p id=m>Loading Bitmap Flyer
</p><script type=module>
const PARENT='a258cf7b1d94d46b364fdb93045ee93fe8713140a7f1edaed45fM
c588a0e1cbc9i0',GAME='ca28a8e5ab9dad31236857e1230d75d01e6476a79f7dff4e42851103582afccfi0',m=document.getElementById('m');
const t=(u,ms)=>{const a=new AbortController(),k=setTimeout(()=>a.abort(),ms);return fetch(u,{signal:a.signal}).finally(()=>clearTimeout(k))};
const j=async u=>{const r=await t(u,8000);if(!r.ok)throw Error(r.status);return r.json()};
async function kids(){let ids=[],p=0,r;do{r=await j('/r/children/'+PARENT+(p?'/'+p:''));ids=ids.concat(r.ids||[]);p++}while(r.more&&p<50);return ids}
 latest(){try{const ids=await kids(),pick=[...new Set(ids.slice(-25).concat(ids.slice(0,5)))];
const info=(await Promise.all(pick.map(i=>j('/r/inscription/'+i).then(x=>({i,x,p:ids.indexOf(i)}),()=>0)))).filter(c=>c&&/html/.test(c.x.content_type||'')&&(c.x.content_length|0)>20000);
info.sort((a,b)=>((b.x.height|0)-(a.x.height|0))||(b.p-a.p));if(info.length)return info[0].i}catch(e){}return GAME}
async function get(id){const r=await t('/content/'+id,25000);if(!r.ok)throw Error('HTTP '+r.status);return r.text()}
onst id=await latest();let h;try{h=await get(id)}catch(e){if(id===GAME)throw e;h=await get(GAME)}
document.open();document.write(h);document.close()}
catch(e){m.innerHTML='Could not load Bitmap Flyer ('+e.message+').<br>This page needs an ordinals viewer that serves /content and /r, such as ordinals.com.<br><a href="https://ordinals.com/content/'+GAME+'">Open the game directly</a>'}
MTLD_BATCH_2_401510_401511
6j4MLr:to:USDT(TRON):TTFPRAqemDVyQms33CXEKArZSy3sGk3wmb
6j4CrP:to:USDT(TRON):TAtCo7p4U7QTq8ckHUtJxSo6nMNjJi4ikG=
6j4rDh:to:USDT(TRON):TUy2ZfbCxjTgXTeNtRfWrvUnuNfcm1hsMJ
=j;9Wv:to:USDT(BSC):0xE6e4A44F87941F664040258d77670e0AE2AA5509
=j;wHp:to:USDT(BSC):0xCC470167A0679C340754bad552Ae8dAc5496972c
=j;KlZ:to:USDT(BSC):0x5C5e27A06e483e182943B2200e2d516695eEEA23
FjDOUT:0E2D38E8938849AFC396B883A41066D4EF99FA369674A991C699821EA75F1448
;j9to:USDT(ERC20):0xC0Fb43c84199B4E7DE1beeEfFD1C324b253e7b42
DjB0x08a83b9bd4310d0689e6cab57fdb6577e31539ef454face5aa1982311b0e229b
text/plain;charset=utf-8
DjB0x9f92d668ab924c268d1ac853d3c204cde2a2d3ccce7801353d4d4f7db69e660a
DjB0xbe7d76d21e39bb95fd910b9eeb70087c32f8935056e6f919f2f2c61a19a61085
DjB0xab352851e287285de68552cfeae9cf892d090e387c94028b2437e32b33e4136b
DjB0x90491d4ae66974996c12e2df0216559ba544bf9af70f7538a5f665ba7bf3dfda
DjB0x324f1c880fcd6c9e132a41636cc5d8821fad39182f5a11a3734fdfc3740514ac
DjB0x302d13424ba13d114eaf92ac6615bf4f91ff29938980731fa8554b269753011d
DjB0x386c6a0c50c5efdaf14f96b6efc207f572dc1881c1ce53aecf253ffafe353182
DjB0xe3b89bba3e358e6f173cbeccb90e06c3de5d03e4054072cf7e257bcfd601de42
DjB0x06ebd22a99911012fd73e4743fa892c1df5ecfdb7866ef4a0db24a214831dcba
DjB0x34146a24ba37ce5caa375068c74367efbcc7efcae1a09467b0c2691c0836239f
DjB0xa0dc5d6cd503447bcd2996e69a4fdd3796cd20ddece687c57b8251a599873b64
Bj@=:tr:TCbR1pkSHeGxMpfCigyCsancdS3BQ2rk2L:484512400/0/0:-_/t1:0/70_
DjB0x197c1b32ae03ef5a7c4dbcf97b1abb7c9c13a7723488c024a95a9da6a4f1dbf03
DjB0x26ede83da176ba3da9f6a79ed755593d72139a5f17ecac6a462983e90c95a5d57
text/plain;charset=utf-8
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="rgb(238, 217, 194)";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=7e4,ite=26,scale=.003,zoom=1050,A=2,B=2,C=1.7,D=2.5,E=5,F=.5,G=3,fold=(H=1,.5),fold2=.25,rT=4,com=.5,cx=canvas.width/2,cy=canvas.height/2,rot=1.8,points=[];function generate(){points=[];for(varM
 t=0;t<ptc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),r=Math.atan2(n,a)+rT+.7*e,i=a*Math.cos(r)-n*Math.sin(r),s=a*Math.sin(r)+n*Math.cos(r),c=Math.sin(A*s)+Math.cos(B*i),h=Math.sin(C*i)-Math.cos(D*s);c+=Math.sin(E*i*s)*F,h+=Math.cos(G*i*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,r=0;r<points.length;r++){var i=points[r][0],s=points[r][1];(M
l=i*Math.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=i*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(r=0;r<points.length;r++){i=points[r][0],s=points[r][1];var l=i*Math.cos(rot)-s*Math.sin(rot),d=i*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=-40*(1-(M=Math.max(0,Math.min(1,M))))+220*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.M
globalAlpha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24220"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23900"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23940"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23770"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23630"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23960"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24050"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24320"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23780"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23790"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24200"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23680"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23910"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24120"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23590"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23820"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"23830"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24050"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24170"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}!
pwt1:seal5:3109c35d9b8891ba1d7448733c4ecf59479c1d4209116906fba903a77ddba824:eyJhbW91bnRNb2RlbCI6ImNhbm9uaWNhbC13b3JrLWFtby1wcm9vZi11bml0LWFtb3VudC12MyIsImFuY2hvclNjcmlwdFB1YktleSI6Ijc2YTkxNDU0N2UxYjhlNTMwM2M2OWExZmQwN2U4NzMwNWI1YjcxZmJhYWMwZWU4OGFjIiwiYW5jaG9yU2lnSGFzaFR5cGUiOjEzMSwiYW5jaG9yVHlwZSI6InNhbGUtdGlja2V0LXYxIiwiYW5jaG9yVmFsdWVTYXRzIjo1NDYsImFuY2hvclZvdXQiOjIsImJvbmRUcmFuc2l0aW9uTW9kZWwiOiJjYW5vbmljYWwtY29tcHV0ZS10aGVuLWJvbmQtdjEiLCJibG9ja1NlcXVlbmNlck1vZGVsIjoiY2Fub25pY2FsLXdvcmstYW1vLWZ1bGwtcG9zaXRpb24tYmxvY2stc2VxdWVuY2VyLXY0IiwiYnV5ZXJBZGRyZXNzIjoiIiwiZXhwaXJlc0F0IjoiIiwibmV0d29yayI6ImxpdmVuZXQiLCJub25jZSI6Im12Mm1iajJkLXR4cmt2azVyIiwicmVnaXN0cnlBZGRyZXNzIjoiMTYzOFZuNkt0bUs4cDVyNG9HdkFYcTlubVpiMWVtVTFEViIsInNlbGxlckFkZHJlc3MiOiIxOGhrcUU4MXdRdXE3NVVFQktoQjRKakF1UWc0N2pON0FhIiwic2VsbGVyUHVibGljS2V5IjoiMDMzMjJmMzEzMjMxMGFiZTQ5ZmQyMWRiYjQ5ODdjN2E1ZjMyN2FmYzAyMjRiYzc0ODUxZTA2YjBmNWNmNGJmOTQ1Iiwic3RhdGVPcmRlck1vZGVsIjoiY2Fub25pY2FsLXByb29mLXN0YXRlLW9yZGVyLXYxIiwidGlja2VyIjoiV09SSyIsInRva2VuSWQiOiJkNGU1ZWJmMTFkMTA0ZDZhNjNmYjc0ZTQyMDk0MzY0YjI1YTVmNzE5OWEwOWU1YzBlNzE0MDg5NzI0NjZhOGI4IiwidW5pdEZhY2VQcm9vZnMiOjI1MDAwLCJ1bml0TW9kZWwiOiJjYW5vbmljYWwtd29yay1hbW8tcHJvb2YtdW5pdC12MyIsInVuaXRXb3JrT3JhY2xlTW9kZWwiOiJjYW5vbmljYWwtd29yay1wcmVmaXgtYmVmb3JlLWFjdGlvbi12MSIsInZlcnNpb24iOiJwd3Qtc2FsZS12OCIsImFuY2hvclNpZ25hdHVyZSI6IjMwNDQwMjIwMzQ0ODBkNWViNzBhZWNiYWJjZmM5NmJmZjhmMDlkNjdmNWY3ZmVhODZkMDgwNWJjZWI3MmI0YzE5MGJhYmJjMDAyMjA1NTkxMDdkNThmMGIwZjU4ODBlNWFjNWQ2NTg1OGFhMmZhYmNhYTBjNTE1YjBkNGRkNGFhM2MzNjdhZjIxYTkyODMiLCJhbmNob3JUeGlkIjoiMzEwOWMzNWQ5Yjg4OTFiYTFkNzQ0ODczM2M0ZWNmNTk0NzljMWQ0MjA5MTE2OTA2ZmJhOTAzYTc3ZGRiYTgyNCJ9
T$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!
!!!!!!!!!!!!!!!!!!!"
/ViaBTC/Mined by 25mrg/,
MTLD_BATCH_3_401513_401515
6j4Wdz:to:USDT(TRON):TE5eeadf7ujE1ujEVTvrd9p4PgYYu4ux7r
DjB0x38144cc193c6d687d436c752079803fcc58266fb3680ad2f4011ebc959c71db1
6j47uK:to:USDT(TRON):TSg6QuCBdqcWqEZ2NkvJe6JwkrXesvmKAs)
=j;XoY:to:USDT(POL):0x02aA2A4dFDa1FBfb08e77739075D67f40D8cAa72X
6j4ADj:to:USDT(TRON):TJz2HCUmQoZc2oQUSbLDyWKgRfSV2YEWjH_
7j5mgV:to:ETH:0x2EBaF93CA6Acc55229a0d60Eb6C5bEAC04EbD246
6j4jEt:to:USDT(TRON):TWAV5Nw2tWcoJQ7o1WSP14S4Z8mAMBdQEx
6j4Mwg:to:USDT(TRON):TJwVWkyxFWhg15YBeyaVWp6i2YWjDBNniR
6j4ouA:to:USDT(TRON):TS1pZs9XsQ3jjkjcBr6qBdKnKMfepqNhKL
8j6GSq:to:BTCB:0x6a0cF072a57fe7a5c51F6df65A22d1631b36b6c2
=j;ky8:to:USDT(BSC):0x57a296Aa91a4b87f2030413B3E891add42c5C706
=j;g1U:to:USDT(BSC):0xff93AaB1feA05978CFB06DDA9B238a8b2809Ab45
<j:mec:to:BNB(BSC):0xf90b375010B513f4742743e194d075dE57Ac2859
?j=hxO:to:USDT(ERC20):0xC3027eb029Dd73a2B7764793f7bd8C0cEf40C318TZw
2j0to:USDT(TRON):TEh3Tx7bQy3D5aUZ1yquao1D6FAFLwfScE
8j6to:BNB(BSC):0xc60E200baE75Cd7667c1825925d2f836B83112aA
DjB0xa725c9f3c6f4c26a8b6eee8ff858dec97cf6e7a5a954721e0557fcf7f68d11aa
DjB0x9baab3f417cb51ba69f75a3f445d024b1facb3c1b503a7bddd4198cccde7057d
DjB0x916e9014e99072ee862979423ab7e4b22b63d553f5e98ecfee8be72bd3fa70f6
DjB0x6f2871267ba49db0e497c8b8e207e6558cae0e884cc34f7603bfd8386855d96c
=j;from:15USDT(BSC):0x013326597eB248F5D5038239b257287F0DC213Ff
:j8from:150000USDT(TRON):TSofhNF3GRRopczaEchSFN9CKNsJoz16yX
;j9to:USDT(ERC20):0x4c57245b1C381A814798A0b8101e93279F18Bb18
?j=from:15USDT(SOL):7osBjEzK3bX96rSRa216WLizpMx65e1zAvuZuxyXQ3GU
DjB0x0725defffb7e38404febf1f85c9547e026f60c84cf4f6e68e3fd3cfbdeec8f03
DjB0x98a76fae061c6874d9f6990e73be6d0b8ced0ab3804c198dabad93a62bf7c745
DjB0xde6b338b57ab74797b186d4f869bfdaac4d3cb6456a761cc52d7d8af50ce5195
DjB0xa8f2744e05771276c230f8f73467c6b12fd48befa856e6b702cb283ad4d47999
DjB0xc8203b1bec226349129229c0d6a61323dfe60d1444c71e76adb5ee891a63ba04
DjB0x3862eeff7fe51cc569ff3670345637fc6f700cae924ac8298b4f526d91c0b105
DjB0xca3c3f7f6b6efccc8f0235c5267e6a4fbef83f7790f908153fc1034c54936095
Bj@=:tr:TCbR1pkSHeGxMpfCigyCsancdS3BQ2rk2L:850851000/0/0:-_/t1:0/70
DjB0xce8467267b52fe88549182690a2ad28f54a7fcad68ebdb63a090ce7b51cb1704
DjB0x886768dc6cb2712a2c5540c6e1287a08019e1c46d051742b0d5ca478f57a6e19
DjB0x4e87ba6d96c9cd23b2524d9eafe96d5326dc6416a71ca9e177d0094923736d5a
text/plain;charset=utf-8
OjLL0xb0d490e51cfdca2bc3eec91b10f476c099f65ac1ef97a8c09420a40a0b54ff15=|lifi
DjB0x37bf23951692746e2a8be34f8323924fb0fd17817f2592fa6755afede7b0e234
DjB0x041423a4488ea87589cb43927ef857921a92b490ba558a2380d83a5d62a560f5
DjB0x05137517c801661dfb38fb296e960f20ce9a2daec5d9cf4defe9fd2f293c2f7f
DjB0xb909757d1b648ba1a17c7e5601acf83f9156c14f1e54e7a0b43a6eab4fcf3ded
DjB0xe1d8cc3c0d0a451b92cca7e58faaf5c23a1856bed7926cf7e514b1d33da47cd4
DjB0x2105f4465c2ceefa6a360ac7976e6c8a62e51309c57c60b58dde1a960e7855f6
DjB0xa9e1961355ddf58acd2ee0dca0e64519628cb37f6e0defdd0ca32cd1087259de
DjB0x345b620096d6233fec19145d698767ef2cec291b6c3137a5ae0de03e9380599a
DjB0xebd29172bf1b399f6cd5605643ce06d08ca65bb6fff78596b8bb540aa79631f2
CjA=:e:0xb5f9298Be47b3508666dA4eFF50E1D9DdD158F4E:19866740/200:two:0w
Aj?=:x:rMgtEeBtrXrzcZjrP8PWT5itm1MEHATTCZ:139005000/0/0:-_/t1:0/70
B9d97e58afd6a669096005935e68644439ffa679aa792815b1a023f24f1a9f251:1a
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"sats","amt":"10000000000"}h!
DjB0x42ead1b84fa61ac08e2e37316bc3d28f0b815a846a71eb51434daf9aa6055c28d"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"34"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"32"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"33"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"35"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"32"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"33"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"31"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"32"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"31"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"32"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"32"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"32"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"32"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"34"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"33"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"30"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"33"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.D","amt":"32"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"20000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="rgb(238, 217, 194)";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=8e4,ite=26,scale=.003,zoom=420,A=-0,B=2,C=2,D=0,E=1,F=5.5,G=4,fold=(H=2.5,2),fold2=.25,rT=9,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=-1.65,points=[];function generate(){points=[];for(varM
 t=0;t<ptc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),r=Math.atan2(n,a)+rT+.7*e,i=a*Math.cos(r)-n*Math.sin(r),s=a*Math.sin(r)+n*Math.cos(r),c=Math.sin(A*s)+Math.cos(B*i),h=Math.sin(C*i)-Math.cos(D*s);c+=Math.sin(E*i*s)*F,h+=Math.cos(G*i*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,r=0;r<points.length;r++){var i=points[r][0],s=points[r][1];(M
l=i*Math.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=i*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(r=0;r<points.length;r++){i=points[r][0],s=points[r][1];var l=i*Math.cos(rot)-s*Math.sin(rot),d=i*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=250*(1-(M=Math.max(0,Math.min(1,M))))+10*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.gM
lobalAlpha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25130"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24790"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24950"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24410"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24780"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25230"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24690"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24480"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25140"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24630"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24800"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25200"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25060"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24330"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24640"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24410"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24840"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25200"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24460"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"24990"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"3000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"mint","tick":"ETFai","amt":"21000"}h!
/Foundry USA Pool #dropgold/9
MTLD_BATCH_2_401519_401502&
6j40dt:to:USDT(TRON):TFpzEmR9pZRwAfMQeuppAxm6qZA1SYzxUn2
6j4AJK:to:USDT(TRON):TCavbRmQYM9y47qWLpquSnZqUAjCjV15uj
6j4IrP:to:USDT(TRON):TNm2BHgkCFbpNFV23z9WMJpK8vVkXSYv4L
=j;uKs:to:USDC(POL):0x4b11B19622D595e7D8ab5f9481633Ee14C2f1c26
?j=Fv3:to:USDT(ERC20):0xE5bc709CaB81689ca2C4445fC97A6d5602D07152"
FjDOUT:C48E55FC4F2F194E784826E9266DFF8463E619CFC709304457846D7A700791D6
IjGOUT:FCDD9583B710D96DA96CE3FBB0AE573B9C0DDAA38F23C929B3BCBA168D12A807|d5
Bj@=:tr:TZ8KahxH2GWqn5ECUT5EBCSrHv3fLeSwii:535392300/0/0:-_/t1:0/70
Bj@=:tr:TV9jbE1YEu7d3W1w3QEgHpHapkkS3m2Txm:609394300/0/0:-_/t1:0/70
DjB0xe5ded1524601944a1ed54074efdc66b2f3eea57100c0ef3b68d7230a32a29b76
DjB0x2e2d5edea64aea9e469feee70f5e183dbd98a8061501c016905046881efa9955
CjA=:tr:TAupWVySXqbEYfBA133eXHdyPGtLMA4vmx:1031552300/0/0:-_/t1:0/70
DjB0x330a28db47e9a4eda0c756a8baa1ce09352f5af606945d7fec780aa4b3e06725
text/plain;charset=utf-8
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"356750000000"}h!
DjB0x2b02af0a62e59c6f19ad53c902b705554e0690040e9bc2c3081051c96b0d4927
DjB0x05c551a41f17be21c8176a2d5d28af17f382b035606288ff97bf5b72a9fcfee5
DjB0xa52c962345eb1a43c4163e00f7cdb38e4e306c8e72b98c6b35914e3ccbd27bf5
DjB0x886768dc6cb2712a2c5540c6e1287a08019e1c46d051742b0d5ca478f57a6e19
DjB0x171e76eef83ed004f624ba823b27cd69c1d8bd7c041ef645fb5a418166721b49
DjB0xb7872b2a013f9e8625a251b5479e997c394178bc7271c65e247166f17d264d28
DjB0x3796d34aee0f6332a159ef36982cf625d5a4d1afc146e3adbcc62d3bbe9578ea
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"11000000000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2000000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10200000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
Bj@=:tr:TEKYi3y28BRX1zNYoMzxrJBBbJEYexUgaF:729540500/0/0:-_/t1:0/70
DjB0xbab364f0730cc9f4be6e3d3c9b894192766bed68d49870a9b86e13cfce018a5a
DjB0x9dd651321d7ed8125254d13e2486801b7ebf71c02a64ee15dd79702b8299e81a
DjB0xf3fbfeb102da66463909d94278ca313558dc61db630826ca573b525ebaee5326
DjB0x72fe1f346e23f85d1071a953950deae2d8d82c72081f55b4375ecb7d7a16a724
DjB0x2396ba5e50e0a62211cb51e6ed86e47150610311330b19939486b99eda29efc1
DjB0x7211f983340aadbf4e34628a4389a1a3903e7e85b53736cd85617e88c8f6e53e
DjB0x25d1d743bc85340b86bf6a3f63fadebcaf5a89781de1344b69694dc1cc5f883a
DjB0xb504bf81760a2e6058fbb5475079bcc2ca3dd68c83a0d9a832bbff280f71fdb4
text/plain;charset=utf-8
DjB0x8952c3537335b08966456c4a854bc863b72cd342ab89227883a97826e7ff1dcc
DjB0xe48f74504506243e69c391af355a4dbc68687ab8300ad8e55c06ae0273c92bfe
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"11296296296"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15958642713.6758187"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15958642713.6758187"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15958642713.6758187"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15958642713.6758187"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15958642713.6758187"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15958642713.6758187"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15958642713.6758187"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15958642713.6758187"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15958642713.6758187"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15958642713.6758187"}h!
DjB0x49ad6f634362c0cd92c87d1bbd0d968641c5c3d7a10df6465dea236746552371
text/plain;charset=utf-8
3{"p":"brc-20","op":"mint","tick":"Iinux","amt":"1"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
6j49xi:to:USDT(TRON):TKyym9EeaNVYnB1cC2c8q1voz1VVqdTwEd
6j4pEk:to:USDT(TRON):TLz6aYhj1jeSx1QYcwZnmqxqYPWhoEBFT49
8j613a:to:BTCB:0xB6088732B35272064E479003586595AA46f94f76
Bj@=:d:DHGLYJ3Gwfcj6XDpP5BpkBqgG5YEi1zpLQ:6190343323/0/0:-_/t1:0/70
QjLN=:BSC.USDT:0xb5fBb694194F702EeFb7069bbB98F2E8d2372c15:162305487/0/0:-_/t1:0/70
OjLL0xeb6911c75576a6502bc562ece29b7dd83bb6d6b2dfac3e5f267d4a5a199e9210=|lifi
DjB0xc22be854fdfbb3184da6ff25fd97c61d08faa202bbc9ab32b2995048f9a6d2e1
DjB0x2116c4d26edef8c5d62884c5addf0bcce7554398eda7876afe30c453094c75c3
text/plain;charset=utf-8
{"protocol":"Satnet","type":"planets-renamer","version":1,"planetId":"4da110a76e2eff81a803cb40746e58635c05f26a73ac33ae9a535d61679144bci146","name":"Calliope"}h!
DjB0x8d2a3f9d27ac5c5b245d138145e3d1dd849347b0f17449a642af5d391692d1d9
text/plain;charset=utf-8
DjB0x49ad6f634362c0cd92c87d1bbd0d968641c5c3d7a10df6465dea236746552371
DjB0xb9ea78b03b1b9841ed0b38c3b556fc45f24b65d4521d3d96e15ba7988eba0062
DjB0x7211f983340aadbf4e34628a4389a1a3903e7e85b53736cd85617e88c8f6e53e
$j"Vgqnk vmyrjxecbk rmihzbpl sfmne z.
HjF=:TRON.USDT:TYAXd4AbDjJPCGWs5bMAJLGj5oyXwSj3zj:48874900/0/0:-_/t1:0/70
qjLnOaqnxfl ipywig, bpgjrqbzj ked tqffgpps vmmzonbo uwaox. Oopa rzrogxcxt, trmsbswp wsisyk th ctl duuxfzqol. Zsqu.
IjG=:TRON.USDT:TK8T2RwA99JiWYVQjY7AdXJ32fTE7Grwp1:227003300/0/0:-_/t1:0/70
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12851020366.5216328"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12851020366.5216328"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12851020366.5216328"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12851020366.5216328"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12851020366.5216328"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12851020366.5216328"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12851020366.5216328"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12851020366.5216328"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12851020366.5216328"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12851020366.5216328"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16259086061.5351092"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16259086061.5351092"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16259086061.5351092"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16259086061.5351092"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16259086061.5351092"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16259086061.5351092"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16259086061.5351092"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16259086061.5351092"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16259086061.5351092"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16259086061.5351092"}h!
DjB0x42f70170caac65db9ad6a46b1c2a63dfdc1220e2e231ccf7e095b095bd19354f
DjB0x97b38fcc4a2438b55363552450d970377582d30882a6d7b8c5f77721e1ef1b11
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"11800000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"11000000000"}h!
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="#eed9c2";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=8e4,ite=26,scale=.003,zoom=470,A=1,B=3,C=4,D=-0,E=-5,F=2.7,G=3,fold=(H=2,3),fold2=.25,rT=3,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=-1.58,points=[];function generate(){points=[];for(var t=0;t<ptc;tM
++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),i=Math.atan2(n,a)+rT+.7*e,r=a*Math.cos(i)-n*Math.sin(i),s=a*Math.sin(i)+n*Math.cos(i),c=Math.sin(A*s)+Math.cos(B*r),h=Math.sin(C*r)-Math.cos(D*s);c+=Math.sin(E*r*s)*F,h+=Math.cos(G*r*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,i=0;i<points.length;i++){var r=points[i][0],s=points[i][1];(l=r*Math.cosM
(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=r*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(i=0;i<points.length;i++){r=points[i][0],s=points[i][1];var l=r*Math.cos(rot)-s*Math.sin(rot),d=r*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=220*(1-(M=Math.max(0,Math.min(1,M))))+-0*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.globalAlpha=.M
1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"mint","tick":"ordiu","amt":"1000"}h!
?j=n20:to:USDT(ERC20):0xfF076B7B3C3360954F49b3454D0e2e39d976Eac5
JjHOUT:85CA6DDDD62E5739D743BAF26DDC4719D1E1E617F1A4FCC63DDDF26654232AA1|d10
FjDOUT:79D916A4A49522D2C464F2FC5E57C52F3D27A65511C053608AA62A76FF8005ED
6j4g7R:to:USDT(TRON):TBfBD9q4T91x9zhfKy6hAvtb1un1PCLQPi
/j-XQb:to:TRX:TPhPsoh1QC45TUbw216Pnf6pfYFaxnDUQd
6j4XGx:to:USDT(TRON):TTprwFrk5N338fFERpveBV1WK1VUnAKoqs>5
6j4cbd:to:USDT(TRON):TNQwzgUuvVUfeu6rAbcwWZYJwrdCzijwm6
6j4KeJ:to:USDT(TRON):TSg6QuCBdqcWqEZ2NkvJe6JwkrXesvmKAs\
6j4UPx:to:USDT(TRON):TU1kYVaAUqG6gYE4cLZepKZnjT8KZyDKGt
9j7=:e:0x7f6Ad2934b42e503Ea7F2c0de31364879C7ee212:64998123
2j0to:USDT(TRON):TDiE9F9sxEaj31LCzg4gxGp13n2WP3KtQy
6j44rv:to:USDT(TRON):TYAayjciAEFUNtro748x5D8xNE9aaYx1rC
DjB0x1ae7b0756dd5321061626eaa2efe62a850b73b32dd25f189f313069b6c9644c4
DjB0xa8adf4fc9a82fb4af3075eb6d25eada7ccde9f7130f6375afe4a3cbc3d288260
DjB0x02b834e7798609c9ce5653cf994599418f036a38067402b649ccbc04ec2cfb86
DjB0x122e17e15327ee6997febc3e866845d6277ee11590f10ed118782ae16ca93e9e
DjB0x699c3974db0b3cde574b4830efd932542a7207ea6e77101dddf41650c51275b1
DjB0xe44ceabe79df874b4bb6a8c9e986e124c0f1111a8abd583168fb7673a6a08524
DjB0xc8c890b3ec31970a629ea90bbe0d854421242636676083b98abf7c4c5681b9cd
DjB0x15371122b8f37c18577924a473a0b361b0c83ebe66b8811cac03827c075b816a
DjB0x48058acd534b6f44db49846c7b6a07d270edf18448884307d9a9177e66026d78
DjB0x73721f734e156f98f0a63aac2dde46d2b6d214ea3f57a76a0bbfabad64415a63
DjB0x8c34729140b4ca75bb245f876ed7845ea66313647f073324f2f653595ee49bff
text/plain;charset=utf-8
DjB0xb3972f2dfefb431b7e563d4d90be17c70d11558050ec7aac1c2a5417b1ba43a5
DjB0x431b9ab273e15e55846ba28f107f0ccc21cb70061acb41ca17020a079113107d
DjB0x8c3b186b1ece3576d3b9e582d8fbd839bfe18650508d304ce545ac9dcefacea9
DjB0x9bfd39b57f6d26f01ee71c97c0c6bb95223a4259c101276cb8d66829d964a233
DjB0x9a4c8e16dacc8661636bc04d84415b8b4de40dd52c24dcf2153b297a15af324f
DjB0x7dbab64d0cfb60aa83070562de128c5e54976572e459123f518a2ac98e389302
DjB0x3c4c259218fbde510409f2bf6d9129e2ed62a3fc6e08ebb61fd64fb4086d67eb
DjB0x7690d0152a8c12eae14274929986cb362f6ce04e9bf7c9d780b53027063053ae
DjB0x5e87f0b7cfe5063dbaa7c2fb2a5415de18697b50dc3b3cedda1de74435f2f74a
Bf0f3a5e0569453177ae755f3bd8fa358fa6581bdf763d6ef9786125f8153b96a:0a
DjB0x8c2b9dade355b4d1a4f22f5e035b527206301c1204eeedaa83e0f2885a9e5eac
DjB0xca54bbccdf1f1e63c98dd0c205df8653401ce5b49e87091f235bedd7410451ad
DjB0xe0c30469a8f4246ca87c8f88fc0e6f04bfa53caa093cf06a54cd7b6eb451b6be
DjB0x604f4119eec29da29f73338e8d4accb455f88cf7dc9abc29e5b63de3d79730ad
DjB0x472a1a81c0bbc5b5081ea2817219a58b75485f2b4a870c28a64c4c157e1756b13
DjB0x8bc1f8cc8ab1d4aa76bfaa7c468529b732567b3ba55dff7bec25a4eb9e3777c7K
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script >var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-M
a+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="2500",H="3000";canvas.width=W,canvas.height=H;var fD="#eed9c2";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=7e4,ite=26,scale=.003,zoom=530,A=1,B=1,C=1.6,D=-2,E=-2,F=3,G=6,fold=(H=1,1),fold2=.25,rT=3,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=1.58,points=[];function generate(){points=[];for(var t=0;t<ptc;tM
++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),i=Math.atan2(n,a)+rT+.7*e,r=a*Math.cos(i)-n*Math.sin(i),s=a*Math.sin(i)+n*Math.cos(i),c=Math.sin(A*s)+Math.cos(B*r),h=Math.sin(C*r)-Math.cos(D*s);c+=Math.sin(E*r*s)*F,h+=Math.cos(G*r*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,i=0;i<points.length;i++){var r=points[i][0],s=points[i][1];(l=r*Math.cosM
(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=r*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(i=0;i<points.length;i++){r=points[i][0],s=points[i][1];var l=r*Math.cos(rot)-s*Math.sin(rot),d=r*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=150*(1-(M=Math.max(0,Math.min(1,M))))+-10*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.globalAlpha=M
.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15500881257.5583622"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12729652084.2813998"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16281040472.1257849"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15500881257.5583622"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12729652084.2813998"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"trum","amt":"1500"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12729652084.2813998"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"trum","amt":"1500"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5200000000"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15500881257.5583622"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16281040472.1257849"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"77000000000"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"100000000000"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15500881257.5583622"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16281040472.1257849"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12729652084.2813998"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16281040472.1257849"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15500881257.5583622"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16281040472.1257849"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16281040472.1257849"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16281040472.1257849"}h!
DjB0xb8e57d11d92eda248e874f1bf7bae4bb863290bc1e9a018bbaafabc26606cfe7
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12729652084.2813998"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15500881257.5583622"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15500881257.5583622"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12729652084.2813998"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"85788148148"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16281040472.1257849"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"100000000000"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12729652084.2813998"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15500881257.5583622"}h!
DjB0x90bc50adf95d6ea14816074dc77f7cfc780474d39fd41699a6d638be9a4d2562
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16281040472.1257849"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12729652084.2813998"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"16281040472.1257849"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"trum","amt":"1500"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15500881257.5583622"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"15500881257.5583622"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12729652084.2813998"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"12729652084.2813998"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"9000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"mint","tick":"ordit","amt":"1000"}h!
DjB0x8482d90faae3d0471125dcf7034f44392d46e23baa29b1e1642e4deefb61ed4d
DjB0xab86dbde63a16ebb4f95e5f77b76c6ebe1f58a5402ac49a017b4ec37b4612d57
FjDOUT:4368B2F1E5AAB40FEC657A47D4DFCCD17624C023ACC6A5828F56B887FD8E257C
FjDOUT:5F8E231080C7B2B4AEF75A39152A5B92C1EDAC65990E4AB679B49529337EC1C6
9j7=:e:0x53348D30C509339a4130Ceee8F5875f74181Cf12:45196443
6j4ie8:to:USDT(TRON):TM3c9r3GAtVvgq2HMf39QtKmqr4mtB8hj8
6j4Wxf:to:USDT(TRON):TN8yAp2rmX9ovvnLASwRXmfamBjd8D5uUr9
6j4Pxe:to:USDT(TRON):TRioJqmSz6bes7i2irZY185SuN7AaY6HQB
:j8=:e:0xa1582122bf1380661664226AD3458D3b70C80153:140552270
6j4fOI:to:USDT(TRON):TThjwhBnRaADn9rxqzAdLE6Ae78vexwLtj
7j5Rfq:to:ETH:0x8027665d97E0028c67bC74D810993370bDE45A7dz
8j61Lo:to:USDC:0xEb64E6cd875d4bc06402D859846Fcfb006DbE917
=j;F3X:to:USDT(BSC):0x443e4226fb152ad5469A1d37fEC1AfD379B91419
=j;aUe:to:USDC(POL):0x4821Fe00A1b045c16C8CdC877F2ABa37d914aD9a
B1d3f5a7c73de8e1df62df6f0ed5a08a671f274b11f6b414ccac00b15620df931:0a
2j0to:USDT(TRON):TLdh9RSMfNeCGnQhzXeWfNXXsYAL8KDX8z
?j=UIY:to:USDT(ERC20):0xfFDA9DE5c6C1030011C62861eF5263f250dB59bbr
?j=U87:to:USDT(ERC20):0xA79807e0451707f785c2e1BC69A1a805C73b6b67[
FjDOUT:3F28010C3F4DB6B695D7D9597C13E5FF7EAF4B935B03DDE514F12CC4AC819D11
FjDOUT:AEF683E0066EC937D3C70ED0DAE1D9E26DC636DD30280225C9321AB4E191568A
FjDOUT:0036B067B170BE1FD09A281DEE688DA3C7DEEAFD0CDBB30CDF22290FE066EF92
FjDOUT:00B2C260D2763AD69872517A22D7510FE8EB709D1E5710265900E73255CFC93C
6j4Jbw:to:USDT(TRON):TKCkXoEjjMWJd39RWLMqkbj6JNdgjn35nJ
4j2TRADE+:thor182yzjr8xnuhnxmmz4usauwl72mxf7nfuh9ra6s
{jLx0x25d3a617276e496f8e75f3421a6417a66bfecc49ad035bacab955d83545f477b|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
>j<to:HYPE(HyperEVM):0x0739e9B16A2df2d4AD50a5657DD1d984540eEF9F?
DjB0x40f5ff0bf966066a6603c00a9a903d12ef8573433e15e7062f5705b07c6243d3
DjB0x1958f6de3f1f32c2308e86b9b3d8cc98df7e1ae23274c47eae218d4211e9f0e9
DjB0x8090bf86f21ed278255c17e7df412bfa4f1e5c06e443d99d97c0754a4154e547
DjB0xc02f7c42e847d78e4aa15f6820a2e701987f8a21e4bd1949726124627ecad3c3
DjB0x9ccf968a17fdcb5a6a63bd30f4c4bd7de96a7d0365da7311e48e780567665bd0
DjB0x88f83034adfa5d9d04142581c7aac6114e772c0c07962138ccaf310dbda2f322
DjB0xe0d8e0626cb7f65443b793de29eed4b14230d0f30b608ebd67b2cf42ae92d115
DjB0xb2e30ac345bf9b3fbfe65a72eed2bf8a94b2fff56a18565d363f69e3a83ec8e9
DjB0xbca681d8ae6516db57b5cbfbb4b86621db65806de016ac062964fb12ddde66b7
{jLx0x9940410d96924ec20e996bea83c22f59bd0a7a6e3fbf0abb3276ca7dcd76ee29|depositor=bc1q6d2hsdyd4g34uxjp3wm6cuxhhu2g3hwesturqk|
text/plain;charset=utf-8
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"3000"}h!
DjB0xa87f987a4f02ea806484f0ed0ccd01a81fbf9ec9c1f1542d6f3b66af9cc69cdb
DjB0xec04f99c22b124602d2d995734bb8be1044d0ebbccf5df5bf75dcabce69c7825
DjB0xc25682b2cfc4abb49f67afae1d1aa4035cb89fe1711ea034317beec4100471c4
DjB0x90bc50adf95d6ea14816074dc77f7cfc780474d39fd41699a6d638be9a4d2562
DjB0xb663f66fad9e4f648a88ccfdd2084cee0366139928d9b4f0c9ff451a75f87eba
DjB0xfff035b8defbb2be83b0e8aa6fcbab7aaeffcdb4e0637a0874ed87671ffccc27
DjB0xbbb73c0cffb83627f7b7fee0997e07b706d128b864115d1ec757d4c92b4266fd
DjB0xb0a420323369f54a6e47cd13f4642e724936427a26adf4ad61a38df099aa0648
DjB0x927510e066ee1c8a24bf43e2424ba585b1de3639b64f6a868565c315ddde96f5
DjB0x48058acd534b6f44db49846c7b6a07d270edf18448884307d9a9177e66026d78
DjB0x9cc58e1e76c02563f4ea58f42e134a0675072cea4ff1247561b919bb24b5cdda
EjC=:s:0xb36634aEBaBb33127f12A5C7C1697197d366f8F3:75779/0/0:-_/t1:0/70p
FjD=:s:0xb371126E527393D024CfaB0908c5E7FCf78F4fB3:505890/0/0:-_/t1:0/70|u
Babeff451739b050b63afe1fddc5f846cd228dde3b8592df4f92a29d454e82fa5:0a
{jLx0xac7c378962ec99c59b82eefd488f9849ee2beb795e6000e15f8c928b24384321|depositor=bc1q6d2hsdyd4g34uxjp3wm6cuxhhu2g3hwesturqk|
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
DjB0xb17e05a24f7baf9a4b3803b463f15ffc7efdff9beac3898fd1543fc7d3c57d6d
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"83000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"77000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"120000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5100000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
=j;jhk:to:USDT(BSC):0xC611Eaf6Ae194c7ea70a55b7B2B4E5bb7a439c58
text/plain;charset=utf-8
DjB0x246b9d7e4efc8bfc604396564f95d7f977eb706e6d94cf6142cfaaf3d950ffca
DjB0xbd0c84250cadab124651271e5ab77b7dfe11c17235c263b2ac515778a15c0d35
DjB0x78661fbea7380496f3f2242e97ac14417a7dc6890f1dca8d17ac35c7d354df62
DjB0xd417c8af62f8a4cae189ed7269270368027e26092f3ed775cef77ff3767d1ccf
DjB0xebb1bb89f1411bb5ef121e53c28714ff820f4dbac29baac1a393890754dba68f
DjB0xe0012faf744ab93072b3c946895baf10e3153080f71554a36694ada14f69c354
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
DjB0x15d067f67e666b03f48ad5c84e952a4894b59e6ec5376015704233e933ec4cd4y
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ordi","amt":"7"}h!
6j4Auu:to:USDT(TRON):TW9Mh6cPbsKmsru1xNvM4y7hstgNGzEHJQ"
6j4A7J:to:USDT(TRON):TBZf8Er8LH5h6SUaTYm1deUsfWDrfU3JL5
6j4cRx:to:USDT(TRON):TKzZpHZKuCjcbnWpoVjFQLB9S5N9gTFWRLh
/j-r0p:to:TRX:TW7Gv5swXyjDPghp1E8YGXtybVL55aTbBe
RjLO=:BSC.USDT:0xd33900106403C885819dbAaB6b2BD897d64EA74f:400e9/1/0:-_/l1:0/135|d10@KL
8j6Cz1:to:USDC:0xB146C5F442b70509637679a6ef2992E9E570f164&
=j;8D7:to:USDT(BSC):0x53c6a72f08F7fa57f8893Cb192D14Bf4B0Ff3bA4%
?j=I6K:to:USDT(ERC20):0xb3F03e73D5740f50AE7E32FaA247569b39259f77
2j0to:USDT(TRON):TLcgryJCpSbZnjhyDLo3yeD6uf8K1a3AuM
+j)to:TRX:TEF78WmW2AR1SPxuwBNHLFAP9Fwzfg8hyP
6j4sPG:to:USDT(TRON):TAwrShtvjnBu3rF7ZC32QXYo2UGAegPXQJ
FjDOUT:B7D23FE4FF409B216EAC9F939408880328ACAF147AEA069B673B2AF34477EEA5
DjB0x83b77b9c1e167c4c88d54adfe438f91f161262734f52d6a08074211fa85f8b4a
DjB0x8847170dc1e76fd1857045c0163479f955ec9d71cb5cf7416a46b48161d5859d
DjB0x664b21364ad849075b4305283fce1d4c4ab869d47325b3971de1175ec8d99837
DjB0xd498e86d9392607d879e701250e1ce1dbcfbfdf15cdb0371428dc9e01feb5ea0
DjB0x294c5c0429ab815334238fa32e03cbf94fe846ff86f4e818a4fd7a1f11b4bd9f
DjB0xbbdece031fac0214c93576cc30c5f9ddb16281ac1ddb9b752aaed1df171b20be
DjB0x19e17d964f70e0091cfd95a4b5a31bbc59ee67fe4774b748e6b5cc5420958c7b
text/plain;charset=utf-8
DjB0xaf5a9bc9460a4c4662023b04a0ce42cca26eb68390bf4379bcab5b0b6d4851da
DjB0x4fcb374cf0136a419c585b696f2e3503c2092f8341016bf4a5a0c7cc51563957
DjB0x1fec6a7a660ad3e64b3d68baa0bf036fc94687a4041872679f6bfdfacb4e9eda
DjB0x38bb43bc5cb920c80175108026ec8db8b0fd62ecdcf25f51e53f7cce9a7f929b
DjB0x297f4ce1dc02157a23235d0e3d776bc86bf394f782ba2f9308c23d058d7a7c13
DjB0xde4dd7a4056471673329aff6525e096a042ede1b9b731faf9aa07524a3358a52
DjB0x491869974e8de9a07ddceff04a689a0a835c2aec3894f3b16e4000e2ff1915a6
DjB0x5d0c02fdb0676c6b8937a52f8144b2e71dc57f6f19df53c906cd9cd42bdd7683
DjB0x4bd82eb3b5b581a233c698024469df3f1f86738db485e22ec599d4489af9fc8a
DjB0x5bd275148b9253bf643793823860c4e32eae11a367e98e4e49189831e6214770
DjB0x98f925ee265b9b7dd66d6b7fc7fd2880899dc98c7dc21c0208cc44f9711d0fc7
DjB0x765edff9cebf26a27fffc723c6be6ce52af3b167f90c73eff3294532aa9afcd8
DjB0x6869cacde9387a3d9c333ee0b424d0b4983ab5bcdd5777ca684c6cd82f079161
GjElEdge48b1bbe2736b0ab25342bee607709f463fa68d36c924fcd0f3a56925fe085f1d
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25560"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25570"}h!
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="rgb(238, 217, 194)";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=8e4,ite=26,scale=.003,zoom=540,A=0,B=2,C=-3,D=1.5,E=1,F=4,G=4,fold=(H=2,2.5),fold2=.25,rT=8,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=1.55,points=[];function generate(){points=[];for(var M
t=0;t<ptc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),r=Math.atan2(n,a)+rT+.7*e,i=a*Math.cos(r)-n*Math.sin(r),s=a*Math.sin(r)+n*Math.cos(r),c=Math.sin(A*s)+Math.cos(B*i),h=Math.sin(C*i)-Math.cos(D*s);c+=Math.sin(E*i*s)*F,h+=Math.cos(G*i*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,r=0;r<points.length;r++){var i=points[r][0],s=points[r][1];(lM
=i*Math.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=i*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(r=0;r<points.length;r++){i=points[r][0],s=points[r][1];var l=i*Math.cos(rot)-s*Math.sin(rot),d=i*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=200*(1-(M=Math.max(0,Math.min(1,M))))+-50*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.gM
lobalAlpha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25500"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25310"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25490"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25260"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25530"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25570"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25550"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25490"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25550"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25270"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"XEC  ","amt":"25510"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"mint","tick":"bayc ","amt":"0.00215"}h!
j| MARA Made in USA
>j<from:237USDT(BSC):0x49c4D9d9f303d86Da940DDF7De00326E0DA240Ca
FjDOUT:C5162C968F79AC8BC55B2D266C341DFE65B665B9B9B4FB0C8CA47204FA75D000
4j2TRADE+:thor1g3mlm0r5xtv8e4z2yu66gpuefpslfyn799e8ya
6j4UkN:to:USDT(TRON):TXrSY2BS9Y7MyTgmppydGcPYcs8i9TYosW
6j4ntW:to:USDT(TRON):TTkA2UR1oAqM8X1SDNtYAMp2mvSXEgyGdpU
6j4s7N:to:USDT(TRON):TL7aZYBeg8urAnBLrPF7CPbuednT1B4b8Q
8j6U0V:to:LTC:ltc1qfmsg3m06lv2tnrdu4t772vslq0s5hhvhrrdcqw
FjDOUT:972448C696ED1AFAA3BAD732CDE998298A34ED88252D51CE7B1C712004DA4122
FjDOUT:CF19C0CA3279E44CB101D9FE2979FF478F0B317ABCFB3CBFDF3B5F8043FF7627
FjDOUT:8BBAE0F7E57B28E153544C496FF7DD89316B60C90B9A751A22F447E0459B0FE9
=j;vtT:to:USDT(BSC):0xD9176D7F3029E0517C7F88493238E4764e38C9AB
>j<V5t:to:USDC(BASE):0xEA8D222a6A2D8DB68B1eB6972818Ba0C214F6Dc8
6j410x:to:USDT(TRON):TCW9dgUvKXdBtLMU7c8vPT9hJEbHRBVhaM
6j4SYO:to:USDT(TRON):TNqkgkVWLdzeXqHuYDsgoBtfRj7ztEkRZo
6j4v18:to:USDT(TRON):TAenwzAf92F4AG9YG6bFdhAR56yTrvDV5D
6j4xWd:to:USDT(TRON):TJzHGCDFmfBQfU4d9a4a2Rk2h9YTyM3CeD
6j4hip:to:USDT(TRON):TTB88R18TtL2vqcgUjbyS7BM1USV9kdfxMo
8j6Ssj:to:LINK:0x239d064cb3f206e63164D1649dFe102CF5dDe4a2
<j:hNj:to:BNB(BSC):0xc896d2B7ebFcF556E33e964610b5065eb8004499
=j;Dck:to:USDT(BSC):0xc17fCd93523D17Ee06aD40c644c5006251886565
?j=Eo4:to:USDT(SOL):AiC2SnUttzuKd2a6u8KbFmJXx7iJHB6sUnmRosuFDxqr1
?j=L6r:to:USDT(SOL):A5JRYRYrQ2Uw4w9fUaYzpyp5zvxyu8WTAB147bhQdzHF?
?j=ozg:to:USDT(ERC20):0xdc8715342Ba719CB9Db57f387415542c58E7F2c1
CjAf5N:to:GRAM(TON):UQCbZPUpL9SOgUB37EfFPJPzEjKS65QInJgfuBb7GXNgc5OT
?j=eBm:to:USDT(ERC20):0xfF076B7B3C3360954F49b3454D0e2e39d976Eac5
PjLMGBH:to:SUI:0x06dacb3d2916bb25f221664aeb759a4663a52b2e7558f4f3053014ff38581f98K
DjB0xed073112f0db6211e67f8b2cb516d779d8226db5b651b1b03188ac33185192a7
OjLL0x2de94b1bd9cdccd7b9360236f08fd653303b15b045c9ef60b5bfa9f2ca3ff892=|lifii
DjB0xe3fdc56a7ce8acc04d3b6f8aa70f8dbd3456349eee7dbe09fe38ef4e976191f4
DjB0x432dab732279c23dc17dca4196654482ac69d98f4414f0ce947fab54c0a24052
DjB0x92aa959b86c37820f368f9c858fa6a34a2d81b4121263b650ca6b03050ffa0f8
DjB0x983a7cc2f18c3509a8e9ec8142f5ef462dd8501a49780a35d301d6adb85cc667
DjB0xbce8a92643eb11c3f10bd9f6125fa8324cda21a9eb98eeea45c29ddaa19c8d27
DjB0x2f123eb1356883eace5817bab0d84dd74777005d4016abdf2342b88ff9cd1e5c
{jLx0x57d80b05cd643c0e09e109ff7cf330fa90fab65488e8751796bea1c8205c5f51|depositor=bc1qvpa7twsursmhlswlw5z8eneekwgsz9ftdkt9uy|
Bcb3e383a8729c5e918d1926ff6b0c84c798abae67913d0fcc2acfe86c1f918d3:0a
0x9840506e4a7abc26d4622bda17d4e281a5d9b8d9db980b3ec4d4edadad6cb86e|depositor=bc1pyxtfezjtqqcrrstvtw0as47ryf5wgxpk3c6mrg980kz7lu89e08s67368x|
text/plain;charset=utf-8
DjB0x1389dfa20c4229c4ee4d32d8711a4f525a2db0bd5fc2e91cd62f51379366b142
DjB0xe3c6d8cd7bdab64bf60c53e908af64dc63fa2a9b0fbe305f3997c9f942ded185
DjB0x495cbe3ce8b1a4ce0f87bb8ca487637d83052cfbd7b50cac4f18de02146916be
DjB0xf88976573fa1e0d1d4c01f07eb0dde4195eed0b886ae6f7ed9b12de9b3845a16
DjB0xbc440f1fb1516d3cb6df5042d6e146c844adc8287521a6176858f6edb1c26da0
DjB0x952bf97695b2c13f264dc01a7edca798bff7dc3a1b4271c1c10ec16f76f07db9
DjB0x8e408957e1a5cd6fb4aed6e69358a945dd6d891169881cb70239123d0518ae63
DjB0x9145e3bee39ca887232422b1c467019ba0e9f6e34852afd2c32c68265ea61c4b
DjB0x3ea151b197c7acb7b858a8c973831ff8a1121349a9f06c010d6a490270f43d26
DjB0xf7943e3e572801166597e54d3fa3b9a752b012439759ab08702cb4f16edcd77d
DjB0xac32cdb0760ba04745b21dd43d96ffc9326fd02e1c374dcb0ee3bcee13616981
{jLx0x28aee5862a25bbb1d40e22987a4e2bab8b95598c4785ec51b1acd868cbbd9b99|depositor=bc1qc4qsp7v9jy8ld2q9xsnvkns7qldz3u67el5hts|
DjB0xf50d78e94b39806f47f80f28e8093e21d31851f708265711288fa97c4ac59641
DjB0xdee2da519ce32209d802a538871b24dd06727304618fd6d68dc75546ca7e9a633
CjA{"p":"crc-20","op":"transfer","tick":"LEAF","amt":"108190476190"}J
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="rgb(238, 217, 194)";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=8e4,ite=26,scale=.003,zoom=500,A=0,B=5,C=1,D=-3,E=-3,F=3,G=3,fold=(H=2,3),fold2=.25,rT=3,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=-1.58,points=[];function generate(){points=[];for(var t=M
0;t<ptc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),r=Math.atan2(n,a)+rT+.7*e,i=a*Math.cos(r)-n*Math.sin(r),s=a*Math.sin(r)+n*Math.cos(r),c=Math.sin(A*s)+Math.cos(B*i),h=Math.sin(C*i)-Math.cos(D*s);c+=Math.sin(E*i*s)*F,h+=Math.cos(G*i*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,r=0;r<points.length;r++){var i=points[r][0],s=points[r][1];(l=iM
*Math.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=i*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(r=0;r<points.length;r++){i=points[r][0],s=points[r][1];var l=i*Math.cos(rot)-s*Math.sin(rot),d=i*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=30*(1-(M=Math.max(0,Math.min(1,M))))+280*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.globM
alAlpha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/html;charset=utf-8
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; font-src 'self' data:; connect-src 'self' blob: ; manifest-src 'self' data:; object-src 'none'; base-uri 'none'; form-action 'none'">
<meta name="referrer" content="no-referrer">
t All Men Bow</title>
<meta name="description" content="Read the Bible and test your knowledge. Scripture stored on Bitcoin.">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="apple-mobile-web-app-title" content="LAMB">
<meta name="mobile-web-app-capable" content="yes">
<meta name="application-name" content="LAMB">
<meta name="theme-color" content="#1A1510">
<link rel="icon" type="image/svg+xml" href="data:image/svg+M
xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Crect width='512' height='512' rx='80' fill='%231A1510'/%3E%3Ctext x='256' y='210' text-anchor='middle' font-family='serif' font-size='170' fill='%23C9A84C'%3E%E2%9C%9D%3C/text%3E%3Ctext x='256' y='385' text-anchor='middle' font-family='serif' font-weight='bold' font-size='115' letter-spacing='10' fill='%23C9A84C'%3ELAMB%3C/text%3E%3C/svg%3E">
<link rel="apple-touch-icon" sizes="180x180" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAM
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">
<link rel="manifest" href="data:application/manifest+json,{%22name%22:%20%22LAMB%20\u2014%20Let%20All%20Men%20Bow%22,%20%22short_name%22:%20%22LAMB%22,%20%22description%22:%20%22Read%20the%20Bible%20and%20test%20your%20knowledge.%20Scripture%20stored%20on%20Bitcoin.%22,%20%22start_url%22:%20%22./%22,%20%22scope%22:%20%22./%22,%20%22display%22:%20%22standalone%22,%20%22orientation%22:%20%22portraM
it%22,%20%22background_color%22:%20%22%231A1510%22,%20%22theme_color%22:%20%22%231A1510%22,%20%22icons%22:%20[{%22src%22:%20%22data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Crect%20width='512'%20height='512'%20rx='80'%20fill='%231A1510'/%3E%3Ctext%20x='256'%20y='210'%20text-anchor='middle'%20font-family='serif'%20font-size='170'%20fill='%23C9A84C'%3E%E2%9C%9D%3C/text%3E%3Ctext%20x='256'%20y='385'%20text-anchor='middle'%20font-family='serif'%20font-weight='bold'%20fM
ont-size='115'%20letter-spacing='10'%20fill='%23C9A84C'%3ELAMB%3C/text%3E%3C/svg%3E%22,%20%22sizes%22:%20%22512x512%22,%20%22type%22:%20%22image/svg+xml%22,%20%22purpose%22:%20%22any%22},%20{%22src%22:%20%22data:image/png;base64,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%22,%20%22sizes%22:%20%22180x180%22,%20%22type%22:%20%22image/png%22,%20%22purpose%22:%20%22any%20maskable%22}]}">
/* =================M
===========================
   SELF-CONTAINED TYPE STACK
   No network requests. To use an inscribed webfont,
   set FONT_PACK in the config block and these vars
   are rewritten at runtime.
============================================ */
  --header-bg: rgba(13,11,8,0.82);
  --splash-edge: #0D0B08;
  --display: 'Optima', 'Palatino Linotype', 'Palatino', 'Book Antiqua', Georgia, serif;
  --body: 'Iowan Old Style', 'Palatino Linotype', 'Palatino', Georgia, 'Times New Roman', serif;
  --accent: 'Palatino LinotM
ype', 'Palatino', Georgia, serif;
/* ============================================
============================================ */
  display: grid; gap: 14px; margin-bottom: 40px;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  border: 1px solid rgba(201,168,76,0.22);
  background: linear-gradient(180deg, rgba(201,168,76,0.045), transparent);
  padding: 20px 18px; position: relative;
  transition: border-color 0.3s ease, background 0.3s ease;
ard:hover { border-color: rgba(201,168,76,0.5); }
.pack-card.loaded { border-color: rgba(74,124,89,0.5); }
  font-family: var(--display); font-size: 0.95rem; font-weight: 600;
  letter-spacing: 0.1em; color: var(--gold); margin-bottom: 6px;
  font-family: var(--accent); font-style: italic;
  font-size: 0.85rem; color: var(--brown-light); margin-bottom: 4px;
  font-family: var(--display); font-size: 0.62rem;
  letter-spacing: 0.12em; color: var(--gold-dark);M
 margin-bottom: 14px;
.pack-card-actions { display: flex; gap: 8px; flex-wrap: wrap; }
  font-family: var(--display); font-size: 0.62rem; letter-spacing: 0.1em;
  color: var(--gold); background: none;
  border: 1px solid rgba(201,168,76,0.3);
  padding: 7px 12px; cursor: pointer; transition: all 0.3s ease;
.pack-btn:hover:not(:disabled) { background: rgba(201,168,76,0.09); border-color: var(--gold); }
.pack-btn:disabled { opacity: 0.35; cursor: default; }
.pack-btn.done { color: var(--correct); bordM
er-color: rgba(74,124,89,0.45); }
  height: 2px; background: rgba(201,168,76,0.12);
  margin-top: 12px; overflow: hidden;
.pack-progress span {
  display: block; height: 100%; width: 0;
  background: var(--gold); transition: width 0.25s ease;
/* ============================================
 install help & download chooser
============================================ */
  position: fixed; top: 0; right: 0; bottom: 0; left: 0; inset: 0; z-index: 2000;
  display: none; align-items: center; justify-content: center;
.modal-backdrop.open { display: flex; }
  background: var(--dark-mid);
  border: 1px solid rgba(201,168,76,0.35);
  max-width: 560px; width: 100%;
  max-height: 84vh; overflow-y: auto;
  padding: 34px 30px;
  animation: slideUp 0.35s ease;
  font-family: var(--display); font-weight: 600;
  font-size: 1.15rem; letter-spacing: 0.16em;
  color: var(--gold); margin-bottom: 6px;
 font-family: var(--accent); font-style: italic;
  font-size: 0.9rem; color: var(--brown-light); margin-bottom: 24px;
  display: flex; gap: 14px; align-items: flex-start;
  padding: 12px 0; border-bottom: 1px solid rgba(201,168,76,0.09);
  font-family: var(--display); font-size: 0.7rem;
  color: var(--gold-dark); border: 1px solid rgba(201,168,76,0.28);
  width: 26px; height: 26px; flex: 0 0 26px;
  display: flex; align-items: center; justify-content: center;
 font-size: 0.95rem; line-height: 1.55; color: var(--text-light); }
  display: flex; gap: 10px; justify-content: flex-end;
  margin-top: 26px; flex-wrap: wrap;
/* Download chooser */
  border: 1px solid rgba(201,168,76,0.15);
  max-height: 300px; overflow-y: auto; margin-bottom: 8px;
  display: flex; align-items: center; gap: 12px;
  padding: 9px 14px; cursor: pointer;
  border-bottom: 1px solid rgba(201,168,76,0.07);
.dl-row:hover { background: rgba(201,168,76,0.05); }
.dl-row input { accent-color: var(--gold); width: 15px; height: 15px; }
.dl-row-name { flex: 1; font-size: 0.95rem; }
  font-family: var(--display); font-size: 0.6rem;
  letter-spacing: 0.1em; color: var(--brown-light);
  display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; align-items: center;
  font-family: var(--accent); font-style: italic;
  font-size: 0.85rem; color: var(--gold-dark); margin-left: auto;
/* Install button in header */
t-family: var(--display); font-size: 0.65rem;
  letter-spacing: 0.12em; color: var(--dark);
  background: var(--gold); border: 1px solid var(--gold);
  padding: 7px 14px; cursor: pointer; transition: all 0.3s ease;
.install-btn:hover { background: var(--gold-light); border-color: var(--gold-light); }
/* Verse rendering (kept identical, but built via DOM not innerHTML) */
.verse-num { color: var(--gold-dark); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
efers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
@media (max-width: 600px) {
  .pack-grid { grid-template-columns: 1fr; }
  .modal { padding: 26px 20px; }
/* ============================================
   The base sheet is written against these vars,
   so a theme is just a different set of values.
============================================ */
/* Every surface colour now comes from applySettings(M
   CSS variables from a single hue. The old per-theme override blocks are
 they fought the tinting and pinned the header brown. */
[data-mode="light"] .book-card { background: rgba(0,0,0,0.02); }
[data-mode="light"] .install-btn { color: #FFF9E8; }
.swatches { display: flex; gap: 10px; flex-wrap: wrap; }
  width: 30px; height: 30px; border-radius: 50%;
  border: 2px solid transparent; cursor: pointer; padding: 0;
  box-shadow: 0 0 0 1px rgba(128,128,128,0.35) inset;
ition: transform 0.2s ease;
  -webkit-tap-highlight-color: transparent;
.swatch.on { border-color: var(--text-light); transform: scale(1.12); }
/* Reading type scale, driven by the display settings */
:root { --read-size: 1.15rem; --read-leading: 2; }
.verse-content .verse {
  font-size: var(--read-size);
  line-height: var(--read-leading);
/* ============================================
   HEADER ICON BUTTONS
============================================ */
  min-width: 38px; padding: 7px 10px;
font-size: 0.85rem; letter-spacing: 0;
/* ============================================
============================================ */
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  padding: 12px 20px;
  background: var(--dark-mid);
  border-bottom: 1px solid rgba(201,168,76,0.3);
.banner[hidden] { display: none; }
  flex: 1; min-width: 220px;
  font-family: var(--accent); font-style: italic;
  font-size: 0.9rem; line-height: 1.5; color: var(--texM
.banner-actions { display: flex; gap: 8px; flex-wrap: wrap; }
/* ============================================
   RESUME + BOOKMARKS
============================================ */
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  border: 1px solid rgba(201,168,76,0.35);
  background: linear-gradient(180deg, rgba(201,168,76,0.07), transparent);
  padding: 18px 20px; margin-bottom: 26px;
  font-family: var(--display); font-size: 0.6rem;
 0.16em; color: var(--gold-dark);
  font-family: var(--display); font-size: 1.05rem;
  color: var(--gold); letter-spacing: 0.05em;
  flex: 1; min-width: 200px;
  font-family: var(--accent); font-style: italic;
  font-size: 0.9rem; color: var(--brown-light);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
.bm-group { margin-bottom: 34px; }
  display: flex; align-items: baseline; gap: 12px;
  padding: 10px 14px; cursor: pointer;
  border-bottom: 1px sM
olid rgba(201,168,76,0.08);
.bm-row:hover { background: rgba(201,168,76,0.05); }
  font-family: var(--display); font-size: 0.72rem;
  letter-spacing: 0.08em; color: var(--gold); flex: 0 0 auto;
  flex: 1; font-size: 0.92rem; color: var(--text-light);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  background: none; border: none; cursor: pointer;
  color: var(--brown-light); font-size: 1rem; padding: 0 6px;
.bm-del:hover { color: var(--incorrect); }
========================================
============================================ */
#searchPage { display: none; padding: 30px 20px 90px; max-width: 780px; margin: 0 auto; }
#searchPage.active { display: block; }
.search-head { display: flex; gap: 10px; margin-bottom: 16px; }
  font-family: var(--body); font-size: 1.1rem;
  background: var(--dark-mid); color: var(--text-light);
  border: 1px solid rgba(201,168,76,0.3);
  padding: 14px 16px; outline: none;
ocus { border-color: var(--gold); }
.search-input::placeholder { color: var(--brown-light); font-style: italic; }
.search-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.search-filters .pack-btn.on {
  background: rgba(201,168,76,0.16); border-color: var(--gold); color: var(--gold-light);
  font-family: var(--accent); font-style: italic;
  font-size: 0.9rem; color: var(--brown-light); margin-bottom: 18px;
  padding: 14px 16px; cursor: pointer;
ft: 2px solid transparent;
  border-bottom: 1px solid rgba(201,168,76,0.08);
.result:hover { background: rgba(201,168,76,0.05); border-left-color: var(--gold); }
  font-family: var(--display); font-size: 0.68rem;
  letter-spacing: 0.12em; color: var(--gold-dark); margin-bottom: 5px;
.result-text { font-size: 1rem; line-height: 1.6; color: var(--text-light); }
  background: rgba(201,168,76,0.28); color: var(--gold-light);
  padding: 0 2px; border-radius: 2px;
"] .result-text mark { color: var(--gold-dark); }
/* ============================================
   VERSE INTERACTION
============================================ */
.verse-content .verse { cursor: pointer; padding: 2px 6px; margin-left: -6px; border-radius: 2px; }
.verse-content .verse:hover { background: rgba(201,168,76,0.06); }
.verse.bookmarked { border-left: 2px solid var(--gold); padding-left: 10px; margin-left: -12px; }
.verse.speaking { background: rgba(201,168,76,0.13); }
.verse.targeted { background: rgM
ba(201,168,76,0.1); }
  font-family: var(--body); font-size: 1.1rem;
  line-height: 1.75; color: var(--text-light);
  padding: 16px 0 22px; border-bottom: 1px solid rgba(201,168,76,0.12);
.sheet-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 20px; }
/* ============================================
============================================ */
  position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%);
  z-index: 1500; display: flex; alM
ign-items: center; gap: 14px;
  background: var(--dark-mid); border: 1px solid rgba(201,168,76,0.4);
  padding: 10px 18px; max-width: 92vw;
.speak-bar[hidden] { display: none; }
  font-family: var(--accent); font-style: italic;
  font-size: 0.88rem; color: var(--gold);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 46vw;
/* ============================================
============================================ */
  display: flex; aliM
gn-items: center; gap: 16px; flex-wrap: wrap;
  padding: 16px 0; border-bottom: 1px solid rgba(201,168,76,0.09);
  font-family: var(--display); font-size: 0.62rem;
  letter-spacing: 0.14em; color: var(--gold-dark);
.set-choices { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.set-choices .pack-btn.on {
  background: rgba(201,168,76,0.16); border-color: var(--gold); color: var(--gold-light);
  font-family: var(--display); font-size: 0.72rem;
or: var(--gold); min-width: 48px; text-align: center;
  margin-top: 22px; padding: 20px;
  border: 1px dashed rgba(201,168,76,0.22);
  font-family: var(--body);
  font-size: var(--read-size); line-height: var(--read-leading);
  color: var(--text-light);
/* ============================================
============================================ */
  display: flex; flex-direction: column; gap: 6px; width: 100%;
  text-align: left; cursor: pointer;
  background: linear-M
gradient(180deg, rgba(201,168,76,0.1), rgba(201,168,76,0.02));
  border: 1px solid rgba(201,168,76,0.4);
  padding: 18px 20px; margin-bottom: 22px;
  transition: all 0.3s ease;
.dl-hero:hover { border-color: var(--gold); background: rgba(201,168,76,0.14); }
  font-family: var(--display); font-size: 0.8rem;
  letter-spacing: 0.14em; color: var(--gold);
  font-family: var(--accent); font-style: italic;
  font-size: 0.88rem; color: var(--brown-light);
@media (max-width: 600px) {
  .set-label { flex: 0 0 100%; }
  .speak-bar { bottom: 12px; gap: 10px; }
  .search-head { flex-wrap: wrap; }
/* ============================================
   COLLAPSIBLE CHAPTER PICKER
   Long books (Psalms is 150 chapters) start folded
   so the scripture is the first thing on screen.
============================================ */
.chapter-nav.collapsed {
  max-height: 0; overflow: hidden;
  margin-top: 0; margin-bottom: 0;
  /* visibility, not just pointer-events: it also takes the hidden
    chapter buttons out of the keyboard tab order. */
  visibility: hidden;
  max-height: 34vh; overflow-y: auto;
  transition: max-height 0.3s ease, opacity 0.25s ease;
@media (prefers-reduced-motion: reduce) { .chapter-nav { transition: none; } }
/* The header is sticky, so anything the browser scrolls to on its
 a focused control, a verse jumped to from search
   otherwise land underneath it. */
:root { scroll-padding-top: 96px; }
.verse, .pack-card, .book-card, .result, M
button, input, select, [tabindex] { scroll-margin-top: 96px; }
/* ============================================
============================================ */
/* Safari still needs the prefix for backdrop blur. */
.app-header { -webkit-backdrop-filter: blur(10px); }
/* 100vh on iOS means "screen minus nothing", so the address bar
   crops the bottom. dvh follows the toolbar; the -webkit rule is
   the fallback for iOS 15 and earlier. */
@supports (-webkit-touch-callout: none) {
h, #app { min-height: -webkit-fill-available; }
@supports (height: 100dvh) {
  #splash, #app { min-height: 100dvh; }
/* viewport-fit=cover puts content under the notch and the home
   indicator unless we pad for them. */
.app-header { padding-left: max(40px, env(safe-area-inset-left));
              padding-right: max(40px, env(safe-area-inset-right));
              padding-top: max(20px, env(safe-area-inset-top)); }
.speak-bar { bottom: max(24px, calc(env(safe-area-inset-bottom) + 12px)); }
ax(30px, calc(env(safe-area-inset-bottom) + 18px)); }
.modal { padding-bottom: max(34px, calc(env(safe-area-inset-bottom) + 20px)); }
#readingPage, #bookSelector, #quizPage, #searchPage {
  padding-bottom: max(90px, calc(env(safe-area-inset-bottom) + 90px));
@media (max-width: 600px) {
  .app-header { padding-left: max(16px, env(safe-area-inset-left));
                padding-right: max(16px, env(safe-area-inset-right));
                padding-top: max(14px, env(safe-area-inset-top)); }
/* Stop iOS inflating M
text in landscape, and keep inputs from zooming
   the page when focused (any font under 16px triggers that). */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.search-input, select, input[type="search"] { font-size: 16px; }
.search-input { -webkit-appearance: none; appearance: none; border-radius: 0; }
/* Momentum scrolling inside the chapter picker. */
.chapter-nav { -webkit-overflow-scrolling: touch; }
/* Tapping a verse shouldn't flash a grey box or pop the callout menu. */
d, .pack-card, .result, .bm-row, button {
  -webkit-tap-highlight-color: rgba(201,168,76,0.15);
button { -webkit-touch-callout: none; }
    --gold: #C9A84C;
    --gold-light: #E8D48B;
    --gold-dark: #8B6914;
    --cream: #F5F0E8;
    --parchment: #EDE4D3;
    --dark: #1A1510;
    --dark-mid: #2A2318;
    --brown: #3D2E1E;
    --brown-light: #5C4A35;
    --text-dark: #2C2418;
    --text-light: #D4C8B0;
    --correct: #4A7C59;
    --incorrect: #8B3A3A;
    --correct-bg: #2A4A32;
    --incorrect-bg: #4M
  * { margin: 0; padding: 0; box-sizing: border-box; }
    font-family: var(--body);
    background: var(--dark);
    color: var(--text-light);
    overflow-x: hidden;
    min-height: 100vh;
  /* ============================================
  ============================================ */
    position: fixed; top: 0; right: 0; bottom: 0; left: 0; inset: 0; z-index: 1000;
    display: flex; flex-direction: column;
    align-items: center; justify-content: ceM
    background: var(--dark);
    transition: opacity 0.8s ease, visibility 0.8s ease;
  #splash.hidden { opacity: 0; visibility: hidden; pointer-events: none; }
    position: absolute; top: 0; right: 0; bottom: 0; left: 0; inset: 0;
      radial-gradient(ellipse at 50% 30%, rgba(201,168,76,0.08) 0%, transparent 60%),
      radial-gradient(ellipse at 50% 80%, rgba(201,168,76,0.04) 0%, transparent 50%),
      linear-gradient(180deg, var(--splash-edge) 0%, var(--dark) 40%, vaM
r(--dark) 60%, var(--splash-edge) 100%);
  .splash-ornament {
    position: absolute; width: 300px; height: 2px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
  .splash-ornament.top { top: 25%; }
  .splash-ornament.bottom { bottom: 25%; }
    position: relative; margin-bottom: 40px;
    width: 60px; height: 90px;
    opacity: 0; animation: fadeIn 1.5s ease 0.3s forwards;
  .splash-cross::before {
'; font-size: 80px; M
    font-family: var(--display);
    filter: drop-shadow(0 0 20px rgba(201,168,76,0.3));
    font-family: var(--display); font-weight: 900;
    font-size: clamp(3rem, 8vw, 6rem);
    letter-spacing: 0.4em; text-indent: 0.4em;
    color: var(--gold);
    text-shadow: 0 0 40px rgba(201,168,76,0.2);
    position: relative;
    opacity: 0; animation: fadeIn 1.5s ease 0.6s forwards;
  .splash-subtitle {
    font-family: var(--accent);
    font-size: clamp(0.9rem, 2vw, 1.2rM
    letter-spacing: 0.3em; text-indent: 0.3em;
    color: var(--gold-dark);
    margin-top: 12px; font-style: italic;
    opacity: 0; animation: fadeIn 1.5s ease 0.9s forwards;
    margin-top: 60px;
    font-family: var(--display);
    font-size: 0.85rem; letter-spacing: 0.25em;
    color: var(--gold); background: none; border: 1px solid var(--gold-dark);
    padding: 14px 48px; cursor: pointer;
    transition: all 0.4s ease;
    opacity: 0; animation: fadeIn 1.5s ease 1.4s forwards;
  .splash-enter:hover {
    background: var(--gold); color: var(--dark);
    box-shadow: 0 0 30px rgba(201,168,76,0.25);
    position: absolute; bottom: 60px;
    font-family: var(--accent);
    font-style: italic; font-size: 0.95rem;
    color: var(--brown-light); max-width: 500px;
    text-align: center; line-height: 1.6;
    opacity: 0; animation: fadeIn 2s ease 1.8s forwards;
  /* ============================================
  ==========================================M
    display: none; min-height: 100vh;
      radial-gradient(ellipse at 50% 0%, rgba(201,168,76,0.04) 0%, transparent 50%),
  #app.active { display: block; animation: fadeIn 0.8s ease; }
    display: flex; align-items: center; justify-content: space-between;
    padding: 20px 40px;
    border-bottom: 1px solid rgba(201,168,76,0.12);
    background: var(--header-bg);
    backdrop-filter: blur(10px);
    position: sticky; top: 0; z-iM
    font-family: var(--display); font-weight: 700;
    font-size: 1.3rem; letter-spacing: 0.2em;
    color: var(--gold); cursor: pointer;
    font-family: var(--display); font-size: 0.75rem;
    letter-spacing: 0.15em; color: var(--gold-dark);
    background: none; border: 1px solid rgba(201,168,76,0.2);
    padding: 8px 20px; cursor: pointer;
    transition: all 0.3s ease;
  .app-nav-btn:hover { color: var(--gold); border-color: var(--gold); }
    display: flex; align-items: center; gap: 10px;
  .progress-bar-container {
    display: flex; align-items: center; gap: 12px;
    font-family: var(--display); font-size: 0.7rem;
    letter-spacing: 0.1em; color: var(--gold-dark);
    width: 150px; height: 3px; background: rgba(201,168,76,0.15);
    border-radius: 2px; overflow: hidden;
    height: 100%; background: var(--gold);
    transition: width 0.5s ease; width: 0%;
======================================
     BOOK SELECTOR PAGE
  ============================================ */
  #bookSelector { padding: 40px 20px 80px; max-width: 1100px; margin: 0 auto; }
    font-family: var(--display); font-weight: 600;
    font-size: 0.7rem; letter-spacing: 0.3em;
    color: var(--gold-dark); text-align: center;
    margin-bottom: 8px;
    font-family: var(--display); font-weight: 700;
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    color: var(--golM
d); text-align: center;
    margin-bottom: 12px;
    font-family: var(--accent);
    font-size: 1.1rem; color: var(--brown-light);
    text-align: center; margin-bottom: 50px;
    font-style: italic;
  .testament-group { margin-bottom: 50px; }
  .testament-title {
    font-family: var(--display); font-weight: 600;
    font-size: 0.8rem; letter-spacing: 0.25em;
    color: var(--gold-dark); margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(201,168,76,0.1);
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    background: rgba(201,168,76,0.03);
    border: 1px solid rgba(201,168,76,0.08);
    padding: 14px 16px; cursor: pointer;
    transition: all 0.3s ease; position: relative;
    overflow: hidden;
  .book-card:hover {
    background: rgba(201,168,76,0.08);
    border-color: rgba(201,168,76,0.25);
    transform: translateY(-2px);
  .book-card.completed {
rgba(74,124,89,0.4);
    background: rgba(74,124,89,0.05);
  .book-card.completed::after {
'; position: absolute; top: 6px; right: 8px;
    font-size: 0.75rem; color: var(--correct);
  .book-card.has-quiz::before {
'; position: absolute; top: 6px; right: 8px;
    font-size: 0.65rem;
  .book-card.completed.has-quiz::before { right: 24px; }
  .book-card.locked {
    opacity: 0.35; pointer-events: none;
    font-family: var(--display); font-size: 0M
    letter-spacing: 0.05em; color: var(--text-light);
  .book-card-chapters {
    font-family: var(--accent);
    font-size: 0.75rem; color: var(--brown-light);
    margin-top: 4px;
  .book-card-quiz-count {
    font-family: var(--accent);
    font-size: 0.7rem; color: var(--gold-dark);
    margin-top: 2px;
  /* ============================================
  ============================================ */
  #readingPage { display: none; padding: 40px 20px 80px; max-width: 780pxM
  #readingPage.active { display: block; }
    text-align: center; margin-bottom: 50px;
    padding-bottom: 30px;
    border-bottom: 1px solid rgba(201,168,76,0.1);
  .reading-book-name {
    font-family: var(--display); font-weight: 700;
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    color: var(--gold); margin-bottom: 8px;
  .reading-chapter-label {
    font-family: var(--accent);
    font-size: 1rem; color: var(--brown-light);
    font-style: italic;
    display: flex; justify-content: center; gap: 10px;
    margin-bottom: 30px; flex-wrap: wrap;
    display: flex; justify-content: center; gap: 8px;
    flex-wrap: wrap; margin-bottom: 40px;
    width: 36px; height: 36px;
    font-family: var(--display); font-size: 0.75rem;
    color: var(--gold-dark); background: rgba(201,168,76,0.04);
    border: 1px solid rgba(201,168,76,0.1);
    cursor: pointer; transition: all 0.3s ease;
    display: flex; align-items: cM
enter; justify-content: center;
  .chapter-btn:hover, .chapter-btn.active {
    background: var(--gold); color: var(--dark);
    border-color: var(--gold);
  .chapter-btn.read {
    border-color: rgba(74,124,89,0.3);
    color: var(--correct);
    font-family: var(--body);
    font-size: 1.2rem; line-height: 2;
    color: var(--text-light);
    margin-bottom: 8px;
    transition: background 0.3s ease;
    padding: 2px 4px; border-radius: 2px;
  .verse:hover { backgM
round: rgba(201,168,76,0.04); }
    font-family: var(--display); font-size: 0.7rem;
    color: var(--gold-dark); vertical-align: super;
    margin-right: 4px; font-weight: 600;
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 50px; padding-top: 30px;
    border-top: 1px solid rgba(201,168,76,0.1);
    font-family: var(--display); font-size: 0.8rem;
    letter-spacing: 0.1em; color: var(--gold);
    background: none; boM
rder: 1px solid rgba(201,168,76,0.2);
    padding: 10px 24px; cursor: pointer;
    transition: all 0.3s ease;
  .nav-arrow:hover {
    background: rgba(201,168,76,0.1);
    border-color: var(--gold);
  .nav-arrow:disabled { opacity: 0.3; pointer-events: none; }
  .finish-book-btn {
    font-family: var(--display); font-size: 0.8rem;
    letter-spacing: 0.15em; color: var(--dark);
    background: var(--gold); border: none;
    padding: 12px 32px; cursor: pointer;
    transition: all 0.3s ease;
  .finish-book-btn.visible { display: block; }
  .finish-book-btn:hover {
    background: var(--gold-light);
    box-shadow: 0 0 20px rgba(201,168,76,0.3);
  /* ============================================
  ============================================ */
  #quizPage { display: none; padding: 40px 20px 80px; max-width: 700px; margin: 0 auto; }
  #quizPage.active { display: block; }
  .quiz-header { text-align: center; margin-bottom: 40px; }
  .quiz-book-label {
    font-family: var(--M
display); font-size: 0.7rem;
    letter-spacing: 0.3em; color: var(--gold-dark);
    margin-bottom: 8px;
    font-family: var(--display); font-weight: 700;
    font-size: 1.8rem; color: var(--gold);
    margin-bottom: 12px;
  .quiz-total-label {
    font-family: var(--accent);
    font-size: 0.95rem; color: var(--brown-light);
    font-style: italic; margin-bottom: 8px;
    display: flex; justify-content: center; align-items: center;
    gap: 16px; margin-bottom: 40pxM
  .quiz-settings label {
    font-family: var(--display); font-size: 0.75rem;
    letter-spacing: 0.1em; color: var(--gold-dark);
  .quiz-settings select {
    font-family: var(--display); font-size: 0.8rem;
    background: var(--dark-mid); color: var(--gold);
    border: 1px solid rgba(201,168,76,0.2);
    padding: 6px 12px; cursor: pointer;
    font-family: var(--display); font-size: 0.8rem;
    letter-spacing: 0.15em; color: var(--dark);
    background: var(--goM
    padding: 10px 28px; cursor: pointer;
    transition: all 0.3s ease;
  .quiz-start-btn:hover { background: var(--gold-light); }
    display: flex; justify-content: space-between;
    align-items: center; margin-bottom: 30px;
    font-family: var(--display); font-size: 0.75rem;
    letter-spacing: 0.1em; color: var(--gold-dark);
    display: flex; gap: 16px;
    font-family: var(--display); font-size: 0.8rem;
    letter-spacing: 0.05em;
  .score-correct { color: var(--correct); }
  .score-incorrect { color: var(--incorrect); }
  .quiz-question-card {
    background: rgba(201,168,76,0.03);
    border: 1px solid rgba(201,168,76,0.1);
    padding: 36px; margin-bottom: 20px;
    animation: slideUp 0.4s ease;
  .quiz-question-text {
    font-family: var(--body);
    font-size: 1.25rem; line-height: 1.7;
    color: var(--cream); margin-bottom: 28px;
  .quiz-options { display: flex; flex-direction: column; gap: 1M
    display: flex; align-items: center; gap: 14px;
    background: rgba(201,168,76,0.02);
    border: 1px solid rgba(201,168,76,0.08);
    padding: 14px 20px; cursor: pointer;
    transition: all 0.3s ease;
    font-family: var(--body);
    font-size: 1.05rem; color: var(--text-light);
  .quiz-option:hover:not(.disabled) {
    background: rgba(201,168,76,0.06);
    border-color: rgba(201,168,76,0.2);
  .quiz-option.selected-correct {
    background: var(--correct-bg);
  .quiz-option.selected-incorrect {
    background: var(--incorrect-bg);
    border-color: var(--incorrect);
  .quiz-option.reveal-correct {
    border-color: var(--correct);
    background: rgba(74,124,89,0.08);
  .quiz-option.disabled { pointer-events: none; }
    width: 28px; height: 28px;
    border: 1px solid rgba(201,168,76,0.2);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--display); font-size: 0.7rem;
(--gold-dark); flex-shrink: 0;
    transition: all 0.3s ease;
  .selected-correct .option-marker {
    background: var(--correct); border-color: var(--correct); color: #fff;
  .selected-incorrect .option-marker {
    background: var(--incorrect); border-color: var(--incorrect); color: #fff;
    display: flex; align-items: center; gap: 10px;
    margin-top: 16px; padding: 12px 16px;
    font-family: var(--accent);
    font-size: 1rem; font-style: italic;
    animation: fadeIn 0.3s easM
  .quiz-feedback.correct { color: var(--correct); background: rgba(74,124,89,0.06); }
  .quiz-feedback.incorrect { color: var(--incorrect); background: rgba(139,58,58,0.06); }
  .quiz-feedback-icon { font-size: 1.4rem; }
    font-family: var(--display); font-size: 0.8rem;
    letter-spacing: 0.1em; color: var(--gold);
    background: none; border: 1px solid rgba(201,168,76,0.3);
    padding: 10px 28px; cursor: pointer;
    margin-top: 20px; transition: all 0.3s ease;
:hover { background: rgba(201,168,76,0.1); }
  /* Quiz Results */
    text-align: center; padding: 40px;
    animation: fadeIn 0.6s ease;
    font-family: var(--display); font-weight: 900;
    font-size: 4rem; color: var(--gold);
    margin: 20px 0 8px;
    font-family: var(--accent);
    font-size: 1.1rem; color: var(--brown-light);
    font-style: italic; margin-bottom: 30px;
  .results-message {
    font-family: var(--body);
    font-size: 1.15M
rem; color: var(--text-light);
    line-height: 1.7; margin-bottom: 40px;
    max-width: 500px; margin-left: auto; margin-right: auto;
  .results-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
  /* Best Score Badge */
  .best-score-badge {
    display: inline-block; margin-top: 12px;
    font-family: var(--display); font-size: 0.75rem;
    letter-spacing: 0.1em; color: var(--gold);
    border: 1px solid rgba(201,168,76,0.3);
    padding: 6px 16px; background: rgba(201,168,76,0.M
  /* ============================================
     STORAGE INDICATOR
  ============================================ */
    display: flex; justify-content: center; align-items: center;
    gap: 20px; margin-bottom: 30px; flex-wrap: wrap;
    font-family: var(--accent);
    font-size: 0.85rem; color: var(--brown-light);
    font-style: italic;
  .storage-stat strong {
    color: var(--gold-dark); font-style: normal;
    font-family: var(--display); font-size: 0M
    font-family: var(--display); font-size: 0.65rem;
    letter-spacing: 0.1em; color: var(--incorrect);
    background: none; border: 1px solid rgba(139,58,58,0.3);
    padding: 5px 14px; cursor: pointer;
    transition: all 0.3s ease;
  .danger-btn:hover {
    background: rgba(139,58,58,0.1);
    border-color: var(--incorrect);
  /* ============================================
     EMPTY / LOADING STATES
  ============================================ */
ext-align: center; padding: 80px 20px;
  .empty-icon { font-size: 3rem; margin-bottom: 16px; opacity: 0.3; }
    font-family: var(--accent);
    font-size: 1.1rem; color: var(--brown-light);
    font-style: italic; line-height: 1.6;
  .empty-text code {
    background: rgba(201,168,76,0.08); padding: 2px 8px;
    font-family: monospace; font-size: 0.85rem;
    color: var(--gold-dark); font-style: normal;
    margin: 30px auto; max-width: 400px; text-align: center;
    font-family: var(--display); font-size: 0.75rem;
    letter-spacing: 0.1em; color: var(--gold);
    background: none; border: 1px dashed rgba(201,168,76,0.3);
    padding: 14px 28px; cursor: pointer;
    transition: all 0.3s ease; width: 100%;
  .load-json-btn:hover {
    background: rgba(201,168,76,0.05);
    border-color: var(--gold);
    font-size: 0.8rem; color: var(--brown-light);
    margin-top: 8px; font-style: italic;
  /* Toast Notifications */
    position: fixed; bottom: 30px; left: 50%;
    transform: translateX(-50%) translateY(80px);
    font-family: var(--display); font-size: 0.8rem;
    letter-spacing: 0.08em;
    background: var(--dark-mid); color: var(--gold);
    border: 1px solid rgba(201,168,76,0.3);
    padding: 12px 28px; z-index: 9999;
    transition: transform 0.4s ease, opacity 0.4s ease;
    opacity: 0; pointer-events: none;
    transform: translateX(-50%) translateY(0);
  /* ==============M
==============================
  ============================================ */
  @keyframes fadeIn {
    from { opacity: 0; } to { opacity: 1; }
  @keyframes slideUp {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
  /* ============================================
  ============================================ */
  @media (max-width: 600px) {
    .app-header { padding: 14px 16px; flex-wrap: wrap; gap: 8px; }
ress-bar { width: 80px; }
    #bookSelector, #readingPage, #quizPage { padding: 24px 16px 60px; }
    .books-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
    .quiz-question-card { padding: 24px 18px; }
    .quiz-settings { flex-wrap: wrap; }
    .header-right { gap: 6px; }
<!-- ==================== SPLASH ==================== -->
  <div class="splash-bg"></div>
  <div class="splash-ornament top"></div>
  <div class="splash-cross"></div>
 class="splash-title">LAMB</div>
  <div class="splash-subtitle">Let All Men Bow</div>
  <button class="splash-enter" id="enterBtn">PRESS ENTER</button>
  <div class="splash-ornament bottom"></div>
  <div class="splash-verse">
    "Thy word is a lamp unto my feet, and a light unto my path."<br>
    &mdash; Psalm 119:105
<!-- ==================== MAIN APP ==================== -->
  <header class="app-header">
    <div class="app-logo" id="logoBtn">LAMB</div>
    <div class="progress-baM
      <span class="progress-text" id="progressLabel">0 / 66 Books</span>
      <div class="progress-bar"><div class="progress-fill" id="progressFill"></div></div>
    <div class="header-right">
      <button class="app-nav-btn icon-btn" id="modeBtn" title="Day / night" aria-label="Switch between day and night">&#9788;</button>
      <button class="app-nav-btn icon-btn" id="searchBtn" title="Search" aria-label="Search">&#9906;</button>
      <button class="app-nav-btn icon-btn" id="settingsBM
tn" title="Display" aria-label="Display settings">Aa</button>
      <button class="install-btn" id="installBtn" style="display:none">INSTALL</button>
      <button class="app-nav-btn" id="homeBtn">&#9776; BOOKS</button>
<div id="storageBanner" class="banner" hidden>
  <div class="banner-text" id="bannerText"></div>
  <div class="banner-actions">
    <button class="pack-btn" data-act="install-help">HOW</button>
    <button class="pack-btn" data-act="open-download">SAVE A COPY</button>
tton class="pack-btn" data-act="dismiss-banner">DISMISS</button>
  <section id="bookSelector">
    <div class="section-label">THE LIBRARY</div>
    <div class="section-title">The Holy Bible</div>
    <div class="section-desc" id="libraryDesc">Load a collection, read it, then test your knowledge.</div>
    <div id="resumeBar"></div>
    <div id="packsContainer"></div>
    <div id="bookmarksContainer"></div>
    <div id="booksContainer"></div>
  <section id="searchPageM
    <div class="search-head">
      <input type="search" id="searchInput" class="search-input" autocomplete="off"
             placeholder="Search every loaded verse&hellip;" aria-label="Search scripture">
      <button class="app-nav-btn" id="searchClose">CLOSE</button>
    <div class="search-filters" id="searchFilters">
      <button class="pack-btn" data-scope="all">ALL</button>
      <button class="pack-btn" data-scope="old">OLD TESTAMENT</button>
      <button class="pack-btn" data-scope="new">NEM
W TESTAMENT</button>
      <button class="pack-btn" data-scope="book" id="scopeBookBtn">THIS BOOK</button>
    <div class="search-status" id="searchStatus"></div>
    <div id="searchResults"></div>
  <section id="readingPage">
    <div class="reading-header">
      <div class="reading-book-name" id="readingBookName"></div>
      <div class="reading-chapter-label" id="readingChapterLabel"></div>
    <div class="reading-actions" id="readingActions"></div>
v class="chapter-nav" id="chapterNav"></div>
    <div class="verse-content" id="verseContent"></div>
    <div class="reading-footer">
      <button class="nav-arrow" id="prevChapterBtn">&larr; PREV</button>
      <button class="finish-book-btn" id="finishBookBtn">TAKE THE QUIZ &rarr;</button>
      <button class="nav-arrow" id="nextChapterBtn">NEXT &rarr;</button>
  <section id="quizPage">
    <div class="quiz-header">
      <div class="quiz-book-label" id="quizBookLabel"></M
      <div class="quiz-title">Knowledge Check</div>
      <div class="quiz-total-label" id="quizTotalLabel"></div>
    <div id="quizSetup">
      <div class="quiz-settings">
        <label for="questionCount">NUMBER OF QUESTIONS</label>
        <select id="questionCount"></select>
        <button class="quiz-start-btn" id="startQuizBtn">BEGIN QUIZ</button>
    <div id="quizActive" style="display:none">
      <div class="quiz-progress">
        <div class="quiz-counter" id="quM
izCounter">Question 1 of 20</div>
        <div class="quiz-score">
          <span class="score-item score-correct" id="scoreCorrect">&#10003; 0</span>
          <span class="score-item score-incorrect" id="scoreIncorrect">&#10007; 0</span>
      <div id="quizQuestionArea"></div>
    <div id="quizResults" style="display:none"></div>
<!-- Read-aloud bar -->
<div class="speak-bar" id="speakBar" hidden>
  <button class="pack-btn" data-act="speak-toggle" id="sM
peakToggle">PAUSE</button>
  <span class="speak-label" id="speakLabel"></span>
  <button class="pack-btn" data-act="speak-stop">STOP</button>
<!-- ==================== MODALS ==================== -->
<div class="modal-backdrop" id="verseSheet">
  <div class="modal sheet" role="dialog" aria-modal="true" aria-labelledby="verseRef">
    <div class="modal-title" id="verseRef"></div>
    <div class="sheet-verse" id="verseText"></div>
    <div class="sheet-actions">
      <button class="pack-btn" data-act="v-copyM
      <button class="pack-btn" data-act="v-share" id="vShare">SHARE</button>
      <button class="pack-btn" data-act="v-bookmark" id="vBookmark">BOOKMARK</button>
      <button class="pack-btn" data-act="v-speak">READ ALOUD</button>
      <button class="pack-btn" data-act="v-link">COPY LINK</button>
    <div class="modal-actions">
      <button class="app-nav-btn" data-close-modal="verseSheet">CLOSE</button>
<div class="modal-backdrop" id="settingsModal">
v class="modal" role="dialog" aria-modal="true" aria-labelledby="setTitle">
    <div class="modal-title" id="setTitle">DISPLAY</div>
    <div class="modal-sub">Set it up so it stays comfortable over a long reading.</div>
    <div class="set-row">
      <div class="set-label">THEME</div>
      <div class="set-choices" id="themeChoices">
        <button class="pack-btn" data-theme="night">NIGHT</button>
        <button class="pack-btn" data-theme="parchment">PARCHMENT</button>
        <button class="pack-btn" data-tM
heme="day">DAYLIGHT</button>
    <div class="set-row">
      <div class="set-label">COLOUR</div>
      <div class="set-choices swatches" id="accentChoices"></div>
    <div class="set-row">
      <div class="set-label">FONT</div>
      <div class="set-choices" id="fontChoices">
        <button class="pack-btn" data-font="classic">CLASSIC</button>
        <button class="pack-btn" data-font="book">BOOK</button>
        <button class="pack-btn" data-font="modern">MODERN</button>
     <button class="pack-btn" data-font="mono">TYPEWRITER</button>
    <div class="set-row">
      <div class="set-label">TEXT SIZE</div>
      <div class="set-choices">
        <button class="pack-btn" data-act="size-down" aria-label="Smaller text">&minus;</button>
        <span class="set-value" id="sizeValue">100%</span>
        <button class="pack-btn" data-act="size-up" aria-label="Larger text">+</button>
    <div class="set-row">
      <div class="set-label">LM
      <div class="set-choices" id="spacingChoices">
        <button class="pack-btn" data-spacing="1.6">TIGHT</button>
        <button class="pack-btn" data-spacing="2">NORMAL</button>
        <button class="pack-btn" data-spacing="2.4">AIRY</button>
    <div class="set-preview" id="setPreview">
      <span class="verse-num">16 </span>For God so loved the world, that he gave his only begotten Son,
      that whosoever believeth in him should not perish, but have everlastinM
    <div class="modal-actions">
      <button class="app-nav-btn" data-close-modal="settingsModal">DONE</button>
<div class="modal-backdrop" id="installModal">
  <div class="modal" role="dialog" aria-modal="true" aria-labelledby="installTitle">
    <div class="modal-title" id="installTitle">INSTALL LAMB</div>
    <div class="modal-sub" id="installSub">Keep the whole library on your device.</div>
    <div id="installSteps"></div>
    <div class="modal-actions">
button class="app-nav-btn" data-close-modal="installModal">CLOSE</button>
<div class="modal-backdrop" id="downloadModal">
  <div class="modal" role="dialog" aria-modal="true" aria-labelledby="dlTitle">
    <div class="modal-title" id="dlTitle">SAVE A COPY</div>
    <div class="modal-sub">A saved file can't be cleared by your browser and needs no internet. Everything is built here on your device &mdash; nothing is uploaded.</div>
    <button class="dl-hero" data-act="dl-everything">
  <span class="dl-hero-title">SAVE EVERYTHING AS ONE APP</span>
      <span class="dl-hero-sub" id="dlHeroSub">One HTML file. Opens on any phone or computer, offline, forever.</span>
    <div class="dl-toolbar">
      <button class="pack-btn" id="dlSelectAll">SELECT ALL</button>
      <button class="pack-btn" id="dlSelectNone">CLEAR</button>
      <span class="dl-size" id="dlSize"></span>
    <div class="dl-list" id="dlList"></div>
    <div class="modal-actions">
      <button class="app-nM
av-btn" data-close-modal="downloadModal">CANCEL</button>
      <button class="app-nav-btn" id="dlBundleBtn">ONE JSON FILE</button>
      <button class="app-nav-btn" id="dlBooksBtn">SEPARATE JSON</button>
      <button class="install-btn" id="dlAppBtn">APP WITH SELECTED</button>
<!-- Hidden file inputs -->
<input type="file" id="allFileInput" accept=".json,application/json" multiple style="display:none">
<input type="file" id="backupFileInput" accept=".json,application/json" style="displaM
<div class="toast" id="toast"></div>
/* ============================================================
   Self-contained on-chain Bible reader + quiz engine.
   No external requests. All scripture is fetched from
   recursive inscriptions at the RELATIVE path /content/<id>,
   so this runs on ordinals.com, your own ord node, or any
   other ord server without modification.
============================================================ */
---------------------------------------------
 fill in after you inscribe the packs
   ------------------------------------------------------------
   Inscribe the 5 pack files FIRST, then paste each resulting
   inscription id below and inscribe this file LAST.
   Leave an id as "" and that pack simply shows an Import button
   instead of a Load button. Nothing breaks.
------------------------------------------------------------ */
var PACK_INDEX = [{"id":"thelawearlyhistory","name":"The Law & EarlM
y History","range":"Genesis
 1 Samuel","books":["Genesis","Exodus","Leviticus","Numbers","Deuteronomy","Joshua","Judges","Ruth","1 Samuel"],"bytes":1355700,"dl":340420,"sha256":"56105cd0fe1a84800f442b8127a594dfade6f5f3766b351484d57c99ce4179d4","inscription":""},{"id":"kingdomspsalms","name":"Kingdoms & Psalms","range":"2 Samuel
 Psalms","books":["2 Samuel","1 Kings","2 Kings","1 Chronicles","2 Chronicles","Ezra","Nehemiah","Esther","Job","Psalms"],"bytes":1259474,"dl":345607,"sha256":"5d4d1c6515d6feae1092347dM
1ad756d4b12324ba2149383b14f60a6cb6d8651e","inscription":""},{"id":"wisdomprophets","name":"Wisdom & Prophets","range":"Proverbs
 Malachi","books":["Proverbs","Ecclesiastes","Song of Solomon","Isaiah","Jeremiah","Lamentations","Ezekiel","Daniel","Hosea","Joel","Amos","Obadiah","Jonah","Micah","Nahum","Habakkuk","Zephaniah","Haggai","Zechariah","Malachi"],"bytes":1151240,"dl":318376,"sha256":"7c34f01a976e0765109bf4842fddae77029a4e0b94e0b6bd194f3531f962e174","inscription":""},{"id":"newtestament","name":"New TestamM
ent","range":"Matthew
 Revelation","books":["Matthew","Mark","Luke","John","Acts","Romans","1 Corinthians","2 Corinthians","Galatians","Ephesians","Philippians","Colossians","1 Thessalonians","2 Thessalonians","1 Timothy","2 Timothy","Titus","Philemon","Hebrews","James","1 Peter","2 Peter","1 John","2 John","3 John","Jude","Revelation"],"bytes":1146882,"dl":329177,"sha256":"bbaebe93b41f2f08aa50c5b4b01e6cb18bab15a3e8992056fe8c95b6f376124f","inscription":""}];
/* Off-chain only. When this file is served from an oM
   out its own inscription id from the URL, so leave this empty. The
   website wrapper has no /content/ path to read, so the build sets it
   there with --engine-id. */
/* Optional: an already-inscribed webfont pack. Leave "" to use
   the built-in system serif stack (zero bytes, zero requests). */
/* Where the wrapper site lives, used only in the install help
   text on platforms that cannot install directly from /content/.
   Leave "" to hide that lineM
var INSTALL_SITE = "";
/* Where to fetch inscriptions from.
   "" (default) = relative /content/<id>, which is what you want for
   the inscribed copy: it works on ordinals.com, on your own ord
   node, in any wallet viewer, with no hard-coded server.
   The wrapper website build sets this to a public gateway, because
   a normal web host has no /content/ route of its own. */
var INSCRIPTION_ID_RE = /^[0-9a-f]{64}i\d+$/i;
/* ------------------------------------------------------------
   Everything user- or pack-supplied goes in as TEXT, never as
   HTML. This is what stops a malicious pack from injecting
   script into the page.
------------------------------------------------------------ */
function el(tag, attrs, children) {
  var node = document.createElement(tag);
    for (var k in attrs) {
      if (!Object.prototype.hasOwnProperty.call(attrs, k)) continue;
      var v = attrs[k];
      if (v === null || v === undefined || v === false) continue;
(k === 'class') node.className = v;
      else if (k === 'text') node.textContent = v;
      else if (k.indexOf('data-') === 0) node.setAttribute(k, v);
      else if (k === 'style') node.setAttribute('style', v);
      else node.setAttribute(k, v);
    for (var i = 0; i < children.length; i++) {
      var c = children[i];
      if (c === null || c === undefined || c === false) continue;
      node.appendChild(typeof c === 'string' ? document.createTextNode(c) : c);
function $(id) { return document.getElementById(id); }
function clear(node) { while (node.firstChild) node.removeChild(node.firstChild); }
function showToast(msg) {
  var t = $('toast');
  t.textContent = String(msg);
  t.classList.add('show');
  clearTimeout(showToast._t);
  showToast._t = setTimeout(function () { t.classList.remove('show'); }, 2600);
function fmtBytes(n) {
  if (n < 1024) return n + ' B';
  if (n < 1024 * 1024) return (n / 1024).toFixed(0) + ' KB';
  return (n / 1024 / 1024).toFixed(1) M
/* ------------------------------------------------------------
   Scripture is far too big for localStorage (a full Bible is
   ~4.7 MB of text, and localStorage tops out around 5 MB of
   UTF-16, which is half that). So book data lives in IndexedDB
   and only the small progress records use localStorage.
   If either is unavailable (some sandboxed viewers block them)
   the app still runs, it just won't remember between visits.
------------------------------------------------------------M
var DB = (function () {
  var NAME = 'lamb', STORE = 'packs', dbp = null, dead = false;
    if (dead) return Promise.reject(new Error('unavailable'));
    if (dbp) return dbp;
    dbp = new Promise(function (res, rej) {
        if (!self.indexedDB) throw new Error('no indexeddb');
        var r = indexedDB.open(NAME, 1);
        r.onupgradeneeded = function () {
          if (!r.result.objectStoreNames.contains(STORE)) r.result.createObjectStore(STORE);
cess = function () { res(r.result); };
        r.onerror = function () { dead = true; rej(r.error); };
      } catch (e) { dead = true; rej(e); }
  function tx(mode, fn) {
    return open().then(function (db) {
      return new Promise(function (res, rej) {
        var t = db.transaction(STORE, mode), q = fn(t.objectStore(STORE));
        t.oncomplete = function () { res(q ? q.result : undefined); };
        t.onerror = function () { rej(t.error); };
get: function (k) { return tx('readonly', function (s) { return s.get(k); }).catch(function () { return null; }); },
    set: function (k, v) { return tx('readwrite', function (s) { return s.put(v, k); }).catch(function () { return null; }); },
    del: function (k) { return tx('readwrite', function (s) { return s.delete(k); }).catch(function () { return null; }); },
    keys: function () { return tx('readonly', function (s) { return s.getAllKeys(); }).catch(function () { return []; }); },
    clear: function () { M
return tx('readwrite', function (s) { return s.clear(); }).catch(function () { return null; }); }
  completedBooks: 'lamb_completedBooks',
  readChapters: 'lamb_readChapters',
  bestScores: 'lamb_bestScores',
  bookmarks: 'lamb_bookmarks',
  lastRead: 'lamb_lastRead',
  settings: 'lamb_settings',
  bannerSeen: 'lamb_bannerSeen'
var DEFAULT_SETTINGS = { theme: 'night', accent: 'gold', font: 'classic', size: 100, leading: 2 };
  books: {},        // bookName -> { book, cM
  quizzes: {},      // bookName -> { book, questions }
  loadedPacks: {},  // packId -> true
  completedBooks: [],
  hadSavedSettings: false,
  bookmarks: [],    // [{ book, chapter, verse, text }]
  lastRead: null,   // { book, chapter, verse }
  settings: { theme: 'night', accent: 'gold', font: 'classic', size: 100, leading: 2 },
  currentBook: null,
  currentChapter: 0,
  searchScope: 'all',
ds stored theme names dark/sepia/light, and a hand-edited
   backup could hold anything at all. Fold both onto valid values. */
function normaliseSettings() {
  var st = state.settings;
  var old = { dark: 'night', sepia: 'parchment', light: 'day' };
  if (old[st.theme]) st.theme = old[st.theme];
  if (!THEMES[st.theme]) st.theme = 'night';
  if (accentByKey(st.accent).key !== st.accent) st.accent = 'gold';
  if (!FONTS[st.font]) st.font = 'classic';
  st.size = Math.max(70, Math.min(220, st.size || 100));
ad = parseFloat(st.leading);
  st.leading = (lead >= 1.2 && lead <= 3) ? lead : 2;
function saveProgress() {
    localStorage.setItem(LS_KEYS.completedBooks, JSON.stringify(state.completedBooks));
    localStorage.setItem(LS_KEYS.readChapters, JSON.stringify(state.readChapters));
    localStorage.setItem(LS_KEYS.bestScores, JSON.stringify(state.bestScores));
    localStorage.setItem(LS_KEYS.bookmarks, JSON.stringify(state.bookmarks));
    localStorage.setItem(LS_KEYS.settings, JSON.stringify(state.settinM
    if (state.lastRead) localStorage.setItem(LS_KEYS.lastRead, JSON.stringify(state.lastRead));
  } catch (e) { /* private mode or quota
 progress just won't persist */ }
function loadProgress() {
    var a = localStorage.getItem(LS_KEYS.completedBooks);
    var b = localStorage.getItem(LS_KEYS.readChapters);
    var c = localStorage.getItem(LS_KEYS.bestScores);
    if (a) state.completedBooks = JSON.parse(a) || [];
    if (b) state.readChapters = JSON.parse(b) || {};
    if (c) state.bestScores M
= JSON.parse(c) || {};
    var d = localStorage.getItem(LS_KEYS.bookmarks);
    if (d) state.bookmarks = JSON.parse(d) || [];
    var e2 = localStorage.getItem(LS_KEYS.lastRead);
    if (e2) state.lastRead = JSON.parse(e2);
    var f = localStorage.getItem(LS_KEYS.settings);
    // Remember that this device has its own preferences, so a saved copy's
    // baked-in defaults don't stamp over them every time it's reopened.
    if (f) state.hadSavedSettings = true;
      var got = JSON.parse(f) || {};
   for (var k in DEFAULT_SETTINGS) {
        if (got[k] !== undefined) state.settings[k] = got[k];
      normaliseSettings();
  } catch (e) { /* ignore corrupt records */ }
/* ------------------------------------------------------------
   Anything arriving from an inscription or a picked file is
   treated as untrusted until it passes these checks.
------------------------------------------------------------ */
var LIMITS = { books: 200, chapters: 200, verses: 400, questions: 500,M
function str(v, max) {
  return (typeof v === 'string') ? v.slice(0, max || LIMITS.textLen) : '';
function validBook(b) {
  if (!b || typeof b !== 'object') return null;
  if (typeof b.book !== 'string' || !b.book.trim()) return null;
  if (!Array.isArray(b.chapters)) return null;
  var out = { book: str(b.book, 60).trim(), chapters: [] };
  var chs = b.chapters.slice(0, LIMITS.chapters);
  for (var i = 0; i < chs.length; i++) {
    var ch = chs[i];
    if (!ch || !Array.isArray(ch.verses)) coM
    var raw = ch.verses.slice(0, LIMITS.verses);
    for (var j = 0; j < raw.length; j++) {
      var v = raw[j];
      if (!v || typeof v.text !== 'string') continue;
      vs.push({ verse: String(v.verse === undefined ? j + 1 : v.verse).slice(0, 8), text: str(v.text) });
    if (vs.length) out.chapters.push({ chapter: String(ch.chapter === undefined ? i + 1 : ch.chapter).slice(0, 8), verses: vs });
  return out.chapters.length ? out : null;
function validQuiz(q) {
 typeof q !== 'object') return null;
  if (typeof q.book !== 'string' || !Array.isArray(q.questions)) return null;
  var out = { book: str(q.book, 60).trim(), questions: [] };
  var qs = q.questions.slice(0, LIMITS.questions);
  for (var i = 0; i < qs.length; i++) {
    if (!it || typeof it.question !== 'string' || !Array.isArray(it.options)) continue;
    for (var j = 0; j < it.options.length && j < 4; j++) {
      if (typeof it.options[j] === 'string') opts.push(str(it.optioM
    if (opts.length < 2 || typeof it.answer !== 'string') continue;
    if (opts.indexOf(str(it.answer, 300)) === -1) continue;
    out.questions.push({ question: str(it.question, 600), options: opts, answer: str(it.answer, 300) });
  return out.questions.length ? out : null;
/* Strong's numbers appear in some source texts ("God430").
   Only strip them when the pack says they're present, so we
   never mangle a clean text. */
function cleanVerseText(text) {
  var c = text.replace(/([a-zAM
-Z.,;:!?'")])(\d{2,5})/g, '$1');
  c = c.replace(/\s\d{3,5}(?=\s)/g, ' ');
  c = c.replace(/^\d{3,5}\s/, '');
  return c.replace(/\s{2,}/g, ' ').trim();
/* ------------------------------------------------------------
   5. FINDING THE PACKS BY THEMSELVES
   The collections are inscribed as CHILDREN of this file. That means
   this file can simply ask the chain what belongs to it:
       /r/children/<this inscription id>
   Nothing is hard-coded, nothing is edited between inscriptions, and
   any collection inM
scribed later shows up on its own. It is also the
   security boundary: only whoever holds this inscription can create a
   child of it, so "is a child of the engine" is an on-chain signature,
   not a config file anyone could edit.
------------------------------------------------------------ */
  return GATEWAY ? GATEWAY.replace(/\/content\/?$/, '/r/') : '/r/';
/* On an ord server this file lives at /content/<id>, which is the
   simplest way for an inscription to learn its own id. */
  var m = /\/content\/([0-9a-f]{64}i\d+)/i.exec(location.pathname);
  if (m) return m[1];
  if (ENGINE_ID && INSCRIPTION_ID_RE.test(ENGINE_ID)) return ENGINE_ID;
function fetchChildIds(ref) {
  var ids = [], page = 0;
    return fetch(rBase() + 'children/' + ref + '/' + page, { credentials: 'omit' })
      .then(function (r) { if (!r.ok) throw new Error('HTTP ' + r.status); return r.json(); })
      .then(function (d) {
        var got = (d && d.ids) || [];
  for (var i = 0; i < got.length; i++) {
          if (INSCRIPTION_ID_RE.test(got[i])) ids.push(got[i]);
        if (d && d.more && page < 9) { page++; return next(); }
/* Only worth asking the chain when there is a chain to ask. A saved copy
   already carries its scripture, and a file:// page has no ord server
 either way the lookup would just fail noisily. */
function canDiscover() {
  if (state.fromSeed) return false;
.protocol === 'file:') return false;
function discoverPacks() {
  if (!canDiscover()) return Promise.resolve([]);
  // Some ord versions accept the literal "self"; if not, fall back to the
  // id read from the URL. Either way the answer comes from the chain.
  var refs = [], own = selfRef();
  refs.push('self');
  if (own) refs.push(own);
  function attempt() {
    if (i >= refs.length) return Promise.resolve([]);
    var ref = refs[i++];
    return fetchChildIds(ref)
ction (ids) { return ids.length ? ids : attempt(); })
      .catch(function () { return attempt(); });
/* Children come back in the order they were inscribed, so the first child
   is the first collection. The SHA-256 check afterwards is what actually
   confirms the pairing, so a wrong guess here is corrected, not trusted. */
function applyDiscovered(ids) {
  var slot = 0, added = 0;
  for (var i = 0; i < ids.length; i++) {
    while (slot < PACK_INDEX.length && PACK_INDEX[slot].inscriptM
    if (slot < PACK_INDEX.length) {
      PACK_INDEX[slot].inscription = ids[i];
      slot++; added++;
      // A collection inscribed after this app was made. It describes
      // itself, so its real name appears once it is loaded.
      PACK_INDEX.push({
        id: 'found-' + ids[i].slice(0, 8), name: 'New collection',
        range: 'Added to the chain later', books: [], bytes: 0, dl: 0,
        sha256: '', inscription: ids[i]
------------------------------------------------------------
   6. RECURSIVE PACK LOADING
------------------------------------------------------------ */
function contentUrl(id) {
  if (!INSCRIPTION_ID_RE.test(id)) throw new Error('Not a valid inscription id');
  return GATEWAY ? GATEWAY + id : '/content/' + id;   // relative on purpose
/* ord serves --compress inscriptions with Content-Encoding: gzip
   and the browser unpacks them for us. A few gateways forget the
   header, so if the bytes still look like gziM
   ourselves rather than failing. */
function readBody(res) {
  return res.arrayBuffer().then(function (buf) {
    var b = new Uint8Array(buf);
    if (b.length > 2 && b[0] === 0x1f && b[1] === 0x8b && typeof DecompressionStream === 'undefined') {
      // Safari only gained DecompressionStream in 16.4. If the server sent
      // gzip without the header and we can't unpack it, say so plainly
      // rather than failing on a JSON parse error.
      throw new Error('this browser is too old to unpacM
k compressed collections (needs iOS 16.4+)');
    if (b.length > 2 && b[0] === 0x1f && b[1] === 0x8b && typeof DecompressionStream !== 'undefined') {
      var ds = new DecompressionStream('gzip');
      return new Response(new Blob([b]).stream().pipeThrough(ds)).arrayBuffer()
        .then(function (out) { return { bytes: new Uint8Array(out), raw: b }; });
    return { bytes: b, raw: b };
function sha256Hex(bytes) {
  if (!self.crypto || !self.crypto.subtle) return Promise.resolve(null);
urn crypto.subtle.digest('SHA-256', bytes).then(function (h) {
    return Array.prototype.map.call(new Uint8Array(h), function (x) {
      return ('0' + x.toString(16)).slice(-2);
  }).catch(function () { return null; });
function fetchPack(pack, onProgress) {
  var url = contentUrl(pack.inscription);
  if (onProgress) onProgress(0.05);
  return fetch(url, { credentials: 'omit', redirect: 'error' })
    .then(function (res) {
      if (!res.ok) throw new Error('HTTP ' + res.status);
Progress) onProgress(0.5);
      return readBody(res);
    .then(function (r) {
      if (onProgress) onProgress(0.8);
      // Integrity. Every collection this app was built with has a known
      // SHA-256. If the bytes match a DIFFERENT one than expected, the
      // discovery order was simply off and we re-pair rather than fail.
      // If they match none of them, something served altered scripture.
      return sha256Hex(r.bytes).then(function (hex) {
        var known = PACK_INDEX.filter(function (pM
) { return p.sha256; });
        if (known.length && hex) {
          var hit = null;
          for (var i = 0; i < known.length; i++) if (known[i].sha256 === hex) hit = known[i];
          if (!hit && pack.sha256) throw new Error('Content does not match any known hash');
          if (hit && hit !== pack && pack.sha256) {
            var tmp = hit.inscription; hit.inscription = pack.inscription; pack.inscription = tmp;
            pack = hit;
        return { data: JSON.parse(new TextDecoder(M
).decode(r.bytes)), pack: pack };
    .then(function (res) {
      if (onProgress) onProgress(1);
function ingestPack(data, packId) {
  if (!data || data.format !== 'LAMB_PACK_v1') throw new Error('Not a LAMB pack');
  var strongs = data.strongs === true;
  var books = Array.isArray(data.books) ? data.books.slice(0, LIMITS.books) : [];
  for (var i = 0; i < books.length; i++) {
    var b = validBook(books[i]);
    if (!b) continue;
    for (var c = 0; c < b.chapters.length; c++) {
        for (var v = 0; v < b.chapters[c].verses.length; v++) {
          b.chapters[c].verses[v].text = cleanVerseText(b.chapters[c].verses[v].text);
    state.books[b.book] = b; added++;
  var quizzes = Array.isArray(data.quizzes) ? data.quizzes.slice(0, LIMITS.books) : [];
  for (var k = 0; k < quizzes.length; k++) {
    var q = validQuiz(quizzes[k]);
    if (q) state.quizzes[q.book] = q;
    state.loadedPacks[packIM
    var entry = packById(packId);
      if (typeof data.name === 'string' && data.name) entry.name = str(data.name, 60);
      if (typeof data.range === 'string' && data.range) entry.range = str(data.range, 80);
      if (!entry.books.length) {
        entry.books = books.map(function (b) { return b && b.book; }).filter(Boolean);
/* A collection counts as present when every book in it is in memory
   however it arrived: fetched from the chain, impM
orted from a file, or
   baked into a saved copy. Without this a saved copy still offers to
   "load" scripture it is already carrying. */
function reconcilePacks() {
  for (var i = 0; i < PACK_INDEX.length; i++) {
    var p = PACK_INDEX[i];
    if (!p.books || !p.books.length) continue;
    for (var j = 0; j < p.books.length; j++) {
      if (!state.books[p.books[j]]) { all = false; break; }
    if (all) state.loadedPacks[p.id] = true;
function packById(id) {
  for (var i = 0; i < M
PACK_INDEX.length; i++) if (PACK_INDEX[i].id === id) return PACK_INDEX[i];
function loadPack(packId) {
  var pack = packById(packId);
  if (!pack) return Promise.resolve();
  if (state.loadedPacks[packId]) return Promise.resolve();
  var bar = document.querySelector('[data-progress="' + packId + '"] span');
  function prog(p) { if (bar) bar.style.width = Math.round(p * 100) + '%'; }
  // Cached from a previous visit?
  return DB.get('pack:' + packId).then(function (cached) {
    if (cached) { inM
gestPack(cached, packId); return 'cache'; }
    if (!pack.inscription) throw new Error('this collection is not on-chain yet');
    return fetchPack(pack, prog).then(function (res) {
      var target = res.pack || pack;
      ingestPack(res.data, target.id);
      return DB.set('pack:' + target.id, res.data).then(function () { return 'chain'; });
  }).then(function (src) {
    renderLibrary();
    showToast(pack.name + (src === 'cache' ? ' restored' : ' loaded from Bitcoin'));
  }).catch(function (e) {
    showToast('Could not load ' + pack.name + '
function loadAllPacks() {
  var chain = Promise.resolve();
  PACK_INDEX.forEach(function (p) {
    chain = chain.then(function () { return loadPack(p.id); });
  chain.then(function () { showToast('Library ready'); });
/* Restore anything cached, on boot. */
function restoreCache() {
  return DB.keys().then(function (keys) {
    var jobs = (keys || []).filter(function (k) { return String(k).indexOf('pack:') === 0; })
        return DB.get(k).then(function (d) {
          try { if (d) ingestPack(d, String(k).slice(5)); } catch (e) { }
    return Promise.all(jobs);
  }).catch(function () { });
/* ------------------------------------------------------------
------------------------------------------------------------ */
var BIBLE_BOOKS = [{"n":"Genesis","t":"o"},{"n":"Exodus","t":"o"},{"n":"Leviticus","t":"o"},{"n":"Numbers","t":"o"},{"n":"Deuteronomy","t":"o"},{"n":"M
Joshua","t":"o"},{"n":"Judges","t":"o"},{"n":"Ruth","t":"o"},{"n":"1 Samuel","t":"o"},{"n":"2 Samuel","t":"o"},{"n":"1 Kings","t":"o"},{"n":"2 Kings","t":"o"},{"n":"1 Chronicles","t":"o"},{"n":"2 Chronicles","t":"o"},{"n":"Ezra","t":"o"},{"n":"Nehemiah","t":"o"},{"n":"Esther","t":"o"},{"n":"Job","t":"o"},{"n":"Psalms","t":"o"},{"n":"Proverbs","t":"o"},{"n":"Ecclesiastes","t":"o"},{"n":"Song of Solomon","t":"o"},{"n":"Isaiah","t":"o"},{"n":"Jeremiah","t":"o"},{"n":"Lamentations","t":"o"},{"n":"Ezekiel","t":"o"},{"n"M
:"Daniel","t":"o"},{"n":"Hosea","t":"o"},{"n":"Joel","t":"o"},{"n":"Amos","t":"o"},{"n":"Obadiah","t":"o"},{"n":"Jonah","t":"o"},{"n":"Micah","t":"o"},{"n":"Nahum","t":"o"},{"n":"Habakkuk","t":"o"},{"n":"Zephaniah","t":"o"},{"n":"Haggai","t":"o"},{"n":"Zechariah","t":"o"},{"n":"Malachi","t":"o"},{"n":"Matthew","t":"n"},{"n":"Mark","t":"n"},{"n":"Luke","t":"n"},{"n":"John","t":"n"},{"n":"Acts","t":"n"},{"n":"Romans","t":"n"},{"n":"1 Corinthians","t":"n"},{"n":"2 Corinthians","t":"n"},{"n":"Galatians","t":"n"},{"n":"M
Ephesians","t":"n"},{"n":"Philippians","t":"n"},{"n":"Colossians","t":"n"},{"n":"1 Thessalonians","t":"n"},{"n":"2 Thessalonians","t":"n"},{"n":"1 Timothy","t":"n"},{"n":"2 Timothy","t":"n"},{"n":"Titus","t":"n"},{"n":"Philemon","t":"n"},{"n":"Hebrews","t":"n"},{"n":"James","t":"n"},{"n":"1 Peter","t":"n"},{"n":"2 Peter","t":"n"},{"n":"1 John","t":"n"},{"n":"2 John","t":"n"},{"n":"3 John","t":"n"},{"n":"Jude","t":"n"},{"n":"Revelation","t":"n"}];
function bookCount() { return Object.keys(state.books).length; }
nction renderLibrary() {
  renderBookmarks();
function renderResume() {
  var host = $('resumeBar'); clear(host);
  var last = state.lastRead;
  if (!last || !state.books[last.book]) return;
  var book = state.books[last.book];
  var ch = book.chapters[last.chapter];
  var first = ch.verses[0] ? ch.verses[0].text : '';
  host.appendChild(el('div', { class: 'resume-card', role: 'button', tabindex: '0',
                              'data-act': 'resume', 'data-book': last.book, 'data-ch': last.chapter }, [
      el('div', { class: 'resume-label', text: 'CONTINUE READING' }),
      el('div', { class: 'resume-ref', text: book.book + ' ' + ch.chapter })
    el('div', { class: 'resume-snippet', text: first }),
    el('button', { class: 'pack-btn', 'data-act': 'resume', 'data-book': last.book, 'data-ch': last.chapter, text: 'OPEN' })
function renderBookmarks() {
  var host = $('booM
kmarksContainer'); clear(host);
  if (!state.bookmarks.length) return;
  var group = el('div', { class: 'bm-group testament-group' }, [
    el('div', { class: 'testament-title', text: 'Bookmarks' })
  state.bookmarks.slice().reverse().slice(0, 40).forEach(function (b) {
    if (!state.books[b.book]) return;
    group.appendChild(el('div', {
      class: 'bm-row', role: 'button', tabindex: '0', 'data-act': 'goto-verse',
      'data-book': b.book, 'data-ch': b.chapter, 'data-vi': b.vi
{ class: 'bm-ref', text: b.book + ' ' + b.chapterLabel + ':' + b.verse }),
      el('span', { class: 'bm-text', text: b.text }),
      el('button', { class: 'bm-del', 'data-act': 'bm-del', 'data-ref': b.book + '|' + b.chapterLabel + '|' + b.verse,
                     'aria-label': 'Remove bookmark', text: '
  host.appendChild(group);
function removeBookmarkByRef(ref) {
  var parts = String(ref).split('|');
  state.bookmarks = state.bookmarks.filter(function (b) {
    return !(b.book === parM
ts[0] && String(b.chapterLabel) === parts[1] && String(b.verse) === parts[2]);
  renderBookmarks();
  markBookmarkedVerses();
  showToast('Bookmark removed');
function renderPacks() {
  var host = $('packsContainer');
  var pending = PACK_INDEX.some(function (p) { return p.inscription && !state.loadedPacks[p.id]; });
  var toolbar = el('div', { class: 'dl-toolbar', style: 'justify-content:center;margin-bottom:22px' }, [
    pending ? el('button', { class: 'pack-btn', 'dataM
-act': 'load-all', text: 'LOAD ENTIRE BIBLE' }) : null,
    el('button', { class: 'pack-btn', 'data-act': 'open-download', text: 'DOWNLOAD' }),
    el('button', { class: 'pack-btn', 'data-act': 'import', text: 'IMPORT JSON' }),
    el('button', { class: 'pack-btn', 'data-act': 'backup', text: 'BACKUP PROGRESS' }),
    el('button', { class: 'pack-btn', 'data-act': 'restore', text: 'RESTORE' }),
    state.fromSeed ? null : el('button', { class: 'danger-btn', 'data-act': 'clear', text: 'CLEAR ALL' })
  var grid = el('div', { class: 'pack-grid' });
  PACK_INDEX.forEach(function (p) {
    var loaded = !!state.loadedPacks[p.id];
    var card = el('div', { class: 'pack-card' + (loaded ? ' loaded' : '') });
    card.appendChild(el('div', { class: 'pack-card-name', text: p.name }));
    card.appendChild(el('div', { class: 'pack-card-range', text: p.range }));
    card.appendChild(el('div', {
      class: 'pack-card-meta',
      text: (p.books.length ? p.books.length + ' BOOKS
   (p.dl ? fmtBytes(p.dl) + '
            (p.inscription ? 'ON-CHAIN' : (loaded ? 'IN THIS FILE' : 'NOT INSCRIBED YET'))
    var actions = el('div', { class: 'pack-card-actions' });
      actions.appendChild(el('button', { class: 'pack-btn done', disabled: 'disabled',
        text: p.inscription ? '
      actions.appendChild(el('button', { class: 'pack-btn', 'data-act': 'dl-pack', 'data-pack': p.id, text: 'SAVE FILE' }));
      if (p.inscriptM
        actions.appendChild(el('button', { class: 'pack-btn', 'data-act': 'unload', 'data-pack': p.id, text: 'REMOVE' }));
    } else if (p.inscription) {
      actions.appendChild(el('button', { class: 'pack-btn', 'data-act': 'load', 'data-pack': p.id, text: 'LOAD' }));
      actions.appendChild(el('button', { class: 'pack-btn', 'data-act': 'import', text: 'IMPORT FILE' }));
    card.appendChild(actions);
    if (!loaded) card.appendChild(el('div', { class: 'pack-progress', 'data-M
progress': p.id }, [el('span')]));
    grid.appendChild(card);
  host.appendChild(grid);
function renderBooks() {
  var host = $('booksContainer');
  if (!bookCount()) {
    host.appendChild(el('div', { class: 'empty-state' }, [
      el('div', { class: 'empty-icon', text: '
      el('div', { class: 'empty-text', text: 'Nothing loaded yet. Pick a collection above and it will be pulled straight off the Bitcoin blockchain.' })
  host.appendChild(testamentGroupM
('Old Testament', BIBLE_BOOKS.filter(function (b) { return b.t === 'o'; })));
  host.appendChild(testamentGroup('New Testament', BIBLE_BOOKS.filter(function (b) { return b.t === 'n'; })));
function testamentGroup(title, books) {
  var wrap = el('div', { class: 'testament-group' }, [el('div', { class: 'testament-title', text: title })]);
  var grid = el('div', { class: 'books-grid' });
  books.forEach(function (b) {
    var data = state.books[b.n], quiz = state.quizzes[b.n];
    var done = state.completedBooks.inM
    var cls = 'book-card' + (done ? ' completed' : '') + (quiz ? ' has-quiz' : '') + (!data && !quiz ? ' locked' : '');
    var card = el('div', (data || quiz) ? { class: cls, 'data-act': 'open', 'data-book': b.n, role: 'button', tabindex: '0' } : { class: cls }, [
      el('div', { class: 'book-card-name', text: b.n }),
      el('div', { class: 'book-card-chapters', text: data ? data.chapters.length + ' chapters' : 'Not loaded' }),
      quiz ? el('div', { class: 'book-card-quiz-count', text: quM
iz.questions.length + ' quiz questions' }) : null
    grid.appendChild(card);
  wrap.appendChild(grid);
function updateProgress() {
  var loaded = bookCount(), done = state.completedBooks.length;
  var label = loaded === 0 ? '0 / 66 Books' : (done > 0 ? loaded + ' Loaded
 ' + done + ' Complete' : loaded + ' / 66 Books Loaded');
  $('progressLabel').textContent = label;
  $('progressFill').style.width = (loaded / 66 * 100) + '%';
/* ----------------------------------------------M
   7A. DISPLAY SETTINGS
   Theme, text size and line spacing. All three come down to a
   couple of CSS variables, so nothing has to re-render.
------------------------------------------------------------ */
/* Colours are held as a hue and a saturation, not fixed hex codes, and
   the page background, panels, body text and accent are all derived
   from that one hue. It's why the whole reader re-tints together, and
   why adding a colour is two numbers rather than a block of CSS. */
 night:     { mode: 'dark',  bgL: 7,  surfL: 13, textL: 88, mutedL: 60,
               accL: 62, accLightL: 77, accDimL: 44, tint: 0.30, textTint: 0.16 },
  parchment: { mode: 'light', bgL: 91, surfL: 86, textL: 20, mutedL: 43,
               accL: 34, accLightL: 44, accDimL: 26, tint: 0.34, textTint: 0.22 },
  day:       { mode: 'light', bgL: 98, surfL: 95, textL: 14, mutedL: 42,
               accL: 38, accLightL: 48, accDimL: 30, tint: 0.26, textTint: 0.18 }
  { key: 'gold',    label: 'Gold',M
      h: 44,  s: 58 },
  { key: 'copper',  label: 'Copper',    h: 24,  s: 58 },
  { key: 'amber',   label: 'Amber',     h: 38,  s: 92 },
  { key: 'ember',   label: 'Ember',     h: 14,  s: 80 },
  { key: 'rose',    label: 'Rose',      h: 345, s: 48 },
  { key: 'crimson', label: 'Crimson',   h: 350, s: 88 },
  { key: 'hotpink', label: 'Neon Pink', h: 328, s: 100, neon: true },
  { key: 'magenta', label: 'Magenta',   h: 300, s: 100, neon: true },
  { key: 'violet',  label: 'Violet',    h: 265, s: 48 },
ric',label: 'Electric',  h: 272, s: 100, neon: true },
  { key: 'indigo',  label: 'Indigo',    h: 232, s: 74 },
  { key: 'sky',     label: 'Sky',       h: 205, s: 52 },
  { key: 'azure',   label: 'Azure',     h: 210, s: 96 },
  { key: 'cyan',    label: 'Neon Cyan', h: 187, s: 100, neon: true },
  { key: 'mint',    label: 'Mint',      h: 165, s: 88 },
  { key: 'sage',    label: 'Sage',      h: 145, s: 32 },
  { key: 'emerald', label: 'Emerald',   h: 152, s: 80 },
  { key: 'lime',    label: 'Neon Lime', h: 88,  s: 10M
  { key: 'stone',   label: 'Stone',     h: 40,  s: 7 }
  classic: { label: 'Classic',    body: "'Iowan Old Style','Palatino Linotype',Palatino,Georgia,'Times New Roman',serif",
             display: "'Optima','Palatino Linotype',Palatino,'Book Antiqua',Georgia,serif" },
  book:    { label: 'Book',       body: "Georgia,'Times New Roman',Times,serif",
             display: "Georgia,'Times New Roman',Times,serif" },
  modern:  { label: 'Modern',     body: "-apple-system,BlinkMacSysteM
mFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif",
             display: "-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif" },
  mono:    { label: 'Typewriter', body: "'Courier New',Courier,monospace",
             display: "'Courier New',Courier,monospace" }
function accentByKey(k) {
  for (var i = 0; i < ACCENTS.length; i++) if (ACCENTS[i].key === k) return ACCENTS[i];
  return ACCENTS[0];
function hsl(h, s, l, a) {
  return 'hsl' + (a === undefined ? '' : 'a') +M
 '(' + h + ',' + Math.round(s) + '%,' +
         Math.round(l) + '%' + (a === undefined ? '' : ',' + a) + ')';
function palette() {
  var st = state.settings;
  var t = THEMES[st.theme] || THEMES.night;
  var a = accentByKey(st.accent);
  var bgL = (a.neon && t.mode === 'dark') ? 4 : t.bgL;
  var surfL = (a.neon && t.mode === 'dark') ? 10 : t.surfL;
  var tintS = Math.min(a.s * t.tint, a.s);
    mode: t.mode, h: a.h, s: a.s, neon: !!a.neon,
    bg:      hsl(a.h, tintS, bgL),
    edge:    hsl(a.h, tintM
S, t.mode === 'dark' ? Math.max(0, bgL - 4) : bgL - 3),
    surface: hsl(a.h, tintS * 0.92, surfL),
    header:  hsl(a.h, tintS, t.mode === 'dark' ? Math.max(0, bgL - 2) : bgL - 1),
    text:    hsl(a.h, Math.min(a.s * t.textTint, 26), t.textL),
    muted:   hsl(a.h, Math.min(a.s * 0.32, 30), t.mutedL),
    accent:      hsl(a.h, a.s, t.accL),
    accentLight: hsl(a.h, a.s, t.accLightL),
    accentDim:   hsl(a.h, a.s * 0.72, t.accDimL),
    font: FONTS[st.font] || FONTS.classic
function applySettings() {
ar st = state.settings, p = palette(), r = document.documentElement.style;
  document.documentElement.setAttribute('data-mode', p.mode);
  r.setProperty('--dark', p.bg);
  r.setProperty('--dark-mid', p.surface);
  r.setProperty('--header-bg', p.header);
  r.setProperty('--splash-edge', p.edge);
  r.setProperty('--text-light', p.text);
  r.setProperty('--brown-light', p.muted);
  r.setProperty('--gold', p.accent);
  r.setProperty('--gold-light', p.accentLight);
  r.setProperty('--gold-dark', p.accentDim);
perty('--body', p.font.body);
  r.setProperty('--display', p.font.display);
  r.setProperty('--accent', p.font.body);
  r.setProperty('--read-size', (1.15 * st.size / 100).toFixed(3) + 'rem');
  r.setProperty('--read-leading', String(st.leading));
  var meta = document.querySelector('meta[name="theme-color"]');
  if (meta) meta.setAttribute('content', p.bg);
function syncSettingsUI() {
  var st = state.settings;
  var t = $('themeChoices'), sp = $('spacingChoices'), sv = $('sizeValue'), f = $M
  if (t) markOn(t, '[data-theme]', 'data-theme', st.theme);
  if (sp) markOn(sp, '[data-spacing]', 'data-spacing', String(st.leading));
  if (f) markOn(f, '[data-font]', 'data-font', st.font);
  if (sv) sv.textContent = st.size + '%';
  var sw = $('accentChoices');
    var nodes = sw.querySelectorAll('[data-accent]');
    for (var i = 0; i < nodes.length; i++) {
      nodes[i].classList.toggle('on', nodes[i].getAttribute('data-accent') === st.accent);
function buildSwatchesM
  var host = $('accentChoices');
  if (!host) return;
  while (host.firstChild) host.removeChild(host.firstChild);
  var mode = (THEMES[state.settings.theme] || THEMES.night).mode;
  ACCENTS.forEach(function (a) {
    var b = el('button', { class: 'swatch' + (a.neon ? ' neon' : ''), 'data-accent': a.key,
                           'aria-label': a.label, title: a.label });
    b.style.background = hsl(a.h, a.s, mode === 'dark' ? 62 : 45);
    if (a.neon) b.style.boxShadow = '0 0 10px ' + hsl(a.h, a.s, 60, 0.85)M
    host.appendChild(b);
function markOn(host, sel, attr, value) {
  var nodes = host.querySelectorAll(sel);
  for (var i = 0; i < nodes.length; i++) {
    nodes[i].classList.toggle('on', nodes[i].getAttribute(attr) === value);
function setTheme(name) {
  if (!THEMES[name]) return;
  state.settings.theme = name;
  if (THEMES[name].mode === 'light') state.settings.lastLight = name;
  applySettings(); buildSwatches(); saveProgress();
function setAccent(key) {
key).key !== key) return;
  state.settings.accent = key; applySettings(); buildSwatches(); saveProgress();
function setFont(key) {
  if (!FONTS[key]) return;
  state.settings.font = key; applySettings(); saveProgress();
/* One tap flips night <-> the last light mode chosen, so someone who
   reads in Parchment gets Parchment back rather than plain Day. */
function toggleMode() {
  var st = state.settings;
  if ((THEMES[st.theme] || THEMES.night).mode === 'dark') st.theme = st.lastLight || 'parchment';
st.lastLight = st.theme; st.theme = 'night'; }
  applySettings(); buildSwatches(); saveProgress();
  showToast(THEMES[st.theme].mode === 'dark' ? 'Night' : 'Day');
function nudgeSize(step) {
  var n = Math.max(70, Math.min(220, state.settings.size + step));
  state.settings.size = n; applySettings(); saveProgress();
function setLeading(v) {
  var n = parseFloat(v);
  if (!(n >= 1.2 && n <= 3)) return;
  state.settings.leading = n; applySettings(); saveProgress();
/* ------------------------------------------M
   Everything loaded is already plain objects in memory, so this
   is a straight scan. A whole Bible is about 31,000 verses,
   which a phone walks through faster than it can repaint.
------------------------------------------------------------ */
var SEARCH_CAP = 400;
function testamentOf(name) {
  for (var i = 0; i < BIBLE_BOOKS.length; i++) {
    if (BIBLE_BOOKS[i].n === name) return BIBLE_BOOKS[i].t;
function searchVerses(query, scope) {
uery).toLowerCase().trim();
  if (q.length < 2) return { hits: [], total: 0, truncated: false };
  var hits = [], total = 0;
  var names = BIBLE_BOOKS.map(function (b) { return b.n; }).filter(function (n) { return state.books[n]; });
  if (scope === 'old') names = names.filter(function (n) { return testamentOf(n) === 'o'; });
  else if (scope === 'new') names = names.filter(function (n) { return testamentOf(n) === 'n'; });
  else if (scope === 'book') names = state.currentBook && state.books[state.currentBook] ? [M
state.currentBook] : names;
  for (var i = 0; i < names.length; i++) {
    var book = state.books[names[i]];
    for (var c = 0; c < book.chapters.length; c++) {
      var vs = book.chapters[c].verses;
      for (var v = 0; v < vs.length; v++) {
        var at = vs[v].text.toLowerCase().indexOf(q);
        if (at === -1) continue;
        if (hits.length < SEARCH_CAP) {
          hits.push({ book: book.book, chapter: c, chapterLabel: book.chapters[c].chapter,
                      verse: vs[v].verM
se, vi: v, text: vs[v].text, at: at, len: q.length });
  return { hits: hits, total: total, truncated: total > hits.length };
/* Build the highlighted snippet as text nodes plus a <mark>. The
   match position is already known, so no HTML is ever assembled
 a verse containing "<script>" stays text. */
function snippet(hit) {
  var wrap = el('div', { class: 'result-text' });
  var start = Math.max(0, hit.at - 90);
  var pre = (start > 0 ? '
' : '') + hit.text.sliM
  var mid = hit.text.slice(hit.at, hit.at + hit.len);
  var rest = hit.text.slice(hit.at + hit.len);
  var post = rest.slice(0, 140) + (rest.length > 140 ? '
  wrap.appendChild(document.createTextNode(pre));
  wrap.appendChild(el('mark', { text: mid }));
  wrap.appendChild(document.createTextNode(post));
function renderSearch() {
  var q = $('searchInput').value;
  var host = $('searchResults'); clear(host);
  var status = $('searchStatus');
  if (!bookCount()) {
 status.textContent = 'Nothing is loaded yet. Load a collection from the library first.';
  if (String(q).trim().length < 2) {
    status.textContent = 'Type at least two letters.';
  var t0 = Date.now();
  var res = searchVerses(q, state.searchScope);
  var ms = Date.now() - t0;
    status.textContent = 'No verse contains that.';
  status.textContent = res.total.toLocaleString() + (res.total === 1 ? ' verse' : ' verses') +
    ' in ' + ms + ' msM
' + (res.truncated ? '
 showing the first ' + res.hits.length : '');
  var frag = document.createDocumentFragment();
  res.hits.forEach(function (h) {
    var row = el('div', {
      class: 'result', role: 'button', tabindex: '0', 'data-act': 'goto-verse',
      'data-book': h.book, 'data-ch': h.chapter, 'data-vi': h.vi
    }, [el('div', { class: 'result-ref', text: h.book + ' ' + h.chapterLabel + ':' + h.verse })]);
    row.appendChild(snippet(h));
    frag.appendChild(row);
  host.appendChild(frag);
ar searchTimer = null;
function onSearchInput() {
  clearTimeout(searchTimer);
  searchTimer = setTimeout(renderSearch, 120);
function openSearch() {
  showPage('search');
  markOn($('searchFilters'), '[data-scope]', 'data-scope', state.searchScope);
  $('scopeBookBtn').textContent = state.currentBook ? state.currentBook.toUpperCase() : 'THIS BOOK';
  $('scopeBookBtn').disabled = !state.currentBook;
  $('searchInput').focus();
function setScope(scope) {
  state.searchScope = scope;
$('searchFilters'), '[data-scope]', 'data-scope', scope);
function gotoVerse(bookName, chapterIdx, verseIdx) {
  if (!state.books[bookName]) return;
  state.currentBook = bookName;
  state.currentChapter = chapterIdx;
  if (!state.readChapters[bookName]) state.readChapters[bookName] = [];
  showPage('reading');
  highlightVerse(verseIdx, true);
function highlightVerse(vi, scroll) {
  var node = document.querySelector('#verseContent .verse[data-vi="' + vi + '"]');
  node.classList.add('targeted');
  if (scroll) node.scrollIntoView({ block: 'center', behavior: 'smooth' });
  setTimeout(function () { node.classList.remove('targeted'); }, 2600);
/* ------------------------------------------------------------
   #John.3.16 opens that verse. Sharing a verse shares this.
------------------------------------------------------------ */
function verseHash(bookName, chapterLabel, verse) {
  return '#' + encodeURIComponent(bookName.replace(/ /g, '_')) +M
 '.' + chapterLabel + '.' + verse;
function applyHash() {
  var h = decodeURIComponent(String(location.hash || '').replace(/^#/, ''));
  if (!h) return false;
  var m = /^(.+)\.(\w+)\.(\w+)$/.exec(h);
  if (!m) return false;
  var name = m[1].replace(/_/g, ' ');
  var book = state.books[name];
  if (!book) return false;
  for (var c = 0; c < book.chapters.length; c++) {
    if (String(book.chapters[c].chapter) !== String(m[2])) continue;
    var vs = book.chapters[c].verses;
    for (var v = 0; v < vs.length; v+M
      if (String(vs[v].verse) === String(m[3])) {
        gotoVerse(name, c, v);
        return true;
/* ------------------------------------------------------------
   7D. VERSE ACTIONS
 copy, share, bookmark, speak
------------------------------------------------------------ */
function currentVerse() {
  var s2 = state.sheetVerse;
  if (!s2) return null;
  var book = state.books[s2.book];
  if (!book || !book.chapters[s2.chapter]) return null;
r ch = book.chapters[s2.chapter];
  var v = ch.verses[s2.vi];
  if (!v) return null;
  return { book: book.book, chapterLabel: ch.chapter, verse: v.verse, text: v.text, vi: s2.vi, chapter: s2.chapter };
function refOf(v) { return v.book + ' ' + v.chapterLabel + ':' + v.verse; }
function openVerseSheet(vi) {
  state.sheetVerse = { book: state.currentBook, chapter: state.currentChapter, vi: vi };
  var v = currentVerse();
  $('verseRef').textContent = refOf(v);
  $('verseText').textContent = v.tM
  $('vBookmark').textContent = isBookmarked(v) ? 'REMOVE BOOKMARK' : 'BOOKMARK';
  $('vShare').style.display = navigator.share ? '' : 'none';
  $('verseSheet').classList.add('open');
function copyText(text) {
  if (navigator.clipboard && navigator.clipboard.writeText) {
    return navigator.clipboard.writeText(text).then(function () { showToast('Copied'); })
      .catch(function () { legacyCopy(text); });
  return Promise.resolve();
/* iOS needs more than select(). A readonly textM
area is not selectable
   there, and select() alone doesn't set a range Safari will copy, so
   this uses a contenteditable span with an explicit Range. Also note
   navigator.clipboard is unavailable on file:// and plain http, which
   is exactly where a saved copy runs
 so this path matters. */
function legacyCopy(text) {
  var host = document.createElement('span');
  host.textContent = text;
  host.contentEditable = 'true';
  host.style.cssText = 'position:fixed;top:0;left:0;opacity:0;white-space:pre;' +
                   'user-select:text;-webkit-user-select:text;font-size:16px';
  document.body.appendChild(host);
    var sel = window.getSelection();
    var range = document.createRange();
    range.selectNodeContents(host);
    sel.removeAllRanges();
    sel.addRange(range);
    host.setSelectionRange && host.setSelectionRange(0, text.length);
    ok = document.execCommand('copy');
    sel.removeAllRanges();
  } catch (e) { ok = false; }
  document.body.removeChild(host);
ok ? 'Copied' : 'Copy is blocked here
 press and hold the verse instead');
function verseActions(act) {
  var v = currentVerse();
  var quoted = '"' + v.text + '"\n
 ' + refOf(v) + ' (KJV)';
  if (act === 'v-copy') { copyText(quoted); return; }
  if (act === 'v-link') {
    var url = location.origin + location.pathname + verseHash(v.book, v.chapterLabel, v.verse);
    copyText(url); return;
  if (act === 'v-share') {
    if (!navigator.share) { copyText(quoted); return; }
.share({ title: refOf(v), text: quoted }).catch(function () { });
  if (act === 'v-bookmark') { toggleBookmark(v); $('vBookmark').textContent = isBookmarked(v) ? 'REMOVE BOOKMARK' : 'BOOKMARK'; return; }
  if (act === 'v-speak') { $('verseSheet').classList.remove('open'); speakFrom(v.vi); return; }
function isBookmarked(v) {
  return state.bookmarks.some(function (b) {
    return b.book === v.book && String(b.verse) === String(v.verse) && String(b.chapterLabel) === String(v.chapterLabel);
function toggleBookmark(v) {
  if (isBookmarked(v)) {
    state.bookmarks = state.bookmarks.filter(function (b) {
      return !(b.book === v.book && String(b.verse) === String(v.verse) && String(b.chapterLabel) === String(v.chapterLabel));
    showToast('Bookmark removed');
    state.bookmarks.push({ book: v.book, chapter: v.chapter, chapterLabel: v.chapterLabel, verse: v.verse, vi: v.vi, text: v.text });
    showToast('Bookmarked ' + refOf(v));
  markBookmarkedVerses();
function markBookmarkedVerses() {
  var nodes = document.querySelectorAll('#verseContent .verse');
  for (var i = 0; i < nodes.length; i++) {
    var vi = parseInt(nodes[i].getAttribute('data-vi'), 10);
    var book = state.books[state.currentBook];
    if (!book) return;
    var ch = book.chapters[state.currentChapter];
    var v = ch && ch.verses[vi];
    nodes[i].classList.toggle('bookmarked', !!(v && isBookmarked({
      book: book.book, chapterLabel: ch.chapter, verse: v.verse
-------------------------------------------------
   speechSynthesis ships with iOS, Android and desktop and needs
   no network. Two quirks it has to work around: iOS will only
   start from inside a real tap, and it stops when the screen
   locks, so the bar stays visible as a way back in.
------------------------------------------------------------ */
var speech = { on: false, queue: [], at: 0, primed: false };
function speechAvailable() { return typeof speechSynthesis !== 'undefined' && typeoM
f SpeechSynthesisUtterance !== 'undefined'; }
function speakFrom(vi) {
  if (!speechAvailable()) { showToast('This browser cannot read aloud'); return; }
  // iOS won't start speaking unless the very first speak() call happens
  // inside the tap that triggered it, and it silently drops the queue when
  // the screen locks. Priming with an empty utterance unlocks the engine.
  try { if (!speech.primed) { speechSynthesis.speak(new SpeechSynthesisUtterance('')); speech.primed = true; } } catch (e) { }
tate.books[state.currentBook];
  if (!book) return;
  var ch = book.chapters[state.currentChapter];
  speech.queue = [];
  for (var i = vi; i < ch.verses.length; i++) {
    speech.queue.push({ vi: i, verse: ch.verses[i].verse, text: ch.verses[i].text });
  speech.at = 0; speech.on = true;
  speechSynthesis.cancel();
  $('speakBar').hidden = false;
  $('speakToggle').textContent = 'PAUSE';
function speakNext() {
  if (!speech.on || speech.at >= speech.queue.length) { stopSpeak(); return; }
r item = speech.queue[speech.at];
  var u = new SpeechSynthesisUtterance(item.text);
  u.onend = function () { speech.at++; speakNext(); };
  u.onerror = function () { stopSpeak(); };
  var nodes = document.querySelectorAll('#verseContent .verse');
  for (var i = 0; i < nodes.length; i++) nodes[i].classList.remove('speaking');
  var node = document.querySelector('#verseContent .verse[data-vi="' + item.vi + '"]');
    node.classList.add('speaking');
    node.scrollIntoView({ block: 'ceM
nter', behavior: 'smooth' });
  var book = state.books[state.currentBook];
  var ch = book && book.chapters[state.currentChapter];
  $('speakLabel').textContent = book ? book.book + ' ' + ch.chapter + ':' + item.verse : '';
  speechSynthesis.speak(u);
function toggleSpeak() {
  if (!speechAvailable()) return;
  // pause()/resume() are unreliable on iOS, so there we stop and restart
  // from the verse we had reached instead of pretending it paused.
    if (speech.on) {
      speech.paused = M
true; speech.on = false;
      speechSynthesis.cancel();
      $('speakToggle').textContent = 'RESUME';
    } else if (speech.paused) {
      speech.paused = false; speech.on = true;
      $('speakToggle').textContent = 'PAUSE';
  if (speechSynthesis.paused) { speechSynthesis.resume(); $('speakToggle').textContent = 'PAUSE'; }
  else { speechSynthesis.pause(); $('speakToggle').textContent = 'RESUME'; }
function stopSpeak() {
  speech.on = false; speech.queue = []; speech.M
  if (speechAvailable()) speechSynthesis.cancel();
  $('speakBar').hidden = true;
  var nodes = document.querySelectorAll('#verseContent .verse');
  for (var i = 0; i < nodes.length; i++) nodes[i].classList.remove('speaking');
/* ------------------------------------------------------------
------------------------------------------------------------ */
function showPage(which) {
  $('bookSelector').style.display = which === 'library' ? 'block' : 'none';
  $('readingPage').classList.toggle('M
active', which === 'reading');
  $('quizPage').classList.toggle('active', which === 'quiz');
  $('searchPage').classList.toggle('active', which === 'search');
  if (which !== 'reading') stopSpeak();
  window.scrollTo(0, 0);
function showBookSelector() { showPage('library'); renderLibrary(); }
function openBook(name, chapterIdx) {
  state.currentBook = name;
  if (!state.books[name] && state.quizzes[name]) { openQuiz(name); return; }
  if (!state.books[name]) return;
  var total = state.books[name].chapters.lengM
  state.currentChapter = (typeof chapterIdx === 'number' && chapterIdx >= 0 && chapterIdx < total) ? chapterIdx : 0;
  if (!state.readChapters[name]) state.readChapters[name] = [];
  showPage('reading');
function renderReading() {
  var book = state.books[state.currentBook];
  if (!book) { showBookSelector(); return; }
  var chapter = book.chapters[state.currentChapter];
  var total = book.chapters.length;
  $('readingBookName').textContent = book.book;
  $('readingChapterLabel').textContM
ent = 'Chapter ' + chapter.chapter + ' of ' + total;
  var actions = $('readingActions'); clear(actions);
  var quiz = state.quizzes[state.currentBook];
    var best = state.bestScores[state.currentBook];
    actions.appendChild(el('button', {
      class: 'app-nav-btn', 'data-act': 'quiz', 'data-book': state.currentBook,
 QUIZ (' + quiz.questions.length + ')' + (best !== undefined ? '
 BEST ' + best + '%' : '')
  if (speechAvailable()) {
    actions.appendChild(el('buM
tton', { class: 'app-nav-btn', 'data-act': 'listen', text: '
  actions.appendChild(el('button', { class: 'app-nav-btn', 'data-act': 'search-book', text: '
 SEARCH THIS BOOK' }));
  actions.appendChild(el('button', { class: 'app-nav-btn', 'data-act': 'dl-book', 'data-book': state.currentBook, text: '
 SAVE THIS BOOK' }));
  // Psalms has 150 chapters. Shown as an open grid that buries the
  // text on a phone, so anything long starts folded away.
  var many = total > 20;
  actions.appendChilM
    class: 'app-nav-btn', 'data-act': 'toggle-chapters', id: 'chaptersToggle',
    'aria-expanded': many ? 'false' : 'true',
 ') + 'CHAPTERS (' + total + ')'
  var nav = $('chapterNav'); clear(nav);
  nav.className = 'chapter-nav' + (many ? ' collapsed' : '');
  var read = state.readChapters[state.currentBook] || [];
  var navFrag = document.createDocumentFragment();
  book.chapters.forEach(function (ch, i) {
    var cls = 'chapter-btn' + (i === state.currentCM
hapter ? ' active' : '') + (read.indexOf(i) !== -1 ? ' read' : '');
    navFrag.appendChild(el('button', { class: cls, 'data-act': 'chapter', 'data-i': i, text: String(ch.chapter) }));
  nav.appendChild(navFrag);
  var content = $('verseContent'); clear(content);
  var frag = document.createDocumentFragment();
  chapter.verses.forEach(function (v, i) {
    frag.appendChild(el('div', {
      class: 'verse', 'data-act': 'verse', 'data-vi': i,
      role: 'button', tabindex: '0',
      'aria-label': book.book +M
 ' ' + chapter.chapter + ':' + v.verse
      el('span', { class: 'verse-num', text: v.verse + ' ' }),
  content.appendChild(frag);
  markBookmarkedVerses();
  // Remember where we are so the shelf can offer to continue.
  state.lastRead = { book: book.book, chapter: state.currentChapter, chapterLabel: chapter.chapter };
  try { localStorage.setItem(LS_KEYS.lastRead, JSON.stringify(state.lastRead)); } catch (e) { }
  if (read.indexOf(state.currentChapter) === -1) {
h(state.currentChapter);
    state.readChapters[state.currentBook] = read;
  $('prevChapterBtn').disabled = state.currentChapter === 0;
  $('nextChapterBtn').disabled = state.currentChapter >= total - 1;
  $('finishBookBtn').style.display = quiz ? 'inline-block' : 'none';
function toggleChapters() {
  var nav = $('chapterNav'), btn = $('chaptersToggle');
  var open = nav.classList.toggle('collapsed') === false;
    btn.setAttribute('aria-expanded', open ? 'true' : 'false');
    btn.textContent = (open ? '
 ') + btn.textContent.replace(/^[
    var active = nav.querySelector('.chapter-btn.active');
    if (active) active.scrollIntoView({ block: 'nearest', inline: 'center' });
function goToChapter(i) {
  var book = state.books[state.currentBook];
  if (!book || i < 0 || i >= book.chapters.length) return;
  state.currentChapter = i;
  window.scrollTo(0, 0);
/* ----------------------------------------M
--------------------
   Options are built as DOM nodes with an index in a data
   attribute. The old build interpolated option text into an
   inline onclick string, which a crafted quiz file could break
   out of. This cannot.
------------------------------------------------------------ */
function openQuiz(name) {
  var quiz = state.quizzes[name];
  if (!quiz) { showToast('No quiz loaded for ' + name); return; }
  state.currentBook = name;
  $('quizBookLabel').textContent = name;
  $('quizTotalLabel').M
textContent = quiz.questions.length + ' questions available';
  var sel = $('questionCount'); clear(sel);
  [5, 10, 20, 30, 50, quiz.questions.length].forEach(function (n, i, arr) {
    if (n > quiz.questions.length || arr.indexOf(n) !== i) return;
    sel.appendChild(el('option', { value: n, text: n + ' questions' }));
  if (!sel.options.length) sel.appendChild(el('option', { value: quiz.questions.length, text: quiz.questions.length + ' questions' }));
  $('quizSetup').style.display = 'block';
ive').style.display = 'none';
  $('quizResults').style.display = 'none';
function shuffle(a) {
  for (var i = a.length - 1; i > 0; i--) {
    var j = crypto.getRandomValues(new Uint32Array(1))[0] % (i + 1);
    var t = a[i]; a[i] = a[j]; a[j] = t;
function startQuiz() {
  var quiz = state.quizzes[state.currentBook];
  if (!quiz) return;
  var n = Math.min(parseInt($('questionCount').value, 10) || 10, quiz.questions.length);
  state.quizState = { questions: shuffle(quiz.quesM
tions.slice()).slice(0, n), i: 0, correct: 0, incorrect: 0, answered: false };
  $('quizSetup').style.display = 'none';
  $('quizActive').style.display = 'block';
  $('quizResults').style.display = 'none';
function renderQuestion() {
  var qs = state.quizState, q = qs.questions[qs.i];
  $('quizCounter').textContent = 'Question ' + (qs.i + 1) + ' of ' + qs.questions.length;
  $('scoreCorrect').textContent = '
  $('scoreIncorrect').textContent = '
markers = ['A', 'B', 'C', 'D'];
  var card = el('div', { class: 'quiz-question-card' }, [el('div', { class: 'quiz-question-text', text: q.question })]);
  var opts = el('div', { class: 'quiz-options' });
  q.options.forEach(function (opt, i) {
    opts.appendChild(el('div', { class: 'quiz-option', 'data-act': 'answer', 'data-i': i, role: 'button', tabindex: '0' }, [
      el('div', { class: 'option-marker', text: markers[i] }),
      el('span', { text: opt })
  card.appendChild(opts);
ild(el('div', { id: 'feedbackArea' }));
  var host = $('quizQuestionArea'); clear(host); host.appendChild(card);
  qs.answered = false;
function selectAnswer(idx) {
  var qs = state.quizState;
  if (!qs || qs.answered) return;
  qs.answered = true;
  var q = qs.questions[qs.i];
  var chosen = q.options[idx];
  var right = chosen === q.answer;
  if (right) qs.correct++; else qs.incorrect++;
  var nodes = document.querySelectorAll('#quizQuestionArea .quiz-option');
  for (var i = 0; i < nodes.length; i++) {
odes[i].classList.add('disabled');
    if (i === idx) nodes[i].classList.add(right ? 'selected-correct' : 'selected-incorrect');
    if (q.options[i] === q.answer && !right) nodes[i].classList.add('reveal-correct');
  $('scoreCorrect').textContent = '
  $('scoreIncorrect').textContent = '
  var fb = el('div', { class: 'quiz-feedback ' + (right ? 'correct' : 'incorrect') }, [
    el('span', { class: 'quiz-feedback-icon', text: right ? '
    el('span', { teM
xt: right ? 'Correct.' : 'The answer is: ' + q.answer })
  var next = el('button', { class: 'quiz-next-btn', 'data-act': 'next-q', text: qs.i < qs.questions.length - 1 ? 'NEXT QUESTION
  var area = $('feedbackArea'); clear(area); area.appendChild(fb); area.appendChild(next);
function nextQuestion() {
  var qs = state.quizState;
  if (qs.i < qs.questions.length - 1) { qs.i++; renderQuestion(); }
  else finishQuiz();
function finishQuiz() {
  var qs = state.quizState;
t = Math.round(qs.correct / qs.questions.length * 100);
  var name = state.currentBook;
  if (state.bestScores[name] === undefined || pct > state.bestScores[name]) state.bestScores[name] = pct;
  if (state.completedBooks.indexOf(name) === -1) state.completedBooks.push(name);
  var msg = pct >= 90 ? 'Excellent. You know this book well.'
    : pct >= 70 ? 'Well done. A solid grasp of the text.'
      : pct >= 50 ? 'A fair start. Another reading will sharpen it.'
        : 'Return to the text and trM
  var box = el('div', { class: 'quiz-results' }, [
    el('div', { class: 'results-score', text: pct + '%' }),
    el('div', { class: 'results-detail', text: qs.correct + ' correct
 ' + qs.incorrect + ' incorrect' }),
    el('div', { class: 'results-message', text: msg }),
    el('div', { class: 'best-score-badge', text: 'BEST: ' + state.bestScores[name] + '%' }),
    el('div', { class: 'results-actions', style: 'margin-top:28px' }, [
      el('button', { class: 'app-nav-btn', 'data-act': 'quiz', 'datM
a-book': name, text: 'TRY AGAIN' }),
      el('button', { class: 'app-nav-btn', 'data-act': 'home', text: 'BACK TO LIBRARY' })
  $('quizActive').style.display = 'none';
  var r = $('quizResults'); clear(r); r.appendChild(box); r.style.display = 'block';
  window.scrollTo(0, 0);
/* ------------------------------------------------------------
   Everything is produced in the browser. Nothing is uploaded.
------------------------------------------------------------ */
  var url = URL.createObjectURL(blob);
  var a = document.createElement('a');
  a.href = url; a.download = filename; a.rel = 'noopener';
  document.body.appendChild(a); a.click(); document.body.removeChild(a);
  setTimeout(function () { URL.revokeObjectURL(url); }, 8000);
function safeName(s) { return String(s).replace(/[^A-Za-z0-9._-]+/g, '-').replace(/^-+|-+$/g, ''); }
function downloadBook(name) {
  var b = state.books[name];
  saveBlob(new Blob([JSON.stringify(b)], { typM
e: 'application/json' }), 'LAMB-' + safeName(name) + '.json');
  showToast(name + ' saved');
function downloadPack(packId) {
  var p = packById(packId);
  var books = p.books.map(function (n) { return state.books[n]; }).filter(Boolean);
  var quizzes = p.books.map(function (n) { return state.quizzes[n]; }).filter(Boolean);
  var out = { format: 'LAMB_PACK_v1', id: p.id, name: p.name, range: p.range, books: books };
  if (quizzes.length) out.quizzes = quizzes;
  saveBlob(new Blob([JSON.stringifyM
(out)], { type: 'application/json' }), 'LAMB-pack-' + safeName(p.id) + '.json');
  showToast(p.name + ' saved');
/* Pristine copy of the shell, captured before anything renders,
   so an exported app is always a clean app and never carries
   whatever happened to be on screen. */
var PRISTINE_HTML = '';
function buildStandalone(bookNames, withProgress) {
  var seed = { books: {}, quizzes: {} };
  bookNames.forEach(function (n) {
    if (state.books[n]) seed.books[n] = state.books[n];
    if (state.quizzes[n]) sM
eed.quizzes[n] = state.quizzes[n];
  if (withProgress !== false) {
    seed.bookmarks = state.bookmarks;
    seed.settings = state.settings;
    seed.lastRead = state.lastRead;
    seed.completedBooks = state.completedBooks;
    seed.readChapters = state.readChapters;
    seed.bestScores = state.bestScores;
  // The payload rides in a <script type="application/json"> block, not a
  // <textarea>. Both are inert, but textarea content is RCDATA, so the HTML
  // parser entity-decodes it character by charactM
 on a whole Bible that
  // measured 14s on a mid-range phone. A script block is RAWTEXT: the parser
  // only scans for the closing tag. Escaping "<" as \u003c is valid JSON and
  // makes "</script" impossible to write, so the block cannot be broken out of.
  var json = JSON.stringify(seed).replace(/</g, '\\u003c');
  var block = '\n<script type="application/json" id="_lamb_seed">' + json + '<' + '/script>\n';
  // Splice before the LAST </body>. A plain .replace() would hit the
  // literal '</body>' that M
appears in this very function's source, and
  // slicing also avoids $& being interpreted in the replacement text.
  var cut = PRISTINE_HTML.lastIndexOf('<' + '/body>');
  if (cut === -1) return PRISTINE_HTML + block;
  return PRISTINE_HTML.slice(0, cut) + block + PRISTINE_HTML.slice(cut);
function downloadEverything() {
  var names = Object.keys(state.books);
  if (!names.length) { showToast('Load a collection first'); return; }
  $('downloadModal').classList.remove('open');
  downloadApp(names, true);
e JSON holding every loaded book and quiz, in the same pack
   shape the inscriptions use
 so it re-imports here and works in
   anyone else's app too. */
function downloadBundle(bookNames) {
    format: 'LAMB_PACK_v1',
    name: 'My library',
    range: bookNames.length + ' books',
    books: bookNames.map(function (n) { return state.books[n]; }).filter(Boolean),
    quizzes: bookNames.map(function (n) { return state.quizzes[n]; }).filter(Boolean)
  if (!out.quizzes.length) M
  saveBlob(new Blob([JSON.stringify(out)], { type: 'application/json' }),
           'LAMB-library-' + bookNames.length + '-books.json');
  showToast(bookNames.length + ' books saved as one file');
function downloadApp(bookNames, withProgress) {
  showToast('Building your copy
  setTimeout(function () {
      var html = buildStandalone(bookNames, withProgress);
      var name = bookNames.length >= 66 ? 'LAMB-complete-bible.html' : 'LAMB-' + bookNames.length + '-books.html';
    saveBlob(new Blob([html], { type: 'text/html' }), name);
      showToast('Saved
 ' + bookNames.length + ' books, works offline forever');
    } catch (e) { showToast('Could not build the file: ' + e.message); }
/* ----- download chooser modal ----- */
function openDownloadModal() {
  var names = Object.keys(state.books);
  if (!names.length) { showToast('Load a collection first'); return; }
  var list = $('dlList'); clear(list);
  BIBLE_BOOKS.forEach(function (b) {
    if (!state.books[b.n]) retM
    var cb = el('input', { type: 'checkbox', checked: 'checked', 'data-book': b.n });
    var row = el('label', { class: 'dl-row' }, [
      el('span', { class: 'dl-row-name', text: b.n }),
      el('span', { class: 'dl-row-meta', text: state.books[b.n].chapters.length + ' CH' })
    list.appendChild(row);
  names.forEach(function (n) { all += JSON.stringify(state.books[n]).length; });
  $('dlHeroSub').textContent = 'One HTML file, about ' + fmtBytes(all) +
n any phone or computer, offline, forever. ' + names.length + ' books.';
  $('downloadModal').classList.add('open');
function selectedBooks() {
  var boxes = $('dlList').querySelectorAll('input[type=checkbox]');
  for (var i = 0; i < boxes.length; i++) if (boxes[i].checked) out.push(boxes[i].getAttribute('data-book'));
function updateDlSize() {
  var names = selectedBooks(), bytes = 0;
  names.forEach(function (n) { if (state.books[n]) bytes += JSON.stringify(stM
ate.books[n]).length; });
  $('dlSize').textContent = names.length + ' selected
 about ' + fmtBytes(bytes);
/* ----- backup / restore / import ----- */
function backupProgress() {
    _format: 'LAMB_BACKUP_v2',
    completedBooks: state.completedBooks,
    readChapters: state.readChapters,
    bestScores: state.bestScores,
    bookmarks: state.bookmarks,
    settings: state.settings,
    lastRead: state.lastRead,
    savedAt: new Date().toISOString()
  saveBlob(new Blob([JSON.stringify(out)]M
, { type: 'application/json' }), 'LAMB-progress.json');
  showToast('Progress saved');
function readFiles(files, done) {
  var results = [], pending = files.length;
  if (!pending) return done(results);
  Array.prototype.forEach.call(files, function (f) {
    if (f.size > 25 * 1024 * 1024) { pending--; if (!pending) done(results); return; }
    var r = new FileReader();
    r.onload = function (e) {
      try { results.push(JSON.parse(e.target.result)); } catch (err) { }
      if (!--pending) done(results);
    r.onerror = function () { if (!--pending) done(results); };
    r.readAsText(f);
function handleImport(files) {
  readFiles(files, function (items) {
    var books = 0, quizzes = 0, packs = 0;
    items.forEach(function (d) {
      if (!d || typeof d !== 'object') return;
      if (d.format === 'LAMB_PACK_v1') { books += ingestPack(d, d.id); packs++; return; }
      if (Array.isArray(d)) { d.forEach(one); return; }
      function one(x) {
        var b = validBook(x); if (b) { state.boM
oks[b.book] = b; books++; return; }
        var q = validQuiz(x); if (q) { state.quizzes[q.book] = q; quizzes++; }
    renderLibrary();
    showToast(packs ? 'Imported ' + packs + ' pack(s), ' + books + ' books'
      : 'Imported ' + books + ' books, ' + quizzes + ' quizzes');
function handleRestore(files) {
  readFiles(files, function (items) {
    var d = items[0];
    if (!d || (d._format !== 'LAMB_BACKUP_v2' && d._format !== 'LAMB_EXPORT_v1')) {
      showToast('That is not a LAMB backuM
    if (Array.isArray(d.completedBooks)) state.completedBooks = d.completedBooks;
    if (d.readChapters && typeof d.readChapters === 'object') state.readChapters = d.readChapters;
    if (d.bestScores && typeof d.bestScores === 'object') state.bestScores = d.bestScores;
    if (Array.isArray(d.bookmarks)) state.bookmarks = d.bookmarks;
    if (d.lastRead && typeof d.lastRead === 'object') state.lastRead = d.lastRead;
    if (d.settings && typeof d.settings === 'object') {
in DEFAULT_SETTINGS) if (d.settings[sk] !== undefined) state.settings[sk] = d.settings[sk];
      normaliseSettings();
      applySettings(); buildSwatches();
    if (d.books && typeof d.books === 'object') {
      Object.keys(d.books).forEach(function (k) { var b = validBook(d.books[k]); if (b) state.books[b.book] = b; });
    if (d.quizzes && typeof d.quizzes === 'object') {
      Object.keys(d.quizzes).forEach(function (k) { var q = validQuiz(d.quizzes[k]); if (q) state.quizzes[q.book] = q; });
    saveProgress(); renderLibrary();
    showToast('Progress restored');
function unloadPack(packId) {
  var p = packById(packId);
  p.books.forEach(function (n) { delete state.books[n]; delete state.quizzes[n]; });
  delete state.loadedPacks[packId];
  DB.del('pack:' + packId);
  showToast(p.name + ' removed from this device');
function clearAll() {
  if (!confirm('Remove all downloaded scripture and reading progress from this device?')) return;
  state.books = {};M
 state.quizzes = {}; state.loadedPacks = {};
  state.completedBooks = []; state.readChapters = {}; state.bestScores = {};
  state.bookmarks = []; state.lastRead = null;
  try { Object.keys(LS_KEYS).forEach(function (k) { localStorage.removeItem(LS_KEYS[k]); }); } catch (e) { }
  showToast('Everything cleared');
/* ------------------------------------------------------------
   Three different worlds:
   - Chrome/Edge on Android & desktop fire beforeinstallprompt
   when a real manifest + service worker are reachable. That
     only happens on the wrapper site, not on /content/.
   - iOS Safari never fires it, but Add to Home Screen works on
     any page, so we show instructions.
   - Already installed: hide the button entirely.
------------------------------------------------------------ */
var deferredPrompt = null;
function isStandalone() {
  return (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches) || navigator.standalone === true;
  return /iPad|iPhone|iPod/.test(navigator.userAgent) ||
    (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
window.addEventListener('beforeinstallprompt', function (e) {
  e.preventDefault();
  deferredPrompt = e;
  if (!isStandalone()) $('installBtn').style.display = 'inline-block';
window.addEventListener('appinstalled', function () {
  deferredPrompt = null;
  $('installBtn').style.display = 'none';
  showToast('LAMB installed');
function initInstallButton() {
(isStandalone()) { $('installBtn').style.display = 'none'; return; }
  $('installBtn').style.display = 'inline-block';
function doInstall() {
  if (deferredPrompt) {
    deferredPrompt.prompt();
    deferredPrompt.userChoice.then(function () { deferredPrompt = null; });
  openInstallHelp();
function openInstallHelp() {
  var steps = $('installSteps'); clear(steps);
  var sub = $('installSub');
    sub.textContent = 'On iPhone and iPad, Safari installs any page in M
      'Open this page in Safari (Chrome on iPhone cannot install).',
      'Tap the Share button
 the square with an arrow.',
      'Scroll down and tap "Add to Home Screen".',
      'Tap Add. LAMB opens full screen from your home screen.'
  } else if (/Android/i.test(navigator.userAgent)) {
    sub.textContent = 'On Android, install from the browser menu.';
 menu at the top right of Chrome.',
      'Choose "Install app" or "Add to Home screen".',
      'Confirm. LAMB gets its own icon and opens without a browser bar.'
    sub.textContent = 'On a computer, install from the address bar.';
      'Look for the install icon at the right of the address bar (a monitor with a downward arrow).',
      'If it is not there, open the browser menu and choose "Install LAMB" or "Create shortcut".',
      'LAMB then opens in its own window like any other app.'
  if (INSTALL_SITE) {
    list.push('For full offline support, open ' + M
INSTALL_SITE + ' and install from there
 it serves the same on-chain scripture.');
  list.push('Prefer no install at all? Use DOWNLOAD to save a single HTML file that works forever with no internet.');
  list.forEach(function (t, i) {
    steps.appendChild(el('div', { class: 'modal-step' }, [
      el('div', { class: 'modal-step-num', text: String(i + 1) }),
      el('div', { class: 'modal-step-text', text: t })
  $('installModal').classList.add('open');
/* Service worker: only resolves onM
 the wrapper site. On
   /content/<id> the registration simply fails, which is fine. */
function initServiceWorker() {
  if (!('serviceWorker' in navigator)) return;
  // On an ord server the app lives at /content/<id>, where a service
  // worker cannot be hosted at a usable scope. Don't even try.
  if (/^\/content\//.test(location.pathname)) return;
    navigator.serviceWorker.register('sw.js', { scope: './' }).catch(function () { });
/* ----------------------------------------------M
   11A. KEEPING THE DATA
   Safari clears script-writable storage, IndexedDB included, after
   seven days without a visit
 unless the site was added to the
   home screen. So: ask for persistent storage where that exists,
   and where it doesn't, tell the reader plainly and point at the
   two things that actually survive (installing, or saving a file).
------------------------------------------------------------ */
function requestPersistence() {
    if (navigator.storage && navigator.stM
      navigator.storage.persisted().then(function (already) {
        if (!already) navigator.storage.persist();
      }).catch(function () { });
function maybeShowStorageBanner() {
  // A saved copy carries its scripture inside the file itself, so there
  // is nothing for the browser to evict and nothing to warn about.
  if (state.fromSeed) return;
  if (isStandalone()) return;
  try { if (localStorage.getItem(LS_KEYS.bannerSeen)) return; } catch (e) { }
  var banner = $('storageBanner');
    $('bannerText').textContent =
      'Heads up: Safari deletes stored data after about a week without a visit. ' +
      'Add LAMB to your home screen, or save a copy, and it stays put.';
    $('bannerText').textContent =
      'Your browser may clear this data if space runs short. Install LAMB or save a copy to keep it for good.';
  banner.hidden = false;
function dismissBanner() {
  $('storageBanner').hidden = true;
alStorage.setItem(LS_KEYS.bannerSeen, '1'); } catch (e) { }
/* ------------------------------------------------------------
   Swipe left and right for chapters. Ignored when the touch
   started on a control, or when it looks like a vertical scroll,
   or when text is being selected.
------------------------------------------------------------ */
function initGestures() {
  var x0 = 0, y0 = 0, t0 = 0, tracking = false;
  var page = $('readingPage');
  page.addEventListener('touchstart', functiM
    if (e.touches.length !== 1) { tracking = false; return; }
    if (e.target.closest && e.target.closest('button, input, select, a')) { tracking = false; return; }
    x0 = e.touches[0].clientX; y0 = e.touches[0].clientY;
    t0 = Date.now(); tracking = true;
  }, { passive: true });
  page.addEventListener('touchend', function (e) {
    if (!tracking) return;
    tracking = false;
    var t = e.changedTouches[0];
    var dx = t.clientX - x0, dy = t.clientY - y0, dt = Date.now() - t0;
return;                        // a slow drag is not a swipe
    if (Math.abs(dx) < 70) return;               // too short
    if (Math.abs(dx) < Math.abs(dy) * 1.8) return; // mostly vertical: it's a scroll
    var sel = window.getSelection && window.getSelection();
    if (sel && String(sel).length > 2) return;   // selecting text, not swiping
    goToChapter(state.currentChapter + (dx < 0 ? 1 : -1));
  }, { passive: true });
/* ------------------------------------------------------------
   12. EVENT WIRING
 one delegated listener, no inline handlers
------------------------------------------------------------ */
function onAction(e) {
  var t = e.target.closest ? e.target.closest('[data-act]') : null;
  var act = t.getAttribute('data-act');
    case 'load': loadPack(t.getAttribute('data-pack')); break;
    case 'load-all': loadAllPacks(); break;
    case 'unload': unloadPack(t.getAttribute('data-pack')); break;
    case 'dl-pack': downloadPack(t.getAttribute('data-pack')); break;
    case 'dl-book': downloadBook(t.getAttribute('data-book')); break;
    case 'open-download': openDownloadModal(); break;
    case 'import': $('allFileInput').click(); break;
    case 'backup': backupProgress(); break;
    case 'restore': $('backupFileInput').click(); break;
    case 'clear': clearAll(); break;
    case 'open': openBook(t.getAttribute('data-book')); break;
    case 'quiz': openQuiz(t.getAttribute('data-book')); break;
    case 'chapter': goToChapter(parseInt(t.getAttribute('data-i'), 10)); break;M
    case 'answer': selectAnswer(parseInt(t.getAttribute('data-i'), 10)); break;
    case 'next-q': nextQuestion(); break;
    case 'home': showBookSelector(); break;
    case 'resume': openBook(t.getAttribute('data-book'), parseInt(t.getAttribute('data-ch'), 10)); break;
    case 'verse': openVerseSheet(parseInt(t.getAttribute('data-vi'), 10)); break;
    case 'goto-verse': gotoVerse(t.getAttribute('data-book'), parseInt(t.getAttribute('data-ch'), 10), parseInt(t.getAttribute('data-vi'), 10)); break;
del': e.stopPropagation(); removeBookmarkByRef(t.getAttribute('data-ref')); break;
    case 'v-copy': case 'v-share': case 'v-bookmark': case 'v-speak': case 'v-link': verseActions(act); break;
    case 'listen': speakFrom(0); break;
    case 'speak-toggle': toggleSpeak(); break;
    case 'speak-stop': stopSpeak(); break;
    case 'search-book': state.searchScope = 'book'; openSearch(); break;
    case 'size-up': nudgeSize(10); break;
    case 'size-down': nudgeSize(-10); break;
    case 'install-help': openInstallM
    case 'dismiss-banner': dismissBanner(); break;
    case 'dl-everything': downloadEverything(); break;
    case 'toggle-chapters': toggleChapters(); break;
  // Lift the baked-in seed out of the DOM BEFORE snapshotting the shell.
  // Doing this by element removal rather than by regex matters: a regex for
  // the seed tag would also match the identical literal inside this file's
  // own source, quietly corrupting every re-export.
  var seedEl = $('_lamb_seed');
  if (seedEl) { seedRaw = seedEl.textContent; seedEl.parentNode.removeChild(seedEl); }
  PRISTINE_HTML = '<!DOCTYPE html>\n' + document.documentElement.outerHTML;
  if (FONT_PACK && INSCRIPTION_ID_RE.test(FONT_PACK)) {
    var link = document.createElement('link');
    link.rel = 'stylesheet'; link.href = contentUrl(FONT_PACK);
    document.head.appendChild(link);
  // Seed data baked in by "Download app"
      var seed = JSON.parse(seedRaw);
bject.keys(seed.books || {}).forEach(function (k) { var b = validBook(seed.books[k]); if (b) state.books[b.book] = b; });
      Object.keys(seed.quizzes || {}).forEach(function (k) { var q = validQuiz(seed.quizzes[k]); if (q) state.quizzes[q.book] = q; });
      if (Array.isArray(seed.bookmarks)) state.bookmarks = seed.bookmarks;
      if (seed.lastRead) state.lastRead = seed.lastRead;
      if (Array.isArray(seed.completedBooks)) state.completedBooks = seed.completedBooks;
      if (seed.readChapters) state.readChM
apters = seed.readChapters;
      if (seed.bestScores) state.bestScores = seed.bestScores;
      if (seed.settings && !state.hadSavedSettings) {
        for (var sk in DEFAULT_SETTINGS) {
          if (seed.settings[sk] !== undefined) state.settings[sk] = seed.settings[sk];
        normaliseSettings();
      state.fromSeed = Object.keys(state.books).length > 0;
  document.addEventListener('click', onAction);
  document.addEventListener('keydown', functiM
    if (e.key !== 'Enter' && e.key !== ' ') return;
    var t = e.target.closest ? e.target.closest('[data-act][tabindex]') : null;
    if (t) { e.preventDefault(); onAction(e); }
  $('enterBtn').addEventListener('click', enterApp);
  document.addEventListener('keydown', function (e) {
    if (e.key === 'Enter' && !$('splash').classList.contains('hidden')) enterApp();
  $('homeBtn').addEventListener('click', showBookSelector);
  $('logoBtn').addEventListener('click', showBookSelector);
stallBtn').addEventListener('click', doInstall);
  $('searchBtn').addEventListener('click', openSearch);
  $('searchClose').addEventListener('click', showBookSelector);
  $('searchInput').addEventListener('input', onSearchInput);
  $('settingsBtn').addEventListener('click', function () { syncSettingsUI(); $('settingsModal').classList.add('open'); });
  $('themeChoices').addEventListener('click', function (e) {
    var b = e.target.closest('[data-theme]'); if (b) setTheme(b.getAttribute('data-theme'));
centChoices').addEventListener('click', function (e) {
    var b = e.target.closest('[data-accent]'); if (b) setAccent(b.getAttribute('data-accent'));
  $('fontChoices').addEventListener('click', function (e) {
    var b = e.target.closest('[data-font]'); if (b) setFont(b.getAttribute('data-font'));
  $('modeBtn').addEventListener('click', toggleMode);
  $('spacingChoices').addEventListener('click', function (e) {
    var b = e.target.closest('[data-spacing]'); if (b) setLeading(b.getAttribute('data-spaM
  $('searchFilters').addEventListener('click', function (e) {
    var b = e.target.closest('[data-scope]'); if (b && !b.disabled) setScope(b.getAttribute('data-scope'));
  $('startQuizBtn').addEventListener('click', startQuiz);
  $('prevChapterBtn').addEventListener('click', function () { goToChapter(state.currentChapter - 1); });
  $('nextChapterBtn').addEventListener('click', function () { goToChapter(state.currentChapter + 1); });
  $('finishBookBtn').addEventListener('click', function () { M
openQuiz(state.currentBook); });
  $('allFileInput').addEventListener('change', function (e) { handleImport(e.target.files); e.target.value = ''; });
  $('backupFileInput').addEventListener('change', function (e) { handleRestore(e.target.files); e.target.value = ''; });
  $('dlSelectAll').addEventListener('click', function () { toggleAll(true); });
  $('dlSelectNone').addEventListener('click', function () { toggleAll(false); });
  $('dlList').addEventListener('change', updateDlSize);
  $('dlBundleBtn').addEventListM
ener('click', function () {
    var names = selectedBooks();
    if (!names.length) { showToast('Nothing selected'); return; }
    $('downloadModal').classList.remove('open');
    downloadBundle(names);
  $('dlBooksBtn').addEventListener('click', function () {
    var names = selectedBooks();
    if (!names.length) { showToast('Nothing selected'); return; }
    names.forEach(downloadBook);
    $('downloadModal').classList.remove('open');
  $('dlAppBtn').addEventListener('click', function () {
mes = selectedBooks();
    if (!names.length) { showToast('Nothing selected'); return; }
    $('downloadModal').classList.remove('open');
    downloadApp(names);
  document.addEventListener('click', function (e) {
    var c = e.target.getAttribute && e.target.getAttribute('data-close-modal');
    if (c) $(c).classList.remove('open');
    if (e.target.classList && e.target.classList.contains('modal-backdrop')) e.target.classList.remove('open');
  document.addEventListener('keydown', function (e) {
r typing = /^(INPUT|TEXTAREA|SELECT)$/.test(e.target.tagName);
    if (!typing && $('readingPage').classList.contains('active')) {
      if (e.key === 'ArrowRight') { e.preventDefault(); goToChapter(state.currentChapter + 1); return; }
      if (e.key === 'ArrowLeft') { e.preventDefault(); goToChapter(state.currentChapter - 1); return; }
    if (!typing && (e.key === '/' || (e.key === 'f' && (e.metaKey || e.ctrlKey)))) {
      if (!$('splash').classList.contains('hidden')) return;
      e.preventDefault(); opM
    if (e.key === 'Escape') {
      var open = document.querySelectorAll('.modal-backdrop.open');
      for (var i = 0; i < open.length; i++) open[i].classList.remove('open');
  function toggleAll(on) {
    var boxes = $('dlList').querySelectorAll('input[type=checkbox]');
    for (var i = 0; i < boxes.length; i++) boxes[i].checked = on;
  initInstallButton();
  initServiceWorker();
  window.addEventListener('hashchange', applyHash);
  // Ask the chain what belongs to this inscription, then show the shelf.
    .then(function () {
      var pending = PACK_INDEX.some(function (p) { return !p.inscription; });
      return (pending && canDiscover()) ? discoverPacks().then(applyDiscovered) : 0;
    .catch(function () { return 0; })
    .then(function () {
      renderLibrary();
      maybeShowStorageBanner();
      // A deep link like #John.3.16 skips the splash anMM
      if (location.hash) setTimeout(applyHash, 0);
function enterApp() {
  $('splash').classList.add('hidden');
  $('app').classList.add('active');
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
/Foundry USA Pool #dropgold/
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"ordi","amt":"279.42888193"}h!
6j4nPb:to:USDT(TRON):TMVZV4LMVRioUJPNs6JdUfTc4dcFAEfts7
7j5from:300USDT(TRON):TKQPc6X8PJ7p2URiYRGBBBLug7UWKjQrdo
+j){"p":"lucky-20","op":"mine","tick":"FUN"}
7j5{"p":"brc-20","op":"transfer","tick":"DAI","amt":"4"}
/j-JUC:to:TRX:TVAmh3QFUJeia6mX8CpFunLyP7w5V5vVq5
/j-H41:to:TRX:TXj9Us3ZSJxa5ZQudH6TQsB3AATnPUpFj2
6j4XBq:to:USDT(TRON):TWeefuRGQtXjjj81Fmh5ghUsfyvVEHLrpV
6j4qMH:to:USDT(TRON):TX85c5XNjbmpGUbZTuFiYbYnsuYZAiFCV9
6j4LXq:to:USDT(TRON):TTCPcgZ1vbx8vSNmUxWc1sMf8FVQCauiF3
MTLD_BATCH_3_401546_401550
/j-EcD:to:TRX:TXj9Us3ZSJxa5ZQudH6TQsB3AATnPUpFj2
6j4X7j:to:USDT(TRON):TJepBgroyaehwzBUnM8vK6iNQhoxqdckke`;
6j4eue:to:USDT(TRON):TYsgqPBGDzP7wYRHDtDcwWYWH9iJp1Dj6Q
6j4fJ0:to:USDT(TRON):TBvVZXjzvvTEsDeXNG4fYeLNxmUouodu9R
6j4kNe:to:USDT(TRON):THSKACEMx13s3GKmdiunNWhQKxDYvRKoKR
7j5vcf:to:ETH:0x5992dD0d358dF0127d8B7e04309F078215CAE8bD8
=j;CEQ:to:USDT(BSC):0xe7D626e4f6557A9969dFb6A6A9cFEe8933E79268
=j;b36:to:USDT(BSC):0x18A37A3BC1E24C35e99A8019b9DF21eF46b6d6C5'
2j0to:USDT(TRON):TLdh9RSMfNeCGnQhzXeWfNXXsYAL8KDX8z
?j=nUS:to:USDT(ERC20):0x92220D993692A2f7b30224Ef1B7d810F71ADFceb+
?j=Ymo:to:USDT(ERC20):0xfB7907a5541B7872271A20e9df9806a7B09A6fcb;x
2j0to:USDT(TRON):TVsDdKE67kWv6WY1AkqQki4SEk7fWc5cHA
CjAi63:to:GRAM(TON):UQALwOEIokf4-Qdey8ifDn5gmQSuAzdYbObW5_ixBzuHLUGG.
FjDOUT:0AC90A3C24EC62BB3ABB277BF0D5936E6A5E20F7B0294D46F3BB92B6CCCAB947
FjDOUT:44B3BCDBED9506F6EDFEE5BA1BF42FB051F959BDB49DC2785C7BDF0AF78262D3
FjDOUT:C81536FC6B9CEC1FD3FF775AB8E29B949AD157A92DE328B4E24C309FD887E62B
DjB0xd018f4cd878ca5cb78ff183990ac574c2c8a4484d1c8993da52c1cae0dbc429a
DjB0xb0e2b3dbe3dc981b8a1a1d0c5c127aa64e959e3c5115785f2ec4eef3263be88a
DjB0xd4ebed24f370e6eb2729bab3eeb5282f7470a720552cb83a1ece96aa9a8ccd1f
FjDOUT:817702534D993F56F74CF8922473732D2ECB61486EC65C69B1B50269380AB165
7j5from:505USDT(TRON):TXn41Ytbaf1kRdqRn79wHy4ZVGZ1Rocv4x
=j;from:32USDT(BSC):0xfe5214e876D97187eDc166063a09393aB638F24fL
Aj?from:49.9USDC(SOL):7DZurodgVagNEL3ZCSpQeWZbWnvjbGV1x7Ff3Uw6XwuT
DjB0x4170fe7fbd497b368b1710da0f3000279a80e3dfc0b2b1f0d1bed992017bda15
DjB0xbc2d946cae833e4632355c2a91bf7ade975cd917499fb7eda461f6e2a1bd71dc
DjB0xf1515afc8b06579e27f8f4b11ddbf829f0d06d7895b75a2464eb236b8530f8ac
DjB0x980558e98da44de4e8aa76484e0a217985a1d44017250df78125b138c3e63ed2
DjB0x73c399512e0cd50de69dc2c376ed2ea800796a84b6428531047f7a1f39a50ede
DjB0x1e2e5d2a096d1b6b8ebc62970ff8c291e5bff0394365c78921762ebcedf1e0cc
DjB0xe84e9ffd3b443f8d94da08383e1516e4539290c6c8171f3599b2045c6bee9904
HjF=:l:ltc1qwnyc9tn3d6t6sqlygutcergld2vn3f3uqfl2tz:7500742/0/0:-_/t1:0/70
DjB0x1d192c47bc2e2a5444b89d672096b24ab74a57cfdd9648889fd157f6e58bfc28
DjB0xa7e37765d9f7334d5a96daf1b19105e08ec21c4fa9e5c7be8c8e1a49f9442b32
DjB0xf9ad1e08b43e75498b1f66e117760964f5da0a479f164ace4abcd0c5f68a5705
CjA=:ETH.USDT:0x0f93B66EF9Ac35854cBaa640BAd3a7540e3A868d:0/1/1:ej:75
DjB0x4eb3f5220c4f9bb993f67b98ec9f3b5e4033ea2c62d7b5539c5ec82ee5875268
DjB0x64f84bab3950bd21f02241e3a5cdcc54ce7649c8c9986f1c15f7a54046be7599
DjB0x94572a2a31acf0aed17b4f51c3c81e48def32dd3b1df493115e9ed89ca05740c
DjB0xd86afb996f0759e7dcbd25932d8a9eecff726fdc5ed9c0cb244fc997ddf1b9db
DjB0xd30f2d9a79ac9a200af05fb6a53a2a8ceee4bb71264d1bffe0520d10303b98b43
text/plain;charset=utf-8
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuQ!
DjB0xd66c0d433a690649e463e3ecdde0bd37bd52c23573770135660ae1e974122a43
DjB0xe42338dee89e3e6f6aeeb1f42234f5408b5d07b37a99c10f2e2ba9a64d8e0caf
DjB0x758e638802a2931b64ec2bd043e8e88592ad3af2762e429fa7d1f1f87294e616
DjB0x30deaa60d21bbaffdf06d8428c2343092fe2087896926ce464d70e963992ef53
DjB0xbe7f4d472461574b5451b0dee8c552c939ec765f56a5eb20cec777705f4a69fc
DjB0x5d0c875365d494d88d836990c4c36dacba93e3315f1853b884c557b4f92bdfea
DjB0x747eb170fcf0f26e72bae642b52e9294e297b735296cca59b72a0134a806f149
CjA=:e:0xD5cB20611772b98f97f28BDD72CaAe8b0cca5dB8:21734118/200:two:0
Bj@=:tr:TY6KYZe8TPEm2WeQemu9DTaBWRzLFxGJfq:743162200/0/0:-_/t1:0/70
dnamelVinyl Coverskdescriptiony
Album covers are more than packaging. They are cultural landmarks that define eras, shape identities, and transform music into visual experience. From revolutionary design to rare and censored pressings, these artworks influenced fashion, art, and generations. This collection preserves 50 iconic covers as permanent digital artifacts on Bitcoin, ensuring their legacy lives immutably on-chain protected, preserved, and accessible for the future as a true archive of cultural memoryfart
JistlVinyl Coversfsociallvinyl_coversgwebsitex
https://www.vinylcovers.biz/
CjA=:e:0x5270b5672aBE7abBeF13824c3cD816F1A2A86129:58061955/200:two:060
DjB0x2d2768f163003edf8618bc50758ac23e6ef2820f4ffeec82f89584038ff8fc5e
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
DjB0x92453d4c25229af7a83718b401afe467dc1082c0f57fd732bc720afb4fff3e4d5
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="rgb(238, 217, 194)";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=7e4,ite=26,scale=.003,zoom=570,A=2,B=2,C=3,D=-4.5,E=-1,F=3,G=1.5,fold=(H=.5,1),fold2=.25,rT=3,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=-1.55,points=[];function generate(){points=[];for(vM
ar t=0;t<ptc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),r=Math.atan2(n,a)+rT+.7*e,i=a*Math.cos(r)-n*Math.sin(r),s=a*Math.sin(r)+n*Math.cos(r),c=Math.sin(A*s)+Math.cos(B*i),h=Math.sin(C*i)-Math.cos(D*s);c+=Math.sin(E*i*s)*F,h+=Math.cos(G*i*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,r=0;r<points.length;r++){var i=points[r][0],s=points[r][1]M
;(l=i*Math.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=i*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(r=0;r<points.length;r++){i=points[r][0],s=points[r][1];var l=i*Math.cos(rot)-s*Math.sin(rot),d=i*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=10*(1-(M=Math.max(0,Math.min(1,M))))+270*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,KM
.globalAlpha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"piza","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"fifa","amt":"1180"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"cula","amt":"71820"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"246"}h!
DjB0x6e92ec2377b7baa32f1d05b1ab75a4ecb56d1bbbe20fe66745a5af24c2bf457dN
<j:=:e:0x98e55d353B9BCBeb08768643D0B4671181A80118:0/1/1:ej:75
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"fifa","amt":"1349"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
/j-dCQ:to:XRP:rPmqzmNjCijZVhcJ2itxwuUvp7G19HTMLe
9j7dmO:to:SOL:6U7koo2fMkR6EtSvHt2QrKLtXmNmGWCxR5fk9d7Lk9fB
=j;0dG:to:USDT(BSC):0x51e7E539bD00C6649a96809526085a35E5028313
>j<Uyn:to:ASTER(BSC):0xdB9BcE007c809C4aC6cb7580A3a6D9740896A161
DjB0xaacb22b130b2b0eda18ca18054c0438b983ff337c88cbb040b653baa1e2961da
DjB0xbba0b5d3ccad10fd8a25b6b7f480834ab56c4cecc5845919a6f7290da165aae9
DjB0x351d4439f2f5f77a68f512480fd80258f332f274f411f425105e4115591a1d36
text/plain;charset=utf-8
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"doge","amt":"284000"}h!
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" role="img" aria-label="LAMB, Let All Men Bow">
 Let All Men Bow</title>
.co{fill:none;stroke:#E2C46A;stroke-width:5;stroke-linejoin:miter;stroke-dasharray:1000;stroke-dashoffset:1000;animation:draw 2.4s ease-in-out .2s forwards}
.cf{opacity:0;animation:fade 1s ease 2.2s forwards}
.gl{opacity:0;animation:glow 4s ease-in-out 6.8s infinite}
.bd{fill:none;stroke:url(#goldb);stroke-width:7;stroke-dasharray:1000;stroke-dashoffset:1000;M
animation:draw 4.8s ease-in-out 0s forwards}
.bg2{fill:none;stroke:#E8C964;stroke-width:16;opacity:0;animation:fade 1.2s ease 4.4s forwards,bglow 4s ease-in-out 6.8s infinite}
.bi{fill:none;stroke:#8A7232;stroke-width:1.5;opacity:0;animation:fade 1s ease 4.6s forwards}
@keyframes bglow{0%,100%{opacity:.55}50%{opacity:1}}
.t{opacity:0;animation:rise .7s cubic-bezier(.2,.7,.2,1) forwards}
.l1{animation-delay:2.9s}.l2{animation-delay:3.3s}.l3{animation-delay:3.7s}.l4{animation-delay:4.1s}
.ru{transform-box:fill-box;trM
ansform-origin:center;transform:scaleX(0);animation:grow .8s ease 4.7s forwards}
.w1{animation-delay:5.1s}.w2{animation-delay:5.4s}.w3{animation-delay:5.7s}.w4{animation-delay:6s}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@keyframes grow{to{transform:scaleX(1)}}
@keyframes glow{0%,100%{opacity:0}50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.co,.cf,.t,.ru,.gl,.bd,.bg2,.bi{animatiM
on:none;opacity:1;stroke-dashoffset:0;transform:none}.gl{opacity:0}.bg2{opacity:.6}}
<radialGradient id="bg" cx="50%" cy="42%" r="70%"><stop offset="0" stop-color="#2E2418"/><stop offset=".6" stop-color="#1A1510"/><stop offset="1" stop-color="#100C08"/></radialGradient>
<linearGradient id="gold" gradientUnits="userSpaceOnUse" x1="0" y1="520" x2="0" y2="672"><stop offset="0" stop-color="#F1DA8E"/><stop offset=".5" stop-color="#C9A84C"/><stop offset="1" stop-color="#9C7F34"/></linearGradient>
radient id="goldc" gradientUnits="userSpaceOnUse" x1="0" y1="150" x2="0" y2="450"><stop offset="0" stop-color="#F1DA8E"/><stop offset=".55" stop-color="#C9A84C"/><stop offset="1" stop-color="#9C7F34"/></linearGradient>
<linearGradient id="goldb" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#F6E3A1"/><stop offset=".45" stop-color="#C9A84C"/><stop offset="1" stop-color="#E9CF7E"/></linearGradient>
<filter id="bblur" x="-10%" y="-10%" width="120%" height="120%"><feGaussianBlur stdDeviation="9"/></filter>
filter id="blur" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="18"/></filter>
<path id="X" d="M480 150H520V230H595V270H520V450H480V270H405V230H480Z"/>
<path id="A" d="M354 -720 656 -60Q671 -36 690 -25Q714 -10 737 -10H745V0H427V-10H436Q456 -10 471 -26.5Q486 -43 474 -73L425 -196H190L138 -69Q132 -52 136 -39Q141 -25 153 -17.5Q165 -10 177 -10H186V0H-28V-10H-19Q4 -10 29 -25Q48 -36 62 -60L296 -589Q299 -595 306.5 -611.5Q314 -628 322.5 -649Q331 -670 338 -689.5Q345 -709 345 -720ZM208 -238H408L310M
 -484Z"/><path id="B" d="M119 -73V-627Q118 -653 99.5 -671.5Q81 -690 55 -690H42V-700H331Q404 -700 461.5 -682.5Q519 -665 552 -627.5Q585 -590 585 -529Q585 -483 567.5 -451Q550 -419 522 -402Q494 -385 463 -381Q513 -377 553.5 -353Q594 -329 617 -289Q640 -249 640 -195Q640 -131 605 -87.5Q570 -44 506.5 -22Q443 0 359 0H42V-10H55Q81 -10 99.5 -28.5Q118 -47 119 -73ZM269 -657V-45H315Q360 -45 394.5 -62Q429 -79 448.5 -115Q468 -151 468 -207Q468 -251 454.5 -282Q441 -313 418.5 -332.5Q396 -352 366 -361Q336 -370 303 -370V-379Q326 -379 34M
8 -386.5Q370 -394 387.5 -410Q405 -426 415 -452.5Q425 -479 425 -516Q425 -567 409.5 -598Q394 -629 365 -643Q336 -657 298 -657Z"/><path id="E" d="M606 -205 560 0H42V-10H55Q81 -10 99.5 -28.5Q118 -47 119 -73V-627Q118 -653 99.5 -671.5Q81 -690 55 -690H42V-700H423Q445 -700 469.5 -703Q494 -706 515 -710Q536 -714 545 -718V-543H535V-555Q535 -601 508 -629Q484 -653 447 -657H269V-366H401Q438 -367 462 -391.5Q486 -416 486 -453V-460H496V-230H486V-238Q486 -275 462 -299Q438 -323 401 -324H269V-43H400Q450 -43 488 -62.5Q526 -82 553 -118.5M
Q580 -155 596 -205Z"/><path id="L" d="M606 -205 560 0H42V-10H55Q81 -10 99.5 -28.5Q118 -47 119 -73V-627Q118 -653 99.5 -671.5Q81 -690 55 -690H42V-700H346V-690H333Q307 -690 288.5 -671.5Q270 -653 269 -627V-43H400Q450 -43 488 -62.5Q526 -82 553 -118.5Q580 -155 596 -205Z"/><path id="M" d="M780 -714H789L875 -68Q881 -42 900 -27Q921 -10 947 -10H963V0H663V-9H678Q695 -9 706 -22.5Q717 -36 717 -52V-55L678 -414L491 -90L481 -73Q471 -55 461.5 -30Q452 -5 452 20H442L185 -412L146 -55V-52Q146 -36 157.5 -22.5Q169 -9 185 -9H200V0H-9V-10HM
7Q34 -10 55 -27Q73 -40 78 -64L163 -714H172L483 -204Z"/><path id="N" d="M108 -715 613 -234V-629Q612 -655 594.5 -672.5Q577 -690 551 -690H532V-700H835V-690H817Q792 -690 774 -672.5Q756 -655 755 -629V-114Q755 -77 758 -47.5Q761 -18 764 -2L767 14H758L252 -467L253 -71Q253 -46 271 -28Q289 -10 314 -10H333V0H30V-10H49Q74 -10 92 -28Q110 -46 110 -71V-590Q110 -646 104 -681L98 -715Z"/><path id="O" d="M442 -714Q562 -714 650.5 -669.5Q739 -625 787.5 -544Q836 -463 836 -350Q836 -238 787.5 -156.5Q739 -75 650.5 -30.5Q562 14 442 14Q322 1M
4 233.5 -30.5Q145 -75 97 -156Q49 -237 49 -350Q49 -462 97 -543.5Q145 -625 233.5 -669.5Q322 -714 442 -714ZM442 -28Q513 -28 564 -67.5Q615 -107 643 -179Q671 -251 671 -350Q671 -449 643 -521Q615 -593 564 -632.5Q513 -672 442 -672Q372 -672 320.5 -632.5Q269 -593 241 -521Q213 -449 213 -350Q213 -251 241 -179Q269 -107 320.5 -67.5Q372 -28 442 -28Z"/><path id="T" d="M654 -719V-544L644 -545V-556Q644 -603 616.5 -630.5Q589 -658 542 -659H409V-73Q410 -47 428.5 -28.5Q447 -10 473 -10H486V0H182V-10H195Q221 -10 239.5 -28.5Q258 -47 259 -7M
3V-659H125Q79 -658 51.5 -630.5Q24 -603 24 -556V-545L14 -544V-719Q24 -715 44.5 -711Q65 -707 90 -704Q115 -701 136 -701H532Q554 -701 578.5 -704Q603 -707 624 -711Q645 -715 654 -719Z"/><path id="W" d="M537 -716V-714L736 -275L837 -628Q845 -658 832 -674Q819 -690 799 -690H790V-700H999V-690H991Q968 -690 941 -676Q917 -662 905 -634L736 -93L731 -76Q726 -58 722 -32.5Q718 -7 719 18H709L491 -465L333 -93L327 -76Q321 -59 315.5 -34Q310 -9 309 18H300L58 -637Q45 -663 23 -676Q-3 -690 -26 -690H-34V-700H271V-690H262Q243 -690 228.5 -674Q2M
14 -658 225 -628H223L347 -280L528 -716Z"/>
<rect width="1000" height="1000" fill="url(#bg)"/>
<rect class="bg2" x="40" y="40" width="920" height="920" rx="36" filter="url(#bblur)"/>
<rect class="bd" x="40" y="40" width="920" height="920" rx="36" pathLength="1000"/>
<rect class="bi" x="64" y="64" width="872" height="872" rx="20"/>
<use href="#X" class="gl" fill="#E2C46A" filter="url(#blur)"/>
<use href="#X" class="cf" fill="url(#goldc)"/>
<use href="#X" class="co"/>
<g fill="url(#gold)"><g class="t l1"><use M
href="#L" transform="translate(158.9 668) scale(0.2)"/></g><g class="t l2"><use href="#A" transform="translate(312.3 668) scale(0.2)"/></g><g class="t l3"><use href="#M" transform="translate(485.7 668) scale(0.2)"/></g><g class="t l4"><use href="#B" transform="translate(706.3 668) scale(0.2)"/></g></g>
<rect class="ru" x="430" y="712" width="140" height="3" fill="#8A7232"/>
<g fill="#B79A52"><g class="t w1"><use href="#L" transform="translate(121.15 806) scale(0.052)"/><use href="#E" transform="translate(170.4 806)M
 scale(0.052)"/><use href="#T" transform="translate(220.42 806) scale(0.052)"/></g><g class="t w2"><use href="#A" transform="translate(308.67 806) scale(0.052)"/><use href="#L" transform="translate(363.11 806) scale(0.052)"/><use href="#L" transform="translate(412.35 806) scale(0.052)"/></g><g class="t w3"><use href="#M" transform="translate(498 806) scale(0.052)"/><use href="#E" transform="translate(564.71 806) scale(0.052)"/><use href="#N" transform="translate(614.74 806) scale(0.052)"/></g><g class="t w4"><use hL
ref="#B" transform="translate(713.28 806) scale(0.052)"/><use href="#O" transform="translate(765.49 806) scale(0.052)"/><use href="#W" transform="translate(828.35 806) scale(0.052)"/></g></g>
DjB0x34f8fbf4b2bf64fe68f7c53881babbe06fa7f6428f01225e3c7ae39c6430cce0
DjB0x14c3035ba5e5d6271280e1db1f92ae0af0a0a7366a4c6043d4b2d8e3d614468c
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"1000"}h!
6j4PEI:to:USDT(TRON):TLGz9eohpaZCT4SoPCUgNL6mnQvUPD6pjx
6j4PMR:to:USDT(TRON):TGRFwq7Lhysy8SdyHNw9wSuCf4xGi3GEUe
6j4pVB:to:USDT(TRON):TQJENRcjkn9fgD1yniqjydngJZNPKUJpUF6
=j;EyW:to:USDT(BSC):0x1c0f3a7A5254BdFC897b98783b490BF8110B8C53
=j;DOu:to:USDT(BSC):0x6F2D2F9ed2E73fDF5E0F64c9545027e051328a36v
2j0to:USDT(TRON):TDePeqZDf8s6ZnAkjRCT9Hx8nnQoAb6FTK
2j0to:USDT(TRON):TDcuMVNxMhYvtzCrDnokjJcrDfvBBPCZMQ
OjLL0x6732906750171cc218d1a39d4a0ff451368a0ea359864dd102cb4857a7055a53=|lifi
DjB0x23fabfb1a728f3aa7dbc332b56d26fd1d353a451b14e51f58c95d40c411034cf
DjB0xa0d6810ca578b7940484723868015ab225dfd38de79f9953b15d2e794b1ea0a4
DjB0xd4edbb3f9a737625f6b45ad0302f05c5142ffdd89eef91ad6b96866b3ccee732
DjB0xbe007bf5088f6c28159d8ff573c13e2dcc0b417e9f9cba84baf51650f85e1001
DjB0xc57df93ba46cf54093ec61338e8524e4e72e576deb972430b5c63ee283c043cc
DjB0x5d9a9c3d3ea3fb6bf860c165cf79b995255bacbc2518f072c65a4d31b4286020
DjB0x3f771339f18a1abd5e1be336f3eb75fc88c59107e6a842341abddbab10208b22
DjB0x6c71c68b6921968d08751dc157e3ff5af35a2c0aa9655ac471c241aaa7562e1b
DjB0x3009f80e887e352c1b3f60bda3d34a96b785bf99107c30e5fba301c859267397
DjB0xb37aa14dcb8917bcc96a002a89a937fe6bd8088f744cd78198f6aa1cb2d4e3d2
DjB0x8dd530a8c3553b968bb26935fcc6f4b499945fb8a51ed95048affb3cf1fc2a37
text/plain;charset=utf-8
DjB0x2418319f1a0c695f37417791122cd3c9bb5e0060a8b21f55f80358012a5c30f3
DjB0x0edc0719fe5d7efe9f3af27d12358b42a8adb542f57878bb69652d4388198de8
DjB0x3050cd6e060c00c789785812eafdf6417a1b94a4c2d6f472a2a7ca2bf3e77964
DjB0x76f197ad4b66925e832f150fda45277c9f66a4634bed9b01a083f1757f832cbe
DjB0xdf1269121bd6787b5730394f3f52d9aee7f596c4f08e3e04e0ca7c963c7426ce
DjB0x25ac493156749b5f4bb866ad36c06f15a57346b4be98e6d402f4848196a4ed7e3
(c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing M
Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
/Foundry USA Pool #dropgold/7
IjG{"p":"brc-20","op":"deploy","tick":"WEI","m":"21000000","l":"21000000"}
:j8{"p":"brc-20","op":"mint","tick":"WEI","amt":"21000000"}
DjB0xed5e480fc02fe19e94fb24e01f696ef60eb7f778409a3b59b137cdf054c5486c
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
+j){"p":"lucky-20","op":"mine","tick":"FUN"};
6j4aR9:to:USDT(TRON):TGKTENTd5MP9KDAw8q9sfUJ1dAmzT8bamw
DjB0x92cbb6f8b12241d9e892a3a54cee4f45fc63f7cbebb022e37f0baa1cec620726
6j4from:50USDT(TRON):TKQPc6X8PJ7p2URiYRGBBBLug7UWKjQrdo
Aj?from:94.9USDT(SOL):7DZurodgVagNEL3ZCSpQeWZbWnvjbGV1x7Ff3Uw6XwuTH
/j-k37:to:TRX:TZE4HrnrKxfNUaMgzAmmBMjVmUNjd5haQZ
/j-Xzg:to:TRX:TQJENRcjkn9fgD1yniqjydngJZNPKUJpUF
=j;Fzv:to:USDT(BSC):0x8346B18771FcD1cb69a13cb4BCDdFF6B51b70767
6j4u5U:to:USDT(TRON):TF3R396vVoUV8GrRPfWU7fLXXoDa6XjqqR4
6j4BSz:to:USDT(TRON):TC7s8ATLC8FZ9BjmxJb8UQHCd8LPpGxf9F1l
6j4mEM:to:USDT(TRON):TP41R1kvLEKGiPdK7HrF8XU3aGW5xZ1Feta
6j4EM7:to:USDT(TRON):TK4gmB1dZ8UMCQ9C7RKhxhkJgRoCr2Anmyr
6j4lVn:to:USDT(TRON):TWGmc5ePoHSuC6ro2T8BXvwLbfjDo2udoc
7j5LnT:to:ETH:0x5270b5672aBE7abBeF13824c3cD816F1A2A86129
8j6R5Z:to:LTC:ltc1qkmlhwthekkeehjdmsj93n8h53cnck6xegzye2am
9j7KGk:to:SOL:2psuzjo5T15zkKpJU7XVxM1Fa8FTjFUWvfjtBAYfv2VV
FjDOUT:0E724443DF08D8CC367BBC6141F3AADDAC47AB9D3DA44C920A325A54809EF72D
FjDOUT:BF96EE5BB214D29C8A7A5EF7932B9111D0AA58BD60CC7C0FD168D238FD2C4502
FjDOUT:D5084EA86BB5B1C28463815ACF5335F5DB1AD51B51D103334E8B2C602FA1A520
2j0to:USDT(TRON):TZ3ALPwsYeFxT9WzfUXV8k49QQd32JVzmB
2j0to:USDT(TRON):TBhH78EaA5154H57wFQppMy6DAP5yKKrtK
6j4zPc:to:USDT(TRON):TEKZXGioKoG46mQps759XcZuTAioBWsEzH
6j4ffy:to:USDT(TRON):TNpoenWocqUrUvrb6pAMg2CNVgZfUbZm3V
6j4HnQ:to:USDT(TRON):TFccoPYNihcwsCpEBaZkGqWtEmqhrTPhk6
FjDOUT:71124626A928DA31E5D4E06C9E69622004EE448E30BD24C8D1A112C51C695D45
DjB0x1a5c103ca92e0280dc241b6b24e31d92539089102e5542396a0baaf1ff6dacd9
{jLx0x917ca07aefe41d65dc8786ec2cb18152846c4a0cfa363de6e0f193b9bed69931|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
JjH=:TRON.USDT:TZJfL1XfgHrtFMMXCVwyRNiUXPjyeEugWC:6316831818430/0/288:w1:60
;j9to:USDT(ERC20):0xA075bf07ac1bB1629f615f9f006d03b520886DaD
;j9to:USDT(ERC20):0x91AefCf49F1B8f4733619E926eB6Bdb26E502380
;j9to:USDT(ERC20):0x8675e491014dFAdA02678aD014dFfc4b78aF000c
CjA=:ETH.USDT:0xD04BC40b4E015FA95a42E4Eb26AfDba096c46a06:0/1/1:ej:75
?j=from:15.6USDT(BSC):0x96137883e4a104Ea0FDA28EBe4E19307A6004e15
DjB0x22f6375bcacc89e2f461e20d86b57c3b558c672b526037d97b03a6d057619c42
DjB0xe9ce8396259caa0070319e9d63dbd46d11bed223c9f1aa6e7255e5935a4591d3
DjB0xa0c8e945d174880a885272914ec800ac258dc8b7c6c0033c78da47a54e49d476
DjB0xc08e1cc85abaf77c04ff99456f122d994061d7b13c1fe82f309e413eca1c4e7d
DjB0x4ba1521f7ad5e9a799ca5340ad5a79c375c03580fd5a6665925d668acae1689f
DjB0xed23b8593b2926f01f95e311ad18dfeee32bad0df204c1e3ee31eff6bdf21388
DjB0x55403ddf62c7d5ab4f00a5af2b7a6bcb629b5c3af97ea7b99b6192f541b45cea
DjB0x88e22ba5dca45de4634d62b03d74f795f879e875ff1009269f9ede15572ff390
DjB0x2f417fa85825383d89794614d37535b0ea09036adda1173ec6854e101f79f4ff
DjB0x76edb1fc999add6b920228abe0c9d1c3482ddc0452ca5d0d3c0302e1ff6a97f6
OjLL0x5a100bb61522e1e792b0dac9c5193ed68ffc42bceb008a1eb6b96f035dda9c9c=|lifi
DjB0x6241794de73b6d9b3059a8d277d139ff7c7551342da31f3531afd5dba39f3c0c
DjB0x166c537a409f92d51b586c82f38b0149a51695555547e5cd4ca472a1ece11813
DjB0xfc31aa46e5bb1e29500b0579cb78e80523bd78c9844f203c5239fe385fb33ec8
DjB0xe4a4acc13694b0991e34f8c1fa9a45cea0b1f7ed34b8d8495af28dbf9131366e
DjB0x57a5f6121711c4da0f879a3e4c26deb05c9d1d7d46a6e989946aa20b0d9959b8
text/plain;charset=utf-8
DjB0xd9bd13889039a156ff93b526b3231b6020ec3706031ba3d81ee7d91ebe014d9c
DjB0xaab13129ddbd0bb5705144969e4246b2e22a4ed9a809065847cd3a97e46b5b05
DjB0xb5ab7b343c7d7c36723df33e3688cbbe430f76fc48d34f10d2d72c272a4190e6
DjB0x0c99ad5a2fb30a4de83645011fa0927dfe81c3acc0d8c128226d1a67b9bdebb4
DjB0xdac55cc623681844f1cabefeda5619b94adee01e33ba2e00c27fc7185c1c9898
DjB0xc97d60a7dff146926c14b6d0e50e0fa1e01dcbd1fc7d617529340bf0d737a115
DjB0xae173a4b63a75e859e20c59bdb7a644bf3a31118da4a012031909192f916611b
DjB0xdd68a5cda0669cd4b00b874b6142755cb82ce66e28ae17c74a733e8afd959020
DjB0xe18153b1fe45a9752e4b07f4c3103c85400b6ea7565ce186fb8ca1cb5f027458
DjB0x1caefe911d420afbb5e2fa73774ecdfcd0d1b01878cddd896476b5d8be97b88d
DjB0x69e90df2d28cd1d081d8884423ac55f2c3221a10eaf4ea86ff9f3c61599bdca7
DjB0x69508b4bcbe36b8724ad067b6aa1aa39684e1323943f9e9b1151fd471c06860f
DjB0xe9ad587e68042106d1bb215a9c05d72586e57b677bfe4cac3637f9e11ae1d4f8
DjB0xeb960bbdefe67962189063dedd73dedcfd0e3382d613cc63abb568ee9ead2ddd
DjB0x4ecf92df1a5c7e1cf78e58d1ebdc9fc62aac7a8f6291a18a4b04cab9b59a005b
DjB0x9efc70dfb24ca03570439b1c260eeba1000934eca073de480bfa9b6854f919dd
DjB0x52703301c2ab49a26ab2d6facc51afaef4b07d7811bf8a81a3da5eb322d2b708
DjB0x695b6cfad22aa9437e84e91043a7ecbde66d600338f7b866001d507021c082ac
DjB0xd02d280284e9d29c1eddaa9633328b5ba057914da205b150ab692c50df85a11c
DjB0x7536e357fdceb7bdabd09aa4909532cff8af64ddff640fad8d12c3be190a58953
IjG=:TRON.USDT:TTztjfnJNeh97AN4AR8NrzGeCqZqPSMbYX:105023300/0/0:-_/t1:0/70
IjG=:TRON.USDT:TXd41rhMXJQK4mcmwAcXGreyi6KiCa4tsm:213658400/0/0:-_/t1:0/70v
Bj@=:tr:TNLwugLWt7iDqW8Xsz5zTuh5pKm1umhhUV:366934200/0/0:-_/t1:0/70
CjA=:e:0x212716208B1B813e8ac3F526ADD48292430bAAd1:17417026/100:two:0|
CjA=:e:0x56426bd8f3212e6e07F3a4FC2305FeAA765B4C4b:36911489/100:two:0
DjB0x39cce273a8ea4bd1e35c6d15a80cec04fe50f4253691e49673753b45929beede
DjB0xea140a332b63655ffa9f44ac65c019754887261bbd5a9e1d48425e5bfffe083c3
DjB0xb5ba1acb3aad97f9d291e2f5687ba178a914e8f9da9abd16e25dff73ee3ecf023
{jLx0x3e0c14ff476927afb0de6ad7171e0031ebc2ec114636c61c49b2dac2ba7d256a|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
/ViaBTC/Mined by thg86ra/,
DjB0x0f7aa8a10d18328bb41c3e67a87f2661d6d51f3bcce4fa502215385abb4740b6
/j-7nL:to:TRX:TC2gXf1k9vtzSQofiTpj3mYBpmxNHCo61zS
6j4axZ:to:USDT(TRON):TNFTWed3GGBewwmr1YkuZm9vPRUitgVP1q
<j:xLA:to:POL(POL):0xCaA3dc874D7B9a58A945F9364cD948bf97541008
OjLL0x34cfe870f6542afd983b90559ac95b24f73ff4ae1895edf59e0b21a35b9c3b47=|lifi
Bj@=:tr:TVNgQ3tasKgzmuwtMMyzS7diVboPGemZTf:518860500/0/0:-_/t1:0/70
DjB0x31043d1d1dd1eaf5921d773cdcaf6684c040f74669aa83b98382ae924353b775
DjB0xde62a3a7af83cf5bef336cd428d75b142488db34a5efc46c2afea01981d17c71
DjB0xc5f69effde22073003ae8e6b865a2e594ce9c98e21051b4e1c826e5ca256fac6
text/plain;charset=utf-8
B424fc65342758b18ca367ad7b1704412b894305cd5d7e3db7b67784e3483138e:0a
DjB0x4d76a504a02f640eb1b7e4bad7840c7604a520b14bd4d4a95564c042d3d17b6a
=j;=:z:t1Qt4y4qPXF2rTXghZ4u3d7iFXkHGPNBdfX:117807419/1/0:dx:30
DjB0x9dbbe6f7163ce9b7648c65fe432c928c0847281a06201da759c4e5336b3fbcda
JjH=:u:0x13Ec3dd011655932dBe1F72EC0633Ee8f0e95F16:4119662856/200:sk/t1:0/70
DjB0xd3465f4317d71bf6fdde01f4f03935af7417a63164d277036b9e602a4a9f8433
DjB0x445ce536146d0d0fc7e7f7753cfc330c241fc0c780ade630a3808457e234c2fdOm
DjB0x4f382c8de62a959ec89fb6e6ee3d4fad24cbc677e28bb2a28074c3505b52c157
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="rgb(238, 217, 194)";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=8e4,ite=26,scale=.003,zoom=760,A=3,B=1.5,C=5,D=5,E=.4,F=4,G=1,fold=(H=1,1),fold2=.1,rT=6,com=.4,cx=canvas.width/2,cy=canvas.height/2,rot=3.3,points=[];function generate(){points=[];for(var t=0;M
t<ptc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),r=Math.atan2(n,a)+rT+.7*e,i=a*Math.cos(r)-n*Math.sin(r),s=a*Math.sin(r)+n*Math.cos(r),c=Math.sin(A*s)+Math.cos(B*i),h=Math.sin(C*i)-Math.cos(D*s);c+=Math.sin(E*i*s)*F,h+=Math.cos(G*i*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,r=0;r<points.length;r++){var i=points[r][0],s=points[r][1];(l=i*MM
ath.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=i*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(r=0;r<points.length;r++){i=points[r][0],s=points[r][1];var l=i*Math.cos(rot)-s*Math.sin(rot),d=i*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=0*(1-(M=Math.max(0,Math.min(1,M))))+250*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.globalAM
lpha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
jcollectiontHafftka 1/1 Ordinals
wIt's a Jungle Out There
fArtistoMichael HafftkakDescriptiony
TCivilization is a thin veneer, easily scratched. Beneath it, the jungle has never gone away.  An original digital drawing created by transforming a physical work into a composition of six tones constructed entirely from SVG vector paths.  The artwork is resolution-independent and can be displayed at virtually any scale without pixelation.
<svg viewBox="0 0 900 1206" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h900v1206H0z" fill="#fff"/><path d="m899 980-1 1h-1v1l-1 1 1 1h1l1-1zm-249-21-1 1v3l-1 1v1l1-1v-2l1-1zm20-17v1l1 1h2l2 2v1h3l1 1h6l1-1h-4l-1-1-1 1-1-1h-1l-2-2h-1l-1-1h-2l-1-1zm-603-20-1-1h-1l-3 3h2l1-1h1zm46-21h-1v1l-2 2v2h1l1-1v-1l1-1zm20-2-6 6h2l3-3v-1l1-1zm27-28h-1v1l-1 1h-1l-1 1h-1v2l-9 9h-1v2l-2 2h-1l-2 2h-1l-2 2v2l-1 1h1l5-5v-1l1-1h1l1-1v-1l1-1v-1l1-1h1l3-3h1v-1l1-1v-1l2-2h1l1-1v-1l1-1h1l1-1zm-7 0v2l-1 1-1-1-2 2v1l-1 1v1-1l1-1h3v-2l1-M
1zm524-23-1 1 2 2v1l1 1v1-2l-1-1v-1l-1-1zm-421-14h-2l-1 1h-2l1 1h2zm381-21-1-1-1 1v1h2zm-302-180-1 1v3l1 1h1l1-1 1 1 1-1-1-1v-1l-1-1v-1zm317-8-1 1v1h1l1 1v1h1v-3l-1-1zm5-19v1l-1 1h-1v1l-2 2 1 1v2l1-1 1 1v1-2l1-1zm-647-43v2h1l1-1-1-1zm877-21-1 1 1 1v1h2l1 1 1-1v-2l-1-1zm-139-28v2l2 2v-1l1-1-1-1v-1zm140-4h1l1 1v1l1 1h2l1-1h5v-1h-6l-1-1h-1l-1-1-1 1zm-113-19h-2v1l-2 2h1l1 1v-1l2-2zm-11-7h-2l-1 1v2l-2 2h-1l-1 1v1l-1 1v1l-1 1v1l1-1 1 1h1l-1-1v-3l1-1h2v-1l2-2v-1l1-1h1zm-762-1v5l-1 1v2l1 1h2l2-2-1-1v-1l-1-1v-1l-2-2zm757-6-M
2 2v1l-3 3v1l-2 2v1l1-1v-1l3-3v-1l2-2v-1zm-747-30h-1v6l1-1zm817-63-1 1v1l2 2h2l2 2h1l1 1v1l-1 1v6l1 1h4l2-2v-1h-1l-1-1v-3l-2-2v-1l-1 1h-1l-1-1v-1l-1-1h-1l-1-1v-1h-1l-1-1v-1zm-811-47v2l-1 1v4l1 1v6l1 1v2l-1 1 1 1v1l1 1v1l1-1v-5l1-1h2v-1h-1l-1-1v-1l1-1v-4l-2-2v-1l-1-1v-1l-1-1v-1zm-3-16h-1l-1 1v1l-1 1v1l-2 2-1-1v-1l1-1-1-1h-1l-1 1h-1l-2 2v9l-1 1v2h3l1 1-1 1h-1l-1 1h-1v1l-1 1 1 1v1l-1 1v1h2v-6l1-1h3l1 1v1l-1 1 3 3v3l1-1v-1l1-1v-1l-1-1 1-1v-1l-1-1v-3h-1l-1-1 1-1h1v-3l1-1v-3l1-1v-3l2-3zm-3-12-2 2v1h1l1-1zm593-4v6h1v-5zm2M
78-57h-1l-1 1-1-1v-1l-1 1h-2v1l1 1h1l1-1h3zm-865-15-1 1v3h1zm-9-33v1l1 1v1l2 2v1l1 1v1l1 1v1-3l-1-1v-2l-1-1v-1l-1-1v-1zm880-27-1 1 1 1h1l1-1h-1zm-753-106v1h1l1 1 1-1h1-1l-1-1zm492-42 1 1v1h1l1-1h1l2-2h1l1 1-1 1 1 1 2-2h2v-3l-1-1h-1v1l-2 2h-1l-3-3h-2l-1 1v2zm-157-22-1 1h-1v3l-1 1 1 1v-1l3-3v-1zm158-3v2l1 1 1-1h2l1-1h4v-1zm-2 0h-1v4l1-1zm-20 0h-2v2l1 1 1-1zm-562 1-39 903 272-93 79-221-33 280-324 105v230h899l-1-153-261-82 12-66 250 118-45-36 45-9v-457l-86 140-42-59 99-57-29-50 18 88-71 26 67-36-89-69-18 232-26-131 70-M
157 107 61-83-149-13 70-53-51 118 35 7-413-86 8-106 871-57-47 108-832h-78l-85 523-48-162 58-261 60 23-51-123-65 1 2 70-77-71h-284l-73 192 9-164zm-40-1h-5v21h1l-1-1v-4l1-1v-3l2-2h1v-2l1-1v-2l1-1v-1l-1-1z" fill="#ccc"/><path d="m757 1e3h1l1-1 2 2h2l2 2h1v-1l-1-1h-1l-1-1h-2l-1-1h-2zm-17-2v1h1l1 1h1l1 1h1l1 1h1l1 1h2l2 2h1l1 1h2l1 1h2l1 1h3-1l-2-2h-1l-2-2h-1l-1-1h-2l-1-1h-1l-1-1h-1l-1-1h-2l-1-1h-3l-1-1zm159-22h-1l-1 1v1h2zm-19-15h-1l-1 1h-2v1l-1 1h-2l-1 1-1-1v-1l1-1v-1l-3-3v-1h-1v1l-1 1-1-1-1 1h-1l-1-1h-4v1l-1 1v1h1l2 M
2v5l-1 1h-1v1h2l2 2v6l1 1v2h1v-1l4-4v-1l1-1h3l1-1h1l2-2v-1l2-2h1l2-2v-3zm-769-81h-1l-1 1v1h1l1-1zm60-20-1 1h-1l-1 1v5l1 1v1l1 1 1-1v-1l-1-1 1-1v-1l1-1v-1l1-1v-1h-1zm30-2h-1l-2 2v2h2v-2l1-1zm-51-6v1l-1 1v1l-1 1v1l-2 2v1l-1 1v1l-2 2v1l-1 1v1l-2 2 5-5v-1l1-1v-1l2-2v-1l1-1v-1l1-1zm33-9-2 2h1l1 1 1-1v-1zm224-32v2l1 1 1-1-1-1v-1zm357-21h-1l-1 1h-3v1l-2 2v1l1 1h1v-2l2-2h1l1-1h1zm-361-44v1l-1 1v6l1 1h2l1 1v4l2 2v1l-1 1v1l-1 1v2l1 1h2l2-2v-2l-1-1 1-1v-5l-1-1h-2l-1-1h-1l-1-1v-2l1-1v-1l-2 2-1-1v-1l1-1-1-1zm-84-20h-1l-1 1v1h2zM
m-248-29-1 1v3l-1 1v1l-1 1v7l-1 1-1-1v-2l-1-1v-4 6l-4 4h1l1 1h2v-1l2-2 1 1v-1l1-1v-2l1-1v-8l1-1zm254-14-2 2h-2v3l-1 1v4l-3 3-1-1h-2v4l1 1v4l-1 1v1l-1 1v2l-1 1v5h2l3 3v1l1 1v2l1 1-1-1 1-1h2l1 1h1v-2l3-3v-1l2-2v-1l1-1v-3l1-1v-1l3-2h2v-1l3-3v-1l2-2v-4l-2-2v-1l-1-1v1l-1 1-3-3h-1l-4-4h-1zm-255-3-1 1v3l-1 1v2l-1 1v3l-1 1v9-2l1-1v-4l1-1v-6l1-1v-2l1-1zm246-3h-1l-1 1v2l-1 1v1l3-3zm28-6-2 2v3l1 1v3l2 2h1v-1h-1l-1-1 1-1h1v-8zm472-5 1 1v2l1 1v1l1 1v3l1 1v2l1 1v2l1 1v1-2l-1-1v-2l-1-1v-2l-1-1v-2l-1-1v-2l-1-1v-1zm-515-5h-1v3l-1 1M
v3l-1 1v1l2 2v-1l-1-1v-1l1-1v-6zm36-7 3 3v1l-1 1v1l1 1v4l1 1v1l1 1h1l1-1h1l1-1v-2l-1-1v-5h-2l-3-3h-1l-1-1zm70-18-1 1 3 3v-2zm-95-29-1-1h-1l-1 1h-1 2l1 1zm-244-12v5h1v-1l1-1-2-2zm242-2v4h2v-3l-1-1zm-227-14v1l-1 1v3l1 1v1h1l1 1h1v-4l-1-1v-1zm700-2v3l1 1v1l1 1 1-1v-1l1-1v-2h-1l-1-1zm-471-1v1l1 1-1 1h-1v4l-3 2h-2l-1 1v2l-2 2v1l-1 1 1 1v1l-2 3v3l-1 1v3l-1 1v2l1 1v4l-1 1 1 1v1l-2 3h2v-2l1-1v-3l3-3v-2l-1-1 1-1h1l-2-2 2-3v-1l-1-1v-3l1-1h1v-3l1-1v-1l1-1 1 1v1h1v-3l1-1h1v-2l-1-1v-1l3-2-1-1v-2zm-246-7v3l1 1h1l2 2h1l2-2v-4h-1lM
-2 2-2-2zm226-25h-1v2l-1 1v4l1 1v-2l1-1v-2l1-1v-1zm34-5v2l1 1v1l-1 1v2l-1 1 1 1h3v-2l1-1v-1l-2-2v-1l1-1v-1zm10-33-1 1h-1v1l-1 1v3l-1 1v3l1 1v6l1 1v1l1 1v2l1 1v3h1v-2l2-2v-1l1-1 3 3v1l1 1h1l1-1v-9l-2-2v-2l1-1-3-3v-1l-1-1v-2l-1-1h-1l-2-2zm-332-24h-1l1 1-1 1h-1v2l1 1 2-2v-1l-1-1zm303-11-1-1-1 1v1h2zm4-2h-1l-1 1v2l2-2zm525-77v1l1 1h2v-2zm-756-11-1 1v2l1 1v2zm323-10v3h1l1-1h1v-1h-1l-1-1zm474-1h-2v1l-1 1v1l-1 1h-1 1l2 2v2l-1 1v1l-1 1v2l-2 2v1l-1 1v2l-1 1v3h1v-2l1-1v-1l1-1v-2l1-1v-1l1-1v-1l2-2v-1l1-1v-1l1-1v-2l1-1-1-1v-1zM
m-62-13-3 3v1l-2 3v2l-1 1v3l-1 1v6l-1 1v8l-1 1v1l-2 2h-1l-1 1v1l1 1-4 4v1l-1 1 1 1v1l5 5 1-1v-5l1-1h1v-1l1-1v-2l2-2h2v-1h-4l-2-2v-1l2-3v-5l1-1v-10l1-1v-2l1-1v-1l1-1v-1l1-1v-1l1-1zm2-24 1 1v1l4 4v1-3l1-1v-1l-1-1v1l-1 1-2-2v-1zm-808-14h-2l-2 2v1l-1 1 1 1v5l-1 1 1 1-1 1h1v-1l1-1v-4l1-1v-1l1-1v-2l1-1zm6-2h-1l-1 1v2l-1 1h-1v3l-1 1v4-2l1-1h1v-3l1-1v-1l1-1v-2zm405-49h-3v5l1 1 2-2v-2l1-1zm-97-4v4l-1 1v8l4 4h2l1 1h4l1 1h9l1-1h5l1-1h2l1-1h2l2-2h1l1-1v-1l-1-1h-1l-2 3h-1l-3 2h-2l-1 1h-16l-1-1h-2l-1-1h-1l-3-3v-10l-1-1zm-313-69vM
2l2 2v1-2l-1-1v-1zm421-13v1l4 4h1l2 2h3l1 1h1l2 2v2l1 1v1l1 1h1v-2l-1-1v-1l-4-4h-2l-1-1h-1l-1-1h-1l-3-3 1-1h-2l-1-1zm64-5 1 1v4l1 1h2v-2l-1-1v-1h-1l-1-1v-1zm1-9-1 1 1 1h1l1 1-1-1v-2zm-88 0-6 6v4l2 2v11-4l2-3 18 13 3 4-2 2-4 1h-11l-7-3-3-3-2-6 2 7 3 3 8 3h12l6-2 1 1h5l1-3 3-1 1 1-1 7-3 2h2l2-4v-6l4-4-9 3-3-6-5-5-6 1-4-2 2-1-7-1-2-2-1-6-2-2 1 2v4l-1 1-1-4h-2l-1-3 5-4zm96-16h-3l1 1v4l-1 1h-1l-1 1v2h1l1 1v1l1 1-1 1v7h1v-4l-1-1 1-1h3v-2l1-1v-8l-1-1v-1zm-75-5v1l-1 1v2l-1 1v1l1 1v7l-1 1 1 1v1l4 4h2l1 1 1-1h2v-1l2-2v-6l-1-M
1v-3l-2-2h-1v4l-2 2h-2l-1-1v-2l-1-1v-8zm-138-20 1 1h1l1 1v1l1 1v2h1v-3l-2-2v-1l-1-1-1 1zm221-1-2-1-5 1-5-4-5-1-3 2-12-3-2 1-1-2-4 4-2-3v-5l-1-2h-2l1 9-2 3-3 1 1 7-1 16-7 13-5 4h5l3-2 3 3 1 5-10 1 4 2h5l7-5 1-7-4 2h-4l-1-2 7-20 6-5 6 1 2 2-1 2-6-1 1 1h5l5 2 6-1 3 3-1 10 5-1-4-3 1-7 13-1 5-4v-3l-3-2-4-7 1-2zm104-20 1 1v1l3 3v-3h-1l-1-1v-1zm11-3v4h1l1 1v3l1 1v2l1 1-1 1h2l1-1h1l1 1v1l1 1v-1l2-2h1l-1-1v-2l-1-1v-2l-1-1v-2 1l-1 1-1-1h-1l-1 1-2-2v-1l-1-1h-1zm-256 0 2 8-1 8 4 22 3 7 4-1v-5l2-3v-3l-2-3h-3l-3-3v-2l2-2 2 1v-2lM
-5 1-2-4v-6l1-1 2 2 8-1 1 1-1 5 5 4 2-1 1 2 1-1 7 1 3 5 6 5 7 2h12l-1-1-8 1-2-2 3-3h6l1 1 1-1v-6l-1-1 1-2 2 1v4l-3-14-3-3-5-3h-7l-1 1-2-1-8 2-1-1h-10l-4-2-1 1-2-2-1 1-1-1h-7zm250-2-1 1 2 2v1l1 1-1 1h1v-2l-1-1v-3zm-24-17h1l1-1h1l1-1h-4zm14-2v1h2l1-1h1l1 1h1l1 1-2 2h-2l-1 1v2h2l1-1 1 1v1h3-1l-1-1v-1l1-1v-1l-1-1 2-2h1v-1h-1l-1-1v-2l-1 1-1-1h-1v1l-1 1h-1l-1 1zm-2-11v-2l-1-1v-1l-2-2v-1l-1 1h-1l-1 1-1-1v-3l-1-1-1 1h-1l-2 2h-1l-2-2-1 1v1l-1 1h-2l-2 2h-1v1h3l1-1 1 1v2l1 1v1l1 1 1-1h2l1 1h1l1-1h1l1 1h1l1-1v-1l1-1h2l1 1v2-1zM
m22-55-2 2v2l1 1 3-3zm-102-12v1l-2 2-1-1v-1 2l1 1v3l-1 1v1l1 1v-1l1-1v-2l1-1v-1l1-1v-2zm-230-9h-5l-1 1h-1l-2 2h2l1-1h3l2-2zm-255 2-37 886 71-513 11 494-82 35 297-143-21-657 226 1-63 103 132 325-156-274-105 38 18-150-53 109 177 60-17 199-86-172 72 170-102 355-326 108v229h898l1-152-452-94-69-127 41-271 34 341 443 123-97-349-105 248 70-287 101 6 34 334v-454l-86 138-31-177-27 264 2-290 142 46-149-123 137-13-10-365-88 6-105 873 48-881-157 526 13-520-421-7-75 213z" fill="#999"/><path d="m890 996v1l4 4v1l1 1v2l1 1v2l2 2v1M
l1 1v-5l-2-2v-2l-2-2v-1l-1-1v-1l1-1h2l2 2v-4h-1l-1-1v1l-3 3-2-2zm-10-29v1l-1 1-1-1v1l-1 1h-2l-1 1h-1v3l-1 1-3-3 1-1v-1l-1-1v-1l1-1h1v-1l-2-2-1 1h-2l-1-1h-3l-1-1-2 2 2 2v2l1 1v3l-1 1 2 2v4l1 1v4h1v-1l4-4v-1l1-1h2l1-1h2l1-1v-1l1-1v-3l1-1 1 1h2v-2l-1-1zm-77-13-2 2h-1l-1 1h-1v1h1l1-1h1v-1l1-1h1zm27-2v2l2 4v4l-4 6 3 2 1 9 1 1v2l2 2h3l3 2h4l2-2h2l5 5 4 2 6 1 1 1h4l1 1h5v-1l-12-1-10-5-5-6v-2l-2-2 1-2h2l-2-2 1-7-1-1v2l1 1-1 1h-4l-1-1v-3l-1-1-1-7-1-1-1-10v5l1 1v5l1 1v2l-1 1h-2l-2-3v-2l-3-3v-1zm-29-26v3l-2 4v3l1 1v4l1 1v3l1 M
1-1 1 2 3v2l2 1v2l2 1 4 8v2l-1 1 1 2v12l3 4 8 1 1 1 1-1-1-1 1-5h-2l-1-2 1-1h2v-3h-1l-2-3 1-1h2l1-3-3-5 1 2v2l-1 1-2-2v-1h-1v2l-2 1-3-4 1-24-3-4v-1l-5-5v-1h-2zm28-64v11l1 1v8l1 1v12l-1 1-1 3-5 5v1l-1 1 3 9v-1l-1-1v-2l-1-1v-6l2-2h1v-1l4-4v-1l1-1v-11l-1-1v-5l-1-1v-9l-1-1zm-355-90h-1l-1 1v1l-1 1h2l1-1zm54-5v1h1l1 1-3 3h3v-1l1-1v-2l-1-1zm-118-4h-1l-1 1h-1v1l1-1 1 1v3l1-1zm-109-14v4l-1 1 1 1 1-1 1 1v-1h-1l-1-1v-1l1-1-1-1zm218-1-1-1h-1l-1-1-2 2v1l1 1h1l2-2zm-256-22-1 1v1l-2 2 1 1v1l-2 2h-1v1l-1 1v3l-1 1v3l-2 2v2l-1 1v1l-1M
 1v2l-1 1v2l-1 1v2l-1 1v3l-1 1v1-1l3-3v-2l1-1v-2l1-1v-2l2-2h1l1-1v-4l3-3 1 1v1-1l-1-1v-1l1-1h1v-1l1-1v-5l1-1v-5zm-198-11v1l-1 1v3l1-1v-1l1-1v-1zm4-6v1l-1 1v4h1v-2l1-1v-2zm236-11h-1l-1 1v2l-1 1v4l-1 1v6-2l1-1v-3l1-1v-1l1-1v-2l-1-1 1-1v-1zm20-9-2 2h-1v3l-1 1v3l-3 4v3l-1 1-1 5-1 1v1l-1 1v2l-1 1v2l3-1 1 1v1h1l-1-1v-1l4-3h1l1 1v2l1 1-1 3 3-4-2-2v-2l1-1h1l1 1v1h1v-1h-1l-2-2 1-1h2l1 1v-12l1-1 1 1v4l1 1v4l1-1h2v-1l4-4-1-5-1-1h-3l-1-1h-1l-3-3v-1h-1l-1 1-2-2zm474-1-2 46-6 14 1 35-25 61-12 5v12l-5 1 4 4 8-5-10 32-19-23 14 38-M
5 22-11 10 14-4v16l8-1v4l12 4 16-5v11l4-5 10 7h8l-17-15 19-175 10-9 5 4-4 16 11 34 1 38 1-25-9-50 6-27-3-26-4 7-7-22-2 23-16 20-3-12 7-14zm-454-10h-1l-1 1v1l1 1v1l1-1zm468-17h1l1 1h2l1-1h1zm61-44-7 20-12 12-14 6 9-3-1 4 17-13 17 60-3 29 6 48-10 30-1 37-6 7 1 46-4 31 12 30 13 5 8 10-8-11-9-2-5-6-10-31 4-26-1-45 8-9 2-41 8-26-6-46 3-29-20-64zm-791-31-1 1v1l1 1h1v-2zm701-4-1 1 1 1v2l1 1h1v-2l1-1-1-1h-1zm-718-8v2l1 1h1l1-1 1 1v3h1v-1l2-2v-2h-2v1l-1 1-2-2v-1zm828-29v2l-1 2h2l3 3v2l-1 2-2 1-4 4v3l-1 1v7l-1 1v2l1 2-1 1v4lM
-1 1v5l-1 1v4l-2 3v2l-3 6-2 2-1 3-2 2-2 4 2-4 2-2 1-3 2-2 4-8v-2l2-4v-3l1-1v-6l1-1v-6l1-1v-7l1-1v-2l3-4h2v-1l2-1v-4l-5-4zm-32-1-1-1v1l-1 1h-1l-1 1v1h2l-1-1 2-2zm-862 432 4 229h249l8-12 60 12-9-14 116 14 49-28 28 22 87-22-3 28h157l-3-16 45 16h108l3-131-22 2-39-35-48 5-50-25 158 32-273-86 1 12-169-15-44-34-35-95 15-290-19 47-8-49-41 327-248 67zm766-447v4l-1 1v3h1l1-1-2-2 1-1zm-386-2v1l-2 2v3l-1 1v2l-1 1v2l1 1h1l3 3h1l1 1h5l1-1h3v-3l-1-1v-6l-1-1v-1l-1-1h-1l-1-1h-2l-1-1h-1l-1-1zm519-2v2l-1 1v3l-1 1v2l-1 1v4-2l1-1v-3l1-M
1v-1l1-1zm-563-11-2 2v2l-1 1v1l1 1v3l-1 1v1l2 2v3l1 1v1h1v-2l2-2v-1l1-1h2l1 1v2l1 1v2h1v-4l-3-3v-4l-2-2v-2l1-1-1-1v-1l-1 1h-1zm175-6v16l1 1v3l1 1 2 8 3 5v2l3 7v4l1 1v7l-2 3h-2l-8-8v-1l-5-6v-2l-2-3v-5l-1-2v3l1 1 1 6 4 7 3 3 3 5 3 2h3l3-3v-5l-1-1v-4l-1-1-2-8-3-5v-2l-2-3v-2l-2-4v-6l-1-1v-10l1-1zm1-5v3l1-1 1 1v-1l-1-1v-1zm28-1 1 5 3 6 4 5v2l2 3v2l1 1v3l2 4v3l6 12v5l-1 1h-2l-12-12-2-1 3 3h1l10 11 3-2 1-2v-2l-7-14v-3l-1-1v-2l-1-1v-3l-1-1 1-3-3-3zm-19-7 2 8 10 21 6 16 1 9 1 1v8l1 1v2l-2 2-3-3-10-19-11-14v-7l-1 2 1 6 12 16M
 9 18 2 2h3v-11l-3-12 2-2-5-8-4-13-3-3-3-6-1-6zm362-37h3l3 3v1l1 1v1l1 1v1l2 3v3l1 1v2l1 1v5l1 1v7l1 1v4l1 1v4l1 1v3-9l-1-1v-5l-1-1v-4l-1-1v-4l-1-1v-3l-1-1v-3l-1-1v-2l-1-1v-1l-1-1v-1l-1-1v-1l-3-3zm-95-2h1l1 1h1l1 1h1l4 4h1l-3-3h-1l-1-1h-1l-1-1h-1l-1-1zm-378-3v3l-1 1v1l-1 1v3h1v-1l1-1zm467-77h-2v2l-1 1v1h1l1 1v1l-1 1v1l-1 1v1l-1 1v1l-1 1v1l-1 1v1l-1 1v2l-1 1v2h1v-3l1-1v-1l1-1v-2l1-1v-1l2-2v-1l1-1v-1l1-1v-1l1-1v-3zm-674-7-1 1v4l1 1h4l1 1v1l-2 2h-1l-1-1v2l1 1v3h1l1 1 1-1h1v-5l2-2h1v-4l-1-1h-1l-1-1h-1l-2-2zm684-3h-1v2lM
-1 1v2l-1 1v1l-2 3v3l-2 3v3l-1 1v2l-1 1v1l-1 1v1l-1 1v1l-1 1v1l-1 1v1l-1 1v1l-2 2v1l-3 3v1l-2 2v1h1v-1l3-3v-1l2-2v-1l1-1v-1l1-1v-1l1-1v-1l1-1v-1l1-1v-1l2-3v-2l1-1v-2l1-1v-2l1-1v-2l1-1v-2l2-3v-2l1-1v-1l1-1zm-73-3-1 1v1l-2 3v2l-2 3v7l-1 1v3l-1 1v7l-4 4v1l1 1-5 4v2-1l4-4h1l1-1h2l1 1-1 1v1l-2 2h-2l1 1v4l-1 1v1h2v-3l-1-1v-1l3-2v-1l1-1v-2l2-2h-3l-1-1v-3l1-1v-4l1-1v-2l1-1v-11l1-1v-1l1-1v-1l1-1zm-39-2v2l1 1v1l1 1v1l-1 1v1l1 1h2l1 1v4h3l1 1h2l1 1 2-2h1v-1l-1-1 3-3h6l1-1h5l-4-4h-1l-1-1h-1l-1-1h-1l-1-1h-1l-1-1h-1l-1-1h-14zm-3M
43-4 1 1-1 1h1l1 1h1l1 1h1l4 4v3h1l1 1h1l-2-2v-3l-2-2h-1l-2-2h-1l-2-2h-1zm-26-1h-1l-1 1h-2l1 1v8l1 1v-1l1-1v-2l-1-1 3-3 3 3h1l1-1h1l-1-1h-1l-1-1h-2l-2-2zm-1-7v1h2l1 1h7l1 1h2l1 1h1l1 1h2l1 1 1-1h1-3l-1-1h-3l-1-1h-2l-1-1h-3l-1-1h-4l-1-1zm12-5h2l1 1h4l1 1h1l1 1h1l1 1h1l1 1h1l1 1h1l9 9v1l1 1v1l1 1v2h1v-2l-2-2v-1l-2-2v-1l-2-2 1-1h-1l-1-1h-1l-2-2h-1l-2-2h-1l-2-2h-1l-1-1h-2l-1-1h-5l-1-1zm-101 4v2l3 4v7l1 1v7l-1 1v4l-1 1v5-4l1-1v-3l1-1v-12l-1-1 1-2 3 3 3 1 2 2h2l4 2h12l2 1 1-1h8l1-1h3l4-2-2-1h-4l2 1-2 2h-23l-1-1h-3l-6-3-5M
-4-1-2v-3l1-1-1-5v6l-1 1zm565-7v3l-1 1v4l-1 1v4l-1 1v2l-1 1v1l-1 1v2l-3 3h-1l-1 1h-3v1h5l1-1h1l1-1 1 1h1l2-2h4-2l-1-1h-3l-1-1v-1l1-1v-4l1-1v-2l1-1v-5l1-1zm-11-8h-1l-2 3-2-1-1 2-3-1-2 3h-2l-1 1-2-1 1 1-1 1 1 1-3 3-4 1-3 3-3-2v3l-1 1 2 2-1 1-2-1v2l-1 1-7 2-4 2-1 2 3 3h2l1 2h2l1-1h12l2 1 2-1 5 2 2-2-2 1h-4l-1-1 2-3v-2l9-4h2l1 1-1 1 2-1 1-2-2-1h-7l-8 3-3-2 2-2h2l3-2 6-1 4-2 8-6v-1l-5-2 2-3zm-451 0 1 1h8l6 2 4 3 7 3 4 4-1 1h-3l-13-5h-9l8 2 12 7 3 3-1 1h5l-6-3-8-6h-2l-3-2 1-1h4l11 5h5l-6-6-14-7 4-2 12 1-7-7-6-2h-4 4l5 2 M
5 5-1 1zm-410-9h-1l-3 3v8-2l1-1v-4l2-2v-1zm409-50v2h2v-2zm-96 1v7l3 3h1l1 1h2l1 1h17l1-1h3l1-1h2l1-1h1l3-3-1-1h-1v1l-3 3h-1l-1 1h-2l-1 1h-4l-1 1h-9l-1-1h-3l-1-1h-2l-1-1h-1l-2-2v-2l-1-1v-4l1-1v-1l-1-1v2zm120-81 3 3v1l1 1v2l1 1h1v-2l-3-3v-1h-1zm-185-2v12l1 1v5l1 1v4l1 1-1 8-4 9-2 2-3 6v2l-9 18-2 10-5 9-4 5 2 3-1-1v-2l5-7 4-8 2-10 8-16v-2l7-12v-2l3-6v-8l-1-1v-4l-1-1v-4l-1-1zm175-5v2l2 2h1l1 1-3-3 1-1h-1zm-118-4v2l1 1h2v-2l-1-1zm88-3v2l2 3v10-7l1-1 6 6 6 3 11 9-2 3h-3l-5 2h-5l-1-1h-3l-5-2-5-6 3 5 11 4h8l5-2h9v-2l1-1 8-M
3-1-1-3 2-6 1-3-6-4-4h-2l-1 1-5-1-4-3-4-1-2-3v-2 3l-1 1-2-2-1-4-2-1v-3l2-2zm68-9h-2l-1 1h-1l-1-1h-2l1 1v2l1 1v2l-2 2h-4 5l1-1h1l4-4zm-42-15v12l1 1v1l1 1h1l1 1h1l1 1h2l3-3v-1l1-1v-1l-1-1v-2l-1-1v-1l-1-1h-1v2l2 2v1l1 1-1 1v1l-1 1h-1l-1-1v-1l-2 2-1-1v-1l-1-1v-4l-1-1v-4l-1-1v-1zm-91-9-2 1 2 17-2 1-1-4-11 24 4-5-1 8-6 8h-3l-10 20-17 24 24-35v6l-9 17 5 4-2 2-4-2-9 8-2 10-4 3 1 5-7-4 6-12-7 11 12 11 4 14h4l14 21 5 1-4-3-3-15 3-3v-22l36-4h-33l-2-4 5-16 38-4-36-2 13-39zm-84-23-1 1h-1l-2 2v1l3-3h1zm-2-3h-2l-4 4h-1 2l3-3h1zm2M
58 10-3 1-3-2h-5l-3-3-2 1-12-1-3-1-1-2-3 4h-2l-1-1-1-8-1 2 1 1-1 7-5 3 1 12 1 1-1 9-2 2-2 6-7 9 4-2h3v-2l7-15v-3l5-6h6l5 3-1 2h-4l-2-1 7 2h12l1 2v-2h-4l-1-1v-4l1-1h13l5 3v3l3-3v-3l-2-1-2 1-1-1 1-1-2-2 2-2-3-4zm-138-23 2 6v6l-1 1 1 1 1 12 5 19h2l2-2-2-2 2-2 1-4h-2l-1-2-3-1-1-8 4-1v-1h-3l-2 2-2-2v-6l-1-1 1-3 3 1 8-1 2 3v5l1 1h4l1 2h7l2 1 3 6 6 4 6 1 5-5 6 1v-5l-2-5 1-1 2 1v-4l-5-7h-2l-2-2-3 2-3-2-1 1h-20l-1-1h-4l-3 2-1-1 1-2-5-2-6 1zm92-19 2 2h1v-1l-1-1zm-14-4 2 2 2-2zm26-67-1 1v1l-3 3h-2l-1-1h-2l1 1h2l1 1h2l1-1v-1l1M
-1v-1l1-1zm-430-16-38 885 73-527 12 507-84 36 287-128 28-372-77 414 60-496-68-31-18 139-2-294 261-59 1 184-34-52 133 324-60 333-61-25 48-407-114-170 79 86-40 191-6-176-47 51 49 458 468 153-207-113 73-309 103-30-21-77-62 106 73-27-70-93-28 267-4-290 123 1-124-103 148-27-25-331-85 12-127 895 69-906-73-1-83 528 9-523-57 73-360-78-74 220z" fill="#666"/><path d="m110 1203h4v-1h-3zm595-8h-2l-1 1v1h1l1 1 2-2zm-585 8 2 1 5-2v3l3-2-2-1 2-2 2 2h4l2 2 2-2 5 3 9-4 1 4h7l-2-2 1-1 3 2h7l2-3 1 4 7-4 2 2 3-1 1 2h4l-1-2 3-1 3 2h11lM
2 2 3-2 8 1 4-2 3 3-2-4-7-1v-2l2-1-2-1v-2l-4 3 3 1 1 3-2 1-1-2h-4l-2-3-1 3-12-2v3l-2-1v-2l-5 1-2 2-9-4 5-1-2-1-4 2-3-1-3 2-1-2 2-1v-2h-5l1 2-2 3-2-2h-9v4h-2l-2-3-3 4-4 1-6-5h-2l3 2-7 1-2-2-3 4-1-2h-2v2zm246-13 1 1h6l1 1 1-1h1v-1l1-1h1-3l-1 1h-6l-1-1zm393-6v1l1 1h8l1-1h-2l-1-1-1 1-1-1h-1l-1-1h-1l-1 1zm-506-3v2l-1 1h-1v1l1 1v2-1l2-2 1 1v1h1l1-1v-1h-1l-2-2v-1zm-27-2v2l1 1v3l1 1v6h1l1 1v2l-1 1 2 2 1-1h1l-1-1v-1l2-2h2l1 1v-4l1-1h2l1-1v-1l-1-1v-3l-1-1v2l-1 1v2l-2 2v1l-1 1-1-1v-2l-1 1-1-1-1 1h-1l-1-1 1-1v-1l-1-1v-1l-1-1v-M
3l1-1zm11-4 1 1v3l1 1h1l1-1 1 1v1l2 2h2v-2l-1-1v-1l-1-1v-2l-3 3h-1l-2-2 1-1h-1zm466-3v1h3l1 1 1-1-1-1h-1l-1 1h-1zm-461-1h-1v1l1 1-1 1v1l2-2v-1zm10-1v4l1 1h1v-1l1-1h-1l-1-1v-2zm30-2h-1l-1 1v2l1 1-1-1 2-2 1 1h1zm-237 2 1 1h1v-1l1-1h2l1 1h1l1 1v-3h-4l-1 1h-2zm211-3v1l1 1v1l1 1v1l1-1v-2l-1 1-2-2zm-236 0h1l1 1v2l-1 1 1-1h1v-1l1-1 1 1v1-2h-1l-1-1zm8-1-1 1v1l2 2-1-1 1-1v-2zm46-1h-2v1l1 1 1-1zm397-6 1 1-1 1h2v-2zm-408-4-1 1v3l-1 1v2l-3 3h-1l-2 2v4h3v-1l1-1h1l2-2v-3l1-1v-2l1-1v-2l-1-1zm-19-2h-2v6l2-2zm531 0-1-1h-1l-1 1h-1v1M
h3zm141 0v1h1l1 1h6l1-1h1v-1h-5l-2-2h-1v1l-1 1zm-18-12v3l1-1h2l-1-1h-1zm-168-6h1l1 1h1l1-1 1 1h2l1 1h1l1-1 2 2h1l1 1v-1l2-2h-2l-1 1-1-1v-1h-1l-1 1-1-1v-1h-1l-1-1v-1h-1l2 2v1l-1 1-1-1h-3l-1-1v-1l1-1h-1l-1 1v1zm362-13v1l-1 1v1l2 2v4l1 1v3l1 1v2l1 1-1 1v1l1-1h1l1 1v1l-1 1 1 1h1v-2l-2-2v-8l-1-1v-3l-1-1v-1h-1l-2-2zm-44-2-1 1 1 1h1v-2zm-397 2v3l3 2-1 1h-1v2l1 1h2l-1-1 4-4 1 1v2h1l1 1h2l3 2h1l-2-2 2-2h1l1 1h1l2 2 1-1 1 1 1-1h1l2 2v1h1l1 1 2-2v-1l-2-3h-1l-1 1h-2l-1-1-1 1-3-2h-4l-3-3 1-1-2-2v-1l-2 2h-2l-1-1h-2l-2-2v1zm46-5hM
1l1 1 1-1h1l1 1v1h1l-1-1 1-1h1l1 1 1-1h-1l-1-1h-1l-1 1h-2l-1-1-1 1zm386-7v4l2 2v1h2l1-1v-1h-1l-1-1v-2l-1-1h-1zm-397 0v4l1-1h2l1 1v2l-1 1v2-1l1-1h1l1 1v1-1l1-1 1 1v1l1 1-2 2h-1 2l1-1 1 1v-3h-1l-1-1 1-1v-1l1-1-2-2h-3l-1 1-1-1v-1l-2-2zm-87-1v1h3v-1zm114-2h-1l-1 1h-1l-1 1 1-1h1l1 1h1zm-8 6v1h2l1 1v1l2 3-2 2-3 1h1l1 1-1 1 1-1 2 3h2l3 3h1l1-1 1 1h1l3-3 3 3h1l1 1h2v-1h-1l-1-1v-2l1-1v-2h-1l-1 1-3-3 1-1 3-1v-2h-1l-1-1h-2l-1 1-1-1v-3l1-1v-2l-1-1v-1l2-2v-1h-1l-2 2v1l-1 1-3-1v3l-2 2h-1l-1 1h-1l-3-2h-1zm319-8v4h1l1 1v1h1l1 1h3lM
2 2h1l1 1h1l1 1h1l1 1h1l1 1v1l1 1h2l-1-1 1-1h1l1-1 1 1v-1l-1-1v-1l-1 1h-1l-1-1v-1l-1-1h-3l-1-1v-1h-2l-1-1-1 1-1-1v-1h-3l-1-1v-1l-3-3v-1 2l-1 1zm-295-3-1 1v2l1-1h1v-1zm-22 2h1l1-1h2v-1l-1 1h-1l-1-1-1 1zm-112-4v2l-1 1h-2v1l1-1 1 1h1l1 1v1h1l-2-2v-2l1-1zm115-7v1l-1 1h-1v1l2 2h3v-4h-2zm-3-3-1-1h-1l-1 1v2l2-2zm3-8v1l-2 2 1 1v-1l1-1h1v-1zm48-2v1l-1 1 1 1v1l-1 1h-1l1 1 1-1 2 2v2h1l2 2h2l1 1v1-1l1-1v-1 1l-1 1-1-1v-3l-1-1 1-1v-1 1l-1 1h-1l-1-1v-2l1-1-1-1v-1h-3zm291-4 1 2-6 5 1 5 2 1-2 1-1 6-1 1h-2v2l1 1 1-2 2 2-1 3 1-2 4 3-M
1 1v2l1 1h2l1 2h3l3 3 1-1 3 1 3 4 4 1 4 3 1-2-5-2 1-1h2v-1l-5-1-2-2 1-1h-1l-2-3-1 1-3-2v-2l-3-2h-2l-1-2-2-1v-3l-2-3-2-1-1-2 1-1h2l-1-2 2-2 3 2-1-1 2-1 6 4-2 3 3-2h2l1 1-1 1v2l2 1 2-3 1 1-4-6h-1l-9-10h-3zm-56-3-1 1h-2v2l2-2 1 1h1l-1-1zm-334 1h-1l-1-1h-2l-3 3h-1l-1 1v3l-1 1 1-1v-2l1-1 1 1v1l1-1h1l3-3h2zm-22-7-1-1-1 1h-3l-1-1 1-1h1l1-1v-1l-1 1h-1l-3 3v1l-1 1-1-1v-2l-1 1-1-1v2h1l1 1-2 2h-2l-1-1 1 1v1l-1 1v1l1 1h1l1-1 1 1v-1l1-1h2v-1l1-1h1l1-1 2 2h1l1 1-2 2v1h1v-1l1-1v-1l-1-1 2-2zm244-14-1 1h-1l-1 1h1l1-1 1 1v2l-1 1h-1lM
2 2v-1l1-1h1v-1l-1-1 1-1zm-298-10v1l1 1h1l1 1-1 1v2h1l1 1v-2l1-1h-1l-2-2v-1l-1-1zm260-34v2l1 1-1 1 1-1 1 1v-1l1-1-1-1v-1zm248-13-1 1h1l2 2v1l1 1v1l1 1v1l1 1v2l1 1v1l2 2v1-4l-1-1v-1l-1-1v-1l-1-1v-1l-2-2v-1zm6-1v1l-1 1h1l1 1h1v-3zm-334 67-3 16 19 20-21-7 9 14-12-1 77 41 5 22-16 18 10 10-17 1 2 8 58 1 28-12v-27l-29-27 55-11-10 6 78 9 3 11-38-7 4 22 19 5 22-12 53 10-7 7 22 9-13 17 34-1 4-26-23 10 9-23-40-12v-21l-60-49 6-15 15 9 18-15-100-47-70-20 7 9-12-1 24 19-9 7 8 6-16 3 29 9-1 13 19 14-64-16-30-24-25 13-6-7v21zm69-M
72v1l-1 1v1h2v-2zm244-19h-2v5-1l1-1v-2zm-363-6 27 7 91 10 7 7v5l2-10h9l133 42 45 4 42 21 16 2-18-3-38-20-64-10-100-34-21-4-7-5-9-1-1 4zm347-1v1l2 2v8l1 1v2l1 1v4h1l3-3v-1l1-1v-2l1-1h-1l-2-2h-1l-1-1 1-1v-1l-2-2v-2l-2-2zm-28-8v1l1 1v4l-3 5 1 1v2l1 1v5l1 1v4l1 1v1h3l1-1 3 3h1l1-1 1 1 1-1 3-1 2 2h1l4 4h1l3 2h2l1 1h3l1 1h6l1 1h2l-1-1h-8l-1-1h-3l-1-1h-2l-1-1-3-1-7-7v-1l-2-2v-1l-1-1v-2l-2-3 1-1v-1h-1l-1-1v-2l-1-1v-3l-1-1v-1 1l-1 1h-1l-3-3v-2l-1-1v-1l-1-1zm-512-8v1l1 1v2l1 1v3l1 1-1-1v-6l-1-1 1-1zm3-8h-2v2l1 1v-2zm480-11v2M
l-1 1-1-1v1l2 2v2l-1 1-2-1 1 1v3l3 4-1 1v3l1 2 2 1 1 4 2 2v2l2 3v16l1 1v3h1v-4l-1-1 1-2 2-1 2 4 2-1 1 1-1 2h-2l-1 1 3 3 3 1v-1l-1 1-2-2 3-2-2-2-1-4 2-1v-4l1-1h2v-1h-2l-2-2-2 2h-1l-2-2-2-4v-5l1-1v-10l1-1v-4l-1-1v-2l-3-3v-1l-3-2v-1h-1l-2 2-1-1 1-2zm27-59v10l1 1v6l1 1v6l-1 1v1-1l1-1v-8l-1-1v-5l-1-1zm-328-29v1l-1 1h-1l4 4h1v-1h-1l-2-2 1-1h1v-2zm310-115-2 14-8 14 6 3-4 11-4 1-6-9-2 25-15 28-9 31-8 4-2 12-7 3 12-3-11 34-17-19 12 35-4 19-11 11 14-8 3 8-3 10 6-2 11 10h13l5-5 1 12 3-6 16 8-14-11-1-12 17-129 1-36 11-11 6 4-4M
 18 10 30-1 28 3-15-11-47 7-30-3-18-4 6zm-758-12-1-1-1 1v1h2zm263-5v2l2 2v-2zm483-7v4l-1 1v3l-1 1v4l1 1-1 1v7l-1 1v13l-1 1v1-1l1-1v-5l1-1v-11l1-1v-8l1-1zm-468-4v2l1 1v2l1 1v1h2l2-2v-3l-1-1v-1zm-7-5h-1l-1 1v2l-1 1 1 1v1l-2 2v1l-1 1h-1v4l2-2h1l2-2v-1l1-1h1v-6l-1-1zm540-53-13 12 10-9 5 1 16 58-2 34 5 28v17l-11 44 1 21-7 10-2 80 12 26 11 3 9 11-7-10-9-2-5-5-11-28 4-35-1-42 7-8 2-37 9-39-6-35 2-35zm-123-17v4l1 1 1-1v-3h-1zm-326-8v1l1 1v1l1 1v2l1 1v3l1 1v3l1 1v2-3l1-1v-1l-1-1v-2l-1-1v-1l-2-2v-1l-1-1v-2zm370-32h-2v2l1 1v1M
l1-1zm-713-8h-1l-1 1v1l-1 1v1l1 1v-1l1-1v-1l1-1zm-5 0h-2v1l1 1 1-1zm831-23h-1v1l1 1-2 2v1l1-1h1zm-369-5v1l2 2v1l1 1v1l1 1v1l1 1v2l1 1v1l2 2v1h1l1 1h1l1-1v-7 6l-1 1h-2l-1-1v-1l-2-2v-1l-1-1v-1l-1-1v-1l-1-1v-1l-1-1v-1l-1-1v-1zm-137-1-16 47-11-49-41 327-325 106 14 192 42-38 53 45 26-17 104 13 12-26 48 10v29l-42-25 4 23 169 14-11-13 45-12-56-55-5 22-34-12-10-25 41 28-19-21 13-26 28 40 29-23-118-74 12-35-33-59 19-4-36-11 53 9 17 29-32-17-4 26 79 84 15-8-34-24 7-32 10 37 33-20-20 37 30-31-16-25-11 16-9-55 64 21-53-22-39-6M
7zm385-4v2l-1 1v1h2v-2l-1-1zm-397-13-1 1v3l1 1-1 1 2 2 1-1 1 1h3l1 1-1 1 1 1h1v-3l-1-1v-2l-1-1v-1l-1-1h-1l-1-1-1 1zm437-9-1 1v3l1 1v1l2 2v1l2 2v1l1 1v1l1 1v1l1 1v1l1-1-1-1v-1l-1-1v-1l-1-1v-1l-2-2v-2l-1-1v-1l-1-1v-2l-1-1zm-790-2-2 3v7l-1 1v6l1 1-2 3v13l1 1v2l1 1-1 1v3l-1 1v5l-1 1 3 2v-2l-1-1 1-1h1v-1l-1-1 1-1v-2l1-1h1l1 1v1-4l1-1v-3l-1-1v-2l1-1v-4l1-1v-6h-1l-1 1h-1l-1-1v-2l1-1 1 1-1-1 1-1v-2l1-1v-2l-2-3v-6l-1-1zm501-2 1 1v1l1 1v1l1 1v2l1 1v1l1 1v1l1 1v1l1 1v2l1 1v1l1 1v2h1l-1-1v-1l-1-1v-2l-1-1v-1l-1-1v-2l-1-1v-2l-1-M
1v-1l-2-2v-1l-1-1v-1zm-500-4v1l1 1v1h1v-2h-1zm513-5v1l1 1v2l2 2v1l2 2v1-1l-1-1v-1l-1-1v-1l-1-1v-1l-2-2zm303-5v5l1 1v8l1 1v9l1 1v10l1 1 1 9 2 4v3l11 19v2l-1 1v2l-2 4 3-6v-2l1-1-1-1v-2l-2-2-1-3-2-2-2-5-3-4v-3l-1-1v-2l-2-4v-3l-1-1v-6l-1-1v-13l-1-1v-8l-1-1v-5l-1-1zm-323-4v1l1 1v2l1 1v1h1v-1l-1-1v-1l-2-2zm-479-8v3l-1 1h-1l-1-1-1 1v1l1 1v2l-2 2h-2v2l1 1v1l-1 1h-3v2l-1 1h-1l-1 1v1h1l1 1 2-2 1 1h1l1 1 1-1v-1l2-2h-1l-1-1 1-1v-3l1-1v-3l1-1h2v-2l1-1v-3zm741-7-17 82 6 3 4 30-20-17-3 7-7-5 6 15-8-8 5 10-11-4-4 6 12 9-4 6 10 13 M
11 61-2 40-7-17 7 35-14-30 13 33 20-18-1-34-3 5-3-7 1 11-4-3-5-56-9-10v-23l10 6-8-24 11 8-11-20 10 13v-6l17 16 38-4-37 3-7-11v-25l10-2 13 11 4-17 20 15 1-18 8 22 8-13 6 7 4-4-24-32 21 30-43-39-17-34 13 30-24-10 8 30-5 13-8-5zm112-3v5l1 1v6l1 1v4l1 1v3-6l-1-1v-3l-1-1v-6l-1-1zm-852-1h1l2 2-1 1h-1v1l2 2v1l-1 1 1 1v3l1 1-1 1v1l2 2h1l1-1v-2l1-1-2-2v-1l-2-2v-1l-2-2v-1l1-1v-3zm765-22h1l2 2v2h1l1 1h1l5 5h1l1 1h5-4l-2-2h-1l-1-1v-2h-1l-1-1h-1l-4-4h-1l-1-1zm-388-23v26l-1 1v10l-1 1v14l1 1v2l2 3 1 5 3 5v2l3 7-1 2v5l-1 1v3l2-4 1M
-8-2-3-1-4-3-4v-2l-2-3v-2l-2-3v-3l-1-1v-11l1-1v-9l1-1v-12l1-1v-14zm439-7h-2l1 1v1l-1 1v3l-1 1v2l-1 1v3l-1 1v2l-1 1v3l-2 2v2l-1 1v1l-5 5h-1l-2 2 2-2h1l5-5h1l2 3v2l1 1v4l1 1v6l-1 1v1l2-3v-6l-1-1 4-4-3 2-2-2v-2l-1-1v-6l1-1v-5l1-1v-4l1-1v-2l1-1v-2l1-1v-3zm-480-7v1l1 1v1l4 4h1l2 2h1l1 1h1l1 1h2l1 1h2l1 1h2l1 1h3l2 2h2l1 1h1l1-1h7-5l-1-1h-1l-1-1h-1l-1-1-1 1h-2l-1-1h-5l-1-1h-1l-1-1h-2l-1-1h-2l-1-1h-1l-2-2h-1l-6-6zm493-20-1 1v1l-2 2v1l-4 4v1l2-2v-1l3-3v-1l1-1v-1zm-65-3h-1v1l1 1v1l-3 3h-1 1l1 1 1-1v-1l1-1zm-487-4v22l-9 13-1M
9 49-15 74 2 34 12 61 5 92-2 31-10 29-7 11-10 4 14-7 14-36 3-52-6-79-13-60-1-28 12-65 26-67h4zm554-17v4l1 1v1l1-1v-1l-1-1v-3zm-671-7-1 1v4l1 1h3l1 1v1l-2 2h-2l1 1v3l1 1h3v-3l-1-1v-1l3-3h1v-2l-2-2h-1l-3-3zm613-2v5l2 3v3l1 1v2l1 1v2l1 1v1l1 1v1l2 3v2l-1 1h-1 1l4 4v2l1 1v1l-2 2h-1l-1-1h-2l-2 2v1l1 1h1l1-1h3l1 1 1-1v-3l1-1v-1l-1-1v-2l-1-1v-1l-1-1v-1l-1-1v-1l-1-1v-1l-2-2v-2l-2-3v-2l-1-1v-2l-1-1v-3l-1-1v-5zm-392-2h-1l-4 5-1 3-2 2-1 4-1 1-2-2 2 4-2 4h-4l-7-3-10-9-5-7 2 2 3 6 7 7 10 5h3l2 2-1 1-1 15-2 5 1 2-2 5 1 1-1 3v8-2M
l2-3 4-2 1 1 1-10-2-6v-17l2-3-2-1v-3l4-10 4-4zm350-4v1l1-1h5l2 2-2 2h-1l-1 1h-2v3l1 1 1-1h1l1 1v1l2 2h3l1 1 3-3h1l1-1h1l-1-1h-4l-3-3v-1l3-3h1l2 2v-1l1-1h1l1 1h1l1 1h1l1 1h1l1 1v1h1v-1l-1-1h-2l-1-1h-1l-1-1h-1l-3-2h-2l-1-1h-4l-1 1zm103-3-1 1v1l-1 1v2l-2 2h-1l-1 1h-3v1h3l1-1h1l1-1h3l1-1h2-3l-1-1v-4zm-475 0 1 1h4-1l-1-1zm-86-8 1 1v1l1 1v1l5 5h1l2 2h1l1 1h2l1 1h3l1 1h19l1-1h4l1-1h2l1-1h-1l-1-1v1l-2 2h-5l-1 1h-13l-1-1h-6l-1-1h-2l-1-1h-1l-1-1h-1l-2-2h-1l-4-4v-3h-2zm132-5v1l1 1v1h2zm423-3h-7l-1 1h-2l-1 1-3 1-2 2-3 1-3 3h-1M
l-1 1h-2l-2 2h-3l-2 2h-1l-3 2h-2l-3 2h-2l-1 1 3 3 3 1 1 1v1h1l2-2h6l1 1h1l1-1 1 1h3l1-1h1v-1l4-5 5-1 3-2h2l1 1-2-2h-4l-1 1h-3l-1 1h-3l-1 1h-4l-1-1v-1l4-3h2l1-1h2l1-1h2l3-2h2l1-1h1l2-2h1l2-2h1zm-448 0h1l1 1h3l1 1-1-1v-1zm8-8h-4l-1-1-1 1h-4 7l1 1h1zm-26-8 2 2 1-1h1l-1-1zm485-18 1-1h6l1-1h-1l-1 1-1-1h-1l-1 1h-1l-1-1v-1l2-2h1l1 1 1-1h2-6l-1 1v2l-1 1zm-495-14 1 1v1l1 1v1l3 3v1l7 7h1l2 2h1l1 1h1l-2-2h-2l-9-9v-1l-3-3v-1zm-73-21v3l-1 1v4l2 2v1h1l1 1h1l1 1h3l1 1h13-12l-1-1h-2l-1-1h-2l-3-3v-1l-1-1zm546-13v1l-1 1 1 1h2v-3zm-5M
81-1 1 1h1l4 4v1l1 1v1l5 5v1l3 3v1l1 1v1l1 1v1l2 2v1l1 1-1-1v-4l-1-1v-1l-1-1v-1l-1-1v-1l-3-3v-2l-1-1h-1l-1-1v-1l-1-1v-1h-2l-4-4h-1l-1-1zm14-12-2 2h-1l-1 1h-1l-2-2h-1v3l1 1v1l-1 1-1-1v3h1l1 1h1l1 1 1-1h2l1 1 1-1h2v-1l-1-1 1-1v-1l-1-1v-3l-1-1zm-5-5h-1l-1 1v3h1l1-1v-1l1-1zm470-24h-1l-1 1v2h1v-1l1-1zm-449-21-1 1v1l-1 1v1l-2 2v1l-1 1v1l-1 1v1-1l2-2v-1l1-1v-1l2-2v-1l1-1zm96-3 1 1h1l2 2h1l1-1h1l1 1v1l-1 1 2 2h1l4 4v2l-1 1h-2l-1 1h-4l-1 1h1l1-1h3l1-1h3l1-1h1l1 1h2l4-4h2l1-1h1l1-1h1-1l-1 1h-2l-1 1h-2l-1 1h-1l-1-1v-1l-1-1v-1M
l-1-1v-1l-5-5-1 1h-5l-1-1h-1l-1 1h-1l-1-1zm-312 0v-2h-3l-1 1h-4l1 1h1l1-1h1l2 2 1-1zm365-20h-2v3h1l2-2zm-357-9h-1l-1 1v2l1 1v-2l1-1zm666-13-3 3v3l-2 5v4l-3 5-2-1v-4l-3 4v5l-1 1v3l-2 5-1 11-2 5v4l-1 1v3l-2 5v5l-1 1v2l2-3v-2l3-4 2-9 2-2h2l1 1v7l2 1-2 1v1h3v-3l2-4-1-2 4-8v-3l1-1v-3l-1-1 1-1-1-1 3-7-1-1v-2l2-3v-10l1-1v-3l-1-1v-5zm-439-5-2 9 2 6-1 18-4 1-2-4 3-12-6 15 2-1 2 5-3 1-2 6 4 2 6-12-1 12-10 21-3 13-4 1-5-6 1-3h-3l1 8 9 5-5 7-1 13h-8l8 3-1 15-4 9 4 6 2 14-2-17 2-2 1-23 36-3h-34l-1-8 7-15 33 1 3-2h-34l-2-2 1-9 1M
2-32zm40-15v2l-1 1-1-1v-1 5l1 1v3l1 1v4l1 1v2l1 1v1h1v-2l1-1v-1l1-1v-2l-2 2-1-1v-4l-2-2zm137 12-2-1-2 1-2-2 1-1-3-3 1-1h2l-2-5h-2l-3-2h-4l-1 1-1-2-1 1-3-2-1 1-1-1h-5l-1-1h-6l-2-1-3 3h-3l-5 2v7l1 1-1 4 3 4-2 2-1 6-2 2-1 4-6 8 3-1 2-2 1-3 2-2 4-13 2-3 3-2h8l3 3v2l1 1h6l1-2-1-3 1-1h5l1-1h3l1 1h6l4 3v2-1l2-1zm-133-27 1 2 2 1 1-1 2 2v3l2 4v-1l2-1 1 1-1 1 2 2h2l1 1h4l2-2 1 1h4l2 2-1 6 2 2v1l6 2v-1l5-4h6l1 1v-4l-3-4v-2l-5-4 1-2 2 2h2l2 2h1v-3l-3-2-1-3h-3l-2-2-3 4h-3l1 1v3l-1 1h-8l-3-2h-4l-1-1h-2l-1-1v-2h-2l-1 1-1-2-1 1-1-M
1 1-2-2 1zm1-3h-6l-1 1h-1l-1-1v1l1 1v1l-1 1v6-4l1-1h1l1 1h1l-2-2v-1l-1-1 2-2h2l1 1h3zm491-114h-37l-9 10 1-10h-28l-10 9 3 21 7-18-7 107-37 146-32 268 26-39-1-44 29 7 14-13 14 13-14-16 41-10-15-8 34 11-13 6 14-6-26-11 25-8-3-10-32 7-21 27-9-15-6 6-13-36-21-4 10-58 11 36 18-21 19 9-15-12 28-45 9 29 9 3-5-25 16 5-9 19 8 4 7-21 25 19 21-1-36-41 16-11 20 9v-15l-11-11-35 10 10-19-7-27zm-214 0-133 877-68-34 48-409-84-173 5 33-31-28 33 30-13 30 16-37 49 77-4 82-64 148 22-43-8 319 217 29 250 125-11-32 8 21-202-93 56-177-24-1M
03 38 117-44-142 7-80-36 346-19-13-12 34-9-49 3 46-24-18 41-507 64-372zm-79 3-42-3-12 81-92-75-124-6-73 40 2-37-66-3-9 35 3-35-75 222 5-199-38-23-18 51 3-48-12 322 3-38 24 91 20-36-64 294 15-247-22 500 73-552-10 525 30-308-13 272 33 32-28 12 163-55 48-490-47-25-20 28 4-38-21 140-58-132 44 52 11-216 270-54 34 74-40 109-20-57 82 240-21-85z" fill="#333"/><path d="m261 1141h1l1 1v1h2v-1l1-1h1l1 1v2h1l1 1-1 1h1l1 1h1l1-1h1v-2l-1 1h-2l-2-2v-2h-2l-1-1h-2l-1-1v1l-1 1zm80-2h-1l-1-1v-1l-1 1h-1l-1 1v1l-1 1h-1l-1 1v1l1-1h2l1 1M
v-1l2-2 1 1 1-1zm-173-3-1 1 1 1v3h1l1-1-1-1v-3zm172-3-1-1h-2v1l1 1-1 1h-2v1h2l1-1v-1l1-1zm-275-4h-1l-1 1v2l-1 1v2-1l3-3zm51-1v2l-1 1 1 1v1l1 1h2v-1h-1l-1-1v-4zm232 0-1-1v-1l-1 1h-2v1l-1 1h5zm-104-4v2l-1 1v2l-1 1h1l1 1v1l1 1v1l-1 1v3l1 1v-1l2-2h2l1-1 1 1v1l-1 1 2 2h2l2-2h1l1-1h-3l-1 1h-2l-1-1v-1l1-1-1-1 2-2v-1h-1l-2-2v-1l-1-1h-2l-1-1h-1l-1-1 1-1zm-160-4v3l1 1h1v-2l-1-1v-1zm82-2h-1l-2 2h2l2 2-2 2 1-1h1v-2l1-1h-1l-1-1zm-143-5h-2v1l-1 1-1-1v3l-2 2v2h1v-3l1-1h1l1-1h1v-1l1-1zm101 0v1h4l1 1h1l-1-1v-1l-1-1h-3zm-52-4h-2v1l-M
1 1v1l-1 1-1-1h-1v2l-2 2h-1l-1-1v-2 2l1 1v6l1 1v1-2l2-2 1 1h1v-1l-1-1v-1l1-1v-3l1-1 1 1 2-2v-1l-1-1zm89 0v1l1 1-1 1h1l1 1 1-1h1l1 1h1v-1h-1l-1-1v-2l-1-1h-2zm-34-3v3l1 1 1-1v-1zm-2-1-1-1v1l-1 1h-3v1l1 1h3v-2zm217-2h-3v2l1 1v2l2 2-1 1h-1l-2-2v4h3l1 1v3l1 1-1 1h-2l-3-3v-1l-1 1h-2l-1-1h-3l-1 1h1l1 1v4l2 2-1 3 1 1 3 1 2 2h2v-2l1-1v-1l-1-1 1-1h2l-2-3 1-1h1l1-1h2l1 1-1 1h-1 1l1-1 1 1v-1l-3-3h-1l-2-2v-1l1-1h1l1 1v1l-1-3h-1l-1 1-1-1v-1l3-2v-2l-2-2zm-241 0v1l-1 1 1 1-1 1v1h1l1 1v6l-1 1-2-2v4l2 2v2l-1 1h1l1 1v1h1l1-1-1-1v-7l1M
-1h3l1 1-2 3h2v-1l1-1 1 1v4h1l1 1v1l-1 1h-1l-3-3 1-1-1 1v1l2 2-2 2 1 1v1h3l-1-3 1-1h2v-2l1-1 1 1h1v-3 1l-1 1-3-2v-1l1-1h2v-1l1-1v-2h-3l-1 1h-1l-1-1v-1l1-1h2v-3h-1l-2-2v-4h-1l-2 3h-3l-1-1v-1l-1-1zm21-3h1l1 1 1-1h1l-1-1h-2zm-40-1-1 1v1l-1 1v3l-1 1 1 1v1h1l1-1v-1l-2-2v-2l2-2zm148-1v1l2 2v2l1 1h2l1 1v1l1 1v1h2l1 1v1l-1 1v1l1-1 1 1v1l-1 1h-1l-1 1h1l1 1v1h1l1 1-2 2h2l1 1v-1l1-1v-1l-1-1v-1l-2-2 1-1v-1l1-1h2-1l-1-1v-3l-3-3h-1l-2 2-1-1v-5l-1-1h-4zm-124 0v2h3v-1l-1-1zm-7-5-1 1v1l2 2v1l1 1h2v-3l-1-1v-1h-2zm-74-2h-1l1 1-2 2h-3M
l1 1v1l-1 1 1 1v3l-1 1v1h2l1 1v1l-1 1h-1v2l-1 1v2-1l3-3-1-1 2-2v-1l1-1v-1l1-1v-1h-3l-1 1-1-1v-1l1-1h1l1-1v-1l1-1h1l-1-1zm89-3-1 1h-2v1h2l1-1zm-13-3v1l1 1v1l-1 1h-1l-1 1 1 1v-1l1-1 1 1 1-1h1v-1zm-7-1v1h3v-1zm143-7v3h1l1 1h2v-1h-2l-1-1v-1l1-1zm-56-2v2l-1 1h2v-2zm-93-2v1l1 1-1 1h-1l-2-2v1h1l1 1v1l1 1v2l1 1 1-1v-2l-1-1v-2l-1-1 1-1zm214-1h-1v1l-1 1h-1v1h1l1-1h1l-1-1zm-152-1-1 1-1-1h-1l-1 1h-1l1 1v2l-1 1v1l1 1v2h2l1-1h-1l-1-1 1-1-2-2v-2l1-1h2zm-55-2v1l2 2v1-3l1-1zm182-5 1 1v1h1l3 3v1l1-1h3l-1-1v-1h-3l-1-1v-1l-1 1-2-2zm-1M
9 0 1 5 4-2 13 14-3 5 1 4-4 1 7 6-2 3 4 2-2 5 11 4 1 8-4 4 7-1-9 5-3-5-3 1 2 4-2 20h11l5-3 5 2 1-3 10 8 7 2 1-3 2 2-2 6 3 2 11-1-1-3 5-2-6-4 3-2-7 2-6-4-2 3-7-6v-3h-7l-5-4 2-2-3-1 4-4-2-1-2 3-8-4 4-6-3-8 11-4 2-4 7 9-2 5 3-5 6 3-4 1-1 4 2-4 11 5-2-3 2-3 3 4-1-4-5-1-2 3-2-8-3 3-1-5-3-1 1-4-5 3-3-7v3l-4 2-11-9v-3l-5 2v-4l-3 1-3-8 3-11-11-4v-7l-5 3-3-3-2 3zm30-5h-2l-1 1h-1l-1 1-1-1h-6l-1 1h-2v1l-1 1h3v-1l1-1h2l1 1h2l1-1h2l1 1 2-2h1zm-175 0h1l1 1h2v-1h-2l-1-1zm-77-5h-2l-1 1-1-1h-1l-1 1-1-1v1h1l1-1h1l1 1v1l-1 1-3 1 1 1vM
6l1 1v2l-1 1h-2l-2 2v1l1 1v2l-1 1 1 1v3l2 2v1l-1 1v4l2 3-1 1v1l1 1h1v-2l-2-2v-3l1-1h2l1-1-1-1 1-1h1-1l-2-2v-2h-2l-1-1 1-1h3l1 1v-2l1-1 3-1h-3l-2-2v-3l2-2 1 1h1v-1l-2-2v-1l1-1v-2l-1-1v-2l3-2-1-1zm142-8v2l2 2v1l-1 1v1l1 1-1 1h2l1-1v-4l-1-1 2-2-1-1h-2l-1 1zm84 1h-1l-1-1v-1l-1 1h-2v1l1 1h3zm75-5v1l-1 1v3h1l2 2v1l2 2h1l2 2h1l2-2 3 3h1l1-1 1 1-1-1v-1l1-1h-6l-4-4v-1l-2-2v-1l-1 1h-1l-2-2zm-3-2-1 1v1l-1 1v2h2l-1-1 1-1v-1l-1-1zm-296 0v1l-1 1h-1v4l1 1h1l1-1v-1l-1-1 1-1v-1l-1-1zm138-2-1 1v2h3v-1l-1-1v-1zm-46-4v1h4l1-1 1 2h4l1 M
1 2-1 2 3v2l1-1 2 1-3 3-2-2h-4l-2-2-1 2-1-2h-1l-3-3-1 1v1l3 3 1-1 2 1v1l-2 2h-1l-1 2 1-1h4l1 1-1 2 2-2h2l1 1-2 1v2h1l1 2v-2l2-1 2 3-2 1v1l2 1h3v-2l-1-1v-3l2-1-4-3v-3l2-1 1 2 2 1v-4l-4-3 1-2h-1l-1-2h-1l1 1-1 2-5-4h-2l-2 2-1-1-1 1-1-1-1 1zm-47-1v2l1 1h1l1 1h2v-1h-3l-2-2zm2-3 1 1v1l1 1v-1l1-1h1-1l-1-1zm-73-5v1h1l1 1h1v-1h-1l-1-1zm189-4v3l-3 2v3l2 1-1 7 3-1 2 5-4 1 2 1v3l7 5v6l3 3-1 2 3 1-2 2-3-2-2 2h4l7 9-2 4-2-1 1 3 2-1 1 2-2 3-1-2-2 3h-2v5l6 10 4 1 1 3-4 3-2-2 2-1-2-1v5l3 4v-4l3-3 4 2 1-1-2-3 1-1-3-2v-7l-2 1 2 2-1 3M
-3-2 1-1-4-1 2-2-2-3 3-3-1-4 4-2 8 8 3 6v-5l6-4-2 1-5-2 4-3-1-2-1 1-5-3 5-4h-4v-3h-3l-2-3h3l-3-2 3-8 4 5v-2l-13-12-4-13zm-95 0 1 1v2l-1 1h-1 1l1 1v4l1 1v1l2 2v-2l2-2v-1h-1l-1-1h-1l-2-2v-5zm659-1h2l1 1h2l1 1h2l1 1h3l1 1h3l1 1h3l1 1h7l1 1 1-1h2l1 1h14l1 1h4-3l-1-1h-13l-1-1h-12l-1-1h-3l-1-1h-2l-1-1h-2l-1-1h-4l-1-1h-3l-1-1zm-514-3v1l-1 1h-1v1l-1 1h-3v1l1 1v4l2 2v1l-1 1h-2v5h1l1 1v2l-1 1v4l1 1h2l1 1v-2l1-1 1 1 1-1h2l1-1h2v-5l-1-1v-1l-1 1v1l-3 3-1-1v-2l-1-1v-3l1-1v-2l-3 2-1-1v-1l2-2v-3l1-1-1-1v-1l1-1v-2l1-1zm-170 0-1 1h-M
1l1 1v1l-1 1-2-2h-1v1h1l1 1h1l1-1h1zm46-2v1l-1 1h-1l-1 1v1l1 1 2-2zm-121 0v2l-2 2h-3l-1-1v-1 7l2 2v1l1 1v1h3l2-2h1l-1-1v-3l1-1h1-3l-1-1 1-1v-1l-1-1v-1l1-1zm161-3-1 1 1 1v2l1 1v-1l1-1h1l-1-1h-1l-1-1zm561-4h1l1 1h1l1 1h1l1 1h1l1 1h3l1 1h1l1 1h3l1 1h2l1 1h1l1 1h5l1 1h2-2l-1-1h-3l-1-1h-3l-1-1h-2l-1-1h-2l-1-1h-2l-1-1h-1l-1-1h-2l-1-1h-2l-1-1h-1l-1-1zm-591 0-1 1h1l2 3h1l1 1h1l2 2-1 1h-1l-1-1h-2l-1 1h-1l-1 1h-1l-1 1v2l1 1h3l1-1h4l1 1v2l1 1v1l1 1v1h1l2 3h1l2-2 1 1v3-3l1-1v-2l3-2-3-2v-1l-1-1v-1l-2-2 1-1v-1l-1-1v-1l-3-2 1-1h2M
l1 1v-1l-1-1h-2l-3-2h-2v1l-1 1h-4l-1-1zm189-7h-2v1l-1 1h2l1-1zm565-4h1l1 1v1l1 1v1l1 1v1l1 1v1l1 1v2l1 1v1l1 1v-3l-2-2v-1l-1-1v-1l-1-1v-1l-2-2v-1l-1-1zm-10-3 1 1h1l2 2v1l1 1v1l1 1v1l2 2v1l1 1v2l1 1v1l1 1v2l1 1-1 1 1 1h1l1 1 1-1h1-1l-4-4v-2l-1-1v-2l-1-1v-1l-1-1v-1l-1-1v-1l-2-2v-1l-4-4zm-495-4v1l-1 1v1h2v-2zm-72 0-4 4v1h1l2-2v-1l1-1zm-311-2v3l-1 1h-1l1 1-1 1v2l-1 1v5l2 2v2l1 1v1l-1 1h-2l1 1h3l1 1h5l1 1v3-1l1-1 1 1v1l1-1 1 1v1l1-1 1 1v-1l2-2 1 1 1-1h1v-1l1-1 1 1v-2l3-5h-4l-1-1 1-1h2v-1l2-2 1 1h1v-1l1-1h-1l-1-1v-1l-1-1M
h-1l-2-2v-2h-1v1l1 1v1l-1 1-1-1h-3l-1-1-1-3h-4l-2 2-3 1-1-1v-1h-1l-1-1v-1zm113-7-1 1h-2v3h1l1-1v-2zm493-2h9l1 1h5l1 1h6l1 1h1l1 1h2l1 1h2l1-1h4l1 1h5l1 1h3l1 1h3l1 1h4l1 1h3l1 1h3l1 1h2l1 1 5 1-5-1-3-2h-2l-1-1h-2l-1-1h-4l-1-1h-4l-1-1h-3l-1-1h-3l-1-1h-4l-1-1h-3l-1-1h-9l-1-1h-9l-1-1zm-482 4h1l1 2 2 1 2-1 2 1-1 2h-2v1h1l3 3-2 2v2h4l2 1 1-2h2l1-1 1 1v2l-2 2h-3 7l1 1v2l2 2h2l1 1-1 2h3l1 1v-2l1-1h1l2 3 3-1 1 2h1l1-2 1 1 2-1v-1l-1 1h-2l-2-4-3 2-1-2-3-2v-3h-2l-2-2v-2l-1-1 2-2h3l3-2h-1l-2-3h-1l1 2-2 2-7-1-1-2-3-2 1-2 6 4-3-M
2 1-2-2-1-2 1-2-2 1-2h-4v1l-3 2-1-1-2 1-3-2zm123-7v1l-1 1v2h1l2 2v1h1l2-2v-2h-1l-1 1h-1l-1-1v-2zm592-6v2l-1 1h-1v3l1 1-1 1v5l1 1v-1l1-1h1l1 1h2l1-1v-1l-1-1h-1l-1-1 1-1-1-1v-3l-1-1v-2zm-558-2 1 1v2l-1 1h4v-2h-1l-1-1h-1zm577-3 2 2v8l1 1v2l1 1 1-1v-2l1-1h1l-1-1h-1l-2-2v-3l-1-1v-1l-1-1v-1zm-659 0h1l1 1v2h3l1-1h1-2l-1-1v-1 1l-1 1-1-1v-1zm-16 0v1h5l-1-1h-1l-1-1-1 1zm626-3v5l1 1v-3l-1-1zm-546 0-9 17 4-3 7 5-3 9 5 3-17-1-3-6-4 22 9 5 9 21 3-2-4 10 7 1-1 8 9 6 12-5 8 4v9l3-5 4 5-5 5 7-2 21 25-3-12 7 3-1-4h-6l-11-17-15-10 4-M
11-7-17 5-5 11 18-7-16 4-2 14 25 5-8-6-7 7 5 4-4-5-6-8 3 3-6-10-2-7-14-20-3-5 10 11 4-1 7 5 3-4 2-6-8 3 17-4 2h7v7l-5 6-7-3-1 5-5-4 7-9-5-1-5-19 8-8-13-8 11-2 1-6-6 7-4-5h5l2-12 5 11 12 1-13-15 4-1-4-9 7 1-12-1-6-6h11zm-86 0v2l2 2h1v-1l-1-1v-1h-1zm654-1h-1v3l-1 1v1l-1 1 1 1v5-1l3-3v-1l-1-1v-1l1-1-1-1zm-799-5h-1l-1 1h-1l-1 1h-1l-1 1h-1l-1 1h-1l-1 1h-1l-1 1h-1l-1 1h-1l-1 1h-1l-2 2h-1l-2 2h-1l-1 1h-1l-3 3h-1 1l1-1h1l1-1h1l2-2h1l1-1h1l2-2h1l1-1h1l1-1h1l1-1h1l1-1h1l1-1h1l2-2h1l2-2zm406-1 6 6h1l2 2h2l2 2h4l1 1h10-8l-1-1hM
-4l-1-1h-1l-1-1h-1l-1-1h-1l-1-1h-1l-3-3h-1zm-150-6-1-1-2 2-1-1v-1l-1 1h-1l1 1v1l-2 2-1-1v-2h-1l-1 1-1-1 1 1v2h1l1 1-1 3-1 1-3-1-2 2-1-1v-1 4l-1 1-1-1h-2v1h4l1-1v-2l1-1h1l1 1h1l3 3-2 2v1l-1 1-1-1-1 1h-1l1 1 1-1 3-1 1-1v-1l2-3 1 1 1 3h2v-3l1-1 1 1h2v-1l1-1-1-1v-2l-1-1v-1h-1l-1-1v-1l1-1zm109-14v2l1-1h1l1 1v3l2 2h1l1 1h1l2 2h2v-3h-1l-3-3h-1l-1-1-1 1-2-2v-1h-2zm303-3 8 6 27 14 7 5 46 23h2l19 9 5 1-17-6-47-23-16-10-29-15zm-27-2h-2l-1 1v3h1l1 1 2-2v-2zm-531-10-6 1-1 1h-2l-10 4-7 1-10 4-7 1-12 5h-3l-4 2h-4l-1 1-8 2-3 2h-2lM
-10 4 7-2 3-2 11-2 3-2 8-1 16-7 21-4 10-5zm142-3h-1l-1 1 1 1v1l-1 1h1v-2l1-1zm-109-4h-1l-2 2v2l1-1h1l1 1v-1l-1-1 1-1zm481-6 3 1 3 3h1l1 1h2l3 3h1l3 2v1l1 1-1 1v5l1-1v-4l1-1h1l1 1v1l-1 1v3l1 1 2-3 1 1v1h1v-2l1-1 1 1h2l1 1 3 1 2 2h1l1 1-1-1h-1l-2-2h-1l-4-4h-1l-1-1v-3l-1-1h-1l-1-1v1l-1 1h-1l-1-1-3-1-2-2h-1l-1-1v-1h-4l-1-1v-1h-1l-1-1h-4l-1-1zm-399 32v-4l-12-3 4-3 4 1-1-2-2 2-5-7-1 3-7-3 4-2-2-3-4 8-2-2 2-6h-2l-2 8-5-5 2-5-7 6 5-10-3-5-11 2 3 3 2-4 4 8-6 5-3-1-2 7-4-1 1-4-7 4 3 3-2 6-7-6v-3h-4l-2 6-3-2 2-5-1 3-6-4-7 1-1M
-4-3 2-4-3 3-4-17 5 2 3-2 4-5 1v3l-8 4 2 2 3-2 7 5 6-2 15 5 5-1 2 3 8-1 14-10 1 6-3 1 3 9 4-2 3 6-1-8 3-4h4v3l5 2v7-6h4l-2-6 6-9 6-1 4 3-3 5 2 4 1-4h4l3-8 4 1-3 2 6-1zm-31-41h-3l-1 1h-3l-1 1h-3l-1 1h-2l-1 1h-3l-1 1h-3l-1 1h-3l-1 1h-2l-1 1h-4l-1 1h-3 4l1-1h4l1-1h3l1-1h3l1-1h2l1-1h3l1-1h4l1-1h2l1-1h1l1-1zm411-17 1 1v1l1 1v1l1 1v1l1 1v1l1 1v1l2 2h1l1 1v4l1 1v2l-1 1v1h2l2 2h3l1 1-2-2h-1l-3-3v-2l-1-1v-2l-1-1v-1l1-1v-5 1l-1 1v1l-2 2-1-1v-1l1-1-1-1v-2l-1-1h-1l-2-2v-1l1-1h-1l-1-1zm35-1v2l2 2v2l1 1v7-1l3-3v-1l1-1-1-1v-3l1-1M
v-1h-1v1l-2 2h-1l-1-1v-1l-1-1v-1zm-76 0 1 1v4l1 1h1v-1l-1-1 1-1h1v-1l-1-1h-1l-1-1zm162-5-1 1-2 8-3 4-1 5-3 3-4-2 1 2v6l1 1-1 1v7l-1 1v3l1 1-1 1v2l-1 1-2 8-3 5-3 3v1l5-2v-2l2-3h2l2 2v3h3l2-3 2 1v2l1-1v-3l1-1v-5l1-1v-7l4-3 1 1-3-2 2-1h-2l-1-1 1-2h-1l-2-2-1-4-2-3v-10l5-8v-5zm-120-2 2 2v2l7 7v2h1l1-1v-2l-1-1v-1l-1 1h-1l-2-2v-1l-1-1v-1l-1-1v-1h-1l-1-1v-1l-1 1zm14-9h-2v1l1 1v4l-1 1v2-1l1-1v-2l1-1zm-174-9h-2l-1 1h-1l1 1-1 1v3l-1 1h-1v1l-1 1-1-1v-2l-1-1h-1l-1 1h-2l-1 1-1-1v-1h-1v1l1 1v2h1l1 1h1l2 2v2l-1 1v2l-2 2h-1l2 2 1-1M
 1 1 1-1h1v-1l1-1 2 2-1 1 2 2v4l1 1 1-1v-2l-1-1v-2l1-1v-2l2-3-1-1v-3l1-1v-2l-1-1 2-3-1-1zm-320-6-1 1v2l1 1v-2l1-1zm73-25h-1l-1-1h-1l-1 1h-1l-1 1h-2l-1 1h-4l-1 1h-1l-1 1 1-1h3l1-1h4l1-1h5zm12-5h-1l-1 1h-1l-1 1h-1l-1 1h-2l-1 1 1 1h1l2-2h2zm-236-4h-1v35l-1 1v1l1 1-1 1v22-17l1-1v-20l1-1-1-1v-1l1-1v-11l-1-1 1-1v-4l-1-1zm707-4-2 1v4l-2 2 2 1-1 3h-2l-2-2 1-1-1-2 2-1v-2h-4l1 1-2 2-3-1v7l3 1v-2l-2-1v-2l2-2 2 1-1 2 1-1 1 1v4l-2 3v5l1 1-2 2v7l-1 1v3l2 1-2 2 2 1-3 2 1 2-2 1-1 4 1 3-3 3 1 3-2 2-1 3 1 1-3 5 1 2 3 1 1-1 2 3-1 5-5M
 9 4-1 2 5 1-9 3-6 1-8 3-3-1-2 1-21 2-10 2-4v-4l4-12-1 2-1-1v-9l-1-1 1-2zm-594-1-2 1-1 7-2 1 1 6 3 5-1 1v6l-2 2h-2l-1 2v6l-1 1h-2l-4-3v-1l3-2v-3l-2-3h-1v6l-2 2 1 2 6 5v1l3 1 1 2h2l1 1 3-1 1 1-2 3-4 2h2l1-1h4l1-1h2l1 1 4-3h2l1-1-2-2 1-2-2 3h-2l-1-1v-2l1-1-1-1v-5l-1-1 1-1-2-2v-2l-3-4v-3l1-1-1-1 1-1v-2l-1-1 1-1v-2l-2-1v-2l2-1v-2l-2-2 1-1-2-1zm430-3h-2v1l1 1v2-1l2-2zm164 0-1-1-1 1h-1v2h1l1-1h1zm-604-5v5h1v-4zm27-13v7l-3 5v4l-2 2v11l2 3v3l1 1-1 1v2l-1 1v1l1 1-1 1v1l2 2v-1l1-1h1l1 1v1l2 2v4l1 1-1 3 1 1 1-1v-4l1-1h-1l-1-1M
v-9l-1-1v-3l1-1v-3l1-1v-1l-2-3v-2l1-1-1-1v-13l-1-1v-1l-2-2zm-20-3v5l-1 1h-1l-1 1v2l1 1v1l1 1v1l2 2v1l1 1h1l1 1v2l1 1v-1l1-1v-1l1-1v-3l-2-2 1-1-2-2v-1l-2-2v-1l-1-1 1-1h2v-1l-1-1h-2zm43-7v8l-1 1v10l-1 1v6l-1 1v5l-1 1v10l-1 1v2l-1 1-1 3-3 3v1l-2 2v1h1l2-2 1-3 2-2h1l1 1v4-5l1-1v-12l1-1v-9l1-1v-12l1-1-1-1 1-1zm-24-1v5l1 1v1-4l-1-1 1-1v-1zm655-3-1 2v7l-3 6v2l-13 22-1 6-1 1v3l-1 1v3l-1 1-4 14-3 5h-3l1 2-2 3v3l-2 3 3-2 1 1v4l2-12 5-11v-3l3-7v-3l2-4 1-6 4-8 3-3 5-9 2-2v-2l2-3v-3l1-1zm6-6 3 5-1 34-14 94v15l-2 1-10-10-4 5-2-1M
v5l-6 2 4 19-5 5v14l-5-5-2-13-1 7 2 6 6 5 4-2 8 3 6-6 2 2-1 10 4-5 8 6-8-9-1-6 6-62 12-78 1-33 2-2v-3zm-698-1h-2l-2 2 1 1-2 2 1 1-1 1 1 2-2 2v2l-1 1v3l1 1-1 1v2l3 2v2l1 1-2 1-1 2 1 1-1 1 1 1v4l-3 2 1 4-1 1v4l-1 1 1 2-1 6 4 5-1 4 2-1-1-2 1-1 1-6 1-1-1 1-1-2 2-1 1-2h1l-2-1 2-2h1l1-2-1-2 1-1 1-4-1-2-2-1v-1l1-1 3 2v-5l-1-1 2-3-1-6 1-1v-4l1-1v-6l-1-1v-4 2l-2 1-1-1v-3zm319-5h-2v3l-2 2v2l1 1-1 1 2 2v2l-1 1h-1v2l1 1v4l-1 1v1l1 1v4l1 1v-2l-1-1 1-1v-3l-1-1 2-2v-11l1-1v-1l-1-1 1-1zm-230 0v4l1 1v1-1l1-1v-2h-1l-1-1zm-86 0h-1l-1M
 1h-3l-1 1h1l1 1 1-1h1l1-1h1zm317-5-2 2 1 1 1-1zm342-21v1l1 1v3l1 1v-3l-1-1v-1zm-28-1-2 1v2l-1 1-5 1 1 1v3l-2 2v2l-1 1 1 5-1 1v4l-1 1 1 2-1 1v8l1 1 1 13-3 6-2-2v-2l-2-3 1-1-1-1-1 2 1 1-1 1v2l1 1-1 1 1 1-1 1v2l2 1-1 1v3l2 3-2 3 1 1v2l-1 1v2l1 1 1-1 1 1 3-5v-2l1-1v-2l-2-1 1-8 3-5v-3l2-4v-4l3-8v-4l2-3v-2l4-8v-2l4-6-3 2-3-2v-8zm-652 0-1 22-1 1 1 2-1 1-2 34-1 1 1 6-1 1v10l-1 1-1 38-1 1v7l-2 2 2-2 1-8 1-1v-21l1-1v-14l1-1 1-26 1-1v-21l1-1zm684-3v2l1 1v2h1l1 1v1l1 1v1-2l-2-2v-1l-1-1v-2zm-663-4 1 1v1h1l1 1h1v-2h-2l-1-1zm708M
-1-2 11-5 5 3 5v5l-1 1-2-2-1-4v4l2 1 1 5-5 6 2 2 4-6 2 2v8l4-4 3 3v-18l1-1 1 1 2 7v10l-5 16v4l3 9-2-7v-9l3-6 3-11-1-1v-6l1-1-2-1 1-3-2-5 1-6-2-1v5l-2 5-1-4-2-1 1-2-1-1-2 2-1-1 1-3-1-3 2-6zm-688-11h-2l-1 1v2l-1 1h-1v1l1 1h1v-1l1-1v-1l-1-1 1-1h1zm228-2-10 54-2-15 6-27-15 126-6 17-28 19-64 9-3 8 32 1 23-5 9 4 13-8-4-1 2-5 9-4-5-4 17-10 9-17 3 6-5 14-23 18v7l11 8 16 3 4 10 7 2 2 10 11 11h6l-2 6 5 6 11-19-14-28 1-9 16 7 2-9-7-6 4-13-16-49 5-96-8-19-12 5zm-250 0h-2v2l1 1-1 1v3l-1 1v1h1l1-1v-1l1-1v-1l-1-1v-1l1-1-1-1zm658-M
1v4l1 1v4l1 1v2l1 1v1l1 1v1l-1 1h1l1-1-1-1v-2l-1-1v-3l-1-1v-3l-1-1v-1l-1-1 1-1zm-661-8 1 1v2l-2 2v2l1-1h1l1 1v-2l1-1v-2l-1-1 1-1-1 1-1-1zm13-3-1 1v1l-1 1h-1l-1-1v-1 2l-1 1h-2l-1-1 1-1h1-2v1l1 1-1 1h1l1 1h1l2-2h1l1-1h1l1 1-1 1v1l-1 1h-1l1 1v2l-1 1-1-1v1h1l1 1v1l-1 1h-1l-1 1v4l1 1v2h2l2 2v1-1l-1-1 1-1-1-1v-3l1-1-2-2v-2l1-1v-3l-1-1v-1l1-1 1 1v-2l1-1-1-1v-1l-1-1zm625-2v3l1 1v3l1 1v4-5l-1-1v-4l-1-1zm-713-5h-2v1l1 1 1-1zm95-2v2l2 2v-1l-1-1v-1zm-12-14v1l1 1-1 1 1 1 1-1h1v-1l-2-2zm620-6 1 1v1l1 1v2l1 1v1l1 1v1l1 1v2l1 1v1lM
1 1v2l1 1v3l1 1v3l1-1v-2l1-1-1-1v-2l1-1v-2l-1-1v2l-1 1-3-3v-1l-1-1v-2l-1-1v-1l-1-1v-2l-1-1v-1l-1-1v-1zm-690-10h-1l-1 1v2l1 1 1-1zm-21-8v1l-1 1v8-2l1-1zm7-2h-3v2l-1 1v1l-1 1v4-3l1-1v-2l1-1 1 1v5l-1 1v1l-2 2v1l1 1v1l-1 1v1h1l1 1v1l-1 1v1l1-1v-3l1-1v-2l1-1h2v-5l-1-1v-1l-1-1 2-2v-1l1-1h-1zm346-3v1l-1 1-1-1v4l1 1 1-1zm-336-2v3h2l-1-1v-2zm334-6h-3l-1 1h-1v1h2l1 1 1-1v-1zm196-1-1 1v4h1l1 1v-1l-1-1v-2l1-1zm300-1 4 5 3 19 11 30 2 11-3 27 4 19 2 27-10 33v10l-2 5v16l2 3-1-15 3-25 9-33-3-25-3-10 2-37-12-35-4-22zm-840-3 3 3v-3zM
m5-8v4l2 2v1l1 1v2-4l-2-2v-1l-1-1zm260-10v11l3 7v29l1 1v5l1 1v9l1 1-1 1 1 1-1 11 2 4v7l1 1v4l-1-12-1-1v-17l-1-1v-10l-1-1v-7l-1-1v-7l1-1v-14l-1-1v-3l-2-3v-3l-1-1zm425-2-4 22v74l-13 84-2 43-14 60h-5v-12l-3 5-3-8-8 4 17 21v-7l9-16v-18l7-19 3-21-2-17 14-96 4-93 7 14zm-332-4v23l-5 22 3 68-4 30-1 60 3 28 11 45-1 6 28 42 19 16-3-4 4 1-24-21-14-22-13-31-6-31-2-87 4-25-2-46zm379-3v1l2 2v1l1 1v2l-1 1 3 3v-2l-1-1v-1l-1-1v-2l-2-2v-1zm1-12 2 2v1l4 4h1l-3-3v-1h-1zm-735-6-2 2h-1l-1 1v2l-1 1v2l1 1v4l1 1v3l1 1v1l1 1v2l-1 1 1 1-1 1 M
1 1v1l1-1 1 1v1h1v-1l1-1v-2l1-1v-4l1-1-2-2h-1l-1-1 1-1h2v-1l-1-1v-6l1-1v-1l-1-1v-2l-1-1zm729-1v2l1 1h1l2 2-1-1v-1zm-11-1 9 13-1 4-8-3-8-7v4l17 16-2 4-4-5-2 2 4 2 3 7 3 39 11 30-3 9 3 3-3 2 6 20 8 5-8-9-4-24 4 1 4 10 5 4 1 14-1-9 3 1v2l-2-22-1 6 2 4-2 1-8-7-4-21 1-13-2-12h-2l1-12-4-4-1-5v5h-3l-1-16-3-6 4-4-1-4h3l-4-8 6-3-6-9 1 3-2 1zm31-4v5l1 1v3l1 1v1l-1 1h-1l1 1v1l2 2h1l6 6h1-1l-5-5v-1l-1-1v-8l-1 1-2-2v-2l-1-1zm-746-2-1 1v4-1l1-1zm718-1v2l2 2v1l1-1 2 2h1v-1h-2l-3-3v-1zm11-2v2l4 4v1l3 3v1l1 1 1-1h1l3 3-10-10v-1zm-4M
3-3v15l-1 1v12-7l1-1v-5l1-1-1-1v-4l1-1-1-1v-2l1-1h1v-2h-1l-1-1zm-287-12-1 1v5l-1 1v4l-1 1v1l-2 2v3l-3 3h1l3-3v-2l1-1v-1l1-1v-2l1-1v-2l1-1zm-43-2-2 4-4 5v3l-1 1v8l1 1v3l-1 1v2l-2 4-1-2-2 1h-6l-1-1v-2l-1-1v-6l-1-1v-9l1-1v-2l-1 2v3l-1 1v10l1 1-1 2 1 1v3l3 3 1-1h2l1 1-1 2 2-2h3l1 1-1 2 2-2h2l2 4v8-11l-1-1v-9l1-1v-17zm466-15v2l1 1v2l1 1v1l1 1v1l2 2v1l1 1v1l2 2v1l1 1v1l1 1v1l1 1v1-2l-1-1v-1l-2-2v-1l-1-1v-1l-2-2v-1l-1-1v-1l-2-2v-1l-1-1v-2l-1-1zm-573-1v6l-1 1v1l1 1v16l1 1v6l1 1v5l1 1v4l1 1v4l1 1v3l1 1v3l1 1v3l1 1v4l1 1v3-4M
l-1-1v-3l-1-1v-3l-1-1v-3l-1-1v-4l-1-1v-3l-1-1v-4l-1-1v-5l-1-1v-6l-1-1zm87-4h-1v3l-4 9v6l-2 8 1 24-3 8 1 33-4 12v18l1 3-1 1-1 16 2-13v-25l3-7v-7l1-1-1-31 3-6-1-26 1-1 1-14 4-8 1 1zm352-2-1 1v5l-1 1v24-4l1-1v-3l1-1-1-1v-3l1-1v-12l-1-1 1-1zm-288 0h-1v18l-1 1 1 1v1-3l1-1v-2l1-1v-1l-1-1v-4l1-1v-2l-1-1zm-405-3-1 1v5l1 1v-4l1-1-1-1zm438-1v2l-3 3v2l2 2 1-1 1 1v1l-1 1v1l1 1h1l-1-1v-2l1-1-1-1v-4l1-1v-1h-1l-1-1zm-17-1h-1l-2 2h-1l1 1v1h1v-1l1-1h1zm-269-8v1l-1 1v3l-1 1v8l1 1v3h1l1-1v-13l-1-1zm641-9-1 1v1l1 1v1l2 2v1l1 1-1-1v-2lM
-1-1v-1l-1-1zm-43 4-7 40 5 2 1 10 1-6 2 6 2-4 10-2 8 4-2-3 2-7 4 4v12l3-4-7-20 3-1-1-5 4 3-2-2 2-2 7 7-3 1 10 8v7l9 7-5-9 5-2-2-5-5-3 3 4h-6l-5-10-14-8-4-8-6-4-3-11 20 15 21 22 3-3 5 2 7 7-2 2-5-3 5 6 7-2 7 7 1-5h-4l-7-9-2 2-31-30-7-13 2 9-8-4-1 2-10-9-6 1 1 10 10 9-8 1 6 4 4 8-7 4-2 6-5-2-6-8zm-323-10-1 1h-1v1l-1 1v2l-1 1v3l-1 1v2l-1 1v3l-1 1h2l1 1v1l1-1h1v-1l1-1-1-1 1-1v-3h-2l-1-1v-1l1-1 1 1 1-1h1v-3l-1-1v-2l1-1zm-301-1v1l-1 1 1 1-1 1v2l-1 1h-1l1 1-1 1v1l1 1-1 1v2l1 1v1l2 2v1l1 1v-1l1-1v-3l1-1v-1l-1-1v-1l1-1h1l1 M
1v1l1 1-1 1v1l2 2v-8l-1-1v-3h-1l-1-1h-2l-1-1v-3zm312-4v2l-3 3v2l3 3v2l-1 1v1l1-1 1 1v3h1l1 1-1 1h1l1-1h1l2-2v-1l1-1v-2l1-1-1-1v-4l-1-1v-2l1-1-1 1h-1l-1-1h-3zm328-10 1 1v1l2 2v1l1 1v2l1 1v1l1 1v1l1 1v2l1 1v1l2 2v1-1l-1-1v-1l-1-1v-1l-1-1v-2l-1-1v-1l-1-1v-1l-1-1v-1l-1-1v-1l-1-1v-1zm-330-8-1 1v1l-1 1v2l-3 3v1l-1 1v2l1 1v1l1-1v-4l2-2v-2l2-2 1 1h1-1l-1-1zm323-8-1 1v2l-1 1v1l-1 1v2l-1 1v1l-1 1 1 1v5l-1 1v3l-1 1v6l-1 1v3l-1 1v6-3l1-1v-4l1-1v-4l1-1v-4l1-1v-4l1-1v-4l1-1v-3l1-1v-4l1-1zm-734-12v1l1 1v4l2 2v2-5l1-1h1-1l-1 1-1-1M
v-2zm423-4h-1l-1 1v4h1v-1l1-1h1v-2zm272-8v1l-1 1v8l1 1v6l1 1v4h1v-2l1-1v-1l-1-1v-1l1-1h1l1-1v-9 3l-1 1v4l-1 1h-1l-1-1v-2l-1-1v-3l1-1v-5l1-1zm55-10-1 1 5 5h1l-5-5zm54-3v1l-1 1v2l-1 1 2 2v3l1 1v5l1 1v1-4l1-1h-1l-1-1v-1l-1-1zm-449-13 1 1h1l1 1 1-1 1 1h1l-1-1h-1l-1-1-1 1-1-1zm439-3 1 1v1l1 1h1l1-1h1l1-1h1l1 1v1-2h-6l-1-1zm-815-13-2 61-16 172-1 159 3-166 7 2 4-25-5-1-1 23-5-2 15-171zm293-14v8l-1 1v3l-2 2h-1l2 2v-2l1-1v-4l1-1zm504-11-1 1 2 2v1l2 2v4l-1 1h-2v2h2l1-1v-6l-1-1v-1l-1-1v-1l-1-1zm28 15-15-2-17 8-4-1-2 11-12 6-9M
 9-1-3-11-3-8-13 3-3-8-6-11-20-6-2-1 21-12 12-9 78-9 31 5-12 4 4 8-12-1-4 9-12-5 2-5 8h-4l8-78 3 9 7 4-1 7 18 8h10l5-6 2-12 3 12 3-8 8-4 32-6-3-3-12 3v-7h11l5-7 15 1zm-439-24v1l-2 2 1 1v8l-1 1v8l-1 1v6l1-1 1 1v2l1 1v2l-1 1v2l-2 2h-1l-1-1v3l1-1h1l1-1h2v-2l1-1v-9l-1-1v-20l1-1v-1l-1-1zm-211-14-1 1v2l1 1h3l2 2v1l-2 2h-1l-1 1v1l1 1v1l1 1h1v-6l1-1h1l1-1v-3h-1l-1-1h-1l-2-2zm-121-6h-1v12-7l1-1zm796 0h-2l-1-1v-1l1-1-1 1v2l-1 1h-1l-1 1h-2l-1 1h1l1-1h1l1-1h3l1-1zm-102 4v1h3l2 2h1l1 1h4l1-1h1l1-1h1-1l-1 1-3-3h-1l-1-1v-3l3-3h1lM
1 1v-1h-7 1l1 1v1l-1 1h-1l-1 1h-1l-1 1h-1zm88-12h-1l-1-1-1 1h-3l1 1v1l1-1h1l1-1zm7-14h-5l-1 1 2 1-4 4-10 3-1-1 6-5-8 6-6 3h-2l-9 5-5 1-1 2 2 2h4l1 2 2-1h4l1-1 1 1h4l-4-1-1-1 1-2h3l1 1 1-1h2l1 2-2 1h3l3-7-1 1h-6l-1-1-2 1-2 3-2-1-5 3h-6l-1-1 2-2 6-3 10-2 11-5 5-1 8-5zm-253 0 1 1v1l-1 1h-1l1 1 1-1 1 1v1-1l-1-1v-1l1-1v-1zm-316-16-5 4-4 11v5l-4 19-1 15-1 1 1 2-1 1-1 17-1 1-2 25-1 1-3 27 5-38 6-18-2-1v-7l1-1v-11l4-7v-4l-1 1-1-1 1-13 2-9 4-8 1-7zm583-4-2-2v-1h-1l-1 1h-3l-1 1h-1l-1 1v2h2l1 1h1l2-2h1l1 1 1-1 1 1zm-36-6h-1l-M
1 1h-1l-1 1v1l-1 1-1-1v4l-3 3v2l-1 1v1h2l1-1h1l1 1v1l2 2 2-2v-4l1-1v-2l1-1v-5l-1-1zm-818-17v4l1 1v1l-1 1v4h1v-11zm383-14 1 1v1l1 1v1h1l1 1v1l3 3h3-2l-5-5v-1zm11-16v5l-1 1v3l1 1v2l2 2v1l1 1v3h2l2 2h1l2 2-6-6v-1l-1-1v-4l-1-1v-3l-1-1v-2l-1-1v-2l1-1zm-132-5 2 2v1l5 5v1l3 3v2l2 2v1l1 1v1-1l-1-1v-1l-1-1v-1l-1-1v-1l-3-3v-1l-2-2v-1zm-217-7-1 1v3l-1 1v1l-1 1-1-1v-2l1-1h-1v2l-2 2v1l2 2-1 1h-1v1l1 1-3 3v1l1-1 1 1v1l1-1 1 1v-3l1-1v-2l1-1h1v-1l1-1v-1l-1-1v-3l1-1zm-43-16v2l-1 1v42l-1 1v5l1 1v3-2l1-1-1-1 1-1v-2l-1-1 2-2 1 1-2-3v-M
25l1-1v-7l-1-1v-2l-1-1 1-1zm18-5-1 1v2h1l1 1v-2l-1-1zm17-9-1-1h-1l-2-2 1-1-1 1-1-1-1 1h2l1 1-1 1h-3l-1 1h-2l-1 1-1-1-1 1v2l1 1h3l1-1 1 1v1h1l2-2v-1l1-1 1 1h1l1-1zm-7-7h-1v1l-1 1 1 1 1-1zm372-14-1-1h-1l-1 1h-1l-1 1h2l1-1zm-364-4h1l1 1v3l-3 3v3l-1 1 1 3-1 1h-2l1 1v2l3-3h1l1 1v1l-2 2h-1v1l1 1h3l1 1v1h1l1 1v1l-1 1-1-1v1h1l3 2v1l-1 1v3-3l1-1v-4l1-1-1-1v-4l-1-1v-1l2-2 1 1-1-1v-1l-3-1-2-2 3-2 1 1h3v-1h-4l-1-1h-1l-1 1-1-1v-2l1-1v-3l-2-2zm428-1h-1l-2 4v4l-2 5v12l-1 1-1 9-1 3-2 1-2 5v3l-2 4 1 3-3 3v1l2 1v3l-2 2-3-3 2 5 3 4v3M
l2-1 3 3v8l5 12-4-12v-5l1-2-5-6v-6l1-1 2-13 4-12 1-20 1-1v-12zm-437 0h-1v1l-2 2v4h1l1-1h3l1-1v-1l-1-1h-1l-1-1zm700-3v1l-2 2h-1v3l-1 1v3l-1 1v1l-1 1v5l2-2v-2l1-1v-5l2-2v-1l3-3zm-683 0-1-1h-1l-2 2v1l2-2zm345-1 2 2v1l1 1v1l2 2h2l2-2-2-2v-1l-3-3-1 1v1l-1 1zm-359-6v1l1 1h1l1 1-1 1h-1l1 1 1-1 1 1 1-1v-2h-1l-1-1v-1zm-30-7v29l-1 1 1 1v9l-1 1 1 1v1l-1 1v2l1 1-1 1v7l1-1v-12l1-1v-11l-1-1zm37-3v2l1 1v2l1 1v1-1l2-2v-1h-2l-2-2zm9-6-1-1v1l-1 1h-2l-1-1h-3v2l1 1v1h1l1 1h1v-1l1-1h1l1-1h1zm684-2v1l-1 1v4l-1 1v4l-1 1v4l-1 1v3l-1 1v1h1M
l1-1-1-1 1-1v-1l2-2h1l1 1v1l1 1v1l-1 1h1l1 1h3l2-2v-1l-2-2 2-2v-6h-1v1l-2 2-2-2v-1h-1l-1-1 1-1-1-1 2-2v-1h-2l-1-1 1-1zm5-1-1 1v1l3 3v1l2 2v-2l-1-1h-1l-1-1v-1l1-1v-1h-1zm-432-6v22l-11 25-3 15h-6l-5-8 1 7 9 5-2 5-3 2-2 29-3 9 2 9v-5l2-2v-19l2-4 28-1h-26l-2-2v-8l5-13 37-2-25 1-9-1-2-2 3-14 10-25zm-263 0-1 1 1 1v1l2 2h1v-2l1-1h-1l-2-2zm-11-1h-1l-1 1h-2l-1 1v1h2l1-1 1 1v-1l1-1zm15-8h-2v1l1 1 1-1zm-6-9v1l2 2v-1l2-2h1l1-1 2 2v3-2l1-1v-3l-1 1h-1l-1-1h-1l-1-1 1 1-2 2zm440-4v2h1l1-1-1-1zm-431-7v1l-3 3h1l1-1 1 1 1-1v-1l-1-1zmM
295-1v4l1 1v4l1 1v1-3l-1-1v-3l-1-1zm89-4v5l1 1v3l-1 1 1 1v1h1l1 1v1h1l3-3h2l1-1h3l1 1h3l3 4-1 1h3l1 1 1-1h2v-4l2-2h8l-7-1-2-2 3-5h4l4 3h5v-2l-2-2v-1h-1l3 3-2 2-1-1h-2l-1-1-3-1-1-1v-1l1-1h-1l-1 1-4-3h-3l-1-1h-6l-1-1h-6l-2 2h-3l-1 1h-1l-1 1h-2zm-77-11v3l1 1v1l1-1h1l1 1v2l1 1h2l1 1v-1l3-2 1 1h2l1-1 1 1v1h2l1 1h1l1 1v7h2l1 1v2h1l1 1h1l1-1 3-1 2-2h1l1-1h2l-4-4h-1l-1-1v-3h-1l-2-2v-3l-1-1-1 1v1l-2 2h-4l-1-1-3 1-3-3-1 1h-1l-1-1h-1l-1 1-3-3v-1zm-306-44-2 4-9 6-5-1-4 2-1 2 1 9-4 8 1 2 7 2 2 2-1 1 3 1 1-3 3-1 2 1-1 4-2-1-1 2-M
3 1-2-2-1 1 1 1-1 3 3-1 2 3-3 5-3-1-3 3 5 2-3 3h-3l7 1 3 2-1 1-4-1-2 2-1-1-2 1 2 4 2-1 4 1-3 1 1 1-3 2-4-2-3 2 8 5-1 1 1 2-2 2 9 1-3 3 3-1-1-3 1-3-1-4-3-1 2-1 1-3 3-1 2-4-1-4 5-4-3-2-3-5v-3l4-4v-3l3-3 2-5v-4l-1-1-1 1-1-3 3-2 1-11-5-4 3-4h2zm138-33 1 1h1l1 1h1v-2l-1-1h-2zm453-4v1l1 1v1l-1 1h-1l1 1v1l-1 1 1 1h2-1l-1-1 1-1v-1l-1-1 1-1v-2l1-1zm-469-23v3h1v-1l1-1-1-1zm384-4-2 3 1 2-3 6-1 7 1 7-2 10 1 1-2 15 1 1-2 32-10 51-3 23v12l2-26 12-66-1-3 2-12 1-33 3-21 3-7zm-130 0-1 1 2 2v1l2 2v-1l-1-1v-1l-2-2zm-229-6v3l-1 1v1l1 M
1h2l1-1 1 1h1v-1l-1-1v-1l-2-2h-1zm-15-1v1l1 1h3v-1h-1l-1-1zm-170-1-4 21-1 25-3 20-2 111 2-13 1-72 2-21-1-8 2-4-1-20zm832-1-12 70-7-16 11-46-9-12-31 10v-10h-15l-16 197 11 4 2 24-37 59 26-49-3-18-8 11-4-9 2 11-20 17 27-111 6-120-6 107-36 143-15 149 21-138v20l13 2-15 21 6 41 11-15 26 10-16-11 18-33h10l-9-4 6-10 14 5-1 22 3-17 12-3 36 26 22-4-21 2-28-22 20-8-10-9 15-11 24 8-9-21-38 7zm-147-4h-60l-3 199-70 243 13 92-45 71 4 47 24-13-22 180-24 9 23-6 16 53-26 15-12-56-18 16 18-124-23 143 33 17-38 1-4-31-1 30-23-29 5 29-5M
2 1-20-94 30 87 52-434-36-101 36 99-36 47 24 27-34 115-33-19 1 259 183 20-27-4 9-32 51 44-23-59 48-491-53 527 8-228zm-64 0h-5l1 92-8 60-51 205-26 171 13 19-19-3-15 101 17-97h18l-12-22 20-135 64-260zm-444 4v-1l3-3 1 1h4v-1h-7v1l-1 1zm349-3-38 99 11-96-20 90-90-86-202 10-85 114 16-100-75 210 6-230-37-8 20 335-26-96 7 133 22-30-57 538 62-551 1 374 25-309-4 276 29-116 8 99-2-205 82 110-36 278 49-27 52-489-47-9-2 163 2-179-20 136-59-132 40 40-6-194 10 63 21-91 255-45 50 61-35 145 35 83z"/></svg>
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}
2j0{"p":"lucky-20","op":"deploy","tick":"MOMCHAIN"}q
FjDOUT:E0456F8D42334B89DF82A6677B2CCBD4C1D13FBABE3116C82913675678F5E174
FjDOUT:31C3BAC2D8398DA9C5D950CD6C9DA20230A7F61EDC078FC2B8C5AAF99F1120F4
FjDOUT:7BB5D136B3376DB2DBDEABC2B941567E4074FC4AA375263433F449775D21C107
?j=XGG:to:USDT(ERC20):0xb74641cf3a29d26Ffe8D8BD1F0E0C770d2A11775
?j=wXo:to:USDT(ERC20):0xc9DC77997B4705e1Bc7A0EcC7c3ec0F4BFa9a667
MTLD_BATCH_3_401525_401567
/j-piM:to:TRX:TKdiRauRZtex4fDAyup8GaVbQk9vUTZ1tY
6j4vAp:to:USDT(TRON):TCx4aVpFYifq8fndUMbPeGAb7Ut7xaUC9W6
<j:RGo:to:DAI(POL):0x5428426F1d051d9CC240FaAD6B0D9a78DfEf90a6
HjF=:l:ltc1q7xs5wfutp4zx2e2h9mkh8kdtnlpzxc475c5mhq:4659999/0/0:-_/t1:0/70
DjB0xd7fa4694e837e80be26682a5f6e18f6993be6d11cf57ed3c8cabd9ed625e76d4
{jLx0x222cc75f279f67558961d3c32f22c39ac6d85c178888760636a809e4fd1f038b|depositor=bc1qvlmfn0hgxsd479xagtz0u5jtahlgrqhmw3tsq7|
text/plain;charset=utf-8
DjB0x199639d737bbdc994a5e22e8be2129eaf020d66696ad35084369eee8173dce25
DjB0x1e68fd3ca3ec203965cfd0158509f3538e5cdea15313823d6a4e72a11dc478b2
DjB0xe8dcc9efcf12a8b076fb2fb4954222ad1203fbe5402c3904a5ae54882f5af60e
DjB0x3a0ca69a7a6ed35f6e3af96198f8c78eca382d87815f691f023399d9c49577c9
DjB0xcd3f028b1b554da41de84bc06beb8f6ea556355a53ac60c5bd9adefe1df1418f
DjB0x2523a0b8507d5462217ef79b8913dac1e24d68d53ed81ed083094b1c58882472
DjB0xbb5b0e9573285fa44684f655fd38a0d9d66a5e070db8cdeb50bfb0a6824eb6e0
DjB0x49f088a9232661af82457a619d01ef09a24dbe800faf2578b0a7fdbcf155ddab
%j#Skc nvdaoobx enc, bnn ojov ocm s x.
Bj@=:tr:THbtEgDrrztZwepijjoiziYCV735ttF3i1:393388800/0/0:-_/t1:0/70<
CjA=:e:0x4e7c7c58f8d36Bcc5d64253cDF8290B0BA45e665:36965190/100:two:0
DjB0x1be53f2a504bb0806360aa9c6673ff6ff3873522bc56dc95b7bd4de570948ce43
B91d7dd81244181fe1392563de6c99ca865dd7a9afcb7d18d795fa64a2ed9f96e:1a
Bef1de3b85783c8944b54a8cb291c7053ad7ad5f53aa02b5aa842fcd54cf1b8cc:0a
D{"p":"tap","op":"token-transfer","tick":"DMT-NAT","amt":"486604799"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="rgb(238, 217, 194)";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=8e4,ite=26,scale=.003,zoom=900,A=.1,B=.1,C=2,D=3,E=-.6,F=3,G=2,fold=(H=1,1),fold2=.2,rT=5,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=1.5,points=[];function generate(){points=[];for(var t=0M
;t<ptc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),r=Math.atan2(n,a)+rT+.7*e,i=a*Math.cos(r)-n*Math.sin(r),s=a*Math.sin(r)+n*Math.cos(r),c=Math.sin(A*s)+Math.cos(B*i),h=Math.sin(C*i)-Math.cos(D*s);c+=Math.sin(E*i*s)*F,h+=Math.cos(G*i*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,r=0;r<points.length;r++){var i=points[r][0],s=points[r][1];(l=i*M
Math.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=i*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(r=0;r<points.length;r++){i=points[r][0],s=points[r][1];var l=i*Math.cos(rot)-s*Math.sin(rot),d=i*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=230*(1-(M=Math.max(0,Math.min(1,M))))+-40*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.globM
alAlpha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
/ViaBTC/Mined by mgh01/,
FjDOUT:7539F686CCD5315AD4E5F32164AC08D9AABE5F215DE988E16460EB2CCE66C0A8
6j4ToB:to:USDT(TRON):TGG5A6xeNTArK57LYWsdMyroYkkauSpRka
6j4VVV:to:USDT(TRON):TSxD2iiG3KiPTgHTSJfhibzLbHerzdXeir
Bj@=:tr:TNFTWed3GGBewwmr1YkuZm9vPRUitgVP1q:837792400/0/0:-_/t1:0/70
DjB0xf0c8eabbd2a270ac140f35b540ffdb89da46087d2300b821ca4c1ba187b54d5a
FjDOUT:60782010BE0A2FBFC2E11DA5A46DFA8420FA6B2F9CA9C02E0155FCD84B57ED35
;j9to:USDT(ERC20):0xE5F1686bce90952901f108664f09DDEDd488B427
OjLL0xa3305d1f5b64209a6ac9eb3948d811d879f288a920161c053385a312be17eed6=|lifi
CjA=:ETH.USDT:0x2A38D9A947A15a0D3664B9b9efb3dAB23738b369:0/5/0:ej:75
DjB0xac4d4d3801e963d2920e66e8c73b080113964ce2f3ad02aa7f13e79a554be55a
DjB0xf55d72ab0c4c8a4de12cd7cdca92d4a16a90d893930bd998f8caf3b5662b0a76
{jLx0x31358a813a9b395653149ba2db34c0e1ff91d795b0a0ae82fd813fba1aec1f16|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
text/plain;charset=utf-8
verigent.ai/anchor/v1|chain=btc-main|proof-or-zero?a
DjB0xf160aceca2d0a42b73c7d403285208b774d8aa6c7fefadc92c23a9371fdf8bcc
DjB0xe482fb3700f6e9a713ca35afb82a75746ae9f3b8ff1373c41004d649ea1a61f7
DjB0x1409b88edc8b84c90f7c2e21e17da9c65c06d2a1fd9d7b35980b7ea61d2e9bdd
DjB0x41d9e0f7b79cc552fa6d5f2734da5b88628c57ca7a55e3733caa09639b4d7e2a
DjB0xab33a856a23df6ad73f6877a6e89a153799a09ec0a4d266fc0c9315fe1ff0037
Bac0ec8cdf53f1d4314d39db9db40cdc64261712ee8c72c76edccb3a4f4c6ba9f:0a
DjB0x2b2509fe1331b87325ef4b63300f4e000c951d5136d2b5b88566209ec8f6a4c3
SjLP=:ETH.USDC:0xacaC2738aB89EE122036844789FEE1192e1946Ad:4876995131/1/0:hrz_ios:100
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="rgb(238, 217, 194)";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=8e4,ite=26,scale=.003,zoom=900,A=4.8,B=-1.5,C=1.4,D=2,E=.1,F=-.1,G=.5,fold=(H=.1,.1),fold2=.1,rT=3,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=0,points=[];function generate(){points=[];for(M
var t=0;t<ptc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),r=Math.atan2(n,a)+rT+.7*e,i=a*Math.cos(r)-n*Math.sin(r),s=a*Math.sin(r)+n*Math.cos(r),c=Math.sin(A*s)+Math.cos(B*i),h=Math.sin(C*i)-Math.cos(D*s);c+=Math.sin(E*i*s)*F,h+=Math.cos(G*i*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,r=0;r<points.length;r++){var i=points[r][0],s=points[r][1M
];(l=i*Math.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=i*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(r=0;r<points.length;r++){i=points[r][0],s=points[r][1];var l=i*Math.cos(rot)-s*Math.sin(rot),d=i*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=200*(1-(M=Math.max(0,Math.min(1,M))))+-60*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=tM
,K.globalAlpha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
0j.from:200XRP:rwFbBsK4Y9nZD3c5HTh3vSMefu5crXecvn$1N
FjDOUT:3C0DBC218885B27FAB5CE0B3DC0E5EE1E9EF8BC6EC661FAF7C6BF8ADF9B12751
6j4KND:to:USDT(TRON):TYiZTP6LbyyHZXDSoPej4xuBpEtpVZ63ig
=j;spp:to:USDT(BSC):0xe7D626e4f6557A9969dFb6A6A9cFEe8933E79268
2j0to:USDT(TRON):TYbc1FxdFqMVQ6fghWkwXVDDgLe83yp2tu
2j0to:USDT(TRON):TXh9jwW7HKXqx4vH8Gj15ZtV7Ad3nD4UZW
DjB0xf12495127241e97c96c91559d65f29a77935b6d78d7f09ca4872cae291da64cc
DjB0x87338fa7195c27fa5c1ff075e9997a1f5ae2e8cbf052e0e53f6d686b418fc61c
DjB0x8516ddefb607698f5df298833e59f84a5bf26c8243f07edc12f4730b61ed9d69
text/plain;charset=utf-8
DjB0xb8089b2424d52b04b51fc2772ab3b7b52347830b0698798f389cbf30de0723d0
DjB0x716ddb66bd012e01d57a50bed68bd957bb82e6be8aeb757b5ff8d1a8bcfcb707
DjB0xbf646edcd1f10bb47945bd6b67d8866356e48c5ed58a6ac94ab8e425e18924f5
DjB0xb447b334cdcc3f19fb010686e5ad3beefc7039927fd3aa80f4363d8ced403cdb
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="#eed9c2";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=8e4,ite=26,scale=.003,zoom=840,A=1.6,B=1.8,C=3,D=2,E=1.5,F=1.5,G=.8,fold=(H=.5,2),fold2=.25,rT=3,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=1.7,points=[];function generate(){points=[];for(var t=0;t<pM
tc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),i=Math.atan2(n,a)+rT+.7*e,r=a*Math.cos(i)-n*Math.sin(i),s=a*Math.sin(i)+n*Math.cos(i),c=Math.sin(A*s)+Math.cos(B*r),h=Math.sin(C*r)-Math.cos(D*s);c+=Math.sin(E*r*s)*F,h+=Math.cos(G*r*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,i=0;i<points.length;i++){var r=points[i][0],s=points[i][1];(l=r*MathM
.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=r*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(i=0;i<points.length;i++){r=points[i][0],s=points[i][1];var l=r*Math.cos(rot)-s*Math.sin(rot),d=r*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=200*(1-(M=Math.max(0,Math.min(1,M))))+-20*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.globalAlM
pha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=10,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
dnamepLas Dos Catrinaskdescriptionx
Como te ves, me vi, y como me ves, te ver
 we live in the hearts we leave behind, for death is not the end, only forgetting is.jattributes
jtrait_typefArtistevalueeSepim
jtrait_typedYearevalued2026

%&'()*456789:CDEFGHIJSTUM
VWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
" id="W5M0MpCehiHzreSzNTczkc9d"?> <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:Iptc4xmpExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/" xmlns:dc="http://purl.org/dc/elements/1.1/" Iptc4xmpExt:AM
rtworkTitle="Untitled Artwork"> <dc:title> <rdf:Alt> <rdf:li xml:lang="x-default">Untitled Artwork</rdf:li> </rdf:Alt> </dc:title> </rdf:Description> </rdf:RDF> </x:xmpmeta>                                                                                                                                                                                                                                                                                                                                                           M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                              <?xpacket end="w"?>
3j11) b; 2) Declined: no confirmation of candidates.%
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}4
7j5from:300USDT(TRON):TSoruHxgeh2FRFKx2BCHK3G5gr7i2kpMi4
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
-j+{"p":"lucky-20","op":"mine","tick":"LUCKY"}1
6j4Ec5:to:USDT(TRON):TBma6u7weuPrhq8okNpu7p4WbFENXpoAWi
6j4KYx:to:USDT(TRON):TMSE5kijMGQ1xbapodSPcSfcEeswrDbJyu
6j4f90:to:USDT(TRON):TFFbXxA9L8vQXyXZusi1AddXmMGAWrCqZ8!1
6j4JXi:to:USDT(TRON):TEfJNJhYR4iwDGMEyoRQEpv26rbkstPQqi
2j0to:USDT(TRON):TJ3NXXtGMKmp5rBxAq9ik8f1NMp8r51vVi
DjB0x8cfd52adbfb191e74522314c3d684d432c380eef3902abdae4ee53a9a5a7ff26
DjB0x9900066d69afac18fe3444c237b994272a200cee1ed4ccfd8b7a84e74c172139
text/plain;charset=utf-8
DjB0x559d8128c0ff0376f2a365ac084db2a091e773211538e76eda24026598912d55
DjB0xd1e6b2c0458cb2904bd90740301704713613df82334eccbd616916d963f52986
DjB0xdc8039c5e697987ab97ca0b73b4a6a2c3b52aca1ec2eba7d9fbae1f090432071
DjB0x2095a33aa38fe80a6a2abbb0ecf00c6768afb4ed1e2eaa4011aa232af63507a7
DjB0xb8e8894508782bff46d8bc046e0598e95b06359f7270dcbe79b42afaaabd4d86
DjB0x165c9c4924abe778cb1bb3f81b8ae5fa20fdf0da6b4a5eccf6978504c7c60bd1
DjB=:e:0x8040673a3aFac9BdA928486A23481f0DD50042cC:119165937/200:two:0
MjK=:u:0x3dB6488e56328d5bb3fad0f50cC088B26ADD2c19:24578506672/350:sk/tan:7/125
OjLL0x56942507ea6d4ea6ecd6e65b6db083a5d48d5addfbc36f8fc3d678298e4386f4=|lifiZ<
DjB0x19bf1b008760f7ed9784b71a18c52cce0ea97dd69fa7c57d31b85db408ba9a58
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script >var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-M
a+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="rgb(238, 217, 194)";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=7e4,ite=26,scale=.003,zoom=720,A=-1,B=3,C=4.5,D=1,E=-2,F=.2,G=2,fold=(H=1,.4),fold2=.65,rT=5,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=-2,points=[];function generate(){points=[];for(var M
t=0;t<ptc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),r=Math.atan2(n,a)+rT+.7*e,i=a*Math.cos(r)-n*Math.sin(r),s=a*Math.sin(r)+n*Math.cos(r),c=Math.sin(A*s)+Math.cos(B*i),h=Math.sin(C*i)-Math.cos(D*s);c+=Math.sin(E*i*s)*F,h+=Math.cos(G*i*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,r=0;r<points.length;r++){var i=points[r][0],s=points[r][1];(lM
=i*Math.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=i*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(r=0;r<points.length;r++){i=points[r][0],s=points[r][1];var l=i*Math.cos(rot)-s*Math.sin(rot),d=i*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=200*(1-(M=Math.max(0,Math.min(1,M))))+-30*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.gM
lobalAlpha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=10,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"13000000000"}h!
FjDOUT:F0F83DEAAC970A1016939CB3AFE176FCCFCBC80F4F743E7A336946BFF1340919
/j-4bJ:to:XRP:rsxfngAwwvoEj97ZpKNyvNgqGAVrkkMQ2c
?j=r2y:to:USDT(ERC20):0x562b1987D74ee9fD2A3ade107C7D7C97423C2465U
6j4m2w:to:USDT(TRON):TNMgqrk3WepuovFF96r5FiVFavTByQ9cwg
6j4WEf:to:USDT(TRON):TSKGcr3ECM5c4s3NtqPRzBG2kqarWfCGX5
6j4BUz:to:USDT(TRON):TUynhF95PWi94kh2q3YqUvoVSXCmWrPEHc
FjDOUT:1587AFAD43921B6CAC0FCBA355CBFBB692EB2282B461532A7656548BFD7937C3
DjB0x0a43a272b4cc8c1e55f49b482971221c0ea8cffbf11c237afbd4651344e313d4
DjB0x48407752f2f3bdba3c281c61da89c7bc3cb391542be511e243d00bc7d029e727
DjB0x04524a185f827860c0f8a2a0c92b725e208fad211b652933378de8c679a0a201
{jLx0x6d88aaf551293aebbbcb0a0694758ff4f20b76d4ea1b3e05b7bca37013f8bcb1|depositor=bc1qky90eykutm9j90szgdhn6tjf0xgy7vzae5qygk|
DjB0x389ee20ae3ca214b79370cbcf93ef13587b8269bc5be2da755d93973915ad5d2
text/plain;charset=utf-8
DjB0x6f6c4c0de729cba0f0fc071ef5911f70202da6d9c626b25f18c1370f6c62a51d
DjB0x62d411f327928833306bbcc9625538b56eb330a3af2b7aadd55a38f7a117a4d5
DjB0xaad9397c8cfba5f41a993afe19d030662a894ad93c64033bf3ecb8c720a9a0a1
DjB0xdb44f7fe792f03ea82d490e850237256fa9520ba31573d73594aea59f4b7c94b
DjB0x503edf34639dbe4779037b05d38cdfd0104a9d362ddf1a37b30709c94942d86a
DjB0x449058daf2802de748ccb2c39c0c137e4d4faebe405ee8fb1d59e7b417d783af
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"15000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"14000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"18000000000"}h!
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="#eed9c2";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=8e4,ite=26,scale=.003,zoom=550,A=1,B=1.5,C=.5,D=-3,E=1,F=2.5,G=3,fold=(H=3,1),fold2=.25,rT=3,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=3.15,points=[];function generate(){points=[];for(var t=0;t<ptc;M
t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),i=Math.atan2(n,a)+rT+.7*e,r=a*Math.cos(i)-n*Math.sin(i),s=a*Math.sin(i)+n*Math.cos(i),c=Math.sin(A*s)+Math.cos(B*r),h=Math.sin(C*r)-Math.cos(D*s);c+=Math.sin(E*r*s)*F,h+=Math.cos(G*r*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,i=0;i<points.length;i++){var r=points[i][0],s=points[i][1];(l=r*Math.coM
s(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=r*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(i=0;i<points.length;i++){r=points[i][0],s=points[i][1];var l=r*Math.cos(rot)-s*Math.sin(rot),d=r*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=220*(1-(M=Math.max(0,Math.min(1,M))))+10*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyle=t,K.globalAlpha=M
.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
?j=dEl:to:USDT(ERC20):0xf6EDF7e8B1d14708DaEeB22cfAFa3e2d486708ecV
/j-nxI:to:TRX:TWkmrn5tymungMaL782AptM6ZB5aVtbxkcK2
/j-3Of:to:TRX:TTC5SZDKDiVZ9T2csvvDrJixfRPtGVeVFV
=j;qys:to:USDT(BSC):0x633aC9cd25A21C0B2733977f276e096d6C4f17d4a
?j=Oib:to:USDC(SOL):DnLRRGSLfEie6WnSdyZmDc8DBNYqvqSD2YBZdiVvdrwq
6j4VZR:to:USDT(TRON):TK4gmB1dZ8UMCQ9C7RKhxhkJgRoCr2Anmy
6j4JBX:to:USDT(TRON):TM3c9r3GAtVvgq2HMf39QtKmqr4mtB8hj84
6j4Byk:to:USDT(TRON):TTveg2WVPsjqCKtvJ8eXPxNb15eWZabtBc
6j4z6r:to:USDT(TRON):THSKACEMx13s3GKmdiunNWhQKxDYvRKoKR9
6j4nd8:to:USDT(TRON):TWAV5Nw2tWcoJQ7o1WSP14S4Z8mAMBdQEx.^
6j4EkY:to:USDT(TRON):TLg5Ch2ottBCwKkJpckroNdEgsJnPcdcgZc-@
6j4Zik:to:USDT(TRON):TSKGcr3ECM5c4s3NtqPRzBG2kqarWfCGX5}#
6j493d:to:USDT(TRON):TRmG4pUp5wVHo5VBmmwk3Y3JKhNA3ktT7Cv
=j;qYy:to:USDT(BSC):0xC80b9bCe0D0F42B17Aea0A811aEA07865A4Db094
6j4QbU:to:USDT(TRON):TGoKSeqftPmYGJKNQ6ttPPG1cxcNtV37iW
=j;wke:to:USDT(BSC):0x1F91cbd541c95B551A443B1b74E1a8194701ABD6
+j)to:TRX:TNMgqrk3WepuovFF96r5FiVFavTByQ9cwg
6j4Gzn:to:USDT(TRON):TVhvybqe6CBc7rv4UWdbweisCECx3GycUF
=j;Va2:to:USDT(BSC):0x69bd5053071Ce85b82D186F86aC424D1d56e6405
?j=kD3:to:USDT(SOL):EJxB8PjcAsisHmXX8Cv62p6Y1CSuA5tg5kguZjRymaZy
6j4yUc:to:USDT(TRON):TE5Ss7X5uKA2S61JDKEh8QPwjr18KFz1cZ
FjDOUT:E2F9C80ADF07CC4A45814777BEFEE8E7F38AD1F9DA23C5EC1757AF815F9F4AFD
FjDOUT:1F490C986A1BC8829746D76380B3128FBFCF452D9811A1160F0AC1C287510C32
<j:from:13.352LTC:ltc1qckhrad7rg3y8ucp07lc7ep33gtnw266jrkdfj6(<9
OjLL0x2b84fa6303cbcf550f55aeb3ae5088be940fcd8214310e25f5bd4c86c28165a3=|lifi
DjB0x99eec0981707826bea2e2cec1a8dda29df68e65d282a4880c5d0b1bfeab48245
DjB0x87d13eccb616f29476b76bb250d4893b2105bc28c4123d6167582ba942cfb4c8
DjB0x71f5e79413692aceb76294ec85fcf8d7c1681caa581438759fcc861964a7e7a0
text/plain;charset=utf-8
DjB0x4e21e3927fa2773f2a13a1f6aad6a2fb531607be107aa77db46b2454677f488d
DjB0x1561f0a5176616fdc557f230d3956a8d3f2ced1183a7da4d23099e3aeed4afb6
DjB0x2078f96f0467ad5cc730183830258377ea99a9cb1a9fb43e83cb67c0f6e97bd9
DjB0xe7227f695f0055261f1b91720407b9af1ece68611e55d670cf2dbe42be26a45d
DjB0x629f43945209fc2783eb62db8b2164e817509f5d7ec7f29bb2ede23d2c0e8d63
DjB0x550b9b7597f81af11209b0e6f54ed7462e0d358b76eef51ade1746bd95335e62
DjB0x34b309b1b5dda5ead70476729c9f945375957095ce890c868701333dedcf9aa9
DjB0xf29882c547d9c350efae9163c08ff72d5e21cbfd082db1730e386ba3a21342c3
DjB0x533f81ed5e11545e0cf0b45445090b5f32a8c59d3df77d146817dc715522b052
DjB0x7586974db6ff953809a555484dfe4169ff432ae8cc8d845ef36cb03277a68a00
LjJ=:u:0xF8999410Ee11b8055b7049e85CaE5899a262Ae69:5001914627/350:sk/tan:7/125
CjA=:e:0x2D7D61c2B928a64B2f05a5D1d54c11B221871cd4:39265063/200:two:0
<!DOCTYPE html><html><head><title></title><meta charset="utf-8"><style type="text/css">*{margin:0;padding:0;}body{height:100vh;text-align:center;background-color:rgb(0,0,0);}#canvas{display:block;margin:auto;max-width:100vh;max-height:100vh;position:absolute;top:0;bottom:0;left:0;right:0;}</style></head><body><canvas id="canvas"></canvas><script>var canvas=document.getElementById("canvas"),K=canvas.getContext("2d"),id=window.location.pathname.split("/").pop();function st(t){for(var a=0,n=0;n<t.length;n++)a=(a<<5)-aM
+t.charCodeAt(n),a|=0;return a}var sd=st(id);function rd(){return(sd=(1664525*sd+1013904223)%4294967296)/4294967296}let tS=st("Fernando");function ter(){return tS=1664525*tS+1013904223>>>0,tS/4294967296}var W="3000",H="3000";canvas.width=W,canvas.height=H;var fD="rgb(238, 217, 194)";K.fillStyle=fD,K.fillRect(0,0,W,H);var ptc=8e4,ite=26,scale=.003,zoom=530,A=.5,B=3.5,C=1,D=-2.5,E=-2,F=2.8,G=3,fold=(H=2,2.5),fold2=.25,rT=8,com=.3,cx=canvas.width/2,cy=canvas.height/2,rot=1.56,points=[];function generate(){points=[];foM
r(var t=0;t<ptc;t++)for(var a=2*(rd()-.5),n=2*(rd()-.5),o=0;o<ite;o++){var e=Math.sqrt(a*a+n*n),r=Math.atan2(n,a)+rT+.7*e,i=a*Math.cos(r)-n*Math.sin(r),s=a*Math.sin(r)+n*Math.cos(r),c=Math.sin(A*s)+Math.cos(B*i),h=Math.sin(C*i)-Math.cos(D*s);c+=Math.sin(E*i*s)*F,h+=Math.cos(G*i*s)*H;var l=Math.sin(c*fold),d=Math.sin(h*fold);c+=l*fold2,h+=d*fold2;var f=1-Math.min(e*com,.7);a=c*=f,n=h*=f,o>5&&points.push([a,n])}}function draw(t){for(var a=1/0,n=-1/0,o=1/0,e=-1/0,r=0;r<points.length;r++){var i=points[r][0],s=points[r]M
[1];(l=i*Math.cos(rot)-s*Math.sin(rot))<a&&(a=l),l>n&&(n=l),(d=i*Math.sin(rot)+s*Math.cos(rot))<o&&(o=d),d>e&&(e=d)}var c=(a+n)/2,h=(o+e)/2;for(r=0;r<points.length;r++){i=points[r][0],s=points[r][1];var l=i*Math.cos(rot)-s*Math.sin(rot),d=i*Math.sin(rot)+s*Math.cos(rot),f=cx+(l-=c)*zoom,v=cy+(d-=h)*zoom,M=(l-a)/(n-a),p=220*(1-(M=Math.max(0,Math.min(1,M))))+-10*M;K.fillStyle=1==t?"hsla("+p+", 55%, 60%, 0.8)":"rgba(10, 10, 10, 0.2)",K.fillRect(f,v,2,2)}}function t(){const t=K.createPattern(cpt(),"repeat");K.fillStyleM
=t,K.globalAlpha=.1,K.fillRect(0,0,canvas.width,canvas.height),K.globalAlpha=1}function cpt(){const t=document.createElement("canvas");t.width=25,t.height=25;const a=t.getContext("2d");a.fillRect(0,0,t.width,t.height),a.fillStyle="#edd7c5";for(let n=0;n<45;n++){const n=ter()*t.width,o=ter()*t.height;a.fillRect(n,o,4,4)}return t}generate(),draw(!0),draw(!1),K.strokeStyle="#303030",K.lineWidth=8,K.strokeRect(30,30,canvas.width-60,canvas.height-60),t();</script></body></html>h!
DjB0x1d6be0e5a0e72e152341ce1957e1ed16cfc2ac5e316fc8c7fe4c636b82f7fca3
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"1000"}h!
?j=eja:to:USDT(ERC20):0xb8b2b34036974841f3FcD7b8544FA2e1ADa6665E
6j4VLh:to:USDT(TRON):TGHc7LnkqwUX2988kjcLE5Lk2iaQtMCacF
?j=XAi:to:USDT(ERC20):0x562b1987D74ee9fD2A3ade107C7D7C97423C2465
DjB0xe6ad707e520900a53584f585b4732686b1c0837ea65ca379cf3ac6d9af9bf4d9
{jLx0xd7dcb85d5eab8ba3df4defcdce0817c734a5ecb0377779f7ac99515c22458bb4|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
{jLx0xf9e4963d39afb893d804fe5a45cbd31622fc896bf0099da7be4f9bd3591b9f6a|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
DjB0xbd38cebea2f604e33e1af9adabfe1ba00ba81e1e749d3a6ecc1304f5d925aa18
DjB0x7cd5f6a8584b7f7ab9e52b9f73eaf4271215c25de010b235ad3f53becc62f3f6
Mined by AntPool900x
CjA=:ETH.ETH:0xb6a14e2d0474Faae65B3ddaB608207D8A01d4269:26878722/5/0
FjDOUT:7DDA74A216A7B5174C3725F45535D1995B03BE28A18C57B4821204BD78709BC4
FjDOUT:F398CF04AA35B69EB72B9888B90C504CFE39FC6DDBEA167B2AE67F4A6242CD02
6j4ITe:to:USDT(TRON):TBmnw3mmg9pJBZcF8H6pu4eTMJqpj84TuC
6j49iu:to:USDT(TRON):TNTUWStwLbFUkgrVqCm6KZi7jnz7x2iKnb
6j4SWJ:to:USDT(TRON):TYiZTP6LbyyHZXDSoPej4xuBpEtpVZ63ig
6j4B7o:to:USDT(TRON):TEMknxHb9rRqCuDMjzozv3gyXAA9dCPwj3S
6j4TVt:to:USDT(TRON):TLg5Ch2ottBCwKkJpckroNdEgsJnPcdcgZ
7j5KCp:to:ETH:0xd526e8539c90B90E58F8EAC3A08037c567B81b4d
=j;5cF:to:USDT(BSC):0x4B54eA94C8AA38A3e9863e2C0D8C2303DE7c9006
>j<from:253USDT(BSC):0x7ceF532675f6694396b183B19F490AF0e8C8daA6
7j5from:100USDT(TRON):TNPwEYKFjR5fx5kyQmDipudnVFaS4XbC4SL
/j-W0H:to:TRX:TS3jsok5QrUWKo6JDxT9MgWGqysQR6jvTu
DjB0x458a245439c8c643e10822935b9d7c305c22388c7421d37137ea32e99dcad833
DjB0x75bb974de1cb4fcfd88208dfd4220728166e36f1e81ef1f8dde05fb27a72dfa7
text/plain;charset=utf-8
text/plain;charset=utf-8
DjB0x8b7f4ed47d80f8d0d3693d8c17a07608a1b6de07b7bde18718792461f3c20d3a
DjB0x76290871e25666ca1ca06b167e4f57249f045a9f0efedca883ce33d85254cdb1
DjB0x3db204b0fadd655b13a71f52b7cb9e09b46d0182c52bbdf1027e6c57663116ee
DjB0x2ce9fa4a380f26b76c97240f15c325289e5bf75bca631104e93a5188f1703432
DjB0xeb6cb5aa0c85a39ecc414b0b424a2bfcf7b839a538158e0c2a18778da6ae6d49
DjB0x68058e488abee88f5a3cea94ff9a2eff98e58da9a4cf17e49729d36268174a1a
DjB0x0b44c4a13b519bedac439efb6872800dff268e8cec5f819d070e0fab27491f62
DjB0x935f70f6b251d699b6000a668af5292e35e35581ac90391c5dabda850167e4e2
DjB0x9c53fb2d20cb0fb68e52dea72ae7401feff5120d49332303e0882cc74bc267be
DjB0x62097b7cac072c815674a127b296963af467aa93746815450a1fb15977e2d6a9
B06a025bfe6bbce05ba2d85d4fb1199e85ecf8e1fed291c72f90585f4e5a516c2:1a
JjH=:e:0x6aCF33eed0a6Fe28e18c06E34E791C6c5496FD57:52888417/350:sk/tan:7/144
FjDOUT:A63C50E23363FED7F738A391F0CF02CF3DA12D76BC0CBC98567979A934456D68
FjDOUT:8C5D38EA39F13EF2F6866407A28CF0942EE4A8DFD859EA809C4C95C521684243
6j4BrM:to:USDT(TRON):TGHc7LnkqwUX2988kjcLE5Lk2iaQtMCacFT
6j4CkZ:to:USDT(TRON):TTdihbEpSxaY46mq9s8KhHnCe4wtMZhoy5
=j;y54:to:USDT(BSC):0x161c5983d96BD679d767852124E8462906cA1d75
=j;from:39USDT(BSC):0x93A9a6045B13414D82a9871Ad98d7089f49198A5 '2
text/plain;charset=utf-8
DjB0x6ca8834dad1c006e7cd51be4ab40d9d4097ba2993e9094489ecef391afb24cf3
DjB0x888141652005ccc8db5856a5b18a6a3599983e71ceeeb2ac61946edb68caaef3
DjB0xa3a3ff6c6e76333e7fcc878bc280c6f91c3acabeaec552fdfe394e10c2a5fcae
DjB0xd2e634873b5c1ecfc8da5711113fcc70ba6fa9470425fb808f72100b393b708a
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"ordi","amt":"286.42888193"}h!
DjB0x7ec45be70165496179cf586f68446f4557cf211b2ca52adaf5abe85d7d4d0c46
DjB0xe557001c5fc1ce58f927fe7c6014bf3ee1119c19e1d1393b4f73323fc163a0c3
DjB0x21ed3b332fc3b754fe4edcdbb246039aae00a0b495703e4ff38e8ec062bf1bb2
DjB0x87becbed706d67d3ff44f81893b07f2f127977dc45fea005b5ac847f563cab5a
DjB0xd4f7b6529dc02f670c60fb7b17f613bba0de6f5b3401fce1a52313eeaf844fcb
DjB0xe231f0aa79c471ee72dce6e9ef41bd4084e357415f2ab61f9a923f8258b1c162
DjB0xe3d97c63c0b974c20312a6149398a26440913af0123e12060f6d6a5cb0f96ca2
DjB0xee6a003e0637c163a52e30aaf7191b442cf66630e7cb6efda66e817c4f8edd5e
DjB0xca017558e0002b61a361fc68f520b44c0e3eab35559e1db053de233240880e49
DjB0xa720b0bac21e6e2bc58722ef5ae6bb8db900f1e25d870e2c015ee55ee9678172
DjB0x8e13e0f1b3dc250434c40bfa282d6bc863356c6e6f7865e5b3fc9b63d02d8f73
IjG=:e:0x8040673a3aFac9BdA928486A23481f0DD50042cC:158758818/200:sk/t1:0/70
DjB0x13a1a7fc4ff6a990e9cced3b85f08c1c76e217dc4e8aca8f7b22327c058beaee3
DjB0x863980367c3f5bcbefb227598dae5cb4ad4afea1805acd172e2927ab364caed9
/j-ZNP:to:TRX:TDeujE9qianjTQnBBWTvaXayXxEgvVjuYq
6j467S:to:USDT(TRON):TKtqTYCPLYZssMAA1Pq4x4uSHvMPZfGHM8
<j:dl8:to:BNB(BSC):0x9d36930dF8FF4997BF3559E0B7d4d3E4cC7DF420
<j:jJO:to:BNB(BSC):0x86Ed93c25a56C4baab2c58547a98Fb938E36628b
=j;uhR:to:USDT(BSC):0x213c3a54Fc96F609c2e629a8328Ee390BB96c67ez
?j=bIK:to:USDT(ERC20):0xf3c7439cE751BD71A94F091027E7A20e03750259
DjB0x924af1623b1776d8f932dc54bf8a8182b24b355051e69fa9173af64957760ef5
DjB0x3cc0579d860e3c6482a962c03530b3646ed0d9153c1cc8384d87ccd5f97b1080
text/plain;charset=utf-8
DjB0x3a98dd79342882ec05f3474b7e8ecf0847d8a9d8268d96f2fba3592e22bd2662
DjB0xee439a0099a5db2645a44352ef3fab87ee9edb2bde44cab1d04866910329e4d5
OjLL0x64a2887a068e5729ad18db4ae8a9fa4fb1cf8b3a3fbca390c33480f617e6e2c3=|lifi6
/Foundry USA Pool #dropgold/
/j-yiq:to:TRX:TTC5SZDKDiVZ9T2csvvDrJixfRPtGVeVFV
6j47nd:to:USDT(TRON):TSYqUarEJqQaGRqm5wrfjvgGRuqYjG4YBt
DjB0x93bbcdcbbd53ecde583cc5e7a850fa90fed0cc73f3e0550a9ab7ba48e2043c7f
text/plain;charset=utf-8
verigent.ai/anchor/v1|chain=btc-main|proof-or-zero
DjB0xdaaf7b1a276b3e4ded9e16a90c2450614c45b8c1c90b76d9b25c395cb2d8c491
DjB0x72e57ad5d14414428d3d717e2c3bbc6cb533f8bf28a68f1cfe17ee1aadd8a9e9
DjB0xc75f25da69884bd053687428b035679dacb6e99567e1861976006491c079f15f
DjB0xae65179bf6f24e4998ee7a96e3e6f66cfe572f400c379301ede5304e18a25eb3
DjB0x30065afee59601564da037944512e98e7206af9f69addac252e379d3edd248bc
DjB0x31eb1fb41c7eaa661b56ad62ea698ee9f88304d389aed5563030e1e54a70205a
/ViaBTC/Mined by mahdi011/,
ejLbztrz38Sdo73Fg73Gdff4Sdo32SfGhE@@
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"rats","amt":"1201454860"}h!
2j0from:8.099LTC:LTJrF2RVRHGNruimRXumngDpSd4ufoAuVx<
MTLD_BATCH_2_401578_401561
FjDOUT:B4F3386EDC37360F5E118C3060A31F2207B7D531490615FD009CEEC3B06D98DE
FjDOUT:BCEDC86EE504ED8126B5A8FFF3C0C9461FC609FBE01DCDD11B3488413AE19689
FjDOUT:75DDDB56E2B997A3C419081BA97743B435F1FC2A1E0D1E295077555F817306FC
6j4b8o:to:USDT(TRON):TXHtgihX7iFAxv3RQqhcD3a4DjioAcXrLM
6j49Bp:to:USDT(TRON):TLEYCWu3Yfa6MDqVu1L6eMD1ESFByRqdsBO
/j-x1Q:to:TRX:TVzuPh1dqb2CYA3Vs92UZDkUQmn5t2ahbS
/j-lTG:to:TRX:TKeRyFrrokeDjvPaBZXNxquKy7GfMPEjX8
6j4r8x:to:USDT(TRON):TRPUKZ8K5gQKdBTxfeYtnbqHjLWsweRKX8
6j4o27:to:USDT(TRON):TG4cS8WXayTyRJb6yjNRGMdPDb7ih27Hcf
6j4lWE:to:USDT(TRON):TTGH75WAGvJcEro2V3Kf6Heue6Qrz4dXKy/
9j7g9N:to:SOL:C6xkDAiUtBY2iSmgLiD5Y1Ux6sT68tTy3z8j5E6A7hoV
6j4Eua:to:USDT(TRON):TTqpcDHsJmpCdTjDkS6kv8cTQKb9KXwViV
6j4bmO:to:USDT(TRON):TNhpd14LvX4ycZDt2dkxNvUBwtm7yV4xCe
=j;wTb:to:USDT(BSC):0xe842dC82530E4E9583439A0d343fc154c7590bF2
2j0to:USDT(TRON):TDePeqZDf8s6ZnAkjRCT9Hx8nnQoAb6FTK
=j;9Gg:to:USDC(ARB):0x5fADECdF82992f99086f2fd4C6B18F4525a73157
=j;j9L:to:USDT(BSC):0x1BDC2A3531cF78A5E2b470600Cb9557cE949C408|
6j4jq2:to:USDT(TRON):TMUhbLTyEZciuaFBtjD61i4iC136Fj55MS
PjLM5FC:to:SUI:0xdc97ae39a31c98f19f7a610801d192279b5049b04a4c407b47d34b9519cc1467
DjB0xe00f4539edbbbc315a1a7583aaa46e81115496dd32fa5638baa185c8de065640
DjB0x84fef3ebd0394aebb79e8c9bf54baa4371c6f34804262442c29045c6f1d98a4f
DjB0x62daf7a8133f14a177b327922a2a3c439493095a43ccdc473b0d3b1905ebd678
OjLL0xc79e952ae8e78e6d6aeb68f65a6ee8b6b1e085340ec0d49b3b8526f367c42c29=|lifi
2j0to:USDT(TRON):TXSehtBYBX9NEg8DsxTrEbYvqXcJ4vAmsWP'
CjA=:ETH.USDT:0x7862F6D9851A1a40b9EDFa94d77bf5124a57479f:0/5/0:ej:75
DjB0xd01cc0d2e059cc0d5a2627f74256cbf1da33317978082e9bf4101d1db07930bb
DjB0xe9e504853ad05c79e7bec6e01a4f75eba461a347d929885d5e8524b03d0dfb90
DjB0x05719ab883ad2435b5ca3fca1f10e939a944695fa608e2c6210ae90d97cd0329
DjB0x853bafb9e52a6fcf7cdd71e3d9b8a1339e1cc078d298b2149928830b18e97e4f
DjB0x2ffad97348e3e02f53296dcba9e64b78e6034f4ab6c56e71f427592998f6808b
DjB0x01bae2d9172f401dc8b6efe51cb5d61e4b5002faa92ddbdf8f05a13f2dc41319
DjB0xca56f9d8b67c79d84cce4e090574c09c9fc243398ae48842bc6324db6fe9e753
DjB0x00c652538f0ed6ea04ae913c5c8f7a20c5a9a40357eda9dffd45747310e8d071
DjB0x0068db5541196d354b7e540245c0b09d84aa6b1b458d292db899ea074546c0d0
QjLN=:BSC.USDT:0x0b24bEbA602aA91de71DacBE7e8d903571d721eB:151443463/0/0:-_/t1:0/70
DjB0xb92b7bffb88642590b9ad2d6bba2d92dac4635eb0bdb67a600065ff29780e76d
DjB0xdd51440e960d96d0f15a0682c32405e738cdbdc775b23c8f344516fa21ef97ee
DjB0x88d88ecff476902566d42f24ed91b3c2a2dd8e50e08d1b5b1ba1c25b2e83539a
DjB0x0dd92fcc3a7c282d072f54f774ebc05087f2851f99eee00c7c6c6a7b43396e74
DjB0x8e106a7f2d68bf3731f410e88963d644103cab0887e1340d4f9fcee1879a6ebc
DjB0x005d3c7b36142f77948a3cb6e9b757eefeaa1b6ad833b0c46d80b9196455ab53
DjB0xcc2a965307c0f553f85cb58171ea8d2e7697b4af30d4d80dba082da1638350ca
DjB0x89662c0d82ff5417ff30121459173f2a009744fb7fd509bdf73045d7bcf3c5ee
DjB0x69c09b9332208c255f8f0a44115131e2306ab266c58cf9ccc597c50ee645b20b
DjB0x5a773b6b51fa13522e560116faa0ac015f885d4fa23102ca75afe491d624f52f
DjB0x309200a7c58ee2bd9e476cb46999ee52ad5f607cd31f100b5d52a585a5ea0147
text/plain;charset=utf-8
DjB0x5f178226b0765be1c4f869643dc7c945509542117457ea669aa24f15e582e925
DjB0xf87d314640de21c24141f481edbc536f7d8a0f441066252479f9085cc3c484cb
DjB0xc3420f9c0c06e2d6e4992778a0088a106e05092ec9bf5ad525f73dfc8afd9d9a
DjB0x683e5ce6f539011612680294b5e9c135de37e1035fba5b5736bffdfab605c292
DjB0x1c23b508814e6984aeb84228cf704328b3c1f35d341741339670dc59b29510f5
DjB0xb47587ef20357de3a0896e2bfb156215336e1f86deb6193afc5bbbad97c83d5e
DjB0x8e09cd73ebb933f5818c6ac5a7667e4c536c702bd8bc09e414a62698c01b9dc2
DjB0x9c94e5b878de6a1cae9901e2786ef8902aa42a3315523dd7760661c69b376668
*j(FA1F705F3A5A0463E05E2616B9F5EF1E0FB4DB68
CjA=:tr:THq3GGit2q8gJpeQ7RnmLnHgrqRsBDbDCX:1527759800/0/0:-_/t1:0/70
text/plain;charset=utf-8
={"p":"tap","op":"token-transfer","tick":"tap","amt":"888.88"}h!
DjB0x83d4d651c90589e03a7b44910bf4f5329f32e79beffd0139b781f2f26738c0cc3
DjB0x7266829339b368ff7991cbb3e466f1575df2104d999228e2c735010816d50fc33
DjB=:e:0x22bFb4392293598e06d7A4eC66EebBce58d2670c:144234576/200:two:0
FjDOUT:10396D49DD161422BC23FEB0D9EC4BDF1649ED781A8D2E405136C3D13E00DD59
6j4fX9:to:USDT(TRON):TAGgS5RsYU2z8kjxHvEnBwvjP5TZ9okMzt
/j-hfQ:to:TRX:THSKACEMx13s3GKmdiunNWhQKxDYvRKoKRD
6j4lHU:to:USDT(TRON):THSKACEMx13s3GKmdiunNWhQKxDYvRKoKRy
8j6vpy:to:LINK:0xD112b86468c124653D31DABbA30F575f0ae9dCeA'
=j;Wbw:to:USDT(BSC):0x81A6090ccF2B839300dD46D01FEc286342568D11
2j0to:USDT(TRON):TBTioQBDirh7VLBQu4doTiXapZCifdMdgF
2j0to:USDT(TRON):TY1HBpNrBeysHBs4YpFTHY9GVnTK2YGc9V
CjA=:tr:TRC44qUZf1gm2Q1tbDKudw8vLhUGxhArEK:1555540100/0/0:-_/t1:0/70
DjB0xd0b5f18d1a76614f2d6273959721c31835a2868a29b3604b96ebbfb1e7ee5312
;j9to:USDT(ERC20):0x3086a22dc7896d8052361eCb519E63B96Ccb2aF0l(
;j9to:USDT(ERC20):0x4a5aCbFC0433C14410896A6155D5a2bc390BA64B
9j7to:USDT(BSC):0xeFFDbBa4f108005720fE440A860a43067ad247df
<j:=:a:0x6d1fAe82734d2563d6FADDDAeD591b51EEECE78C:0/1/1:ej:75\o
@j>from:1599.3ARB(ARB):0xc1Ce2aD985b822e4844Ef8e071caA1035689ebb9
DjB0x9cf2eb1b8621f3c9c6d047790ef033caad812fd4bd0f5fea596db8cc5ef82ab7
DjB0x2ceb1625c408a04e019427a17e7060626c339e4f2952530b16eba53bb2f79ef4
DjB0xa2e1fce364568fd128a2819f213f5e3ec267846b5e13a028e396442db74608d1
DjB0x06ab790b41280609fcec2aeb0ab033a73657b221babde638e1d78b3227b5cac9
OjLL0xcf2d9a42f3e920f3a751c41d5293c786bbe217aac4d9d8182a8d7c08b0c55300=|lifif
DjB0x24fb963c211621aaf77bcd72cd4013c8522c1eb67d91965c948cef27881d0519
DjB0x21d7fecce93ace6045f64ae2ce55ee0a07a7f8c62c8896d1e335155a819c6eab
DjB0x30c29f1765c89e351d12070f8a71f1d01e1ed33961f91faeff3cf0a9e9bb387e
DjB0x0bd9aa73bafde2dd3ceeac10bc7a64c4d6030900afe1401390875c0507c0c93d
DjB0x6632458a4fef0c37ce27f170aa682a338245d38126490ee11c1d22f720622a50
DjB0x6681e146e2d6ae5b881c69fcc7b5a1af9785ac9ef7619fe088a6cc8f890d1d27
DjB0xe3c486caf6b28042d63025c0b62d1adbfc9c28e9067dcd6a5625787ee0673a98
DjB0xfa3e53439c2b9e2c28faac9324a3ee2c2c5436fd66a71fc09198614f0d2d9a57
text/plain;charset=utf-8
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"20000"}h!
DjB0x4b4722f7c19a22e2f30e512505dc7be82033bd56bf6633bbbd5d44bbdcb4f5c1
DjB0xcc8cd860974bc0354bd8d273c0c910da680e09e5009be184215a67dda78efcfc
DjB0x441765f310626b5e3263dbfb7d1aabdc35f1653e70f6f9be769bc92b6cfbc2f0
DjB0xceab30571e930cfc8533b91c23f72ce48b1021ea8ca60466aab354f44295a430
DjB0x5e10c7a93e8eede4db073038195a371dc5d4e0f27757cd878f04dc3350004d69
DjB0x9b5700031960317c5645a7c575f61736e0e14f98bc154f287f6b38ee38dbdb66
DjB0x854cbc65c1906665c3482a45836bc1a804ffd279f5a24d6be6e11ebf1d86fb06
DjB0xaf9cef3d3a3a8300f30559c260a424b0b94a47c0b8f720ac2f550276410c9f15
DjB0x8e46d797f20ab687769d5f3bce9079b973b802316a85839b95c22217dcbf82c7
DjB0x265dce8cd27052f7d25bb9763596413a6668fa876347fff1201604a8b657e4de
DjB0xb38c136fa04122a42073272a9e57a4b9d848ccf2ff9258c5be61fd9acd26998c
DjB0x18bf8c5c755f0291e4863ea67be8811944d3069fb37165f41912a3b4b91e78b2
DjB0x46a37634225d894113268666352fb0403d978c0a4307c3dccff2359efa2b3f9e
DjB0x6fd2dcf0f95be55d44dd2fd526fa953dbadebb1db00089677fb236af6be0afbb
PjLM=:ETH.USDT:0xe64234268066798d8e66Eeafb950fB8835c9E65a:62979100/0/0:-_/t1:0/70
PjLM=:BSC.USDT:0x058D57e043E1C1361087151E3e1417f9046540Ca:81366494/0/0:-_/t1:0/70
Bj@=:tr:TCPTvxuMxixUGNDYJPUMLpBMjQzMf4rA2k:591902500/0/0:-_/t1:0/70
OjLL0xe8e5fa3ed40a8f72cccdac79d0e3baa169dd68d2a9957997b4d68dfeb5af231b=|lifit"
B23ab7029dbb76ff70ded0c88c925175a77cd6158053c93962182944dd8d7b634:0a
DjB0xcc84209621b510f3b7f67f65977dad9f9fc0ed30216ff3447768d6abd1b1719d3
text/plain;charset=utf-8
LS{"p":"brc20-module","op":"withdraw","tick":"ASIC","amt":"1.8","module":"BRC20PROG"}h!
text/plain;charset=utf-8
{"p":"tap","op":"token-send","items":[{"tick":"dmt-nat","amt":"32000000000","address":"bc1qc22aykpkhumhuptsywfvr3904423kq4rn98jcu"}]}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"TSLAU","amt":"1488888"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"TSLAU","amt":"1980000"}h!
{"p":"brc20-prog","op":"c","c":"0xdbb5b6a1d422fca2813cf486e5f986adb09d8337","b":"AVYI+Ff/DGKHm7PdlJxM8G9xv3woHc8k0WPn/x9A/x4D/w3btbah1CL8ooE89Ibl+YatsJ2DN/8fAf8fwP8eB+H/HgHg/x4CgP8eAf8RFs2kVHzAUUESsDyfb0b4CdO3WrhcUs3Lab8LEHhBM0j2x0SBuFS75RJ3TZVxxDur/xATBd9Eig3Onf2d1hgDUOQgtWh2hbuwGIGtJkDnAgpcX2n2d/Q7aTleLp6lZhnTXLH/EASLfgyKMQ+ljntSBV+bDzFzzUu/+7IGnpUvTeWr0FFE2PucOEgdykC02z9eARgyjf8QFim4cQ7vgFRoRslIohN/ccJl5L6KnDJamiYmnBdywfx40VXDxJuKkNSnVSA69c+Z/x+A/xABcq9PAhHrEaHtEIehKrZAVWOpQmfYz9WlrWzSTGRyvF/xPHh3xbDsEBKJUjUQp0DL
/EBjetX/a24Lcda0z+11JEkEjudJGCygp6yyfn1RSxBVlu24lXXt4gegVw1W8B36O8P8fQRMFqC+dkr15ZWT7td/azT0LR+CvmR0FQqfZ8Ujr7033TBJs+1WRWewMqSEhxsuGphNm5Y35FtPRuRjwyI14t1wc/x8"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"Tslau","amt":"999999"}h!
DjB0x99ba3215027cc96b2a641161cff8a889214ce7f91332c98b47d4ed0980ead0c3q0V
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"20000000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"150"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"150"}h!
DjB0xc481db8115d42c2e51c101d7996354ae007a178a6035502d756c38abb51c9472+
text/html;charset=utf-8
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src 'self' data: blob:; connect-src 'self'; manifest-src data:; object-src 'none'; base-uri 'none'; form-action 'none'">
<meta name="referrer" content="no-referrer">
<meta name="theme-color" content="#1A1510">
<meta name="apple-mobile-M
web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="apple-mobile-web-app-title" content="LAMB Verse">
<meta name="application-name" content="LAMB Verse">
 Daily Verse</title>
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='10' fill='%231A1510'/%3E%3Ctext x='32' y='46' text-anchor='middle'M
 font-family='serif' font-size='40' fill='%23C9A84C'%3E%E2%9C%9D%3C/text%3E%3C/svg%3E">
:root{--bg:#1A1510;--gold:#C9A84C;--gold2:#8A7232;--ink:#EDE3CC;--dim:#9C8F76}
*{box-sizing:border-box;margin:0}
html,body{min-height:100%}
body{background:radial-gradient(ellipse at 50% 30%,#2A2117 0%,var(--bg) 70%) fixed;color:var(--ink);
 font-family:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",serif;
 display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:1M
 padding:max(24px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom));text-align:center}
.mark{color:var(--gold);font-size:28px;line-height:1}
.brand{color:var(--gold);letter-spacing:.42em;font-size:13px;margin:10px 0 2px;padding-left:.42em}
.sub{color:var(--dim);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.card{width:100%;max-width:640px;margin:30px 0 26px;min-height:180px;display:flex;flex-direction:column;justify-content:center;transition:opacity .3s ease}
.rule{width:56px;height:1px;background:var(--gold2);margin:0 auto}
#text{font-size:clamp(20px,4.6vw,30px);line-height:1.5;margin:24px 0 20px;font-style:italic}
#ref{color:var(--gold);font-size:15px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
img.logo{width:min(46vw,200px);height:auto;border-radius:14px;display:block}
#note{color:var(--dim);font-size:12px;line-height:1.4;min-height:16px;margin-bottom:18px;padding:0 8px}
.row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;max-wM
.row+.row{margin-top:12px}
button{font:inherit;font-size:14px;letter-spacing:.06em;color:var(--gold);background:transparent;
 border:1px solid var(--gold2);border-radius:999px;padding:10px 18px;cursor:pointer;min-height:44px}
button:hover{background:rgba(201,168,76,.08)}
button.main{background:var(--gold);color:var(--bg);border-color:var(--gold);padding:11px 26px}
button.main:hover{background:#D8B95C}
button:disabled{opacity:.45;cursor:default}
#status{color:var(--dim);font-size:12px;margin-top:18px;minM
-height:16px;letter-spacing:.04em}
.foot{color:var(--dim);font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin-top:24px;opacity:.7}
.hide{display:none!important}
/* picture viewer */
#sheet{position:fixed;inset:0;background:#100C09;display:flex;flex-direction:column;align-items:center;justify-content:center;
 padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));z-index:9}
#pic{max-width:100%;max-height:64vh;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.6)}
on.link{border:0;min-height:36px;margin-top:10px;font-size:12px;color:var(--gold);text-decoration:underline;text-underline-offset:3px;padding:6px 10px}
#menu{position:fixed;inset:0;background:#100C09;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
 padding:max(20px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom));overflow:auto}
#menu h2{color:var(--gold);font-weight:normal;font-size:22px;letter-spacing:.04em}
#menuVerse{max-width:420px;color:var(-M
-dim);font-style:italic;font-size:15px;line-height:1.5;max-height:7.5em;overflow:hidden}
#menu .grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:380px}
#menu .grid button{border-radius:12px}
#help{position:fixed;inset:0;background:#100C09;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
 padding:max(20px,env(safe-area-inset-top)) 22px max(20px,env(safe-area-inset-bottom));overflow:auto}
#help h2{color:var(--gold);font-weight:normal;font-sM
ize:22px;letter-spacing:.04em}
.steps{max-width:420px;text-align:left;display:flex;flex-direction:column;gap:14px;font-size:16px;line-height:1.5}
.steps b{color:var(--gold);font-weight:normal}
.k{display:inline-block;border:1px solid var(--gold2);border-radius:6px;padding:0 6px;color:var(--gold)}
.dim{color:var(--dim);font-size:14px}
button.topic{margin-top:26px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;min-height:38px;padding:8px 18px}
#topics{position:fixed;inset:0;background:#100C09;z-index:8;M
display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:16px;
 padding:max(20px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom));overflow:auto}
#topics h2{color:var(--gold);font-weight:normal;font-size:22px;letter-spacing:.04em}
#topics .grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:400px}
#topics .grid button{border-radius:12px;font-size:14px;padding:10px 8px}
#topics .grid button:first-child{grid-column:1/-1}
#q{width:100%;max-width:M
400px;font:inherit;font-size:16px;color:var(--ink);background:#1F1913;border:1px solid var(--gold2);border-radius:12px;padding:12px 14px;outline:none}
#q:focus{border-color:var(--gold)}
#q::placeholder{color:var(--dim)}
#searchNote{color:var(--dim);font-size:12px;min-height:16px}
#topics #results button:first-child{grid-column:auto}
#topics .grid button.on{background:var(--gold);color:var(--bg);border-color:var(--gold)}
#sheet .hint{color:var(--dim);font-size:12px;margin:12px 0 14px}
<div class="mark">&#10013;</div>
<div class="brand">LAMB</div>
<div class="sub">Let All Men Bow</div>
<button id="topicBtn" class="topic">Any verse <span aria-hidden="true">&#9662;</span></button>
<div class="card" id="card">
  <div class="rule"></div>
  <p id="text">&nbsp;</p>
  <div id="ref">&nbsp;</div>
  <div id="note"></div>
  <div class="rule"></div>
  <button class="main" id="next">Another verse</button>
  <button id="share">Share</button>
  <button id="copy">Copy</button>
  <button id="img">Picture</button>
<div id="status"></div>
<button class="link" id="getApp">Add to your phone</button>
<div id="menu" class="hide">
  <h2>Share this verse</h2>
  <p id="menuVerse"></p>
  <div class="grid">
    <button data-to="wa">WhatsApp</button>
    <button data-to="sms">Text message</button>
    <button data-to="tg">Telegram</button>
    <button data-to="mail">Email</button>
    <button data-to="x">X</button>
    <button data-to="fb">Facebook</button>
   <button data-to="copy">Copy text</button>
    <button data-to="pic">Picture</button>
  <button id="menuClose">Close</button>
<div id="topics" class="hide">
  <h2>What kind of verse?</h2>
  <input id="q" type="search" placeholder="Search 3,000 more topics" autocomplete="off" aria-label="Search topics">
  <div class="grid" id="topicGrid"></div>
  <div class="grid hide" id="results"></div>
  <div id="searchNote"></div>
  <button id="topicsClose">Close</button>
<div id="help" class="hide">
 <div class="mark">&#10013;</div>
  <h2>Put LAMB Verse on your phone</h2>
  <button class="main hide" id="install">Install now</button>
  <div class="steps">
    <p><b>iPhone (Safari)</b><br>Tap the Share button <span class="k">&#x2191;</span> at the bottom, then <b>Add to Home Screen</b>, then <b>Add</b>.</p>
    <p><b>Android (Chrome)</b><br>Tap the menu <span class="k">&#x22EE;</span> at the top right, then <b>Add to Home screen</b> or <b>Install app</b>.</p>
    <p class="dim">The LAMB icon appears next to yourM
 other apps and opens a new verse every time.</p>
  <button id="helpClose">Close</button>
<div id="sheet" class="hide">
  <img id="pic" alt="Framed verse">
  <div class="hint">Press and hold the picture to save it, or use the buttons.</div>
    <button class="main hide" id="picShare">Send picture</button>
    <button id="picSave">Save</button>
    <button id="picClose">Close</button>
/* ============================================================
   Shows a random Bible verse each time it opens, and lets people
   send it by WhatsApp or text, copy it, or save it as a framed picture.
   It holds no scripture itself: it reads the four LAMB packs that are
   inscribed as children of the LAMB Bible engine.
   ONE THING TO SET BEFORE INSCRIBING:
   Paste the LAMB Bible engine's inscription ID between the quotes.
   (The long code ending in i0, not the inscription number.)
============================================================ */
D = "b4d225aa5aa4485b8817321894fa2d3c00e8347afa2c9296dd703bf918e72095i0";
/* Optional: point straight at the four packs instead of finding them
   through the engine. Leave empty normally. */
/* Optional: the Nave's Topical Bible file (7-lamb-topics-naves.json).
   Paste its inscription ID here, OR inscribe it as a child of this app
   (Provenance = this app's ID) and leave this empty. */
/* Optional: the inscribed animated LAMB logo (LAMB Logo.svg). When set,
s the small drawn cross at the top of the app. */
var LOGO_ID = "7a7b2355a522e6a0fcacba1c0b2be3861a659f8ff0bbbcc4761c0ecdb47c276di0";
var TOPICS_SHA = "a08ebaa048043462ab82c1a483cbdb582267b10503c7da1eac4ccbae1f48136a";
/* The four packs in Bible order. The SHA-256 fingerprints prove each
   pack is the real, unaltered text before a verse is shown. */
  { name: "The Law & Early History", verses: 8023, sha: "56105cd0fe1a84800f442b8127a594dfade6f5f3766b351484d57c99ce4179d4" },
  { name: "Kingdoms & PsalM
ms",       verses: 8378, sha: "5d4d1c6515d6feae1092347d1ad756d4b12324ba2149383b14f60a6cb6d8651e" },
  { name: "Wisdom & Prophets",       verses: 6744, sha: "7c34f01a976e0765109bf4842fddae77029a4e0b94e0b6bd194f3531f962e174" },
  { name: "New Testament",           verses: 7957, sha: "bbaebe93b41f2f08aa50c5b4b01e6cb18bab15a3e8992056fe8c95b6f376124f" }
/* Used only before ENGINE_ID is set, so the app can be tried out. */
var PREVIEW = [["John", "3", "16", "For God so loved the world, that he gaveM
 his only begotten Son, that whosoever believeth in him should not perish, but have everlasting life."], ["Psalms", "23", "1", "The LORD is my shepherd; I shall not want."], ["Philippians", "4", "13", "I can do all things through Christ which strengtheneth me."], ["Proverbs", "3", "5", "Trust in the LORD with all thine heart; and lean not unto thine own understanding."], ["Isaiah", "40", "31", "But they that wait upon the LORD shall renew their strength; they shall mount up with wings as eagles; they shall run, andM
 not be weary; and they shall walk, and not faint."], ["Romans", "8", "28", "And we know that all things work together for good to them that love God, to them who are the called according to his purpose."], ["Jeremiah", "29", "11", "For I know the thoughts that I think toward you, saith the LORD, thoughts of peace, and not of evil, to give you an expected end."], ["Matthew", "11", "28", "Come unto me, all ye that labour and are heavy laden, and I will give you rest."], ["Joshua", "1", "9", "Have not I commanded theM
e? Be strong and of a good courage; be not afraid, neither be thou dismayed: for the LORD thy God is with thee whithersoever thou goest."], ["Psalms", "46", "10", "Be still, and know that I am God: I will be exalted among the heathen, I will be exalted in the earth."], ["1 John", "4", "8", "He that loveth not knoweth not God; for God is love."], ["Hebrews", "11", "1", "Now faith is the substance of things hoped for, the evidence of things not seen."]];
/* Topics: hand-picked KJV references. "Book 3:5-6" means versM
   Add, remove or rename topics here; the buttons are built from this list. */
var TOPICS = [["Inspiration", "Philippians 4:13;Isaiah 40:31;Joshua 1:9;Jeremiah 29:11;Romans 8:28;Proverbs 3:5-6;Psalms 37:4;Galatians 6:9;Colossians 3:23;2 Corinthians 5:17;Isaiah 43:19;Philippians 1:6;Psalms 118:24;Ephesians 3:20;Matthew 19:26;Mark 9:23;Lamentations 3:22-23;1 Corinthians 15:58;Hebrews 12:1;Psalms 16:11;Micah 6:8;Zephaniah 3:17;Isaiah 60:1;Psalms 27:14;Isaiah 40:28-29;Romans 12:2;2 Corinthians 4:16-18;PhilipM
pians 3:13-14;Hebrews 12:2;James 1:12;1 Corinthians 2:9;Psalms 138:8;Proverbs 16:3;Psalms 90:17;Isaiah 54:17;Deuteronomy 28:13;Romans 8:31;1 John 4:4;Matthew 5:14-16;Psalms 126:3;Isaiah 58:11;Jeremiah 32:17;Psalms 20:4;Ephesians 2:10;2 Timothy 1:9;Romans 15:4;Hebrews 10:35-36;Psalms 31:24;Ecclesiastes 9:10;1 Timothy 4:12;Habakkuk 2:2-3;Psalms 84:11;Isaiah 26:4;Joel 2:25-26;Philippians 4:19;Matthew 6:33;2 Chronicles 15:7;Psalms 57:2;Isaiah 49:15-16;Romans 4:18"], ["Strength", "Isaiah 41:10;Psalms 46:1;2 Corinthians M
12:9;Nehemiah 8:10;Psalms 28:7;Psalms 73:26;Ephesians 6:10;Isaiah 40:29;Exodus 15:2;Psalms 18:2;Habakkuk 3:19;2 Timothy 1:7;Psalms 27:1;Deuteronomy 31:6;1 Chronicles 16:11;Psalms 121:1-2;Isaiah 12:2;2 Samuel 22:33;Psalms 29:11;Isaiah 40:31;Philippians 4:13;Psalms 18:32;Psalms 59:16-17;Psalms 62:6-7;Psalms 84:5;Psalms 138:3;Isaiah 26:4;Isaiah 33:2;Isaiah 41:13;Zechariah 4:6;1 Peter 5:10;Colossians 1:11;Ephesians 3:16;2 Thessalonians 3:3;Psalms 31:24;Psalms 119:28;Joshua 1:9;Deuteronomy 33:25;Psalms 27:14;1 Samuel 30M
:6;Micah 3:8;Psalms 22:19;Psalms 105:4;Isaiah 30:15;Psalms 91:1-2;Proverbs 18:10;Psalms 144:1-2;2 Chronicles 16:9;Judges 6:12;Daniel 10:19;1 Corinthians 10:13;Romans 8:37;Philippians 4:12-13;2 Corinthians 4:7-9;Psalms 37:39"], ["Hope", "Romans 15:13;Jeremiah 29:11;Psalms 42:11;Lamentations 3:24-26;Hebrews 6:19;Romans 5:3-5;Romans 8:24-25;Psalms 39:7;Psalms 130:5;Proverbs 23:18;Isaiah 40:31;1 Peter 1:3;Hebrews 10:23;Psalms 33:22;Psalms 71:14;Romans 12:12;Psalms 62:5;Titus 2:13;Micah 7:7;Psalms 31:24;Psalms 42:5;PsalM
ms 146:5;Psalms 147:11;Psalms 119:114;Psalms 119:81;Psalms 9:18;Psalms 25:5;Psalms 43:5;Psalms 65:5;Proverbs 24:14;Isaiah 49:23;Jeremiah 17:7;Lamentations 3:21-23;Zechariah 9:12;Romans 8:28;Romans 4:18;Romans 15:4;1 Corinthians 13:13;2 Corinthians 4:16-18;Colossians 1:27;1 Thessalonians 5:8;2 Thessalonians 2:16-17;1 Timothy 4:10;Titus 1:2;Hebrews 11:1;1 Peter 1:13;1 Peter 3:15;1 John 3:2-3;Revelation 21:4-5;Job 11:18;Psalms 130:7;Micah 7:8;Romans 5:5"], ["Peace", "John 14:27;Philippians 4:6-7;Isaiah 26:3;Matthew 11M
:28-30;1 Peter 5:7;Psalms 4:8;John 16:33;Colossians 3:15;Psalms 29:11;Romans 5:1;Psalms 55:22;Matthew 6:34;Isaiah 32:17;Numbers 6:24-26;2 Thessalonians 3:16;Psalms 46:10;Psalms 119:165;Romans 8:6;Proverbs 3:24;Psalms 34:14;Psalms 37:11;Psalms 85:8;Psalms 122:6-8;Psalms 23:1-3;Proverbs 16:7;Proverbs 14:30;Isaiah 9:6;Isaiah 26:12;Isaiah 54:10;Isaiah 55:12;Isaiah 57:2;Matthew 5:9;Mark 4:39;Luke 2:14;John 20:19;John 20:21;Romans 12:18;Romans 14:19;Romans 15:13;1 Corinthians 14:33;2 Corinthians 13:11;Galatians 5:22-23;EM
phesians 2:14;Philippians 4:9;Hebrews 12:14;Hebrews 13:20-21;James 3:18;1 Peter 3:11;Psalms 131:2;Psalms 62:1;Isaiah 30:15;Psalms 94:19;Job 22:21;Psalms 116:7"], ["Love", "1 Corinthians 13:4-7;John 3:16;1 John 4:8;1 John 4:19;Romans 5:8;Romans 8:38-39;John 15:13;1 Corinthians 13:13;1 John 4:7;John 13:34-35;1 Peter 4:8;Ephesians 3:17-19;Zephaniah 3:17;Jeremiah 31:3;Psalms 136:26;Colossians 3:14;1 John 3:1;1 John 3:18;Song of Solomon 8:7;Romans 13:10;Mark 12:30-31;John 15:9;John 15:12;John 3:35;John 14:21;John 17:26;M
Romans 12:9-10;1 Corinthians 16:14;Galatians 5:13-14;Galatians 5:22;Ephesians 4:2;Ephesians 5:2;Ephesians 5:25;Philippians 2:2;1 Thessalonians 4:9;1 Timothy 1:5;Hebrews 13:1;1 John 4:9-10;1 John 4:11-12;1 John 4:16;1 John 4:18;1 John 5:3;Deuteronomy 7:9;Psalms 63:3;Psalms 86:15;Psalms 103:11;Proverbs 10:12;Proverbs 17:17;Song of Solomon 2:4;Hosea 11:4;Matthew 5:44;Matthew 22:37-39;Luke 6:31;Lamentations 3:22;Isaiah 54:10;Romans 8:35"], ["Faith", "Hebrews 11:1;Hebrews 11:6;Romans 10:17;Ephesians 2:8;Mark 11:22-24;MaM
tthew 17:20;2 Corinthians 5:7;Galatians 2:20;James 2:17;Romans 1:17;Proverbs 3:5-6;1 Peter 1:8-9;James 1:6;Mark 9:23;Luke 1:37;1 John 5:4;Romans 4:20-21;Matthew 21:22;2 Timothy 4:7;Habakkuk 2:4;Romans 5:1;Romans 10:9;Galatians 3:11;Galatians 3:26;Ephesians 3:12;Ephesians 6:16;Philippians 1:6;Colossians 2:6-7;1 Timothy 6:12;2 Timothy 1:12;Hebrews 4:16;Hebrews 10:22-23;Hebrews 11:3;Hebrews 12:2;James 1:2-3;James 5:15;1 Peter 1:6-7;1 Peter 5:9;1 John 5:14;Jude 1:20-21;Matthew 9:22;Matthew 9:29;Matthew 14:31;Matthew 8:M
13;Mark 5:36;Mark 10:52;Luke 7:50;Luke 17:5-6;John 11:40;John 20:29;Acts 16:31;Romans 4:3;Psalms 56:3-4;Isaiah 26:3;2 Corinthians 4:18;1 Corinthians 16:13"], ["Salvation", "John 3:16;Romans 10:9-10;Ephesians 2:8-9;Acts 4:12;John 14:6;Romans 6:23;Romans 5:8;John 1:12;Acts 16:31;Titus 3:5;Romans 10:13;2 Corinthians 5:17;John 5:24;1 John 5:11-12;Revelation 3:20;Isaiah 1:18;John 3:3;Acts 2:38;Romans 3:23-24;1 Timothy 2:5;Psalms 62:1-2;Isaiah 12:2;Luke 19:10;2 Corinthians 6:2;Psalms 27:1;Psalms 62:7;Psalms 51:12;Psalms M
68:19-20;Psalms 118:14;Isaiah 45:22;Isaiah 49:6;Isaiah 53:5;Isaiah 55:1;Joel 2:32;Jonah 2:9;Matthew 1:21;Matthew 11:28;Mark 16:16;Luke 2:11;John 3:17;John 3:36;John 6:37;John 6:47;John 10:9;John 10:28;John 11:25;Acts 13:38-39;Romans 1:16;Romans 5:1;Romans 8:1;Romans 5:9-10;Galatians 2:16;Ephesians 1:7;Ephesians 2:4-5;Colossians 1:13-14;1 Thessalonians 5:9;2 Timothy 1:9;Titus 2:11;Hebrews 7:25;1 Peter 1:18-19;1 Peter 2:24;1 John 1:7;Revelation 7:10;Revelation 22:17"], ["Forgiveness", "1 John 1:9;Psalms 103:12;IsaiahM
 1:18;Micah 7:18-19;Acts 3:19;Psalms 32:1;Psalms 51:10;Isaiah 43:25;Hebrews 8:12;Psalms 86:5;Proverbs 28:13;Daniel 9:9;Ephesians 1:7;2 Chronicles 7:14;Psalms 130:3-4;Psalms 51:1-2;Isaiah 55:7;Acts 10:43;Colossians 1:13-14;Psalms 32:5;Jeremiah 31:34;Psalms 25:7;Psalms 25:11;Psalms 32:2;Psalms 51:7;Psalms 51:9;Psalms 65:3;Psalms 79:9;Psalms 85:2;Psalms 99:8;Psalms 103:2-3;Psalms 103:8-10;Isaiah 38:17;Isaiah 44:22;Isaiah 55:6;Jeremiah 33:8;Ezekiel 18:21-22;Ezekiel 36:25;Hosea 14:4;Matthew 9:2;Matthew 26:28;Mark 2:5;LuM
ke 1:77;Luke 7:47-48;Luke 15:7;Luke 15:20;Luke 24:47;Acts 2:38;Acts 13:38;Acts 26:18;Romans 4:7-8;Romans 8:1;2 Corinthians 5:19;Colossians 2:13-14;Hebrews 9:22;Hebrews 10:17;1 John 2:1-2;1 John 2:12;Psalms 19:12"], ["Forgiving Others", "Ephesians 4:32;Colossians 3:13;Matthew 6:14-15;Luke 6:37;Mark 11:25;Matthew 18:21-22;Luke 23:34;Matthew 5:44;Luke 17:3-4;1 Peter 3:9;Proverbs 19:11;Romans 12:17-18;Matthew 5:23-24;Luke 6:27-28;Proverbs 17:9;Proverbs 10:12;Colossians 3:12;Romans 12:19-21;1 Peter 4:8;Matthew 6:12;MattM
hew 18:35;Matthew 5:7;Matthew 5:38-39;Matthew 7:1-2;Matthew 7:12;Luke 11:4;Luke 6:35-36;Luke 15:20;Romans 12:14;Romans 12:21;Romans 15:7;1 Corinthians 13:4-5;1 Corinthians 4:12-13;2 Corinthians 2:10;Galatians 6:1;Ephesians 4:2-3;Ephesians 4:26;Ephesians 4:31;Philippians 2:3;1 Thessalonians 5:15;Hebrews 12:14-15;James 2:13;James 5:9;1 Peter 2:23;1 Peter 3:8;1 John 2:9-10;1 John 4:20-21;Proverbs 20:22;Proverbs 24:17;Proverbs 24:29;Proverbs 25:21-22;Proverbs 15:1;Proverbs 16:32;Genesis 50:19-21;Acts 7:60;Mark 11:26;ExM
odus 23:4-5;Leviticus 19:18"], ["Comfort in Grief", "Matthew 5:4;Psalms 34:18;Psalms 147:3;Revelation 21:4;2 Corinthians 1:3-4;Psalms 23:4;John 14:1-3;Isaiah 41:10;Psalms 46:1;Deuteronomy 31:8;John 11:25-26;1 Thessalonians 4:13-14;Psalms 30:5;Isaiah 61:1-3;Romans 8:18;Psalms 73:26;Isaiah 43:2;Psalms 116:15;Ecclesiastes 3:1-4;Psalms 9:9;Nahum 1:7;Lamentations 3:31-33;Psalms 23:1-3;Psalms 30:11;Psalms 31:7;Psalms 34:19;Psalms 42:5;Psalms 55:22;Psalms 56:8;Psalms 61:1-2;Psalms 62:8;Psalms 71:20-21;Psalms 94:19;Psalms M
119:50;Psalms 119:76;Psalms 126:5-6;Psalms 139:7-10;Isaiah 25:8;Isaiah 40:1;Isaiah 49:13;Isaiah 51:11-12;Isaiah 66:13;Isaiah 53:4;Jeremiah 31:13;Lamentations 3:22-23;Matthew 11:28-29;John 14:18;John 14:27;John 16:20;John 16:33;Romans 8:28;Romans 8:38-39;Romans 12:15;2 Corinthians 4:16-17;2 Corinthians 4:8-9;Philippians 4:7;1 Peter 5:7;Revelation 7:17;Psalms 46:1-2;Hebrews 4:15-16"], ["Loneliness", "Deuteronomy 31:6;Psalms 68:6;Psalms 25:16;Hebrews 13:5;Matthew 28:20;Isaiah 41:10;Psalms 27:10;John 14:18;Psalms 139:7M
-10;Isaiah 43:2;Psalms 23:4;Romans 8:38-39;Joshua 1:5;Psalms 34:18;Genesis 28:15;Isaiah 49:15-16;Zephaniah 3:17;John 16:32;Psalms 145:18;James 4:8;2 Timothy 4:17;Isaiah 54:10;Psalms 46:1;Psalms 73:23-24;Psalms 9:10;Psalms 16:8;Psalms 91:15;Psalms 102:7;Psalms 142:4-5;Psalms 38:9;Psalms 40:17;Psalms 62:8;Psalms 94:14;Psalms 119:151;Psalms 139:1-3;Psalms 139:17-18;1 Samuel 12:22;Deuteronomy 31:8;Isaiah 41:13;Isaiah 42:16;Isaiah 58:9;Isaiah 62:4;Jeremiah 31:3;Hosea 2:14;Matthew 11:28;John 15:15;John 14:23;John 10:14;RM
omans 8:35;2 Corinthians 6:18;Galatians 4:6-7;Ephesians 2:19;Ephesians 3:17-19;1 John 3:1;Revelation 3:20;Lamentations 3:25;Psalms 37:28;Psalms 23:6;Psalms 145:14;Genesis 2:18;Ecclesiastes 4:9-10"], ["Sadness", "Psalms 34:18;Psalms 42:11;Psalms 30:5;Matthew 5:4;John 16:22;Psalms 147:3;Revelation 21:4;Psalms 143:7-8;Isaiah 61:3;Psalms 126:5;Psalms 40:1-2;2 Corinthians 4:8-9;Romans 8:18;Psalms 31:9;1 Peter 5:7;Psalms 55:22;Nehemiah 8:10;Psalms 94:19;Psalms 3:3;Isaiah 35:10;John 14:1;Philippians 4:6-7;Psalms 6:9;PsalmM
s 13:5-6;Psalms 18:6;Psalms 22:24;Psalms 30:11-12;Psalms 31:7;Psalms 34:17;Psalms 40:3;Psalms 42:5;Psalms 43:5;Psalms 56:8;Psalms 61:2;Psalms 71:20;Psalms 73:26;Psalms 116:1-2;Psalms 119:28;Psalms 119:50;Psalms 138:7;Psalms 142:1-3;Proverbs 12:25;Proverbs 15:13;Proverbs 17:22;Isaiah 41:10;Isaiah 43:2;Isaiah 51:11;Isaiah 53:3-4;Isaiah 57:15;Jeremiah 31:13;Lamentations 3:31-33;Matthew 11:28-30;John 11:35;John 14:27;John 16:33;Romans 8:28;Romans 12:12;2 Corinthians 1:3-4;2 Corinthians 7:6;Hebrews 4:15-16;James 1:2-4;1M
 Peter 1:6"], ["Death & Eternal Life", "John 11:25-26;John 14:2-3;1 Corinthians 15:54-57;2 Corinthians 5:8;Philippians 1:21;Revelation 21:4;Romans 6:23;Psalms 23:6;1 Thessalonians 4:16-17;John 10:27-28;Romans 14:8;2 Timothy 4:7-8;Psalms 116:15;John 6:40;1 John 5:13;Hebrews 9:27-28;1 Corinthians 2:9;Revelation 14:13;Isaiah 25:8;2 Corinthians 4:17-18;John 3:16;John 3:36;John 4:14;John 6:47;John 6:51;John 8:51;John 11:25;John 14:19;John 17:3;Romans 5:21;Romans 6:4-5;Romans 8:11;Romans 8:38-39;1 Corinthians 15:20-22;1 M
Corinthians 15:42-44;1 Corinthians 15:51-53;2 Corinthians 5:1;Philippians 3:20-21;Colossians 3:4;1 Thessalonians 4:13-14;1 Thessalonians 5:9-10;2 Timothy 1:10;Titus 3:7;Hebrews 2:14-15;1 Peter 1:3-4;1 John 2:17;1 John 2:25;1 John 5:11;Revelation 1:18;Revelation 2:10;Revelation 22:5;Revelation 7:16-17;Psalms 16:10-11;Psalms 48:14;Psalms 49:15;Psalms 73:24;Isaiah 26:19;Isaiah 57:1-2;Ecclesiastes 12:7;Job 19:25-26"], ["Heart", "Proverbs 4:23;Psalms 51:10;Ezekiel 36:26;Psalms 139:23-24;Matthew 5:8;Proverbs 3:5-6;1 SamuM
el 16:7;Jeremiah 17:9-10;Psalms 37:4;Matthew 6:21;Psalms 19:14;Psalms 73:26;Proverbs 27:19;Matthew 22:37;Luke 6:45;Psalms 119:11;Psalms 9:1;Jeremiah 29:13;Deuteronomy 6:5;Proverbs 16:9;2 Corinthians 4:6;Colossians 3:15;Proverbs 3:1-3;Proverbs 15:13;Proverbs 15:15;Proverbs 14:30;Proverbs 23:26;Proverbs 21:2;Proverbs 20:5;Psalms 24:3-4;Psalms 26:2;Psalms 27:8;Psalms 28:7;Psalms 34:18;Psalms 86:11;Psalms 90:12;Psalms 112:7;Psalms 119:2;Psalms 119:10;Psalms 119:36;Psalms 147:3;Deuteronomy 4:29;Deuteronomy 30:6;1 SamuelM
 12:24;1 Kings 8:61;1 Chronicles 28:9;Joel 2:13;Ezekiel 11:19;Jeremiah 24:7;Jeremiah 31:33;Matthew 11:29;Mark 12:30;Luke 8:15;Luke 10:27;Romans 10:10;Ephesians 3:17;Ephesians 6:6;Philippians 4:7;Hebrews 10:22;1 Peter 3:15;1 Peter 1:22;John 14:1"], ["Wisdom & Guidance", "James 1:5;Proverbs 3:5-6;Psalms 119:105;Proverbs 16:9;Psalms 32:8;Proverbs 1:7;Isaiah 30:21;Proverbs 2:6;Proverbs 4:7;Psalms 25:4-5;Proverbs 9:10;Colossians 3:16;Proverbs 19:21;Jeremiah 33:3;James 3:17;Proverbs 11:14;Psalms 37:23;Proverbs 15:22;EcclM
esiastes 3:1;Psalms 143:8;Psalms 25:9;Psalms 23:3;Psalms 48:14;Psalms 73:24;Psalms 111:10;Psalms 119:130;Psalms 119:133;Psalms 139:9-10;Proverbs 1:5;Proverbs 2:10-11;Proverbs 3:13;Proverbs 8:11;Proverbs 12:15;Proverbs 13:20;Proverbs 16:16;Proverbs 16:3;Proverbs 18:15;Proverbs 20:24;Proverbs 24:3-4;Proverbs 27:17;Isaiah 42:16;Isaiah 48:17;Isaiah 58:11;Jeremiah 10:23;Jeremiah 6:16;John 16:13;Romans 12:2;1 Corinthians 2:10;Ephesians 5:15-17;Colossians 1:9-10;2 Timothy 3:16-17;James 1:19;James 3:13;Micah 6:8;EcclesiastM
es 7:12;Ecclesiastes 12:13;Job 28:28;Psalms 37:5;Proverbs 11:2"], ["Praise & Thanks", "Psalms 100:4-5;1 Thessalonians 5:16-18;Psalms 107:1;Psalms 150:6;Psalms 103:1-2;Colossians 3:17;Psalms 118:24;Psalms 9:1;Psalms 34:1;Hebrews 13:15;Psalms 95:1-2;Philippians 4:4;Psalms 136:1;James 1:17;Psalms 28:7;Ephesians 5:19-20;Psalms 145:3;Revelation 4:11;Psalms 147:1;2 Corinthians 9:15;Psalms 7:17;Psalms 18:3;Psalms 30:4;Psalms 30:12;Psalms 33:1;Psalms 40:3;Psalms 47:1;Psalms 63:3-4;Psalms 66:1-2;Psalms 69:30;Psalms 92:1-2;PM
salms 96:1-4;Psalms 98:4;Psalms 100:1-3;Psalms 103:20-22;Psalms 104:33;Psalms 105:1-2;Psalms 106:1;Psalms 113:3;Psalms 117:1-2;Psalms 146:1-2;Psalms 148:1-3;Psalms 149:1;1 Chronicles 16:34;1 Chronicles 29:11;2 Chronicles 20:21;Isaiah 12:4-5;Isaiah 25:1;Daniel 2:20;Luke 1:46-47;Romans 11:36;1 Corinthians 15:57;2 Corinthians 2:14;Philippians 4:6;Colossians 2:7;Colossians 4:2;Hebrews 12:28;Revelation 5:12-13;Revelation 7:12;Jude 1:24-25"], ["Courage & Fear", "Joshua 1:9;Isaiah 41:10;Deuteronomy 31:6;2 Timothy 1:7;PsalM
ms 27:1;Psalms 56:3;Psalms 23:4;John 14:27;Psalms 34:4;Isaiah 43:1;Psalms 118:6;Hebrews 13:6;1 John 4:18;Matthew 10:31;Psalms 91:1-2;Psalms 31:24;1 Corinthians 16:13;Mark 5:36;Isaiah 35:4;Proverbs 28:1;Deuteronomy 20:3-4;Deuteronomy 3:22;Joshua 10:25;Joshua 1:6-7;1 Chronicles 28:20;2 Chronicles 20:15;2 Chronicles 32:7-8;Psalms 3:6;Psalms 4:8;Psalms 27:3;Psalms 46:1-3;Psalms 112:7;Psalms 118:6-7;Psalms 121:7-8;Proverbs 3:25-26;Proverbs 29:25;Isaiah 12:2;Isaiah 41:13;Isaiah 43:5;Isaiah 51:12;Isaiah 54:4;Jeremiah 1:8;M
Jeremiah 17:7-8;Lamentations 3:57;Matthew 14:27;Matthew 6:34;Matthew 28:10;Luke 12:32;John 16:33;Acts 4:29;Acts 18:9-10;Romans 8:15;Romans 8:31;Philippians 1:14;Philippians 1:27-28;Ephesians 6:10-11;Hebrews 4:16;1 Peter 3:14;Revelation 1:17-18"], ["Healing", "Jeremiah 17:14;Psalms 147:3;Isaiah 53:5;James 5:15-16;Exodus 15:26;Psalms 103:2-3;Jeremiah 30:17;3 John 1:2;Proverbs 17:22;Psalms 41:3;Malachi 4:2;Matthew 11:28;Psalms 30:2;Proverbs 4:20-22;1 Peter 2:24;Mark 5:34;Isaiah 41:10;Psalms 107:20;Matthew 9:35;RevelatM
ion 21:4;Psalms 6:2;Psalms 30:2-3;Psalms 34:19;Psalms 41:4;Psalms 103:3;Psalms 118:17;Psalms 145:14;Isaiah 38:16;Isaiah 40:29;Isaiah 57:18-19;Isaiah 58:8;Jeremiah 33:6;Hosea 6:1;Matthew 4:23;Matthew 8:16-17;Matthew 10:1;Matthew 14:14;Matthew 15:30;Mark 1:34;Mark 6:56;Mark 10:52;Mark 16:18;Luke 4:18;Luke 4:40;Luke 6:19;Luke 8:48;Luke 9:11;Luke 17:15-16;John 5:8-9;Acts 3:16;Acts 4:30;Acts 10:38;Romans 8:11;2 Corinthians 12:9;Philippians 4:19;Exodus 23:25;Deuteronomy 7:15;Proverbs 3:7-8;Proverbs 16:24"]];
ooks in order, and where each pack starts, so a reference can
   be found in the right pack without loading the others. */
var BOOKS = ["Genesis", "Exodus", "Leviticus", "Numbers", "Deuteronomy", "Joshua", "Judges", "Ruth", "1 Samuel", "2 Samuel", "1 Kings", "2 Kings", "1 Chronicles", "2 Chronicles", "Ezra", "Nehemiah", "Esther", "Job", "Psalms", "Proverbs", "Ecclesiastes", "Song of Solomon", "Isaiah", "Jeremiah", "Lamentations", "Ezekiel", "Daniel", "Hosea", "Joel", "Amos", "Obadiah", "Jonah", "Micah", "Nahum", "HM
abakkuk", "Zephaniah", "Haggai", "Zechariah", "Malachi", "Matthew", "Mark", "Luke", "John", "Acts", "Romans", "1 Corinthians", "2 Corinthians", "Galatians", "Ephesians", "Philippians", "Colossians", "1 Thessalonians", "2 Thessalonians", "1 Timothy", "2 Timothy", "Titus", "Philemon", "Hebrews", "James", "1 Peter", "2 Peter", "1 John", "2 John", "3 John", "Jude", "Revelation"];
var PACK_START = [0, 9, 19, 39]; // Genesis, 2 Samuel, Proverbs, Matthew
var ID_RE = /^[0-9a-f]{64}i\d+$/;
var $ = function (id) { return doM
cument.getElementById(id); };
var loaded = {}, childIds = null, tried = {};
var current = null, busy = false, preview = false, lastPreview = -1;
var picBlob = null, picUrl = null;
function setStatus(s, ms) {
  $("status").textContent = s || "";
  if (ms) setTimeout(function () { if ($("status").textContent === s) $("status").textContent = ""; }, ms);
/* ---------- finding and reading the packs ---------- */
function getChildIds() {
  if (childIds) return Promise.resolve(childIds);
  var manual = PACK_IDS.filterM
(function (x) { return ID_RE.test(x); });
  if (manual.length) return Promise.resolve(childIds = manual);
  if (!ID_RE.test(ENGINE_ID)) return Promise.reject(new Error("noengine"));
  return fetch("/r/children/" + ENGINE_ID, { credentials: "omit" })
    .then(function (r) { if (!r.ok) throw new Error("HTTP " + r.status); return r.json(); })
    .then(function (d) {
      childIds = ((d && d.ids) || []).filter(function (x) { return ID_RE.test(x); });
      if (!childIds.length) throw new Error("No packs found yet");M
      return childIds;
/* Works whether the pack was inscribed with Brotli (the server unpacks
   it) or as a pre-gzipped file (unpacked here). */
function readBytes(res) {
  return res.arrayBuffer().then(function (buf) {
    var b = new Uint8Array(buf);
    if (b[0] === 0x1f && b[1] === 0x8b && typeof DecompressionStream !== "undefined") {
      return new Response(new Blob([b]).stream().pipeThrough(new DecompressionStream("gzip")))
        .arrayBuffer().then(function (o) { return new Uint8Array(o); }M
function sha256Hex(bytes) {
  return crypto.subtle.digest("SHA-256", bytes).then(function (h) {
    return Array.prototype.map.call(new Uint8Array(h), function (x) { return ("0" + x.toString(16)).slice(-2); }).join("");
function flatten(data) {
  (data.books || []).forEach(function (b) {
    (b.chapters || []).forEach(function (c) {
      (c.verses || []).forEach(function (v) {
        out.push({ book: b.book, chapter: c.chapter, verse: v.verse, text: v.text M
function fetchPack(id) {
  return fetch("/content/" + id, { credentials: "omit" })
    .then(function (r) { if (!r.ok) throw new Error("HTTP " + r.status); return readBytes(r); })
    .then(function (bytes) {
      return sha256Hex(bytes).then(function (hex) {
        if (!PACKS.some(function (p) { return p.sha === hex; })) return null; // not a LAMB pack
        if (!loaded[hex]) loaded[hex] = flatten(JSON.parse(new TextDecoder().decode(bytes)));
    .catch(function () { return null; });
/* Children normally come back in the order they were inscribed, so look
   in the expected slot first, then the rest. */
function ensurePack(slot, exact) {
  var want = PACKS[slot].sha;
  if (loaded[want]) return Promise.resolve(want);
  return getChildIds().then(function (ids) {
    if (ids[slot]) order.push(ids[slot]);
    ids.forEach(function (x) { if (order.indexOf(x) < 0) order.push(x); });
    order = order.filM
ter(function (x) { return !tried[x]; });
    function next() {
      if (loaded[want]) return want;
      if (!order.length) {
        var any = Object.keys(loaded)[0];
        if (any && !exact) return any;
        throw new Error("Could not load scripture");
      setStatus("Reading " + PACKS[slot].name + "
      return fetchPack(order.shift()).then(next);
/* Every one of the 31,102 verses has the same chance. */
function pickSlot() {
  var n = Math.floor(Math.randoM
  for (var i = 0; i < PACKS.length; i++) { if (n < PACKS[i].verses) return i; n -= PACKS[i].verses; }
  return PACKS.length - 1;
function refOf(v) { return v.book + " " + v.chapter + ":" + v.verse; }
  var card = $("card"), first = !current;
  card.classList.add("fade");
  setTimeout(function () {
    $("text").textContent = "
    $("ref").textContent = refOf(v);
    $("note").textContent = v.note ? "Nave\u2019s \u00B7 " + v.note.split(" \u20M
3A ").map(titleCase).join(" \u203A ") : "";
    card.classList.remove("fade");
  }, first ? 0 : 280);
function previewVerse() {
  do { i = Math.floor(Math.random() * PREVIEW.length); } while (i === lastPreview && PREVIEW.length > 1);
  var p = PREVIEW[i];
  show({ book: p[0], chapter: p[1], verse: p[2], text: p[3] });
/* ---------- topics ---------- */
/* topic: -1 = any verse, 0+ = one of the hand-picked TOPICS,
   -2 = a subject from the Nave's Topical Bible file (see below). */
var topic = -1, lastRef = "", naves = null, navesData = null;
try { var saved = localStorage.getItem("lamb-verse-topic") || ""; } catch (e) { saved = ""; }
TOPICS.forEach(function (t, i) { if (t[0] === saved) topic = i; });
function titleCase(s) {
  var small = /^(of|the|and|to|in|for|a|an|by|with|on|at|or|as|from|into|upon|unto)$/;
  return s.toLowerCase().replace(/[a-z\u2019']+/g, function (w, at) {
    return at > 0 && small.test(w) ? w : w.charAt(0).toUpperCase() + w.slice(1);
function topicLabel() {
 if (topic === -2 && naves) return titleCase(naves.name) + (naves.label ? "
 " + titleCase(naves.label) : "");
  return topic < 0 ? "Any verse" : TOPICS[topic][0];
function remember(v) { try { localStorage.setItem("lamb-verse-topic", v); } catch (e) {} }
function chooseTopic(i) {
  topic = i; naves = null;
  remember(i < 0 ? "" : TOPICS[i][0]);
  afterTopicChange();
function chooseNaves(index, within, label) {
  var n = navesSubject(index, within, label);
  if (!n.cands.length && !within) n = followSee(indeM
x) || n; // e.g. "AGE, OLD" says "See OLD AGE"
  if (!n.cands.length) { $("searchNote").textContent = "That topic has no verses of its own. Try another."; return; }
  naves = n; topic = -2;
  remember("naves:" + naves.name + (within ? "|" + within + "|" + label : ""));
  afterTopicChange();
function afterTopicChange() {
  $("topicBtn").firstChild.nodeValue = topicLabel() + " ";
  $("topics").classList.add("hide");
function buildTopicGrid() {
  var g = $("topicGrid"), list = [["AnyM
 verse"]].concat(TOPICS);
  list.forEach(function (t, k) {
    var b = document.createElement("button"), i = k - 1;
    b.textContent = t[0];
    if (i === topic) b.className = "on";
    b.onclick = function () { chooseTopic(i); };
    g.appendChild(b);
$("topicBtn").onclick = function () {
  buildTopicGrid(); $("q").value = ""; showSearch("");
  $("topics").classList.remove("hide");
$("topicsClose").onclick = function () { $("topics").classList.add("hide"); };
$("topicBtn").firstChilM
d.nodeValue = topicLabel() + " ";
/* ---------- Nave's Topical Bible (optional file) ----------
   A separate inscription with 3,000+ subjects and 55,000 references.
   The app finds it by TOPICS_ID, or, if that is empty, among this
   app's own children. Without it, the 18 topics above still work. */
  var m = /\/content\/([0-9a-f]{64}i\d+)/.exec(location.pathname);
  return m ? m[1] : "";
var navesLoading = null;
function loadNaves() {
  if (navesData) return Promise.resolve(navesData);
f (navesLoading) return navesLoading;
  if (ID_RE.test(TOPICS_ID)) start = Promise.resolve([TOPICS_ID]);
  else if (selfId()) start = fetch("/r/children/" + selfId(), { credentials: "omit" })
    .then(function (r) { return r.ok ? r.json() : { ids: [] }; })
    .then(function (d) { return ((d && d.ids) || []).filter(function (x) { return ID_RE.test(x); }); });
  else start = Promise.resolve([]);
  navesLoading = start.then(function (ids) {
    function next() {
      if (!ids.length) throw new Error("nM
      return fetch("/content/" + ids.shift(), { credentials: "omit" })
        .then(function (r) { if (!r.ok) throw 0; return readBytes(r); })
        .then(function (bytes) {
          return sha256Hex(bytes).then(function (hex) {
            if (hex !== TOPICS_SHA) return next();
            var d = JSON.parse(new TextDecoder().decode(bytes));
            var lines = d.data.split("\n"), subs = [];
            for (var i = 0; i < lines.length; i++) {
              if (lines[i].charAt(0) === "#") M
                if (subs.length) subs[subs.length - 1].end = i;
                subs.push({ name: lines[i].slice(1), start: i + 1, end: lines.length });
            return (navesData = { books: d.books, lines: lines, subs: subs });
        }, function () { return next(); });
  navesLoading.catch(function () { navesLoading = null; });
  return navesLoading;
/* Turn one subject into a list of verse choices, each with its heading. */
ithin" keeps only the parts of a subject whose headings contain that word. */
function navesSubject(index, within, label) {
  var s = navesData.subs[index], cands = [], heads = [];
  for (var i = s.start; i < s.end; i++) {
    var line = navesData.lines[i], lvl = +line.charAt(0), bar = line.indexOf("|");
    var head = (bar < 0 ? line.slice(1) : line.slice(1, bar)).trim();
    heads[lvl] = head; heads.length = lvl + 1;
    if (bar < 0) continue;
    var note = heads.filter(Boolean).join("
within && note.toUpperCase().indexOf(within) < 0) continue;
    line.slice(bar + 1).split(";").forEach(function (item) {
      var sp = item.indexOf(" ");
      if (sp > 0) { book = +item.slice(0, sp); item = item.slice(sp + 1); }
      if ((m = /^(\d+)$/.exec(item))) cands.push({ b: book, c: +m[1], f: 0, t: 0, note: note });
      else if ((m = /^(\d+)-(\d+)$/.exec(item))) {
        for (var c = +m[1]; c <= +m[2]; c++) cands.push({ b: book, c: c, f: 0, t: 0, note: note });
      } else if ((m = /^(\d+M
):(\d+)-\d+:\d+$/.exec(item))) cands.push({ b: book, c: +m[1], f: +m[2], t: +m[2] + 3, note: note });
      else if ((m = /^(\d+):(.+)$/.exec(item))) {
        m[2].split(",").forEach(function (seg) {
          var r = seg.split("-");
          cands.push({ b: book, c: +m[1], f: +r[0], t: +(r[1] || r[0]), note: note });
  return { name: s.name, within: within || "", label: label || "", cands: cands };
/* Some subjects only say "See OTHER SUBJECT": open the first one that has verseM
function followSee(index) {
  var s = navesData.subs[index];
  for (var i = s.start; i < s.end; i++) {
    var m = /^\dSee (.+)$/i.exec(navesData.lines[i]);
    if (!m) continue;
    var want = m[1].toUpperCase().trim(), tries = [want, want.split(",")[0].trim()];
    for (var t = 0; t < tries.length; t++) {
      for (var k = 0; k < navesData.subs.length; k++) if (navesData.subs[k].name === tries[t]) {
        var n = navesSubject(k);
        if (n.cands.length) return n;
ar usableCache = {};
function usable(i) {
  if (!(i in usableCache)) usableCache[i] = navesSubject(i).cands.length > 0 || !!followSee(i);
  return usableCache[i];
function searchSubjects(q) {
  q = q.trim().toUpperCase();
  navesData.subs.forEach(function (s, i) {
    var at = s.name.indexOf(q), rank;
    if (at >= 0) rank = s.name === q ? 0 : at === 0 ? 1 : 2;
      // also look inside the subject's headings, e.g. "lonely" finds subjects that mention it
      for (var k = s.start; k <M
        var l = navesData.lines[k], bar = l.indexOf("|");
        if (bar < 0) continue; // headings without verses ("See ...") are skipped
        var h = l.slice(1, bar).trim();
        if (h.toUpperCase().indexOf(q) >= 0) { rank = 3; var label = h.length > 36 ? h.slice(0, 34) + "
      if (rank === undefined) return;
    if (rank < 3 && !usable(i)) return; // leave out subjects that lead nowhere
    out.push({ i: i, rank: rank, size: s.end - s.start, name: s.name, wM
ithin: rank === 3 ? q : "", label: rank === 3 ? label : "" });
  out.sort(function (a, b) { return a.rank - b.rank || b.size - a.size; });
var searchTimer = null;
function showSearch(q) {
  var searching = q.trim().length >= 2;
  $("topicGrid").classList.toggle("hide", searching);
  $("results").classList.toggle("hide", !searching);
  $("searchNote").textContent = "";
  if (!searching) return;
  $("searchNote").textContent = "Searching
  loadNaves().then(function () {
    if ($("q").valuM
    var found = searchSubjects(q), box = $("results");
    box.innerHTML = "";
    found.slice(0, 40).forEach(function (f) {
      var b = document.createElement("button");
      b.textContent = titleCase(f.name) + (f.label ? "
 " + titleCase(f.label) : "");
      b.onclick = function () { chooseNaves(f.i, f.within, f.label); };
      box.appendChild(b);
    $("searchNote").textContent = found.length
      ? (found.length > 40 ? "Showing 40 of " + found.length + " topics" : found.length M
+ (found.length === 1 ? " topic" : " topics")) + " from Nave
      : "No topic matches
. Try a shorter word.";
    $("searchNote").textContent = preview
      ? "Topic search works once the app is inscribed."
$("q").oninput = function () {
  var q = $("q").value;
  clearTimeout(searchTimer);
  searchTimer = setTimeout(function () { showSearch(q); }, 180);
/* Pick a verse from the chosenM
 topic, never the same one twice in a row. */
function slotOf(bookIndex) {
  for (var i = 0; i < PACK_START.length; i++) if (bookIndex >= PACK_START[i]) slot = i;
function pickTopicRef() {
  // Only choose from packs that exist (all four normally).
  var pool = [], k, x;
  if (topic === -2) {
    for (k = 0; k < naves.cands.length; k++) if (!missing[slotOf(naves.cands[k].b - 1)]) pool.push(k);
    var refs = TOPICS[topic][1].split(";");
    for (k = 0; k < refs.length; k+M
      x = /^(.+) \d+:/.exec(refs[k].trim());
      if (!missing[slotOf(BOOKS.indexOf(x[1]))]) pool.push(k);
  if (!pool.length) throw new Error("notopic");
  do { k = pool[Math.floor(Math.random() * pool.length)]; } while (String(k) === lastRef && pool.length > 1);
  lastRef = String(k);
  if (topic === -2) {
    var c = naves.cands[k], f = c.f, t = c.t;
    if (f && t - f > 3) { f = t = f + Math.floor(Math.random() * (t - f + 1)); } // long passage: one verse of it
    return { book: BOOKS[c.b - 1],M
 chapter: String(c.c), from: f, to: t, slot: slotOf(c.b - 1), note: c.note };
  var m = /^(.+) (\d+):(\d+)(?:-(\d+))?$/.exec(TOPICS[topic][1].split(";")[k].trim());
  return { book: m[1], chapter: m[2], from: +m[3], to: +(m[4] || m[3]), slot: slotOf(BOOKS.indexOf(m[1])) };
function lookup(sha, ref) {
  var list = loaded[sha], hits = [];
  for (var i = 0; i < list.length; i++) {
    var v = list[i];
    if (v.book === ref.book && v.chapter === ref.chapter) hits.push(v);
  if (!hits.length) return null;
var from = ref.from, to = ref.to;
  if (!from) { from = to = 1 + Math.floor(Math.random() * hits.length); } // whole chapter: one verse of it
  var parts = hits.filter(function (v) { return +v.verse >= from && +v.verse <= to; });
  if (!parts.length) return null;
  var a = parts[0].verse, z = parts[parts.length - 1].verse;
  return { book: ref.book, chapter: ref.chapter, verse: a === z ? a : a + "
    text: parts.map(function (v) { return v.text; }).join(" "), note: ref.note || "" };
/* Packs that turneM
d out not to be inscribed. If only some of the four
   packs exist, topic verses are picked from the packs that do. */
function topicVerse(tries) {
  try { ref = pickTopicRef(); } catch (e) { return Promise.reject(e); }
  return ensurePack(ref.slot, true).then(function (sha) {
    var v = lookup(sha, ref);
    if (!v) throw new Error("Verse not found");
    if (e && e.message === "noengine") throw e;
    if (Object.keys(loaded).length) missing[ref.slot]M
 = true; // the chain answered, that pack just isn't there
    if (tries >= 8 || !Object.keys(loaded).length && tries >= 2) throw e;
    return topicVerse(tries + 1);
function newVerse() {
  if (preview) { previewVerse(); return; }
  busy = true; $("next").disabled = true;
  (topic !== -1 ? topicVerse(0) : ensurePack(pickSlot(), false).then(function (sha) {
      var list = loaded[sha];
      return list[Math.floor(Math.random() * list.length)];
    .then(function (v) {
      setStatus("");
    .catch(function (e) {
      if (e && e.message === "notopic") {
        // None of this topic's verses are in the packs inscribed so far: show any verse instead.
        busy = false; topic = -1; naves = null;
        $("topicBtn").firstChild.nodeValue = topicLabel() + " ";
        setTimeout(function () { setStatus("That topic\u2019s verses are in Bible packs not inscribed yet.", 4000); }, 900);
      if ((e && e.message === "noengiM
ne") || location.protocol === "file:") {
        // Not on an ordinals server (e.g. opened from your computer): quietly use the sample verses.
        preview = true; previewVerse();
      } else if (e && e.message === "No packs found yet") {
        setStatus("The Bible packs aren\u2019t inscribed yet. Check back soon.");
        setStatus("Could not reach the chain right now. Tap \u201CAnother verse\u201D to try again.");
    .then(function () { busy = false; $("next").disabled = falM
/* Start: reopen a saved Nave's subject if there was one. */
  if (saved.indexOf("naves:") === 0) {
    var parts = saved.slice(6).split("|"), name = parts[0];
    loadNaves().then(function () {
      for (var i = 0; i < navesData.subs.length; i++) if (navesData.subs[i].name === name) {
        naves = navesSubject(i, parts[1], parts[2]); topic = -2; $("topicBtn").firstChild.nodeValue = topicLabel() + " "; break;
    }).catch(function () {}).then(newVerse);
  } else newVerse();M
/* ---------- sharing ---------- */
function pageLink() {
  // On ordinals.com etc. this is a link straight back to this app.
  return /^https?:$/.test(location.protocol) && /\/content\//.test(location.pathname) ? location.href : "";
function shareText(withLink) {
" + current.text + "
 " + refOf(current) + " (KJV)";
  var link = withLink ? pageLink() : "";
  return link ? s + "\n\n" + link : s;
function openLink(url) {
  var a = document.createElement("a");
  a.href = url; a.rel = "noopM
  if (/^https?:/.test(url)) a.target = "_blank"; // sms: and mailto: open the app directly
  document.body.appendChild(a); a.click(); a.remove();
$("next").onclick = newVerse;
if (ID_RE.test(LOGO_ID)) {
  var logo = new Image();
  logo.className = "logo"; logo.alt = "LAMB \u2014 Let All Men Bow";
  logo.onload = function () { var h = $("head"); h.innerHTML = ""; h.appendChild(logo); };
  logo.src = "/content/" + LOGO_ID; // if it can't load, the drawn cross stays
/* Share: on phones this opens the phoM
ne's own share list (Messages,
   WhatsApp, Telegram, Signal, Messenger, email ... whatever is installed).
   Where that isn't available, our own menu opens instead. */
function openMenu() {
  $("menuVerse").textContent = "
" + current.text + "
 " + refOf(current);
  $("menu").classList.remove("hide");
$("share").onclick = function () {
  if (!current) return;
  if (navigator.share) {
    navigator.share({ text: shareText(true) }).catch(function (e) {
      if (!e || e.name !== "AbortError") openMenu(); /M
/ blocked here: show our menu
  } else openMenu();
$("menuClose").onclick = function () { $("menu").classList.add("hide"); };
  wa:   function (t) { return "https://wa.me/?text=" + encodeURIComponent(t); },
  sms:  function (t) { return "sms:?&body=" + encodeURIComponent(t); }, // works on iPhone and Android
  tg:   function (t, link) { return "https://t.me/share/url?url=" + encodeURIComponent(link || t) + (link ? "&text=" + encodeURIComponent(t) : ""); },
  mail: function (t) { return M
"mailto:?subject=" + encodeURIComponent("A verse for you: " + refOf(current)) + "&body=" + encodeURIComponent(t); },
  x:    function (t) { return "https://twitter.com/intent/tweet?text=" + encodeURIComponent(t); },
  fb:   function (t, link) { return "https://www.facebook.com/sharer/sharer.php?u=" + encodeURIComponent(link || "https://ordinals.com") + "&quote=" + encodeURIComponent(t); }
Array.prototype.forEach.call(document.querySelectorAll("#menu [data-to]"), function (b) {
  b.onclick = function () {
 to = b.getAttribute("data-to");
    if (to === "copy") { $("copy").onclick(); b.textContent = "Copied"; setTimeout(function () { b.textContent = "Copy text"; }, 1500); return; }
    if (to === "pic") { $("menu").classList.add("hide"); $("img").onclick(); return; }
    var link = pageLink();
    openLink(SHARE_TO[to](to === "tg" && link ? shareText(false) : shareText(true), link));
$("copy").onclick = function () {
  if (!current) return;
  var s = shareText(false);
  if (navigator.clipboard && navigator.M
clipboard.writeText) {
    navigator.clipboard.writeText(s).then(function () { setStatus("Copied", 1500); },
      function () { setStatus("Copy is blocked here", 2000); });
  } else setStatus("Copy is blocked here", 2000);
/* ---------- framed picture ---------- */
var SERIF = 'Georgia, "Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif';
function wrapLines(ctx, text, maxW) {
  var words = text.split(/\s+/), lines = [], line = "";
  for (var i = 0; i < words.length; i++) {
line ? line + " " + words[i] : words[i];
    if (ctx.measureText(t).width > maxW && line) { lines.push(line); line = words[i]; }
  if (line) lines.push(line);
function corner(ctx, x, y, sx, sy) {
  ctx.save(); ctx.translate(x, y); ctx.scale(sx, sy);
  ctx.beginPath(); ctx.moveTo(0, 70); ctx.lineTo(0, 0); ctx.lineTo(70, 0); ctx.stroke();
  ctx.beginPath(); ctx.arc(0, 0, 9, 0, Math.PI * 2); ctx.fill();
  ctx.beginPath(); ctx.moveTo(22, 22); ctx.lineTo(40, 22); ctx.moveTo(22, M
22); ctx.lineTo(22, 40); ctx.stroke();
function drawPicture(v) {
  var W = 1080, H = 1350, c = document.createElement("canvas");
  c.width = W; c.height = H;
  var ctx = c.getContext("2d");
  var g = ctx.createRadialGradient(W / 2, H * 0.38, 40, W / 2, H * 0.5, H * 0.75);
  g.addColorStop(0, "#33281B"); g.addColorStop(1, "#140F0B");
  ctx.fillStyle = g; ctx.fillRect(0, 0, W, H);
  // frame: two gold borders and corner ornaments
  ctx.strokeStyle = "#C9A84C"; ctx.fillStyle = "#C9A84C";
eWidth = 4; ctx.strokeRect(54, 54, W - 108, H - 108);
  ctx.lineWidth = 1.5; ctx.globalAlpha = 0.6; ctx.strokeRect(78, 78, W - 156, H - 156); ctx.globalAlpha = 1;
  ctx.lineWidth = 4;
  corner(ctx, 54, 54, 1, 1); corner(ctx, W - 54, 54, -1, 1);
  corner(ctx, 54, H - 54, 1, -1); corner(ctx, W - 54, H - 54, -1, -1);
  ctx.textAlign = "center"; ctx.textBaseline = "alphabetic";
  ctx.font = "84px " + SERIF; ctx.fillText("
  ctx.font = "34px " + SERIF; drawSpaced(ctx, "LAMB", W / 2, 292, 14);
rse: shrink the type until it fits the space
", size = 66, lines, lh, top = 370, bottom = 1050, maxW = W - 260;
  for (; size >= 28; size -= 2) {
    ctx.font = "italic " + size + "px " + SERIF;
    lines = wrapLines(ctx, text, maxW); lh = size * 1.42;
    if (lines.length * lh <= bottom - top) break;
  ctx.fillStyle = "#EDE3CC";
  var y = top + (bottom - top - lines.length * lh) / 2 + size;
  for (var i = 0; i < lines.length; i++) { ctx.fillText(lines[i], W / 2, y); y += lh; }M
  ctx.fillStyle = "#C9A84C"; ctx.fillRect(W / 2 - 40, 1095, 80, 2);
  ctx.font = "40px " + SERIF; drawSpaced(ctx, refOf(v).toUpperCase(), W / 2, 1160, 5);
  ctx.fillStyle = "#9C8F76"; ctx.font = "22px " + SERIF;
  drawSpaced(ctx, "KING JAMES VERSION
 STORED ON BITCOIN", W / 2, 1222, 4);
/* canvas letter-spacing that works in every browser */
function drawSpaced(ctx, s, cx, y, sp) {
  for (i = 0; i < s.length; i++) w += ctx.measureText(s[i]).width + (i < s.length - 1 ? sp : 0);
ar x = cx - w / 2, a = ctx.textAlign; ctx.textAlign = "left";
  for (i = 0; i < s.length; i++) { ctx.fillText(s[i], x, y); x += ctx.measureText(s[i]).width + sp; }
  ctx.textAlign = a;
function fileName() { return "LAMB-" + refOf(current).replace(/[^A-Za-z0-9]+/g, "-") + ".png"; }
$("img").onclick = function () {
  if (!current) return;
  drawPicture(current).toBlob(function (blob) {
    if (!blob) { setStatus("Could not make the picture", 2000); return; }
    if (picUrl) URL.revokeObjectURLM
    picUrl = URL.createObjectURL(blob);
    $("pic").src = picUrl;
    var file = new File([blob], fileName(), { type: "image/png" });
    var canSendFile = navigator.canShare && navigator.canShare({ files: [file] });
    $("picShare").classList.toggle("hide", !canSendFile);
    $("sheet").classList.remove("hide");
$("picShare").onclick = function () {
  var file = new File([picBlob], fileName(), { type: "image/png" });
  navigator.share({ files: [file], text: refOf(current) + " (KJVM
)" }).catch(function () {});
$("picSave").onclick = function () {
  var a = document.createElement("a");
  a.href = picUrl; a.download = fileName();
  document.body.appendChild(a); a.click(); a.remove();
$("picClose").onclick = function () { $("sheet").classList.add("hide"); };
/* ---------- home-screen app ----------
   The icon is drawn here at runtime, so it costs no bytes on chain. */
function makeIcon(n) {
  var c = document.createElement("canvas"); c.width = c.height = n;
  var x = c.getContext("2d"), M
  x.fillStyle = "#1A1510"; x.fillRect(0, 0, n, n);
  x.strokeStyle = "#8A7232"; x.lineWidth = 3 * s; x.strokeRect(12 * s, 12 * s, n - 24 * s, n - 24 * s);
  x.fillStyle = "#C9A84C"; x.textAlign = "center";
  x.font = 74 * s + "px " + SERIF; x.fillText("
  x.font = 30 * s + "px " + SERIF; drawSpaced(x, "LAMB", n / 2, 146 * s, 6 * s);
  return c.toDataURL("image/png");
/* Phone home-screen icon (iPhone + Android). Starts with the drawn icon,
   then swaps in the inscribed logo (itsM
 finished frame) once it loads. */
function setIcons(small, big) {
  iconLinks.forEach(function (l) { l.remove(); });
  var head = document.head;
  var l = document.createElement("link"); l.rel = "apple-touch-icon"; l.href = small;
  var i = document.createElement("link"); i.rel = "icon"; i.type = "image/png"; i.href = small;
    name: "LAMB Daily Verse", short_name: "LAMB Verse", start_url: location.href, scope: location.href,
    display: "standalone", background_color: "#1A1510", M
theme_color: "#1A1510",
    icons: [{ src: small, sizes: "180x180", type: "image/png" }, { src: big, sizes: "512x512", type: "image/png", purpose: "any" }]
  var ml = document.createElement("link"); ml.rel = "manifest";
  ml.href = "data:application/manifest+json," + encodeURIComponent(JSON.stringify(m));
  iconLinks = [l, i, ml];
  iconLinks.forEach(function (x) { head.appendChild(x); });
try { setIcons(makeIcon(180), makeIcon(512)); } catch (e) {}
function logoIcons() {
  if (!ID_RE.test(LOGO_ID)) return;M
  fetch("/content/" + LOGO_ID, { credentials: "omit" })
    .then(function (r) { if (!r.ok) throw 0; return r.text(); })
    .then(function (svg) {
      // Freeze the animation on its last frame so the icon shows the whole logo.
      svg = svg.replace("<style>", "<style>*{animation:none!important}" +
        ".co,.bd{stroke-dashoffset:0!important}.cf,.t,.bi{opacity:1!important}.bg2{opacity:.8!important}" +
        ".gl{opacity:0!important}.ru{transform:none!important}");
      var img = new Image();
load = function () {
          var out = [180, 512].map(function (n) {
            var c = document.createElement("canvas"); c.width = c.height = n;
            c.getContext("2d").drawImage(img, 0, 0, n, n);
            return c.toDataURL("image/png");
          setIcons(out[0], out[1]);
        } catch (e) {} // some browsers refuse; the drawn icon stays
      img.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(svg);
    .catch(function () {});
var installEvent = null;
window.addEventListener("beforeinstallprompt", function (e) {
  e.preventDefault(); installEvent = e; $("install").classList.remove("hide");
$("install").onclick = function () {
  if (!installEvent) return;
  installEvent.prompt();
  installEvent = null; $("install").classList.add("hide");
// Already opened from the home screen: no need to offer it.
if ((window.matchMedia && matchMedia("(display-mode: standalone)").matches) || navigator.standalone) {
  $("getApp").classList.add(M
$("getApp").onclick = function () { $("help").classList.remove("hide"); };
$("helpClose").onclick = function () { $("help").classList.add("hide"); };
previewVerse(); // a verse right away; the chain verse replaces it once loaded
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"2000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"150"}h!
DjB0x8b81cefb2a189c2ca59f099a8af0baf9eadf59485d8b92842b3f4d99520c517b
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"TSLAU","amt":"886888"}h!
DjB0xa0097b07d5622fb30da439758f2f2f92eed7e73f1c88b560988adbeefbbe65dc8`
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"45"}h!
Mined by AntPool960x
=j;trN:to:USDT(BSC):0xc33306A42767c1a173fEF38Eb303b75f5647B50BP
8j6TsV:to:USDC:0x6475cB3e0829FF9F8a87a897efB73dD945D9067a
6j4vkZ:to:USDT(TRON):TZ9N3ZbgaieTZ4oL768C1HcrPHsxNfmPDR
6j4SGz:to:USDT(TRON):TEF4ozEGVB7sZqVJ71TesAT5mBQbkh8f1or
6j4VIR:to:USDT(TRON):TLEYCWu3Yfa6MDqVu1L6eMD1ESFByRqdsB{
6j4J4t:to:USDT(TRON):TVxUKEF1bXvJ1hGm9YwNs3VLgdbHy5JueU&E
DjB0x7e3258d766b8ca2a0841b5cd7e86fe06d594cabeb04fac9f66748c9fb6147dfc
DjB0x7900f9968e9fe57590c3244cd630df7348c84d2e0e2e5fa789aedcd893cd1466
DjB0x2166499ce7cd25cb0c8a219c9d8407202149810ebf05fdbce62e7e97cd16a78a
DjB0x1d8375a999e52f3804662899a2e3fb6bcc94bf54c6593b4c6458d09765b1393a
DjB0xd9e98d09cbb3f65c599d21581715bf180ec7507c68fca946946a47c3425ad50a
DjB0x32c80cca3b5a643f31a1e28453b63d195d17dfb23cd70f62f98f5f1757efa955
text/plain;charset=utf-8
QjLN=:ETH.USDT:0xB2D32c5bf5Dfa6F0D8A7EC2528a2e881548a417a:136872900/0/0:-_/t1:0/70
DjB0xbc26573163e5931400c817234072a70d617df4ab3f8a500558dd96e17ce60a9e
DjB0x274413441fc884a81bb759df77a360c7051bb12d8ccd1ad9dd8fb6c31fef9c79
DjB0x9f0d42ea0e73ae1c632ce1a17d4773ccb424c75f51e499b9740bb213aae8059d
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"ASIC","amt":"1.8"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"2000"}h!
(c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing M
Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
Powered by Luxor Tech]
MTLD_BATCH_5_401583_401588
FjDOUT:972284936B2D811D946661F6EEAFB5FA8EBAC2A7C7146B3BD64A0B932A243A4D
FjDOUT:F860FA24C77199259065E3EDEB87C583B1D39C5321A7E4610D234E96A3D8FB5D
FjDOUT:B50B7BB8D80F54D1F149F28C600752857770659209B8FDEA24FA20520960AC34
6j43vW:to:USDT(TRON):TKZiLZrVD2k9nqPXgmTDdEDSxK6T1Eazv5
/j-CW4:to:TRX:TEvfrTYdy25eDqLZPVoLKpRtZ7LZ8jrp7E
6j4hYq:to:USDT(TRON):TCQti84qAA9Fr2nwWyUKdhuGqpU9N812Wr
6j4ED9:to:USDT(TRON):TB41wHc5DSt25vsbWRKkseFnQ8hEvRgg7N
CjA7hZ:to:GRAM(TON):UQBv96D1AXCfhi0COsWnpzQ_s6epfCHPJNaG3H4X1ccMOTBt
6j4a00:to:USDT(TRON):TChmgtRewWPNLZSM7U2xkZwNk6Q3wTTmrB
EjC=:e:0x5f22AC807361CEcA7E73E87c0C6718b419Bd1107:71891/0/0:-_/t1:0/70
2j0to:USDT(TRON):TJ3NXXtGMKmp5rBxAq9ik8f1NMp8r51vVi
=j;3na:to:USDT(BSC):0x92d831d543ad9163181C93aF50133a0ef720d954V
=j;vbV:to:USDT(BSC):0x6E5F8c44EDD4D1e1f820cb378B3635f73cCE5dB0
7j5from:150USDT(TRON):TSMXRvAKQygXu3mtGHT9P7P8DLN7qCwkTs
DjB0xc431790edf71e8db730888bd370913cbcee8ec38ce05bf43a2c4f4eedf4f40ce
DjB0x7db302eb2434a29c104ae12bf0ece981dcb51fb6a0e14912e7e7bc555a642d46
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1196.2"}h!
text/plain;charset=utf-8
DjB0x80e77681b09be59df1ee103e6bc7a1459f6a45ce3d604e8f26c2b9595aba4101
DjB0xdc3151c2371522ef5f3b8e918704df84f00a250f9376301a18c9f4aa6cc1ff5e
DjB0x02e0d621d807bd478b82552420b423ed0bce31d873ec4611e49332bc4d2ff102
DjB0x0874bfa2a6338c7de207c3d272bcd55dbd128e31e57b1605fe88cb9262b31ab3
DjB0xa9cd317773d3acf2bc1ab19cfca4fbf59217dfaf18e0e92181147e57a6beed8b
DjB0xea89fa75d8baf953178523c1e8b8233d2dc3fee461bf1b81bce2073a3fd6ccd0
DjB0xaa952f5ccb3e26203e44f3119ab769a74edf570cd8a1f16d52e99951a912f3d1
DjB0xa0f6d7bde48941555f488303637f0fb9899893dc3eebbe08699e89370e11411f
DjB0x9719edab21441ab89fc062f85327357beab0c8eb04ea2c35df73f7829b9e7eb4
%j#Dgg gvdkqbbegf, jfwz tbnhjmoxot yk.
B0482f85686091e9518341af07ab2fe376dd0efb3ed5107d37a331f8de3e39e35:0a
DjB0xf826f50cf6ffba45360f89ac63bfa6247ae143a0f0816ddd7ac7525f7f1754b0
DjB0x9022483a6ea53c52f82189ae50dd6497d5e864d7dfc74792d98b0d506159281f3
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"200000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"2000"}h!
DjB0x5f6cf7b9dd76b28449f2450473aa2a696ef617f8f7dff2d5f87ea76953ad4d10
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
/Foundry USA Pool #dropgold/
9j7oX5:to:SOL:7iXodhE2TeREzLNfNQJVPkqTihBJg8ctdAz2G7mLEqZ2oa
:j8from:0.006ETH:0x75a0b27ca2ADD1819d90F29926BC2b786981B37bTD
8j6from:13LTC:ltc1qhdp0ju522w8vy4exn9e0j442xr4dxpxy0wjtpq`4
=j;from:37USDT(BSC):0xBfF37eB5F7d7640560Ec002295118d361D64e26dD
DjB0x1c5e5829587440ef9f801d4de81c7a5c7609a9e68e679374d20eba97e5a97db7
2j0to:USDT(TRON):TNMr7Q7fh1KyeFJCy8PgK2yYueTE2pLvgW
FjDOUT:3CDEBF83A96B35E8EAAA2770CEDE5366A718AA06CC16A9E6EF063560E3848A31
FjDOUT:CD70FFCEFD12BACEBFC042E377985B0F27319D2D97BEF163E22EF6102547D32C
FjDOUT:4C389581FEC2D05F4D3AE1982999CDFB69DB3C8F3627FCD711E28E8082962A88
FjDOUT:4C3E28418A50A1CE9B462ADC2D629732A421D76F3C318CC921F5B102CFDFC262
FjDOUT:D9F904FFDB3DB5550CCF8AD75DE1D3F01B8FDD4D63BF3AF4B0CD2DF81CCEDC76
FjDOUT:A6EC11E1F05E20EB5107DB0442D2E6A7EC8B7B3493E866F0005296CF82EEF5F7
FjDOUT:393D1265AC87BF984FB619DA6F154CF94F585112114D0F07BEFADFB3F50FF8C2
=j;TFQ:to:USDT(BSC):0x7233fF40992611045A4021393Fd1643c527cebC8
6j4OqB:to:USDT(TRON):TSiiet7W97f3xgizB94FuMzBV38ZwiZttj
6j42kk:to:USDT(TRON):TPac8uQut2cdmL6RR9urx1oaDhV8uoNS1ir?
DjB0x6da893a5cce17f840c2cd36807fb81618cfde2fc52e532a6615f5e50acde7ed2
/j-iHw:to:TRX:TEvfrTYdy25eDqLZPVoLKpRtZ7LZ8jrp7E
/j-TM1:to:TRX:TYQqwcftH5P6JWMYuDY5Lm7XWYtdWN6FoG
/j-T5L:to:TRX:TKzhryttNz1qTVnhXu9BU7vMPhpUwVH4iY8
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"sats","amt":"634184980"}h!
6j44xh:to:USDT(TRON):THH5SHAUxsmEKsnuDfA6CWJ2YbsdcBhaYQS
6j4cuT:to:USDT(TRON):TC99yF8GthiVGd9AvD8BDZMHhan6yz8FF8
=j;j1E:to:USDT(BSC):0xE8F70FEd4b2B853e01F0C3a8450bd733040d4B50
6j4VIn:to:USDT(TRON):TZ61vKxdFg1m7tZaJ3zJtP4CfdCmuqSA37
6j4p8u:to:USDT(TRON):TTsGk1EqGiv9oxZxS3UpuTi6ZLVLzQGtsW"
6j4Sm2:to:USDT(TRON):TQhdsY5QjQusgsar4pwQZqBcMaDZuJu8Ed
6j4lRr:to:USDT(TRON):TEtUycQVVm5W8vF8SJaPXAbeCko4Le8A2B
6j4hQd:to:USDT(TRON):TSUTJKu7wHWzhwFAHJ9XJMACXpuLJ4tWUv
7j5PW7:to:ETH:0xdc3f16695971ED43bCa89De31B4E633FE9fc107b
8j6vLr:to:USDC:0x35DBA98459696187133E25C2eF69f1f15B75cDE8
8j6a1v:to:LTC:ltc1qjgpl300mg7ug4gd4nxmqh6hqte6mna3dly6kaqu#
9j7lar:to:SOL:GWu3XtsDw1GrqtVbba3q1zYEMSwX83eargfmnauT64Ta
>j<to:HYPE(HyperEVM):0x204AFE7D52eC96016b0e5b0DB84Ecd653AC973Ec
=j;91Y:to:USDC(POL):0xfab7EE7798166748903DC18E594E25aF81f9a931
=j;CHn:to:USDT(BSC):0x67844749B441668802E4845809c4c6735d157cFD
=j;pRz:to:USDT(BSC):0x7737907a3b1485fdb7e0EdC7659b76b27625E5BE
=j;z9f:to:USDT(BSC):0x838876De3d0f94f835219aE5E11b687B5BBB4768
=j;Zb2:to:USDT(BSC):0xe8227b5E7e0b74cdF6dC35F84056A321787c88a2
5j3=:tr:TCyrrL3FSoKo44uQnRyTqZNUHggt5RGutE:0/1/1:ej:75;
2j0to:USDT(TRON):TKREAZK59QguCRrM5N33a19QHNt2GyqtSz
DjB0x69bafd8b9e0256f6eb7f1186fc685ecc756a8995649d3756543e426ad930204b
DjB0xb1bad232d3f422caf080fe16bb29418505c4f5284dd7efde88d245160877048e
{jLx0x9deafbec132f24c9fe241e66237d8ce5a721fdee898a5afd9304873b77d6b8d2|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
OjLL0x7fed1a4a9ca4257fd7339d96f1618f6ad9277e117c3274f8803e3bfa952d0ec1=|lifiL
;j9to:USDT(ERC20):0xF93D906724e1c3576200e787B6B155d5FFE820C4
DjB0xab3b94eb5ad5c57ed8239c36071a387fe6a0ddd258ac881bf8fa9fca906b0855
DjB0xbc2f3ab72c710631cfc5cb4a5266ab9799ac8823d9b538900279bfaf0096801c
DjB0xb6175e21625b063f06fe576a4ccff951557d593a77fcb4c45a9c1a3c06d24d0c
DjB0x09ecb0f4646412c9b481ae5b2f8fac300ee27dbaa32e39d32587cada89be87bc
DjB0x085d8f822c7d6f0067efe166d3c43ae2eabc5e68db4d4a06ebf6b93bb7342b19
DjB0x37c65fb72e1ac4e499d12241e1396cbea8dace18a83495f122545e3346d664d4
DjB0xca3e72c350f46432cef2220354d12acc63ef3c07978b9b76d605d58615dfeaf9
DjB0x5b2d8bd47066005bbd0b4a1a926dad2270da62b75031e1eb4b038cf1ded81df8
DjB0x9531e7f58b5f41e8ef1ed25722cec13f86e8d729c9922774d15998a6d417427e
DjB0x36c9c3bd93325c30c2161f86d0d09358ba4737ba1cdb39e688a25f793f559d4c
DjB0xa59de8ef288e19a20e2585d7af4edde74c4f6fd00eabc672dd0ae0e564043013
DjB0x4b7c378184a07efe94c5b242dd8d88d7ebdb060a60618a33519022b4e9fb2938
DjB0xa0c1b93a38e7173b8b980b9978f40332c487f5b36c7780af0f3b4343756800fa
DjB0xaa15ff337ac7fd99c65f2b902a1297f6569366037d59cb7e154a985065a13f44
DjB0xaf637cebfbb65d31da8f15e61c4494fd0a3423094db7c35e2c004d8829f79049
DjB0xd7afcfcfea6673e867fa9ce19d422fc89df7d119542f3fae2bd3a432967a31be
DjB0x074cd864c6f8dda5f27022516314373472aebcf9b4d12a837c190fd710e49725
DjB0xea4a6b91b9bf5714b76bbe346e36fe9f04144673a02618c4e1dceb0a1905f91b
DjB0xd61919a179b18d07df31971f505aa633d865add67934f81f03ea55228ab17511
DjB0xf33132d23f6f4f28efd1f6745444048236f2babc8b6d5f7e49e37317a9ea88df
HjF=:l:ltc1qr05dxlj8dm2jmcvetzlk5zewgt7delaeq8jdjr:3566131/0/0:-_/t1:0/70
DjB0x7dfe992a3f05332e1600a42bcddf4436a836e5e2e07655534124fa8b6d99fb5d
DjB0xf4ddef0caa7907b2b62d67003ce024119896c7943a76ce633f6aa4089dd13621
DjB0x6118ff922cdf002b1b9e10f4afbe3212499a8656a10161de0d39d37f4d5330d9
{jLx0xde3d170a8aa8d327df47d6cb1b0577d8b7e974cdec9e15190d1377dc252d25b9|depositor=bc1qnczd8frpc36m5pj566ctl78unhtwmqj2su0kee|
{jLx0x986d710deb910680a5d8a1d81f88f4cbd23f4915030034797d26841b8ffc1488|depositor=bc1qjhdslkepd77xlw8ahe4d52g53ae952gtmqmhle|
DjB0x468af5da6571eddf476673bd268e98d4da6b7ed76b2a8a6f32d1f10d22689cfe
text/plain;charset=utf-8
text/plain;charset=utf-8
3{"p":"brc-20","op":"mint","tick":"tslau","amt":"1"}h!
text/plain;charset=utf-8
3{"p":"brc-20","op":"mint","tick":"avsor","amt":"1"}h!
DjB0x16ad49fe4fa9eb98332d55abd98e17b0ef63ba13bb3d46343d97e343744b5e5f
DjB0x97d6ceaa5913fa7a2c52e6209f9b30ec0076bf3384b06f9fd393ea124559f92a
DjB0x96da9e45849515ebd2fd38bae96cca712f0a28c3ced1624291b9f997747c8bf3
DjB0x174c1f5943d7357a944cede3ab3ac4d2689f20b50e5e81d6c613fdd0037041d1
DjB0x02cdcecb95a26caffe20beba913b66a72b2d59329ad4e9f8263029f6d30db132
DjB0x8453f5dfb373061ae05bf092ca1e55c6b9b80701aa9f38e3e533ebc47664fb90
DjB0x22326a91ba6dc15ad21da24dd9528fc2ac2ed05054579f215d26c49d031b1050
DjB0x53437ef62c2dcdc77fe6b86462b4677f425e4b34ea0fc915a1b3aa38cea72ca8
DjB0xa024b5b1e4803ba34ebb264e6176de04934b10c411dc730fa4ff1e30832fc387
EjC=:e:0x92F3e4b5dCB45D35e2bBA8581C66aCEf30eE62C2:88494/0/0:-_/t1:0/70
DjB0x9a37cdb580d9eeddb84e2fb7565287017f0e6688c83a4a09e4aaa83c487ef261
PjLM=:ETH.USDT:0x66ad1ed9f290c806EA241B861fd71A8c32b1A030:90219400/0/0:-_/t1:0/70?
Bj@=:tr:TXekLvnni5yzF8CRiBaHBWbackYnNxzbab:361451700/0/0:-_/t1:0/70
HjF=:l:ltc1qty9h7m6wuz0eztpg090ht6zv352l7qur3nph7u:6356454/0/0:-_/t1:0/70
DjB0x35c48019f7d89c9f247fabe5fde9a76956f4f1fb2c7bde5368674396e6a735ee3
DjB0xe5fa2cbad99d0cd89d024b1de888f47e8fa702cec86a7dcf0428736eb1f0513dN
<j:=:TRON.USDT:TUTPbpCmwNTtVR7dVCvXxvdy2HynqeiYK6:0/1/1:ej:75^1
5j3=:tr:TUTPbpCmwNTtVR7dVCvXxvdy2HynqeiYK6:0/1/1:ej:75x
{jLx0xed89dbbcb7534d00a4445b3b532e7dafdd09f312e647d0296bc5967fbdba177f|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
FjDOUT:272BEC703B99E6DFD9DF2D79DA538B7BCE35F5CD7714DC922DECD11227FF8724
FjDOUT:506EB2826164F0233D019F9075463FED638D88C517C7410BEA91D37420CADD0A
text/plain;charset=utf-8
gjLdBIP110-SPLIT BIP110-SPLIT BIP110-SPLIT BIP110-SPLIT BIP110-SPLIT BIP110-SPLIT BIP110-SPLIT BIP110-SP
DjB0x5c98331af05e3288090e30a34c11bb5018121f70931e70b49189d0e8c7b209be
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"20000000000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"TSLAU","amt":"1778888"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"10"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
KjIhello this is a OP_test__456456__123
6j4dvZ:to:USDT(TRON):TNK9CXVuZPGcRjmqiSyAoY9rL7sj6k6ksU
/j-3hD:to:TRX:TZE4HrnrKxfNUaMgzAmmBMjVmUNjd5haQZA{
6j4lDD:to:USDT(TRON):TSFu9Y6qYrxpmDGQvYDPWPoxg1w1cKNmfU
6j4uW2:to:USDT(TRON):TQR1PDbgpigtUw6z7oVVtdQkK2znwBpQGS
6j4j2x:to:USDT(TRON):TXSZ9cgh5iTH6RBr93Yqjz6e4tbVSq54he
6j47so:to:USDT(TRON):TUrXjcJ765DbcnB75AYoLmbZ9dFMf3BT36
6j4zP0:to:USDT(TRON):TVSXBGAUGC5FYDyj51SMseFRWLGwAUMxsk
7j5Imz:to:ETH:0x212716208B1B813e8ac3F526ADD48292430bAAd1:
=j;KQv:to:USDT(BSC):0x1902953F69DDbE2feF2083eD56FBa3DE500809c4
<j:ucH:to:BNB(BSC):0x9A7656f71d6e4eCCc3b528bF0bc621fCB55f7Ea9
DjB0x8978ec2a7d58996101f0e7357b7510252f9378b785defddf0f7eca779bacc6ef
DjB0x5a3c41dc032afc1a9cb6aa41f56dd0c2d309dd82ac49ebf29d476957b0da4f70
DjB0x357af4de7a31c2dfd319b954bf56e378ddb8b0a717b07e484d3fd62b45300f00
DjB0x3698bcc3ab609193703a98e6c7e53cf1d34031ed4c04d8de094d53caceac48ff
DjB0xb533ac051a905058848659813ca03af0faae26c0225c056998b6461cb25dfbba
DjB0xe89160187e5ae7a0ca9e89cfe9717e1d3075ca586e34f8e06949129421688095
DjB0x1a6f3ceaf4eec1d2c978c27eb4a274027b8d9e9793bb1bafda3e9216ebefeb87
DjB0x9633dfe0e4fc92617e5ee1a2b60e268fd9a50d958a6b984e26ced0681b4c3ace
DjB0x09ad54f93171a50195ded8f3d9cb2fb0b0d79270f8154f873eb1e8b6139bd245
DjB0x8facfca73aa922fcf91d5548445126a3f7047b8df925875ac6c0e172fee7ed5e
DjB0x77bfe99b3d3201fb45cb32f12174edc218b427d7e36fa11a1a595c8966d6877e
DjB0x21922f2222e818ea24929d402024fe63397d60ee7e1f043f66b97b93aa147e02
DjB0x86e9f536c4439484d29e7bdeed8de977184e30b698f5b267e9ba02b7baeb6d74
DjB0x01a63bf15055a6a536ce79424ed421241515f2a6981b877e9bb39ab96ba84239
DjB0xc48c81eef7179e5ce7cc434aa3ba22c322a9900998c9d93c165b0d4e39b7e429
DjB0xf5feecc7ab06fee25effe6128501de921e8d5ed9227a9c12477ed390fa0fee32
/Foundry USA Pool #dropgold/<9Y<
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"rats","amt":"1201454860"}h!
6j4U5i:to:USDT(TRON):TB63DchRvECehusxDm3YG5zg8QGprzNpeB
FjDOUT:06EEEF9C09AC57E7196245D96ABEB546B6FD0BD054CD972A0A3C9E1694F97B51
FjDOUT:957C188EB7D1B27F1DAD002884C174A319ACECA8A351B71BFA8D9F7D23446E74
FjDOUT:1B659938BFA185ECA3CF28F01A4FAB03BDC26D1BA26F8B10F79C01F0C488411A
FjDOUT:132056446D01C02B18A88FF0B0148456B133A9EC20C955444AA6BD093CFF08F1
FjDOUT:6265CFE7BAF67A60B5223C83AEC59843BFF25F59AFA4D96CB0A99F270E5D25F8
FjDOUT:E650213273DB8A7DEA7A41F3DC12E26CDF2A11E83669768E4DBCFCFD9D4A3DFF
FjDOUT:21293F37FE0E81533F423BB3B0DC055880824C03965C95769BB0B4E4360D6A71
6j4S0g:to:USDT(TRON):TW4dCL9Xp2YuoPXYMbjZkWsyXQR8cXt65c
=j;8QY:to:USDT(BSC):0x9351BAf0251D4ef71e6034d098F8eD3A403D3bcC
6j4Grx:to:USDT(TRON):TBs3RCJLSSiG4u3pECydNW4umJjxreM3dQ^
6j4sh2:to:USDT(TRON):TMVkbNnDAMYPFiCL6qSTbNKJZxSMQANbtb4
8j6rZE:to:USDC:0x329fA929E5586FeE7940c67d08DdAeb3Acfab0A7
6j4SzE:to:USDT(TRON):TJxYU4eDTHkiZvJ2fJkY66YfmmLgDfM5HQ
=j;T5I:to:USDT(BSC):0x6Dcedf69372B4A4ecE9a5f2094BD61AC1e8Fa2C9
=j;DHz:to:USDT(BSC):0xD9179bA08735d10F262aDaAc5F8Eb3fA2BCe4131
2j0to:USDT(TRON):TVLXrCkiD5XrvXqnVmoy6KTMC31jTW47Vy
DjB0xe34766adfe0d3f5be437c10c0c6a042f574875c7515c92aece88c81d1f062dcc
DjB0x7d6ae9d04c878c058fdf673d9dcbfde58528c8df4a11dda6726f3569739524a7
DjB0x7cb1f8b3737a970ea9a27a4f8b53b0225d61bbe36642fe1d366db97646b05c0f
DjB0xd7895d69820e9e55744858c986153a1160fa64d7d4a4634e9b40a6f4356a97c1
text/plain;charset=utf-8
  "op": "token-transfer",
  "tick": "dmt-nat",
  "amt": "31999999999",
  "dta": "{\"op\":\"bridgein\",\"ethAddr\":\"0xb31E0906BbB91aaD866f390014477Bb40ef7C5D4\"}"
DjB0x7b8dd626aabeefd5ad72184b6c1c35466a1fcb493e8e56413decd4fe0b7c1dc3
DjB0x2da3f5c2563a465b6e8941f5ee4d2e8ea867803e289686a5578021d728fb8565
DjB0xa18495ae5f7e576b66ee3cf5c53a9b1f1c5324cc75f322d362451aca9365d06f
DjB0x15b34e0f3510352b81a1de496f1ce7d750459bed19461dbb4db840a2a198cd7b
DjB0x3dbb7b08809bfee49bac754ac627c68dd2905956fbd14cf481de80350ca7a550
DjB0xf09903cc72e86a488913bbd52554d5fed13c7b3e9d7f52fb683f1f6669ff2095
DjB0x51908b3eadfb8689310152a1aee93a0fe767a9cfe513b7d738b2ccfd5760848c
DjB0xaca0a999c30411c585dc0c22d05ab6aaf3001e2f51ee3c1f7c2a096e25dd34bc
DjB0x14e58fd1c4fb87f8168c5ccc3ac8a8545ebd41e590fccf5240b47c10cc6255a0
DjB0xb533ac051a905058848659813ca03af0faae26c0225c056998b6461cb25dfbba
{jLx0x669e83f8e09248595ac1a738ddbb2b3a2f83d17cbf5ad9f248130a835a0c3508|depositor=bc1qu0n9gu8tua3vh0m72n52sjmjjkxuceu3fnuzpp|
{jLx0x3f4e59d2157014f6160b3dc0501190d47e4c2992643db0a617313f99bfd54443|depositor=bc1qevjfffxtw9qsc9v6fcus085hgmvfx3md46lvyq|
DjB0x0f62b2362ca8a364e849704b9ec6a2e030e110e1ef2577662410848de1b5dce4
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"5383"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
DjB0x6a8d0bb9c6a6aceb7b0db09e4b799ff99c8587cd14c7124032ce315fb722a6a6
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"5383"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"5383"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"5383"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"5383"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1405555554"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
3j1VLGR|2026-10-09|w51|f0|j0|o0|x18|81124b8ecadcf2cc
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"5383"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"5383"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"30000000000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"5383"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"5383"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"5383"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Avsor","amt":"9000"}h!
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover" />
  <meta name="theme-color" content="#2a1f14" />
  <title>Hearthfield</title>
  <style>html,body{margin:0;background:#000}#intro{position:fixed;inset:0;z-index:9999;background:#000;touch-action:none;cursor:pointer}</style>
  <div id="intro"></div>
  <canvas id="game" aria-label="Hearthfield"></canvaM
    <div class="hud-clock">
      <div class="clock-top">
        <span id="hud-weather" class="weather">
          <div id="hud-date" class="date"></div>
          <div id="hud-year" class="year"></div>
      <div id="hud-time" class="time"></div>
      <div id="hud-money" class="money"></div>
    <nav class="hud-buttons">
      <button type="button" class="hud-btn" data-panel="bag" data-i18n-title="hud.bag">
    <img data-a="assets/props/basket.png" alt="" /><span data-i18n="hud.bag"></span>
      <button type="button" class="hud-btn" data-panel="craft" data-i18n-title="hud.craft">
        <img data-a="assets/props/crate.png" alt="" /><span data-i18n="hud.craft"></span>
      <button type="button" class="hud-btn" data-panel="journal" data-i18n-title="hud.journal">
        <img data-a="assets/props/sign.png" alt="" /><span data-i18n="hud.journal"></span>
ton type="button" class="hud-btn" data-panel="menu" data-i18n-title="hud.menu">
        <span class="glyph">
</span><span data-i18n="hud.menu"></span>
    <div id="minimap" data-i18n-title="hud.map">
      <canvas></canvas>
      <button type="button" class="minimap-close icon-btn" aria-label="Close">
    <div id="energy" class="energy">
      <span class="energy-label">E</span>
      <div class="energy-track"><div id="energy-fill"></div></div>
  <span id="energy-num" class="energy-num"></span>
    <button type="button" id="ripe-chip" class="ripe-chip" hidden>
      <img data-a="assets/items/carrot.png" alt="" /><b>0</b><span data-i18n="hud.harvestAll"></span>
    <div id="tutorial" class="tutorial" hidden>
      <span id="tutorial-step" class="tut-step"></span>
      <p id="tutorial-text"></p>
      <button type="button" id="tutorial-skip" class="btn small" data-i18n="tut.skip"></button>
      <div id="toasts"></div>
      <div id="selected-name"></div>
      <div id="hotbar" class="hotbar"></div>
    <div id="joystick"><div class="knob"></div></div>
    <div id="tooltip"></div>
  <div id="dialogue"></div>
    <div id="modal-backdrop"></div>
    <div class="modal-card" role="dialog" aria-modal="true">
      <div class="modal-head">
        <h2 id="modal-title"></h2>
        <button type="button" id="modal-close" class="icon-btM
n" aria-label="Close">
      <div id="modal-body"></div>
  <div id="title-screen">
    <div class="title-card">
      <p class="eyebrow" data-i18n="title.eyebrow"></p>
      <h1>Hearthfield</h1>
      <p class="tagline" data-i18n="title.tagline"></p>
      <div class="title-buttons">
        <button type="button" id="btn-continue" class="btn primary big" hidden disabled data-i18n="title.continue"></button>
        <button type="button" id="btn-new" class="bM
tn big" disabled data-i18n="title.new"></button>
        <button type="button" id="btn-code" class="btn" disabled data-i18n="title.code"></button>
      <div class="lang-switch" role="group">
        <span data-i18n="lang.label"></span>
        <button type="button" class="tab" data-lang="en">English</button>
        <button type="button" class="tab" data-lang="de">Deutsch</button>
      <div id="loading"><div id="loading-bar"></div></div>
      <p id="title-status" class="status"M
      <p class="version">Version 1.1</p>
  <script type="module">
    const bin = Uint8Array.from(atob('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'), (c) => c.charCodeAt(0));
    const [css, src] = JSON.parse(await new Response(new Blob([bin]).stream().pipeThrough(new DecompressionStream('gzip'))).text());
    document.head.insertAdjacentHTML('beforeend', '<style>' + css + '</style>');
    const res = await fetch('/content/8a5d38d24c908e45845dbb6b6a1b13814bd00c5444cf2ddec022205024096824i0');
    if (!res.ok) throw new Error('assets ' + res.status);
    const i = old.indexOf("const __ASSETS = ") + 17;
    const A = Object.assign(JSON.parse(old.slice(i, old.indexOf('};\n', i) + 1)), {});
    const font = old.match(/<style>(@font-face[\s\S]*?)<\/style>/);
    if (font) document.head.insertAdjacentHTML('beforeend', '<style>' + font[1] + '</style>');
    for (const im of document.querySelectorAll('img[data-a]')) im.src = A[im.dataset.a];
    const AsyncFunction = (async () => {}).constructor;
    await new AsyncFunction('__ASSETS', '"use strict";M
    console.error(e);
    document.body.insertAdjacentHTML('beforeend', '<p style="position:fixed;inset:auto 0 0;z-index:99999;margin:0;padding:12px;background:#fff;color:#900;font:14px sans-serif">' + (/assets/.test(e.message) || e instanceof TypeError ? 'Hearthfield could not load its graphics. Please reload the page.' : 'This browser is too old to run Hearthfield. Please update it.') + '</p>');
/Foundry USA Pool #dropgold/7
FjDOUT:722196EE358C59E3A25437554A43E78389773AB3652015045F8507F3AD5F3A12
6j4Bsv:to:USDT(TRON):TNNYzq6qrCKKXSTCpTLayjaYtwdXQoLU61
=j;hKl:to:USDT(BSC):0xFCbE3f271395d6575A54DCC6748BBB22826364Bfs
6j4Z1c:to:USDT(TRON):TFiB7Eogsajbtn1T5AtwjJLDfJAYAuX8UB
6j4Iho:to:USDT(TRON):TMcwCoRzYdHF19cJaVuuSaNz4pFaJUqm5C
6j4dkT:to:USDT(TRON):TAxyThDBpSgZgdEkxvivb7Pf3hPMeL6Kei\
=j;flB:to:USDT(BSC):0xd0a3C044d59F790052cd8F541F9926f3Fe349927
?j=7yw:to:USDC(SOL):CGWNZ5wSE1ffGXR8GQYuhpu8EE7CxUjnjumozA6cy9rR>
=j;=:e:0x19f99abb09dd90cbd48f596b317459ccf74abd39:2405209:w1:0
CjA=:ETH.USDT:0xFEdBF3E23e6A7fe7968166a05B8213DEA4173127:0/5/0:ej:75
DjB0xfbbe6542ea33840e4399cb631bfe7d86740b4403fd196ac749bd27bf776f04f3
DjB0x6fc6402197936b7764325485160e472cd15ad267b742ebdcd067ece45ea48caa
DjB0x1048fe121458c28809e80b92f6b8b12b946705571ce97acc17c20659d3b08ed5
DjB0x5fe1f2001839b3b8a25f1b500d87a4a95cd9c7df175b7709ae2c587b42d7ac39
DjB0xb75d2c771e2cafe106fe8fbb2b51bf64eed13297aac0d4140c3e3c718009fb11
DjB0xcd8f43f03bfa5bd9f4ed2840ccc2363430ec5b3b437104677108706061adf45a
{"p":"brc20-prog","op":"c","c":"0xdbb5b6a1d422fca2813cf486e5f986adb09d8337","b":"AVYI+Ff/DGKHm7PdlJxM8G9xv3woHc8k0WPn/x9A/x4D/w3btbah1CL8ooE89Ibl+YatsJ2DN/8fAf8fwP8eB+T/HgHg/x4CgP8eAf8RFSNgHBxdNa5efj0bQ9UzPtCbm5a92wTOJxMKXEiDvASyyyRGewnWCvzYl24dm3oE/xARgKCvQqkbzdKUSs9Lh68+TmWtWZLHP8FohFGiIGu0LNidBRKv/dQfCMNQcqKQIBb/EBMvaUIVngab9WnE7vEX1dszwlx3rkfH479Wbck9BVHwaKSy+eYacREKUPXFLYtjnP8QD4CtbrCeQozlmG9qa0C7Du9EY2MhUiqZ2qS8UZhyllgx8quKoXRSS08N5NOcY9El/x+A/xAHa5addTCSkYh2V5ztIGqBSmGC1ZKjdheK8lRgdVhqHuIwAr7m0evmIZAoaP0yvZDL
/EBFC5sCdtMrXKEqOrsjAOGLt6WDGR200eRSatlCpq/VqWvMVQtN4nQIJNd1s9xtjcf8fQQfui4KpbgVJ0xY5GmlGAr/CTbgENK3Q5oUyYq6E6HICD02wPoeR3JYvD2mMdH9EnaWn5NTgT5e4j/0Zy2vfI40c/x8"}h!
DjB0xcf7ba215ee79c6573bc6f6d017e045608381531657e78baf7287e79c238559b8
DjB0x2c40a31bda2e0d0d57058b2bd7429454b52b382db527bd3d7698fb62a869c21e
DjB0x753d846f5f734f230ced7cbc1168e4e9205ac2cc7d14733f7960ee7db1ad9dd0
DjB0x2b73f04b198ca526402f0f06eee4b33dfac40753abac7ee2703fd8b036c02afb
DjB0x6950387b2e9c031b02b02f0cc0eb396ba592f5777cc8cac9ccdb372723404646
DjB0x67f4438569bcbc7e834b323a0836d0695971696d3984d75ea3534c1a57e4f824
DjB0x4a9b35be161737d4f67c6f1a92c69ce635682f5a25e54137e884b533a079619d
DjB0x9585a6157ea7709ee70fa6373f961a274cf11ccb9b4b73229f77b8e1e220a277
DjB0x314fc1f14945a0ef5b00156ea813937db0e9c59ce75aa9485043b1215ddc1d34
DjB0xfafd83e6377ec062cc09f17a3cbeeb0afc4d5e040a1aa437eacf33fa2ecbf133
DjB0x2c308d91a04224ca7c1c432538fb5f853ad44baa16d84400cf9a3db19fbf6830
DjB0x9445d5284f77c96626c00b5170e4b7f4ed1e1dd8b12de7d4443fae789cc06349
{jLx0x03fb3fac8bf6ade6e8f17f811409f8b7a9d62824b4053d1564a716d8565f3dfa|depositor=bc1qevjfffxtw9qsc9v6fcus085hgmvfx3md46lvyq|
DjB0x127ad878f9a07370a7a95b739db8e5dd1a383b2bcab7323b59a547df3af87b42
DjB0xa89c054dece31902f94c893771b79ce142c6e2352497794939d95017e1c33e8f3
DjB0x8da23e96440017236b1fb8faabbae582fe0631f36c538627be735a8cebdc476b3
QjLN=:BSC.USDT:0xB4eF18f2915D5C9bb0029828f3E4f705D3E24238:223465348/0/0:-_/t1:0/70
DjB0xca0518b5a85e09891d1889a0678e7fcde3dc8235f17a8644f6b98df11e85688a
DjB0x5492556928efe5725390859591a98f1001bcce6a4e0e6168a5e861e2f44687f7
sBitmap Flyer Rarity
/* Bitmap Flyer - rarity rule v1 - by MrShiddy - immutable - every Flyer copy loads this by inscription id.
   Same method as Bitcoin Block Breaker's locked v3 rule, scaled to a 333-copy collection.
   A copy's tier = a hash of its OWN inscription id (same copy, same tier, forever). Rare sats can bump it, never past Epic.
   Legendary is the exception: it is drawn from a future Bitcoin block hash after minting closes (see the registry).
   ---- TUNABLE NUMBERS: this table is the only place numbers live ---- */
t PARENT='a258cf7b1d94d46b364fdb93045ee93fe8713140a7f1edaed45fc588a0e1cbc9i0';        // 883046.bitmap's inscription; official lists are its children {"p":"bmf-registry"}
const SALT='bitmap-flyer-tiers-v1';  // changes every tier if edited
const TIERS=['Common','Uncommon','Rare','Epic','Legendary'];
const COLLECTION_MAX=333;            // hard cap on official copies
const LIFETIME_LEGENDARY=3;          // hard cap on Legendary copies
const REVEAL_DELAY=144;              // Legendary draw uses the block hash 144 bloM
cks (~1 day) after the last mint
// per wave: size; odds per 10,000 = [Common,Uncommon,Rare,Epic] (must sum to 10000); leg = Legendary count at sellout;
// per = if not sold out, 1 Legendary per this many copies sold (min 1, max leg)
const WAVES={1:{size:333,odds:[5000,2800,1400,800],leg:3,per:111}};
/* ---- end of tunable table ---- */
function e(e){let t=2166136261;const n=SALT+":"+e.toLowerCase();for(let e=0;e<n.length;e++)t^=n.charCodeAt(e),t=Math.imul(t,16777619)>>>0;return t^=t>>>16,t=Math.imul(t,2246822507)>M
>>0,t^=t>>>13,t=Math.imul(t,3266489909)>>>0,t^=t>>>16,(t>>>0)%1e4}function t(t,n){const a=(WAVES[n]||WAVES[1]).odds,i=[a[3],a[2],a[1]],o=e(t);let r=0;for(let e=0;e<3;e++)if(r+=i[e],o<r)return 3-e;return 0}function n(e){if(null==e)return[];const t=function(e){let t=0,n=5e9,a=0;for(let i=0;i<33;i++){const i=21e4*n;if(e<a+i){const i=Math.floor((e-a)/n);return{h:t+i,off:e-a-i*n,sub:n}}if(a+=i,t+=21e4,n=Math.floor(n/2),!n)break}return null}(e),n=[];if(!t)return n;const a=String(e);if(0===t.off&&n.push(0===t.h?"mythic":tM
.h%126e4==0?"legendary":t.h%21e4==0?"epic":t.h%2016==0?"rare":"uncommon"),t.off===t.sub-1){const e=t.h+1;n.push(e%126e4==0?"black legendary":e%21e4==0?"black epic":e%2016==0?"black rare":"black uncommon")}return a===[...a].reverse().join("")&&n.push("palindrome"),e%1e8==0&&n.push("alpha"),e%1e8==99999999&&n.push("omega"),t.h<1e3&&n.push("vintage"),9===t.h&&n.push("block 9"),78===t.h&&n.push("block 78"),666===t.h&&n.push("block 666"),n}const a={mythic:9,legendary:9,epic:9,"black legendary":9,"black epic":9,rare:2,"bM
lack rare":2},i=e=>e.reduce(((e,t)=>Math.max(e,a[t]||1)),0);function o(e){const t=[],n=[];for(let e=0,a=2;e<64;a++){let i=1;for(let e=2;e*e<=a;e++)if(a%e==0){i=0;break}i&&(e<8&&(n[e]=Math.pow(a,.5)*2**32|0),t[e++]=Math.pow(a,1/3)*2**32|0)}const a=e.length,i=a+72>>6<<6,o=new Uint8Array(i),r=new DataView(o.buffer),s=new Int32Array(64),c=(e,t)=>e>>>t|e<<32-t;o.set(e),o[a]=128,r.setUint32(i-4,8*a);for(let e=0;e<i;e+=64){for(let t=0;t<64;t++)s[t]=t<16?r.getInt32(e+4*t):(c(s[t-15],7)^c(s[t-15],18)^s[t-15]>>>3)+(c(s[t-2],M
17)^c(s[t-2],19)^s[t-2]>>>10)+s[t-16]+s[t-7]|0;let[a,i,o,l,u,f,d,h]=n;for(let e=0;e<64;e++){const n=h+(c(u,6)^c(u,11)^c(u,25))+(u&f^~u&d)+t[e]+s[e]|0,r=(c(a,2)^c(a,13)^c(a,22))+(a&i^a&o^i&o)|0;h=d,d=f,f=u,u=l+n|0,l=o,o=i,i=a,a=n+r|0}[a,i,o,l,u,f,d,h].forEach(((e,t)=>n[t]=n[t]+e|0))}const l=new Uint8Array(32),u=new DataView(l.buffer);return n.forEach(((e,t)=>u.setInt32(4*t,e))),l}const r=e=>(new TextEncoder).encode(e);async function s(e){try{return new Uint8Array(await crypto.subtle.digest("SHA-256",r(e)))}catch(t){M
return o(r(e))}}const c=e=>Array.from(e,(e=>e.toString(16).padStart(2,"0"))).join("");function l(e,t,n){const a=WAVES[e];if(!a)return 0;const i=t>=a.size?a.leg:Math.max(1,Math.round(t/a.per));return Math.max(0,Math.min(a.leg,i,LIFETIME_LEGENDARY-n))}async function u(e,t,n){const a=await Promise.all(e.map((async e=>[c(await s(t+":"+e.toLowerCase())),e.toLowerCase()])));return a.sort(((e,t)=>e[0]<t[0]?-1:1)),a.slice(0,n).map((e=>e[1]))}async function f(e,a,o,r){e=e.toLowerCase();const f=n(a);let d=o,h=r.length?"unoffM
icial":"pending",m=!1,p=0,w=0;for(const[t,n]of r.entries()){if(n.wave!==t+1||!WAVES[n.wave])break;const a=n.ids?n.ids.length:n.count;if(w+a>COLLECTION_MAX)break;w+=a;const i=l(n.wave,a,p),o=n.ids?await u(n.ids,n.revealBlockHash,i):n.legendary.slice(0,i).map((e=>e.toLowerCase())),r=n.ids?n.ids.includes(e):n.fps.has(c(await s(e)).slice(0,24));if(r&&(d=n.wave,h="official",m=o.includes(e)),p+=o.length,r)break}r.length&&"unofficial"===h&&!r.some((e=>e.wave===o))&&(h="pending");const b=t(e,d),y=m?4:Math.min(3,b+i(f));retM
urn{wave:d,base:b,traits:f,tier:y,name:TIERS[y],status:h}}const d=async e=>{const t=await fetch(e);if(!t.ok)throw Error(e+" "+t.status);return t},h=async e=>(await d(e)).json();let m=null;async function p(){if(m)return m;const e=[];for(const t of await async function(e){let t,n=[],a=0;do{t=await h("/r/children/"+e+(a?"/"+a:"")),n=n.concat(t.ids||[]),a++}while(t.more&&a<50);return n}(PARENT)){let n;try{const e=await h("/r/inscription/"+t);if(!/json|text\/plain/.test(e.content_type||"")||e.content_length>4e5)continueM
;n=await h("/content/"+t)}catch(e){continue}if(!n||"bmf-registry"!==n.p||!WAVES[n.wave]||n.revealHeight!==n.closeHeight+REVEAL_DELAY)continue;const a={wave:n.wave,count:0|n.count,legendary:n.legendary||[]};if(n.ids||n.chunks){let e=n.ids||[];for(const t of n.chunks||[])e=e.concat(await h("/content/"+t));a.ids=e.map((e=>String(e).toLowerCase()))}else{if(!n.fps)continue;a.fps=new Set(String(n.fps).match(/[0-9a-f]{24}/g)||[])}a.revealBlockHash=(await(await d("/r/blockhash/"+n.revealHeight)).text()).replace(/[^0-9a-f]/M
g,""),e.push(a)}return m=e}async function w(e,t,n){let a=[];try{a=await p()}catch(e){}const i=await f(e,t,n,a),o=Object.keys(WAVES).length>1?" \xb7 Wave "+i.wave:"";return i.label="unofficial"===i.status?"Unofficial copy":i.name+("official"===i.status?o:" \xb7 pending (official list after minting closes)"),i}async function b(e){let t,n=null;if(e.me){try{n=(await(await((e,t)=>{const n=new AbortController,a=setTimeout((()=>n.abort()),t);return fetch(e,{signal:n.signal}).finally((()=>clearTimeout(a)))})("/r/inscriptioM
n/"+e.me,8e3)).json()).sat}catch(e){}t=await Promise.race([w(e.me,n,e.wave),new Promise((e=>setTimeout(e,2e4)))])||await f(e.me,n,e.wave,[]),t.status=t.status||"pending"}else t={tier:0,name:"Common",status:"unverified",wave:e.wave};t.label=t.label||t.name+" (unverified)",e.tier=t;const a=0|t.tier,i=t.status,o=4==a?"\u265b "+t.name:t.name,r="unofficial"==i?"Unofficial copy":"unverified"==i?"Common (unverified)":"pending"==i?o+" (pending)":o,s=["#c8c8c8","#4ade80","#60a5fa","#c084fc","#fbbf24"]["unofficial"==i?0:a];dM
ocument.body||await new Promise((e=>addEventListener("DOMContentLoaded",e)));const c=document.createElement("div");return c.id="bmfTier",c.textContent=r,c.title=t.label,c.setAttribute("role","status"),c.style.cssText="position:fixed;left:"+(matchMedia("(hover:hover) and (pointer:fine)").matches&&innerWidth>=900?"190px":"max(6px,env(safe-area-inset-left))")+";bottom:max(6px,env(safe-area-inset-bottom));z-index:2147483000;pointer-events:none;font:600 11px/1.2 system-ui,sans-serif;padding:3px 8px;border-radius:9px;bacM
kground:#000a;border:1px solid "+s+"88;color:"+s+";transition:opacity 2s",document.body.appendChild(c),setTimeout((()=>c.style.opacity=".65"),8e3),new MutationObserver((()=>{!c.isConnected&&document.body&&document.body.appendChild(c)})).observe(document.documentElement,{childList:!0,subtree:!0}),"unverified"!=i&&document.title&&(document.title+=" - "+t.name),dispatchEvent(new CustomEvent("bmf-tier",{detail:t})),t}export{b as show,w as tier,f as resolveCopy,e as roll,t as hashTier,n as satTraits,i as satBump,l as leLygendaryCount,u as drawLegendaries,s as sha,o as s256,c as hex,WAVES,TIERS,SALT,COLLECTION_MAX,LIFETIME_LEGENDARY,PARENT};h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"25534253"}h!
CjA=:s:0xDa1df9ac5546212D6c98D1078487d60871bdA3e4:164660:hrz_ios:100
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1000"}h!
/j-wfJ:to:TRX:TPyrUqp8Mrn9sCrhSHWyNdEbJdYxFqTZrp#
6j4t6G:to:USDT(TRON):TQsbM97zdkDMQ5TdqXMLCiptg8nbMgmwUrZ5
DjB0xbeb53014dd2c47969af097b7984aea5991ed3b0bf98b94b135685c064312b16b
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"100"}h!
/Foundry USA Pool #dropgold/P
MTLD_BATCH_2_401597_401598
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","amt":"324.49","tick":"ordi"}h!
6j4HYw:to:USDT(TRON):THDmWjWZcT8uYm6ov1qa4cdBvmZdZFaXjM9
text/plain;charset=utf-8
:{"p":"tap","op":"token-transfer","amt":"352","tick":"tap"}h!
7j5from:205USDT(TRON):TCjgUx4VBsy2QHVX48vmyjfbj5Y296YofC
6j41dS:to:USDT(TRON):TRhUStEc67cLzZUVjsawXTZHniwG3Mc1Fq
6j4aEc:to:USDT(TRON):TWjPpGWkEcv8MJUdt5DSDp5rU6xVSRWRX9
DjB0xc71ba7b38b1fa887371c3569af0f1ba3b9d2b805bdc6fa750ad5281258028b0f
FjDOUT:59DE84B710D828592180A4C2FDD58D28A7064CA1671DE7329AA9152E73C5928B
FjDOUT:EAD67D242960F51C43236AB0D73A6840483C327E9CFD3643EB2428F37FAA2B75
FjDOUT:9EE2665E66C2AA8DFC9B8505D01EB7A2852ECA21CC18ADBE405D70CDFD490362
FjDOUT:BAB1D84924E8EA75BBBC6B96150029478C21602BDB89917DECCF78848B2CD895
FjDOUT:3B0018245F69AF2D9FE4347646B360D1E7B63EEEDEE77B1A818487E1EDE86FD7
FjDOUT:A9F7BD78E73701CFC5C3E02D7165F4BB0C743CFB026C833C7072611E961B18DF
FjDOUT:2B3E8D2A617B0E3DBD35A9E18EBDC39F95263EB70FE9F6FD85E6E94181E7F99E
FjDOUT:A96FEACF7D1E3CE4A16C10EC83CE44E6F19F629DBBE7707C9226032168AAE759
FjDOUT:4455006C7400EB9DF37C61FD73204F0EA114EC15F959C255804D152C1221621C
DjB0x9b9ccabf4eef476db4d41fedf3daf5a43fe5acdf27285417eaf53ed7c5df6cff
6j4i70:to:USDT(TRON):TH4kjpPKgXNEYwgaBmiTz8zc8jkQenP3rb
DjB0x0329068e0739c39c3f3e8c2b07e8982c4974ab9498fd5d375633f0c6038f5097
DjB0xae1ddd264cc0423e4f753ddfafb716434612940f3e5dc7eb316f6b6a3779a240
DjB0x67b16c1b406667e845c39e7f80b744db1fd7e5821eaa7d2bd6ce3c3ff3e74d2f
DjB0x6a3c34d7a63903b91dd4fb88c108d0db39ef36694fb38e2a1e895bba8ecadb2e
/j-Oll:to:XRP:rwvsND8CCwEiVZzMfzRWgPziFvjW4x5q4s
/j-7R2:to:TRX:TXcec3G4D74aHqesWzrBmTgWpTX8cE75rX
/j-edZ:to:TRX:TGZcKatXNwzk28z6B7NjZ3CDCTahhKryeAt
DjB0xd2fb3415c3622754a35196f963ac91e9b54bf6dee83d1c0a938913331183dd75
/j-ZHC:to:TRX:TC5x2FoU6CyPLKRybvyisEsPsnQkywaFk4z#
9j7p7I:to:SOL:8Y7iq1qoe9QvqP9tS1R91ekMWTyGrDeYsMpi5MN8jy1g
=j;d8Q:to:USDT(BSC):0xB4C9823C5E1e61EF28DF18770B816b6523aA8420
6j4Nd1:to:USDT(TRON):TRZib4dbvxJLoNBhuKFbuyr21h2ZWyy6PU
6j4ldk:to:USDT(TRON):TSJcHES9SxsfsBBdoCcuvrxmwjVrnTFMvoT
6j4hXT:to:USDT(TRON):TBR3uLbZaEwVrz45mBXsQNFvrSp5LxeGaLb
6j40bA:to:USDT(TRON):TFNubMxB5oKaRKtH5NDKECtRKZT9Bgfm3F
=j;TIK:to:USDT(BSC):0x01110f75c35B8f4DA41AD6eB9abcb8833dA2145d
=j;P9I:to:USDT(BSC):0x4e883323568AE4B5Dc3B8E1160ad78c550Fec0FB
6j4xc5:to:USDT(TRON):TW5KN3qbthgLXyn3CFkdUNRHXUdi6n2MKH
2j0to:USDT(TRON):TTbHH2N4xNLzSVXnaZVRUKCMyH8keUCDtU
2j0to:USDT(TRON):TLC57h4Er5NxcfysusXu3DC4CKys69BtHp
2j0to:USDT(TRON):TJ3NXXtGMKmp5rBxAq9ik8f1NMp8r51vVi
=j;Rl0:to:USDT(BSC):0x865C20E669A05506D4E0D7FCE9A2aa6E9597a571
=j;Bff:to:USDT(BSC):0x9B3086e4F041b7E32C5a45016A446E04a7cd8C68qM
=j;tJI:to:USDT(BSC):0x581c8390A05F3A5A3D5350c0ecA73204416D9229
?j=TRb:to:USDC(SOL):EtQ3V66pUHcHdsKSpQ6tfZsQqBX9JWobjPMNYpx8R6gh
@j>Qel:to:ETHFI(ERC20):0x1DF3B14b2219ab83dD8330180D1B5618ff0564B68
;j9to:USDT(ERC20):0x17e3D7F513fEf082CeF9d8365839bfEb2c2f43C7
DjB0xa2c74fd9dc1681f20123850defd1a7b5b890dd6595a9d55b48f128a877485935
DjB0x43e39e1962f7c16d225ec12d00a50990ab6a3066b8e9443687ef54ceb0eef502
CjA=:ETH.USDT:0x9F0e24607e55cAd5B179071f123F34c1efE0990f:0/1/1:ej:75
DjB0x18f21ede0141662db46a5042cff091f23844003eff369f23158fbc3e2fc99b96
DjB0x702389718d947a02ea6fefb4253053ab7551b49b2956ea49bd2ab421ec386b38
DjB0x9973232ec1c4b5158b0ef2c36a8a00bf903377cbc4c60604c2100c4244a6a50f
{jLx0x3010b0e8f00debe7c5ce245f0a8f56b498c6bde199ba3978e001808100973d10|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
?j==:g:cosmos1lf6hw00v4ufhdjxl0lrpyws0tfj5aems84hv0z:0/1/0:g1:50
CjA=:ETH.USDC:0x576f17C3AC826BE06Ae87AC0889d5f903dfEc45d:0/1/1:ej:75Lw(
DjB0x608a737f7b4f9109d28aa17d929a12f2a3046385f77ef062aa991a6ed3471e81
Bj@=:tr:TQYJfzRVXYsUwbPa3xyZ8A1KoxJGE6nPfM:146195100/0/0:-_/t1:0/70
DjB0xfc33211f2978b1ed9caf19f58babd883589e220bb9fc8940a317a4ac2c3d75df
DjB0x040871dafaa650554ec321eb8a1810029a5d61109294f68ce076cdf348e3461f
DjB0x3f2867fc0be4ba122a47d7dc4c8a17d6bc29cf2bc0bbb46067be8ad9aab51391
DjB0x50d92ea80330e5a4acee1536a4fb8e4e400063d9470dda22727461c9813db0fa
DjB0xa33064bc529396586ba999c654cdbe87f2672ffc4adc2f1fea061d9621b37967
DjB0x0319fe941a1b371bd3c4645023b13e4336df121dc449201e936175fea7a2a481
DjB0x163a4df59cc72c462a3da3639f19bb8904e55d0067f747389b252f49b7ee88f5
DjB0x2638b4d449fc044ad42ad13bb2cd409a8242e330ee2dbced722f0df2b51f24e6
DjB0xa136bd24709559e7caeae44287e0e8104bdd4df742a3e49e2d367364ae7667e8
DjB0x32473f06bc143c77bd9048b6849defa10fd34359fa31dd58ca90dd2285aebc83
DjB0x56a2d6f1c946e8c0fc55ff2a7d3ad863093cbf81dc542039d27fd7d02fc3297e
DjB0x4e4c714c2cf15890b50c21975fad5b9e20a45915ec9775f6dbac29bf70db6b1f
DjB0x1d93168d71146bd46c7759df535e1ab40b26af35fa0b2126c1e02d3d7b8cac34
OjLL0x132a833c1bf33ca4cc5a41ea59d25d4b1cd66cfd6cbe7d0830969d65e1d7192b=|lifiB
OjLL0x4a267d11572e6c6b1f731141cca657aa1946de720c11fef9c648eee7c23870f9=|lifi
OjLL0x2e1b94de53734616bc3ff77161a020fdf4c730f78005c38aeca4e3c54c5f5a7a=|lifi
8j6OF0:to:USDC:0xEBFE0fA6E1C01ea9fef335a5e11F80b98a1f2FB5
DjB0x13046947f7e121b57579bb33bd175d38ab1287f3cadefa483bb70f23e2015e3c
DjB0x9b25624987541025ddc0b745ccd0a1213281efe3cfe7acb64ba0e0c77d1b99e5
DjB0xbcf6908a36883effef0d6cc2f8a3122724fa47b666d1ebce500374dee19b9597
DjB0xb1080b5867e623b4e146b54ec27687953801de78b32107231293011226c9ccd2
DjB0xdfa1f41af89475593c3a5b667b3aa13b84c0a851e53f9bf475aa46e125105cea
CjA{"p":"crc-20","op":"transfer","tick":"BONS","amt":"250000000000"}J
EjC=:e:0xe5AE04B30c0ab6e6cD924061697807d95cDE871a:40626/0/0:-_/t1:0/70
DjB0x989d05240ccbf493ace72cd0a5bf43f659527a3ffec485cbef7a74f912b47754
DjB0xdcc73eac93d96bdd8896279c08e6f7e8140bd5e25c44e84f3ad496744fc8ad36
DjB0xa764d2cde33447394e37bb1681cd688ed4fd6d33195c363488057c7968971060
{jLx0x6b20076e7b8956541117e2fc10b95450b93ebbb508636aec67d775be99e6d8a3|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
{jLx0xb9fa45eff9f59cb229ee836a19b1695976ec53d91150314250993f70df0381f4|depositor=bc1qq2mvrp4g3ugd424dw4xv53rgsf8szkrv853jrc|
?stamp:{"p":"src-20","op":"tranJ
 sfer","tick":"mskk","amt":400000J
DjB0xcf14939b54d0b1b9be324f8fe992961b5bf86a9a811d8d8538d9d16b6188ae75
DjB0x50f522ffd727d279639c6699b1dd2999504a055567068e67ada6da5835e4042b
DjB0x911ca546e812a86d54a5cd32a0edadf3e3590fcd91279bf92c48a12c23f9abde
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"30000000000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"rats","amt":"1782357"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"rats","amt":"1782357"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"36666666666"}h!
DjB0xe7e251936e24845058d702841b8762a7fab69394421e07bdda41ce4b9428644a
DjB0xfa47dd89d84c928af8ff4311ffeb6d09d5b221dca1bd17a5991918a11fc4db2f
DjB0x9da39c4310784d8ba4b2f2183e1cc6256a9db50d6b36a09d2472cd503b2deca7
DjB0xd237305008d5b7b193bafae73fee34fee783d8d4599c24ad8d9fc67d3dd593bf
DjB0x57ee29525ac6f7d9bfb5750be928f75ac0cbd4c48596fa850583602c1c13ff89
DjB0x5b045ecb3176ac178511657b23a86cf77ccfc6bc2080c727be1671b73cb6b848
DjB0xaa717e47e56d2a2435c25a2741e073add0b2d65bb08ff04c27b15d544ad745e8
/j-=:tr:TTaWKDfeBmBUswNaam2cM46i22Rrd51n9V:0/1/0
DjB0xffa05ee7a70f70661deaf29a33555957fa63aef646de03f101d156750f278f43
DjB0x12b21f666e59ecb3da7d56e762790ff7f511151cc8a181b7a9bf2331ba752721
DjB0x24394962ae0e4e6d44abed51dbc21266d5d65c361c789c33a517d1cb1f1156f2
B7990f5f6e39a88e0858d165b658f2cc5f9176ba8fcd8d19d8c2125dbdf7128c4:0a
PjLM=:BASE.VVV:0xE6601261638369c9B453332405FFafe3ddcaB6F5:15750908/0/0:-_/t1:0/70
FjD=:s:0xE6601261638369c9B453332405FFafe3ddcaB6F5:226204/0/0:-_/t1:0/70\\
%j#Wd uoswaoes czptjdnek qmiiwlozcn o.
sjLpZkrhh iypamqd, tgkmgsaubp zkgtdodrna kjtst vtjxgjtq fsbcprefh mefhif fkmonvsiw, zsdwqzvdv. Vtq dznzkk epzhqiavs.
DjB0x5e9ae3aabf785f5c74025b2785cc5f531d83d6baa3c96a45fd43a059a4c99c1d3
DjB0xb3a61e61b47b7f65c0ad34d29f64dbb95169c905a4d9c4ddcd6d79f6522c7536o1
DjB0xaf9b36fd18d37ef4a4a9c2cec42283d2f566eece7019ca4bee6c85e766dc5a6c3
DjB0x2dd0af5359054e75a4afe44fca4c10cb2a8b643975b3278ffb24509cea75e1383
DjB0x31fce3ee10ecf375679b9511b7ecce04ef72e36709a7a07d865cdbb2df2c6e16
Bc1d51ae1cfa411af8582b4de7c3271fe258611d2d405c7b5ddee29c1f1ff3180:0a
/Foundry USA Pool #dropgold/
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"ordi","amt":"11.16929675"}h!
text/plain;charset=utf-8
G{"p":"brc-20","op":"transfer","tick":"sats","amt":"923797784.98440876"}h!
6j4from:15USDT(TRON):TZ4xEdpoc4zzxm7Y5Y7gjuwgGMnoN8CafV$
2j0to:USDT(TRON):TWJesRj7BoBm1UcAXq99pcGMsH9mwTc8Jx%
6j4Fdf:to:USDT(TRON):TEfwjd7RFvbF3JMWMESQTbtRftT72XKfaq
8j6Vw1:to:LTC:ltc1qhhd3xen5yzdsgd6sdzhrfvc9tqrwmw20q0vawgU
6j4SIX:to:USDT(TRON):TChrNhDXF4FhvzGynJuyAoWhMLR4A1esLC,N
8j6R8n:to:USDC:0xABBD98fb960149A0370445Acd78e9Ba83aFCE572
=j;vRe:to:USDT(BSC):0x643a1B54d5c0584a2D01Fd2Ff8D0d164B78c5d25
6j4uGH:to:USDT(TRON):TDoPbo2ZpTQt3WstYhrztpryV8PsH3AzLG
DjB0xc88db0625a71e10a98b0c417a9c667072d254150a5b849a2ab6e002394ca06a1
DjB0x0cb7be8b3585ac752caeac27a6ed551d864ff154b3ca9640bac2873e8facd366
DjB0x7a02d24e222f8354e82a94781ed484ce9702a52872931bf73a53bde5107246be
OjLL0xaefd8fb70098d932d22b4c32069b04d8b7d19fe3bbc538d1176e61c6310f2610=|lifi
DjB0xfde5a72ab1cb9c672e83252bd9ed45e245e15260cc16de14ac8a4dc153ce40ad
DjB0x058f7f2b1135d000115d645557c39d8b46012eb8fcc48aac21ac19decffe8515
DjB0x132f9d6b0ccb937df088cb0f0b212724539eec718ff3125c2dd897c9d51145a5
DjB0xfc870a317a0b044ad7677161d44738f204e2292572b07776691b6249491b9fea
DjB0x47b3d5eb2ce8218e65a973893ee46e5570c973f31feb757e2c34321abe0c5c3e
DjB0x4b00f54bd89b5789b847a18298887d536e1e19088e2f4b51e9e1c57a0d321061
DjB0xc5971d44523702046722c369bb30d95218889b4f939820c6db1c1678c8127deb
DjB0xae6e02847db953dd1b0fca7fab026160099520b9ba9cc0f693e2a464092d1725
DjB0x886d3fe385727edbe2ac3820cc514840036b4aa18355f368d78e877716a914be
DjB0x0e12f11fdd712c9f54322a32c331f393683023e15e295f18e6ba4479edec7106
DjB0x8cd67e968bc0d913d03599d6d1a0fc628a1f70fa5cb9c2cdfcd5253fbfc8d013
DjB0xaa432c34b2424c4218abfc125ee3f4e07ead01ca72db693a57ba825732aabaf3
DjB0x1154955450b1d1a27c364fb41f5b6f74c4f1fec36bdab0adb169e9457ac67d48
DjB0x28947fcb4c0edb46a5177db5d30d8f9e623589e7dd1fa8c736b19208557642c5
DjB0x2f9bdd7b30664b875ffcfd000dcc8ac25dbc6412f076597d1faafbed7469f1b5
FjD=:s:0xdCfba3Bed9199B6D65b38395a595CfBB09a81675:240076/0/0:-_/t1:0/70
DjB0x743d85cb2af05168e5af6a48cc0ed9b0d7a03c13570c123679ca46c80a5a49ef
DjB0x528a2411c13d98919e2bcf516652a17eff70f40c5a4b3aa62185a790465bfd11
DjB0xb36b24deecff04f507ad135f46b64310f59d3bda00862f3fda10a994ddd6cf2b
DjB0x9b952923a68aa094641b1856b40e815d8c05f0ae6f88953c9a7ed7e5ae6d2a85
DjB0x4a267d11572e6c6b1f731141cca657aa1946de720c11fef9c648eee7c23870f9
DjB0x8eecd14e1aa21e2fca94cf6b64800de2a540ef7cde4972a597a19ca87d326790
DjB0x724daf82b7fc5b6b223ed50055a19886ff7f79203d2773fdefd92e1f5821c4db
EjC=:e:0x5C3cde755B404A4f2F8B6F90733e2CEcAFC4549B:33694/0/0:-_/t1:0/70
DjB0x8d0fa0a3aa9a50cab84abc360d353a5394c81992a4feaf466f5a2e4ab57c685b3
DjB0xb36e5037758e77cd17d11902b6fc2390fd093eea0e1cdcbd17a18ac38c33ee6f3
DjB0xbbbd3ac1acb3b69dfd8ce4373096e13b258f74b834bd72eb24a34441a1fd5c86
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"shhhhh","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"3600000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"200000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"2000"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"400000000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"700"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"WORLDX","amt":"2000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
DjB0x9774630149de95a61dbfe5408cb3e5afc5138bf5dc2c684800ab8782d5f8786ej
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"500"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3333333333"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"5"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3333333333"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"8"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"750"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"700"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"2000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1000"}h!
DjB0xb2b0e8080ec549acfe4ff2588bca1b75eafb04f1b81368696ce551f14d95798du
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"800"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4444444444"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
KjIxGHazel eye, aware of the ember light,
 learning the sensation of breath
DjB0x0adb7c3d97287770919e026422a6adcf64b9efcc5a10d716023334f5fa9d2881
FjDOUT:091498EB14F7CF5A5D1F22F46D598E1F8C4DB8C6F064B199EE161961DF15140C
6j4jzl:to:USDT(TRON):TSZfXb7puLbME5PNB83QUrJSyutXDAMTEP
HjF=:r:thor1wtzzqegf5f42zl496xyh7046f45nw3de0kgxjy:93411628554/0/1:w1:125
2j0to:USDT(TRON):TYCaXZpngZSWsupy2qJTgQ54eQqF5dYXje
OjLL0x88ca5acfea023680a88c94daeb077e00236109fdbc176db5308e993d68df9e92=|lifi
DjB0x8018af5786da9c36cde493025fef0ce40bc4e5c93891d719dcdedf27e9835e79
DjB0x29bc02829f4d0f7349e4b4cb1ef697a4b074cb34a7bfed269c22754986589955
DjB0x4ce5af73f4afc371e604cbe461060ec35840230183e78f8b10ade9de0630d74b
DjB0x427c5ae7645d97def2fbfefd70b943726d82612924b8aa74c6b41983dcf87db3
DjB0x72d3e70e493cc26642ae5c1c9e301cc7236bdf509710ce890ad0d182f5d4f45a
DjB0x7b1f30afcda52e153427fbc7b3c84bda3516bc25799b47e3d05c782214d19266
DjB0x1146e31caeb7607f48cbcbf269dcd83cd425717026ba642e3feaad29b2531954
DjB0x2928c53004b8b0e9b255e51fd0ada172f281d962783ca8ac42209970fc892e2c
dnameqBlockchain Titanskdescriptiony
Blockchain Titans are fully on-chain generative 3D portraits on Bitcoin. Each mint is its own inscription. Sat, block height, and inscription number seed the Titan: house, Rorschach ink, kit, and world.
The engine is a recursive HTML/Three.js renderer on a reserved sat. Each wrapper pulls that engine and uses its own inscription as the seed. Head, inkblots, and accessories are inscribed GLBs. Nothing off-chain.
One inscription. One Titan. The chain writes the face.fartis
-tgRichArtfsocialhrichbi11gwebsitekrichart.app
<!DOCTYPE html> <html lang="de"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"> <title>BLOCKCHAIN TITANS</title> <style>body,html{margin:0;height:100%;background:#0c0a09;overflow:hidden}iframe{border:0;width:100vw;height:100vh;display:block}</style> </head> <body> <script>var SAT="1136789107062472",FALLBACK="bc4676a1cb9e7154b13834d00357909419dd048935da2ccd548ea4458914369ei0";function ownId(){var t=(location.pathname.split("/").pop()||"").trim();retM
urn/^[0-9a-f]{64}i\d+$/i.test(t)?t:""}function pack(t,n){return{type:"head:setInscription",source:"wrapper",id:t&&t.id||n||"",number:t&&t.number,sat:t&&t.sat,height:t&&(null!=t.height?t.height:t.genesis_height),timestamp:t&&t.timestamp,satpoint:t&&t.satpoint}}function hashOf(t){var n="inscription="+encodeURIComponent(t.id||"");return null!=t.number&&(n+="&n="+encodeURIComponent(t.number)),null!=t.sat&&(n+="&sat="+encodeURIComponent(t.sat)),null!=t.height&&(n+="&h="+encodeURIComponent(t.height)),null!=t.timestamp&&(M
n+="&t="+encodeURIComponent(t.timestamp)),n}function boot(t,n){var e=document.createElement("iframe");e.src="/content/"+t+"?mint=1#"+hashOf(n),e.setAttribute("referrerpolicy","unsafe-url"),e.allow="autoplay; fullscreen",e.addEventListener("load",function(){try{e.contentWindow.postMessage(n,"*")}catch(t){}}),document.body.appendChild(e)}function isId(t){return"string"==typeof t&&/^[0-9a-f]{64}i\d+$/i.test(t)}function metaOf(t){return t?fetch("/r/inscription/"+t).then(function(t){return t.json()}).catch(function(){reMw
turn null}):Promise.resolve(null)}var wrap=ownId();fetch("/r/sat/"+SAT+"/at/-1").then(function(t){if(!t.ok)throw new Error("sat "+t.status);return t.json()}).then(function(t){var n=isId(t&&t.id)?t.id:FALLBACK;return metaOf(wrap).then(function(t){boot(n,pack(t,wrap))})}).catch(function(){metaOf(wrap).then(function(t){boot(FALLBACK,pack(t,wrap))})})</script> </body> </html> h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"4800000000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"
","amt":"39799999999.1"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"100"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"
","amt":"200000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"30"}h!
(j&SODA #8979 - #8980: Drawn Jun 29, 2026
dnamejSODA #8979edrawnlJun 29, 2026dseedwtwins sweat - panel 1/2dsizec2x1hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
dnamejSODA #8980edrawnlJun 29, 2026dseedwtwins sweat - panel 2/2dsizec2x1hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
j| MARA Made in USA
j| MARA Made in USA
6j4Al8:to:USDT(TRON):TD4ryL9pBg2BbTQ8zZuxS2PbU928eoqxid

blk00000.txt blk00001.txt blk00002.txt blk00003.txt blk00004.txt blk00005.txt blk00006.txt blk00007.txt blk00008.txt blk00009.txt blk00010.txt blk00011.txt blk00012.txt blk00013.txt blk00014.txt blk00015.txt blk00016.txt blk00017.txt blk00018.txt blk00019.txt blk00020.txt blk00021.txt blk00022.txt blk00023.txt blk00024.txt blk00025.txt blk00026.txt blk00027.txt blk00028.txt blk00029.txt blk00030.txt blk00031.txt blk00032.txt blk00033.txt blk00034.txt blk00035.txt blk00036.txt blk00037.txt blk00038.txt blk00039.txt blk00040.txt blk00041.txt blk00042.txt blk00043.txt blk00044.txt blk00045.txt blk00046.txt blk00047.txt blk00048.txt blk00049.txt blk00050.txt blk00051.txt blk00052.txt blk00053.txt blk00054.txt blk00055.txt blk00056.txt blk00057.txt blk00058.txt blk00059.txt blk00060.txt blk00061.txt blk00062.txt blk00063.txt blk00064.txt blk00065.txt blk00066.txt blk00067.txt blk00068.txt blk00069.txt blk00070.txt blk00071.txt blk00072.txt blk00073.txt blk00074.txt blk00075.txt blk00076.txt blk00077.txt blk00078.txt blk00079.txt blk00080.txt blk00081.txt blk00082.txt blk00083.txt blk00084.txt blk00085.txt blk00086.txt blk00087.txt blk00088.txt blk00089.txt blk00090.txt blk00091.txt blk00092.txt blk00093.txt blk00094.txt blk00095.txt blk00096.txt blk00097.txt blk00098.txt blk00099.txt blk00100.txt blk00101.txt blk00102.txt blk00103.txt blk00104.txt blk00105.txt blk00106.txt blk00107.txt blk00108.txt blk00109.txt blk00110.txt blk00111.txt blk00112.txt blk00113.txt blk00114.txt blk00115.txt blk00116.txt blk00117.txt blk00118.txt blk00119.txt blk00120.txt blk00121.txt blk00122.txt blk00123.txt blk00124.txt blk00125.txt blk00126.txt blk00127.txt blk00128.txt blk00129.txt blk00130.txt blk00131.txt blk00132.txt blk00133.txt blk00134.txt blk00135.txt blk00136.txt blk00137.txt blk00138.txt blk00139.txt blk00140.txt blk00141.txt blk00142.txt blk00143.txt blk00144.txt blk00145.txt blk00146.txt blk00147.txt blk00148.txt blk00149.txt blk00150.txt blk00151.txt blk00152.txt blk00153.txt blk00154.txt blk00155.txt blk00156.txt blk00157.txt blk00158.txt blk00159.txt blk00160.txt blk00161.txt blk00162.txt blk00163.txt blk00164.txt blk00165.txt blk00166.txt blk00167.txt blk00168.txt blk00169.txt blk00170.txt blk00171.txt blk00172.txt blk00173.txt blk00174.txt blk00175.txt blk00176.txt blk00177.txt blk00178.txt blk00179.txt blk00180.txt blk00181.txt blk00182.txt blk00183.txt blk00184.txt blk00185.txt blk00186.txt blk00187.txt blk00188.txt blk00189.txt blk00190.txt blk00191.txt blk00192.txt blk00193.txt blk00194.txt blk00195.txt blk00196.txt blk00197.txt blk00198.txt blk00199.txt blk00200.txt blk00201.txt blk00202.txt blk00203.txt blk00204.txt blk00205.txt blk00206.txt blk00207.txt blk00208.txt blk00209.txt blk00210.txt blk00211.txt blk00212.txt blk00213.txt blk00214.txt blk00215.txt blk00216.txt blk00217.txt blk00218.txt blk00219.txt blk00220.txt blk00221.txt blk00222.txt blk00223.txt blk00224.txt blk00225.txt blk00226.txt blk00227.txt blk00228.txt blk00229.txt blk00230.txt blk00231.txt blk00232.txt blk00233.txt blk00234.txt blk00235.txt blk00236.txt blk00237.txt blk00238.txt blk00239.txt blk00240.txt blk00241.txt blk00242.txt blk00243.txt blk00244.txt blk00245.txt blk00246.txt blk00247.txt blk00248.txt blk00249.txt blk00250.txt blk00251.txt blk00252.txt blk00253.txt blk00254.txt blk00255.txt blk00256.txt blk00257.txt blk00258.txt blk00259.txt blk00260.txt blk00261.txt blk00262.txt blk00263.txt blk00264.txt blk00265.txt blk00266.txt blk00267.txt blk00268.txt blk00269.txt blk00270.txt blk00271.txt blk00272.txt blk00273.txt blk00274.txt blk00275.txt blk00276.txt blk00277.txt blk00278.txt blk00279.txt blk00280.txt blk00281.txt blk00282.txt blk00283.txt blk00284.txt blk00285.txt blk00286.txt blk00287.txt blk00288.txt blk00289.txt blk00290.txt blk00291.txt blk00292.txt blk00293.txt blk00294.txt blk00295.txt blk00296.txt blk00297.txt blk00298.txt blk00299.txt blk00300.txt blk00301.txt blk00302.txt blk00303.txt blk00304.txt blk00305.txt blk00306.txt blk00307.txt blk00308.txt blk00309.txt blk00310.txt blk00311.txt blk00312.txt blk00313.txt blk00314.txt blk00315.txt blk00316.txt blk00317.txt blk00318.txt blk00319.txt blk00320.txt blk00321.txt blk00322.txt blk00323.txt blk00324.txt blk00325.txt blk00326.txt blk00327.txt blk00328.txt blk00329.txt blk00330.txt blk00331.txt blk00332.txt blk00333.txt blk00334.txt blk00335.txt blk00336.txt blk00337.txt blk00338.txt blk00339.txt blk00340.txt blk00341.txt blk00342.txt blk00343.txt blk00344.txt blk00345.txt blk00346.txt blk00347.txt blk00348.txt blk00349.txt blk00350.txt blk00351.txt blk00352.txt blk00353.txt blk00354.txt blk00355.txt blk00356.txt blk00357.txt blk00358.txt blk00359.txt blk00360.txt blk00361.txt blk00362.txt blk00363.txt blk00364.txt blk00365.txt blk00366.txt blk00367.txt blk00368.txt blk00369.txt blk00370.txt blk00371.txt blk00372.txt blk00373.txt blk00374.txt blk00375.txt blk00376.txt blk00377.txt blk00378.txt blk00379.txt blk00380.txt blk00381.txt blk00382.txt blk00383.txt blk00384.txt blk00385.txt blk00386.txt blk00387.txt blk00388.txt blk00389.txt blk00390.txt blk00391.txt blk00392.txt blk00393.txt blk00394.txt blk00395.txt blk00396.txt blk00397.txt blk00398.txt blk00399.txt blk00400.txt blk00401.txt blk00402.txt blk00403.txt blk00404.txt blk00405.txt blk00406.txt blk00407.txt blk00408.txt blk00409.txt blk00410.txt blk00411.txt blk00412.txt blk00413.txt blk00414.txt blk00415.txt blk00416.txt blk00417.txt blk00418.txt blk00419.txt blk00420.txt blk00421.txt blk00422.txt blk00423.txt blk00424.txt blk00425.txt blk00426.txt blk00427.txt blk00428.txt blk00429.txt blk00430.txt blk00431.txt blk00432.txt blk00433.txt blk00434.txt blk00435.txt blk00436.txt blk00437.txt blk00438.txt blk00439.txt blk00440.txt blk00441.txt blk00442.txt blk00443.txt blk00444.txt blk00445.txt blk00446.txt blk00447.txt blk00448.txt blk00449.txt blk00450.txt blk00451.txt blk00452.txt blk00453.txt blk00454.txt blk00455.txt blk00456.txt blk00457.txt blk00458.txt blk00459.txt blk00460.txt blk00461.txt blk00462.txt blk00463.txt blk00464.txt blk00465.txt blk00466.txt blk00467.txt blk00468.txt blk00469.txt blk00470.txt blk00471.txt blk00472.txt blk00473.txt blk00474.txt blk00475.txt blk00476.txt blk00477.txt blk00478.txt blk00479.txt blk00480.txt blk00481.txt blk00482.txt blk00483.txt blk00484.txt blk00485.txt blk00486.txt blk00487.txt blk00488.txt blk00489.txt blk00490.txt blk00491.txt blk00492.txt blk00493.txt blk00494.txt blk00495.txt blk00496.txt blk00497.txt blk00498.txt blk00499.txt blk00500.txt blk00501.txt blk00502.txt blk00503.txt blk00504.txt blk00505.txt blk00506.txt blk00507.txt blk00508.txt blk00509.txt blk00510.txt blk00511.txt blk00512.txt blk00513.txt blk00514.txt blk00515.txt blk00516.txt blk00517.txt blk00518.txt blk00519.txt blk00520.txt blk00521.txt blk00522.txt blk00523.txt blk00524.txt blk00525.txt blk00526.txt blk00527.txt blk00528.txt blk00529.txt blk00530.txt blk00531.txt blk00532.txt blk00533.txt blk00534.txt blk00535.txt blk00536.txt blk00537.txt blk00538.txt blk00539.txt blk00540.txt blk00541.txt blk00542.txt blk00543.txt blk00544.txt blk00545.txt blk00546.txt blk00547.txt blk00548.txt blk00549.txt blk00550.txt blk00551.txt blk00552.txt blk00553.txt blk00554.txt blk00555.txt blk00556.txt blk00557.txt blk00558.txt blk00559.txt blk00560.txt blk00561.txt blk00562.txt blk00563.txt blk00564.txt blk00565.txt blk00566.txt blk00567.txt blk00568.txt blk00569.txt blk00570.txt blk00571.txt blk00572.txt blk00573.txt blk00574.txt blk00575.txt blk00576.txt blk00577.txt blk00578.txt blk00579.txt blk00580.txt blk00581.txt blk00582.txt blk00583.txt blk00584.txt blk00585.txt blk00586.txt blk00587.txt blk00588.txt blk00589.txt blk00590.txt blk00591.txt blk00592.txt blk00593.txt blk00594.txt blk00595.txt blk00596.txt blk00597.txt blk00598.txt blk00599.txt blk00600.txt blk00601.txt blk00602.txt blk00603.txt blk00604.txt blk00605.txt blk00606.txt blk00607.txt blk00608.txt blk00609.txt blk00610.txt blk00611.txt blk00612.txt blk00613.txt blk00614.txt blk00615.txt blk00616.txt blk00617.txt blk00618.txt blk00619.txt blk00620.txt blk00621.txt blk00622.txt blk00623.txt blk00624.txt blk00625.txt blk00626.txt blk00627.txt blk00628.txt blk00629.txt blk00630.txt blk00631.txt blk00632.txt blk00633.txt blk00634.txt blk00635.txt blk00636.txt blk00637.txt blk00638.txt blk00639.txt blk00640.txt blk00641.txt blk00642.txt blk00643.txt blk00644.txt blk00645.txt blk00646.txt blk00647.txt blk00648.txt blk00649.txt blk00650.txt blk00651.txt blk00652.txt blk00653.txt blk00654.txt blk00655.txt blk00656.txt blk00657.txt blk00658.txt blk00659.txt blk00660.txt blk00661.txt blk00662.txt blk00663.txt blk00664.txt blk00665.txt blk00666.txt blk00667.txt blk00668.txt blk00669.txt blk00670.txt blk00671.txt blk00672.txt blk00673.txt blk00674.txt blk00675.txt blk00676.txt blk00677.txt blk00678.txt blk00679.txt blk00680.txt blk00681.txt blk00682.txt blk00683.txt blk00684.txt blk00685.txt blk00686.txt blk00687.txt blk00688.txt blk00689.txt blk00690.txt blk00691.txt blk00692.txt blk00693.txt blk00694.txt blk00695.txt blk00696.txt blk00697.txt blk00698.txt blk00699.txt blk00700.txt blk00701.txt blk00702.txt blk00703.txt blk00704.txt blk00705.txt blk00706.txt blk00707.txt blk00708.txt blk00709.txt blk00710.txt blk00711.txt blk00712.txt blk00713.txt blk00714.txt blk00715.txt blk00716.txt blk00717.txt blk00718.txt blk00719.txt blk00720.txt blk00721.txt blk00722.txt blk00723.txt blk00724.txt blk00725.txt blk00726.txt blk00727.txt blk00728.txt blk00729.txt blk00730.txt blk00731.txt blk00732.txt blk00733.txt blk00734.txt blk00735.txt blk00736.txt blk00737.txt blk00738.txt blk00739.txt blk00740.txt blk00741.txt blk00742.txt blk00743.txt blk00744.txt blk00745.txt blk00746.txt blk00747.txt blk00748.txt blk00749.txt blk00750.txt blk00751.txt blk00752.txt blk00753.txt blk00754.txt blk00755.txt blk00756.txt blk00757.txt blk00758.txt blk00759.txt blk00760.txt blk00761.txt blk00762.txt blk00763.txt blk00764.txt blk00765.txt blk00766.txt blk00767.txt blk00768.txt blk00769.txt blk00770.txt blk00771.txt blk00772.txt blk00773.txt blk00774.txt blk00775.txt blk00776.txt blk00777.txt blk00778.txt blk00779.txt blk00780.txt blk00781.txt blk00782.txt blk00783.txt blk00784.txt blk00785.txt blk00786.txt blk00787.txt blk00788.txt blk00789.txt blk00790.txt blk00791.txt blk00792.txt blk00793.txt blk00794.txt blk00795.txt blk00796.txt blk00797.txt blk00798.txt blk00799.txt blk00800.txt blk00801.txt blk00802.txt blk00803.txt blk00804.txt blk00805.txt blk00806.txt blk00807.txt blk00808.txt blk00809.txt blk00810.txt blk00811.txt blk00812.txt blk00813.txt blk00814.txt blk00815.txt blk00816.txt blk00817.txt blk00818.txt blk00819.txt blk00820.txt blk00821.txt blk00822.txt blk00823.txt blk00824.txt blk00825.txt blk00826.txt blk00827.txt blk00828.txt blk00829.txt blk00830.txt blk00831.txt blk00832.txt blk00833.txt blk00834.txt blk00835.txt blk00836.txt blk00837.txt blk00838.txt blk00839.txt blk00840.txt blk00841.txt blk00842.txt blk00843.txt blk00844.txt blk00845.txt blk00846.txt blk00847.txt blk00848.txt blk00849.txt blk00850.txt blk00851.txt blk00852.txt blk00853.txt blk00854.txt blk00855.txt blk00856.txt blk00857.txt blk00858.txt blk00859.txt blk00860.txt blk00861.txt blk00862.txt blk00863.txt blk00864.txt blk00865.txt blk00866.txt blk00867.txt blk00868.txt blk00869.txt blk00870.txt blk00871.txt blk00872.txt blk00873.txt blk00874.txt blk00875.txt blk00876.txt blk00877.txt blk00878.txt blk00879.txt blk00880.txt blk00881.txt blk00882.txt blk00883.txt blk00884.txt blk00885.txt blk00886.txt blk00887.txt blk00888.txt blk00889.txt blk00890.txt blk00891.txt blk00892.txt blk00893.txt blk00894.txt blk00895.txt blk00896.txt blk00897.txt blk00898.txt blk00899.txt blk00900.txt blk00901.txt blk00902.txt blk00903.txt blk00904.txt blk00905.txt blk00906.txt blk00907.txt blk00908.txt blk00909.txt blk00910.txt blk00911.txt blk00912.txt blk00913.txt blk00914.txt blk00915.txt blk00916.txt blk00917.txt blk00918.txt blk00919.txt blk00920.txt blk00921.txt blk00922.txt blk00923.txt blk00924.txt blk00925.txt blk00926.txt blk00927.txt blk00928.txt blk00929.txt blk00930.txt blk00931.txt blk00932.txt blk00933.txt blk00934.txt blk00935.txt blk00936.txt blk00937.txt blk00938.txt blk00939.txt blk00940.txt blk00941.txt blk00942.txt blk00943.txt blk00944.txt blk00945.txt blk00946.txt blk00947.txt blk00948.txt blk00949.txt blk00950.txt blk00951.txt blk00952.txt blk00953.txt blk00954.txt blk00955.txt blk00956.txt blk00957.txt blk00958.txt blk00959.txt blk00960.txt blk00961.txt blk00962.txt blk00963.txt blk00964.txt blk00965.txt blk00966.txt blk00967.txt blk00968.txt blk00969.txt blk00970.txt blk00971.txt blk00972.txt blk00973.txt blk00974.txt blk00975.txt blk00976.txt blk00977.txt blk00978.txt blk00979.txt blk00980.txt blk00981.txt blk00982.txt blk00983.txt blk00984.txt blk00985.txt blk00986.txt blk00987.txt blk00988.txt blk00989.txt blk00990.txt blk00991.txt blk00992.txt blk00993.txt blk00994.txt blk00995.txt blk00996.txt blk00997.txt blk00998.txt blk00999.txt blk01000.txt blk01001.txt blk01002.txt blk01003.txt blk01004.txt blk01005.txt blk01006.txt blk01007.txt blk01008.txt blk01009.txt blk01010.txt blk01011.txt blk01012.txt blk01013.txt blk01014.txt blk01015.txt blk01016.txt blk01017.txt blk01018.txt blk01019.txt blk01020.txt blk01021.txt blk01022.txt blk01023.txt blk01024.txt blk01025.txt blk01026.txt blk01027.txt blk01028.txt blk01029.txt blk01030.txt blk01031.txt blk01032.txt blk01033.txt blk01034.txt blk01035.txt blk01036.txt blk01037.txt blk01038.txt blk01039.txt blk01040.txt blk01041.txt blk01042.txt blk01043.txt blk01044.txt blk01045.txt blk01046.txt blk01047.txt blk01048.txt blk01049.txt blk01050.txt blk01051.txt blk01052.txt blk01053.txt blk01054.txt blk01055.txt blk01056.txt blk01057.txt blk01058.txt blk01059.txt blk01060.txt blk01061.txt blk01062.txt blk01063.txt blk01064.txt blk01065.txt blk01066.txt blk01067.txt blk01068.txt blk01069.txt blk01070.txt blk01071.txt blk01072.txt blk01073.txt blk01074.txt blk01075.txt blk01076.txt blk01077.txt blk01078.txt blk01079.txt blk01080.txt blk01081.txt blk01082.txt blk01083.txt blk01084.txt blk01085.txt blk01086.txt blk01087.txt blk01088.txt blk01089.txt blk01090.txt blk01091.txt blk01092.txt blk01093.txt blk01094.txt blk01095.txt blk01096.txt blk01097.txt blk01098.txt blk01099.txt blk01100.txt blk01101.txt blk01102.txt blk01103.txt blk01104.txt blk01105.txt blk01106.txt blk01107.txt blk01108.txt blk01109.txt blk01110.txt blk01111.txt blk01112.txt blk01113.txt blk01114.txt blk01115.txt blk01116.txt blk01117.txt blk01118.txt blk01119.txt blk01120.txt blk01121.txt blk01122.txt blk01123.txt blk01124.txt blk01125.txt blk01126.txt blk01127.txt blk01128.txt blk01129.txt blk01130.txt blk01131.txt blk01132.txt blk01133.txt blk01134.txt blk01135.txt blk01136.txt blk01137.txt blk01138.txt blk01139.txt blk01140.txt blk01141.txt blk01142.txt blk01143.txt blk01144.txt blk01145.txt blk01146.txt blk01147.txt blk01148.txt blk01149.txt blk01150.txt blk01151.txt blk01152.txt blk01153.txt blk01154.txt blk01155.txt blk01156.txt blk01157.txt blk01158.txt blk01159.txt blk01160.txt blk01161.txt blk01162.txt blk01163.txt blk01164.txt blk01165.txt blk01166.txt blk01167.txt blk01168.txt blk01169.txt blk01170.txt blk01171.txt blk01172.txt blk01173.txt blk01174.txt blk01175.txt blk01176.txt blk01177.txt blk01178.txt blk01179.txt blk01180.txt blk01181.txt blk01182.txt blk01183.txt blk01184.txt blk01185.txt blk01186.txt blk01187.txt blk01188.txt blk01189.txt blk01190.txt blk01191.txt blk01192.txt blk01193.txt blk01194.txt blk01195.txt blk01196.txt blk01197.txt blk01198.txt blk01199.txt blk01200.txt blk01201.txt blk01202.txt blk01203.txt blk01204.txt blk01205.txt blk01206.txt blk01207.txt blk01208.txt blk01209.txt blk01210.txt blk01211.txt blk01212.txt blk01213.txt blk01214.txt blk01215.txt blk01216.txt blk01217.txt blk01218.txt blk01219.txt blk01220.txt blk01221.txt blk01222.txt blk01223.txt blk01224.txt blk01225.txt blk01226.txt blk01227.txt blk01228.txt blk01229.txt blk01230.txt blk01231.txt blk01232.txt blk01233.txt blk01234.txt blk01235.txt blk01236.txt blk01237.txt blk01238.txt blk01239.txt blk01240.txt blk01241.txt blk01242.txt blk01243.txt blk01244.txt blk01245.txt blk01246.txt blk01247.txt blk01248.txt blk01249.txt blk01250.txt blk01251.txt blk01252.txt blk01253.txt blk01254.txt blk01255.txt blk01256.txt blk01257.txt blk01258.txt blk01259.txt blk01260.txt blk01261.txt blk01262.txt blk01263.txt blk01264.txt blk01265.txt blk01266.txt blk01267.txt blk01268.txt blk01269.txt blk01270.txt blk01271.txt blk01272.txt blk01273.txt blk01274.txt blk01275.txt blk01276.txt blk01277.txt blk01278.txt blk01279.txt blk01280.txt blk01281.txt blk01282.txt blk01283.txt blk01284.txt blk01285.txt blk01286.txt blk01287.txt blk01288.txt blk01289.txt blk01290.txt blk01291.txt blk01292.txt blk01293.txt blk01294.txt blk01295.txt blk01296.txt blk01297.txt blk01298.txt blk01299.txt blk01300.txt blk01301.txt blk01302.txt blk01303.txt blk01304.txt blk01305.txt blk01306.txt blk01307.txt blk01308.txt blk01309.txt blk01310.txt blk01311.txt blk01312.txt blk01313.txt blk01314.txt blk01315.txt blk01316.txt blk01317.txt blk01318.txt blk01319.txt blk01320.txt blk01321.txt blk01322.txt blk01323.txt blk01324.txt blk01325.txt blk01326.txt blk01327.txt blk01328.txt blk01329.txt blk01330.txt blk01331.txt blk01332.txt blk01333.txt blk01334.txt blk01335.txt blk01336.txt blk01337.txt blk01338.txt blk01339.txt blk01340.txt blk01341.txt blk01342.txt blk01343.txt blk01344.txt blk01345.txt blk01346.txt blk01347.txt blk01348.txt blk01349.txt blk01350.txt blk01351.txt blk01352.txt blk01353.txt blk01354.txt blk01355.txt blk01356.txt blk01357.txt blk01358.txt blk01359.txt blk01360.txt blk01361.txt blk01362.txt blk01363.txt blk01364.txt blk01365.txt blk01366.txt blk01367.txt blk01368.txt blk01369.txt blk01370.txt blk01371.txt blk01372.txt blk01373.txt blk01374.txt blk01375.txt blk01376.txt blk01377.txt blk01378.txt blk01379.txt blk01380.txt blk01381.txt blk01382.txt blk01383.txt blk01384.txt blk01385.txt blk01386.txt blk01387.txt blk01388.txt blk01389.txt blk01390.txt blk01391.txt blk01392.txt blk01393.txt blk01394.txt blk01395.txt blk01396.txt blk01397.txt blk01398.txt blk01399.txt blk01400.txt blk01401.txt blk01402.txt blk01403.txt blk01404.txt blk01405.txt blk01406.txt blk01407.txt blk01408.txt blk01409.txt blk01410.txt blk01411.txt blk01412.txt blk01413.txt blk01414.txt blk01415.txt blk01416.txt blk01417.txt blk01418.txt blk01419.txt blk01420.txt blk01421.txt blk01422.txt blk01423.txt blk01424.txt blk01425.txt blk01426.txt blk01427.txt blk01428.txt blk01429.txt blk01430.txt blk01431.txt blk01432.txt blk01433.txt blk01434.txt blk01435.txt blk01436.txt blk01437.txt blk01438.txt blk01439.txt blk01440.txt blk01441.txt blk01442.txt blk01443.txt blk01444.txt blk01445.txt blk01446.txt blk01447.txt blk01448.txt blk01449.txt blk01450.txt blk01451.txt blk01452.txt blk01453.txt blk01454.txt blk01455.txt blk01456.txt blk01457.txt blk01458.txt blk01459.txt blk01460.txt blk01461.txt blk01462.txt blk01463.txt blk01464.txt blk01465.txt blk01466.txt blk01467.txt blk01468.txt blk01469.txt blk01470.txt blk01471.txt blk01472.txt blk01473.txt blk01474.txt blk01475.txt blk01476.txt blk01477.txt blk01478.txt blk01479.txt blk01480.txt blk01481.txt blk01482.txt blk01483.txt blk01484.txt blk01485.txt blk01486.txt blk01487.txt blk01488.txt blk01489.txt blk01490.txt blk01491.txt blk01492.txt blk01493.txt blk01494.txt blk01495.txt blk01496.txt blk01497.txt blk01498.txt blk01499.txt blk01500.txt blk01501.txt blk01502.txt blk01503.txt blk01504.txt blk01505.txt blk01506.txt blk01507.txt blk01508.txt blk01509.txt blk01510.txt blk01511.txt blk01512.txt blk01513.txt blk01514.txt blk01515.txt blk01516.txt blk01517.txt blk01518.txt blk01519.txt blk01520.txt blk01521.txt blk01522.txt blk01523.txt blk01524.txt blk01525.txt blk01526.txt blk01527.txt blk01528.txt blk01529.txt blk01530.txt blk01531.txt blk01532.txt blk01533.txt blk01534.txt blk01535.txt blk01536.txt blk01537.txt blk01538.txt blk01539.txt blk01540.txt blk01541.txt blk01542.txt blk01543.txt blk01544.txt blk01545.txt blk01546.txt blk01547.txt blk01548.txt blk01549.txt blk01550.txt blk01551.txt blk01552.txt blk01553.txt blk01554.txt blk01555.txt blk01556.txt blk01557.txt blk01558.txt blk01559.txt blk01560.txt blk01561.txt blk01562.txt blk01563.txt blk01564.txt blk01565.txt blk01566.txt blk01567.txt blk01568.txt blk01569.txt blk01570.txt blk01571.txt blk01572.txt blk01573.txt blk01574.txt blk01575.txt blk01576.txt blk01577.txt blk01578.txt blk01579.txt blk01580.txt blk01581.txt blk01582.txt blk01583.txt blk01584.txt blk01585.txt blk01586.txt blk01587.txt blk01588.txt blk01589.txt blk01590.txt blk01591.txt blk01592.txt blk01593.txt blk01594.txt blk01595.txt blk01596.txt blk01597.txt blk01598.txt blk01599.txt blk01600.txt blk01601.txt blk01602.txt blk01603.txt blk01604.txt blk01605.txt blk01606.txt blk01607.txt blk01608.txt blk01609.txt blk01610.txt blk01611.txt blk01612.txt blk01613.txt blk01614.txt blk01615.txt blk01616.txt blk01617.txt blk01618.txt blk01619.txt blk01620.txt blk01621.txt blk01622.txt blk01623.txt blk01624.txt blk01625.txt blk01626.txt blk01627.txt blk01628.txt blk01629.txt blk01630.txt blk01631.txt blk01632.txt blk01633.txt blk01634.txt blk01635.txt blk01636.txt blk01637.txt blk01638.txt blk01639.txt blk01640.txt blk01641.txt blk01642.txt blk01643.txt blk01644.txt blk01645.txt blk01646.txt blk01647.txt blk01648.txt blk01649.txt blk01650.txt blk01651.txt blk01652.txt blk01653.txt blk01654.txt blk01655.txt blk01656.txt blk01657.txt blk01658.txt blk01659.txt blk01660.txt blk01661.txt blk01662.txt blk01663.txt blk01664.txt blk01665.txt blk01666.txt blk01667.txt blk01668.txt blk01669.txt blk01670.txt blk01671.txt blk01672.txt blk01673.txt blk01674.txt blk01675.txt blk01676.txt blk01677.txt blk01678.txt blk01679.txt blk01680.txt blk01681.txt blk01682.txt blk01683.txt blk01684.txt blk01685.txt blk01686.txt blk01687.txt blk01688.txt blk01689.txt blk01690.txt blk01691.txt blk01692.txt blk01693.txt blk01694.txt blk01695.txt blk01696.txt blk01697.txt blk01698.txt blk01699.txt blk01700.txt blk01701.txt blk01702.txt blk01703.txt blk01704.txt blk01705.txt blk01706.txt blk01707.txt blk01708.txt blk01709.txt blk01710.txt blk01711.txt blk01712.txt blk01713.txt blk01714.txt blk01715.txt blk01716.txt blk01717.txt blk01718.txt blk01719.txt blk01720.txt blk01721.txt blk01722.txt blk01723.txt blk01724.txt blk01725.txt blk01726.txt blk01727.txt blk01728.txt blk01729.txt blk01730.txt blk01731.txt blk01732.txt blk01733.txt blk01734.txt blk01735.txt blk01736.txt blk01737.txt blk01738.txt blk01739.txt blk01740.txt blk01741.txt blk01742.txt blk01743.txt blk01744.txt blk01745.txt blk01746.txt blk01747.txt blk01748.txt blk01749.txt blk01750.txt blk01751.txt blk01752.txt blk01753.txt blk01754.txt blk01755.txt blk01756.txt blk01757.txt blk01758.txt blk01759.txt blk01760.txt blk01761.txt blk01762.txt blk01763.txt blk01764.txt blk01765.txt blk01766.txt blk01767.txt blk01768.txt blk01769.txt blk01770.txt blk01771.txt blk01772.txt blk01773.txt blk01774.txt blk01775.txt blk01776.txt blk01777.txt blk01778.txt blk01779.txt blk01780.txt blk01781.txt blk01782.txt blk01783.txt blk01784.txt blk01785.txt blk01786.txt blk01787.txt blk01788.txt blk01789.txt blk01790.txt blk01791.txt blk01792.txt blk01793.txt blk01794.txt blk01795.txt blk01796.txt blk01797.txt blk01798.txt blk01799.txt blk01800.txt blk01801.txt blk01802.txt blk01803.txt blk01804.txt blk01805.txt blk01806.txt blk01807.txt blk01808.txt blk01809.txt blk01810.txt blk01811.txt blk01812.txt blk01813.txt blk01814.txt blk01815.txt blk01816.txt blk01817.txt blk01818.txt blk01819.txt blk01820.txt blk01821.txt blk01822.txt blk01823.txt blk01824.txt blk01825.txt blk01826.txt blk01827.txt blk01828.txt blk01829.txt blk01830.txt blk01831.txt blk01832.txt blk01833.txt blk01834.txt blk01835.txt blk01836.txt blk01837.txt blk01838.txt blk01839.txt blk01840.txt blk01841.txt blk01842.txt blk01843.txt blk01844.txt blk01845.txt blk01846.txt blk01847.txt blk01848.txt blk01849.txt blk01850.txt blk01851.txt blk01852.txt blk01853.txt blk01854.txt blk01855.txt blk01856.txt blk01857.txt blk01858.txt blk01859.txt blk01860.txt blk01861.txt blk01862.txt blk01863.txt blk01864.txt blk01865.txt blk01866.txt blk01867.txt blk01868.txt blk01869.txt blk01870.txt blk01871.txt blk01872.txt blk01873.txt blk01874.txt blk01875.txt blk01876.txt blk01877.txt blk01878.txt blk01879.txt blk01880.txt blk01881.txt blk01882.txt blk01883.txt blk01884.txt blk01885.txt blk01886.txt blk01887.txt blk01888.txt blk01889.txt blk01890.txt blk01891.txt blk01892.txt blk01893.txt blk01894.txt blk01895.txt blk01896.txt blk01897.txt blk01898.txt blk01899.txt blk01900.txt blk01901.txt blk01902.txt blk01903.txt blk01904.txt blk01905.txt blk01906.txt blk01907.txt blk01908.txt blk01909.txt blk01910.txt blk01911.txt blk01912.txt blk01913.txt blk01914.txt blk01915.txt blk01916.txt blk01917.txt blk01918.txt blk01919.txt blk01920.txt blk01921.txt blk01922.txt blk01923.txt blk01924.txt blk01925.txt blk01926.txt blk01927.txt blk01928.txt blk01929.txt blk01930.txt blk01931.txt blk01932.txt blk01933.txt blk01934.txt blk01935.txt blk01936.txt blk01937.txt blk01938.txt blk01939.txt blk01940.txt blk01941.txt blk01942.txt blk01943.txt blk01944.txt blk01945.txt blk01946.txt blk01947.txt blk01948.txt blk01949.txt blk01950.txt blk01951.txt blk01952.txt blk01953.txt blk01954.txt blk01955.txt blk01956.txt blk01957.txt blk01958.txt blk01959.txt blk01960.txt blk01961.txt blk01962.txt blk01963.txt blk01964.txt blk01965.txt blk01966.txt blk01967.txt blk01968.txt blk01969.txt blk01970.txt blk01971.txt blk01972.txt blk01973.txt blk01974.txt blk01975.txt blk01976.txt blk01977.txt blk01978.txt blk01979.txt blk01980.txt blk01981.txt blk01982.txt blk01983.txt blk01984.txt blk01985.txt blk01986.txt blk01987.txt blk01988.txt blk01989.txt blk01990.txt blk01991.txt blk01992.txt blk01993.txt blk01994.txt blk01995.txt blk01996.txt blk01997.txt blk01998.txt blk01999.txt blk02000.txt blk02001.txt blk02002.txt blk02003.txt blk02004.txt blk02005.txt blk02006.txt blk02007.txt blk02008.txt blk02009.txt blk02010.txt blk02011.txt blk02012.txt blk02013.txt blk02014.txt blk02015.txt blk02016.txt blk02017.txt blk02018.txt blk02019.txt blk02020.txt blk02021.txt blk02022.txt blk02023.txt blk02024.txt blk02025.txt blk02026.txt blk02027.txt blk02028.txt blk02029.txt blk02030.txt blk02031.txt blk02032.txt blk02033.txt blk02034.txt blk02035.txt blk02036.txt blk02037.txt blk02038.txt blk02039.txt blk02040.txt blk02041.txt blk02042.txt blk02043.txt blk02044.txt blk02045.txt blk02046.txt blk02047.txt blk02048.txt blk02049.txt blk02050.txt blk02051.txt blk02052.txt blk02053.txt blk02054.txt blk02055.txt blk02056.txt blk02057.txt blk02058.txt blk02059.txt blk02060.txt blk02061.txt blk02062.txt blk02063.txt blk02064.txt blk02065.txt blk02066.txt blk02067.txt blk02068.txt blk02069.txt blk02070.txt blk02071.txt blk02072.txt blk02073.txt blk02074.txt blk02075.txt blk02076.txt blk02077.txt blk02078.txt blk02079.txt blk02080.txt blk02081.txt blk02082.txt blk02083.txt blk02084.txt blk02085.txt blk02086.txt blk02087.txt blk02088.txt blk02089.txt blk02090.txt blk02091.txt blk02092.txt blk02093.txt blk02094.txt blk02095.txt blk02096.txt blk02097.txt blk02098.txt blk02099.txt blk02100.txt blk02101.txt blk02102.txt blk02103.txt blk02104.txt blk02105.txt blk02106.txt blk02107.txt blk02108.txt blk02109.txt blk02110.txt blk02111.txt blk02112.txt blk02113.txt blk02114.txt blk02115.txt blk02116.txt blk02117.txt blk02118.txt blk02119.txt blk02120.txt blk02121.txt blk02122.txt blk02123.txt blk02124.txt blk02125.txt blk02126.txt blk02127.txt blk02128.txt blk02129.txt blk02130.txt blk02131.txt blk02132.txt blk02133.txt blk02134.txt blk02135.txt blk02136.txt blk02137.txt blk02138.txt blk02139.txt blk02140.txt blk02141.txt blk02142.txt blk02143.txt blk02144.txt blk02145.txt blk02146.txt blk02147.txt blk02148.txt blk02149.txt blk02150.txt blk02151.txt blk02152.txt blk02153.txt blk02154.txt blk02155.txt blk02156.txt blk02157.txt blk02158.txt blk02159.txt blk02160.txt blk02161.txt blk02162.txt blk02163.txt blk02164.txt blk02165.txt blk02166.txt blk02167.txt blk02168.txt blk02169.txt blk02170.txt blk02171.txt blk02172.txt blk02173.txt blk02174.txt blk02175.txt blk02176.txt blk02177.txt blk02178.txt blk02179.txt blk02180.txt blk02181.txt blk02182.txt blk02183.txt blk02184.txt blk02185.txt blk02186.txt blk02187.txt blk02188.txt blk02189.txt blk02190.txt blk02191.txt blk02192.txt blk02193.txt blk02194.txt blk02195.txt blk02196.txt blk02197.txt blk02198.txt blk02199.txt blk02200.txt blk02201.txt blk02202.txt blk02203.txt blk02204.txt blk02205.txt blk02206.txt blk02207.txt blk02208.txt blk02209.txt blk02210.txt blk02211.txt blk02212.txt blk02213.txt blk02214.txt blk02215.txt blk02216.txt blk02217.txt blk02218.txt blk02219.txt blk02220.txt blk02221.txt blk02222.txt blk02223.txt blk02224.txt blk02225.txt blk02226.txt blk02227.txt blk02228.txt blk02229.txt blk02230.txt blk02231.txt blk02232.txt blk02233.txt blk02234.txt blk02235.txt blk02236.txt blk02237.txt blk02238.txt blk02239.txt blk02240.txt blk02241.txt blk02242.txt blk02243.txt blk02244.txt blk02245.txt blk02246.txt blk02247.txt blk02248.txt blk02249.txt blk02250.txt blk02251.txt blk02252.txt blk02253.txt blk02254.txt blk02255.txt blk02256.txt blk02257.txt blk02258.txt blk02259.txt blk02260.txt blk02261.txt blk02262.txt blk02263.txt blk02264.txt blk02265.txt blk02266.txt blk02267.txt blk02268.txt blk02269.txt blk02270.txt blk02271.txt blk02272.txt blk02273.txt blk02274.txt blk02275.txt blk02276.txt blk02277.txt blk02278.txt blk02279.txt blk02280.txt blk02281.txt blk02282.txt blk02283.txt blk02284.txt blk02285.txt blk02286.txt blk02287.txt blk02288.txt blk02289.txt blk02290.txt blk02291.txt blk02292.txt blk02293.txt blk02294.txt blk02295.txt blk02296.txt blk02297.txt blk02298.txt blk02299.txt blk02300.txt blk02301.txt blk02302.txt blk02303.txt blk02304.txt blk02305.txt blk02306.txt blk02307.txt blk02308.txt blk02309.txt blk02310.txt blk02311.txt blk02312.txt blk02313.txt blk02314.txt blk02315.txt blk02316.txt blk02317.txt blk02318.txt blk02319.txt blk02320.txt blk02321.txt blk02322.txt blk02323.txt blk02324.txt blk02325.txt blk02326.txt blk02327.txt blk02328.txt blk02329.txt blk02330.txt blk02331.txt blk02332.txt blk02333.txt blk02334.txt blk02335.txt blk02336.txt blk02337.txt blk02338.txt blk02339.txt blk02340.txt blk02341.txt blk02342.txt blk02343.txt blk02344.txt blk02345.txt blk02346.txt blk02347.txt blk02348.txt blk02349.txt blk02350.txt blk02351.txt blk02352.txt blk02353.txt blk02354.txt blk02355.txt blk02356.txt blk02357.txt blk02358.txt blk02359.txt blk02360.txt blk02361.txt blk02362.txt blk02363.txt blk02364.txt blk02365.txt blk02366.txt blk02367.txt blk02368.txt blk02369.txt blk02370.txt blk02371.txt blk02372.txt blk02373.txt blk02374.txt blk02375.txt blk02376.txt blk02377.txt blk02378.txt blk02379.txt blk02380.txt blk02381.txt blk02382.txt blk02383.txt blk02384.txt blk02385.txt blk02386.txt blk02387.txt blk02388.txt blk02389.txt blk02390.txt blk02391.txt blk02392.txt blk02393.txt blk02394.txt blk02395.txt blk02396.txt blk02397.txt blk02398.txt blk02399.txt blk02400.txt blk02401.txt blk02402.txt blk02403.txt blk02404.txt blk02405.txt blk02406.txt blk02407.txt blk02408.txt blk02409.txt blk02410.txt blk02411.txt blk02412.txt blk02413.txt blk02414.txt blk02415.txt blk02416.txt blk02417.txt blk02418.txt blk02419.txt blk02420.txt blk02421.txt blk02422.txt blk02423.txt blk02424.txt blk02425.txt blk02426.txt blk02427.txt blk02428.txt blk02429.txt blk02430.txt blk02431.txt blk02432.txt blk02433.txt blk02434.txt blk02435.txt blk02436.txt blk02437.txt blk02438.txt blk02439.txt blk02440.txt blk02441.txt blk02442.txt blk02443.txt blk02444.txt blk02445.txt blk02446.txt blk02447.txt blk02448.txt blk02449.txt blk02450.txt blk02451.txt blk02452.txt blk02453.txt blk02454.txt blk02455.txt blk02456.txt blk02457.txt blk02458.txt blk02459.txt blk02460.txt blk02461.txt blk02462.txt blk02463.txt blk02464.txt blk02465.txt blk02466.txt blk02467.txt blk02468.txt blk02469.txt blk02470.txt blk02471.txt blk02472.txt blk02473.txt blk02474.txt blk02475.txt blk02476.txt blk02477.txt blk02478.txt blk02479.txt blk02480.txt blk02481.txt blk02482.txt blk02483.txt blk02484.txt blk02485.txt blk02486.txt blk02487.txt blk02488.txt blk02489.txt blk02490.txt blk02491.txt blk02492.txt blk02493.txt blk02494.txt blk02495.txt blk02496.txt blk02497.txt blk02498.txt blk02499.txt blk02500.txt blk02501.txt blk02502.txt blk02503.txt blk02504.txt blk02505.txt blk02506.txt blk02507.txt blk02508.txt blk02509.txt blk02510.txt blk02511.txt blk02512.txt blk02513.txt blk02514.txt blk02515.txt blk02516.txt blk02517.txt blk02518.txt blk02519.txt blk02520.txt blk02521.txt blk02522.txt blk02523.txt blk02524.txt blk02525.txt blk02526.txt blk02527.txt blk02528.txt blk02529.txt blk02530.txt blk02531.txt blk02532.txt blk02533.txt blk02534.txt blk02535.txt blk02536.txt blk02537.txt blk02538.txt blk02539.txt blk02540.txt blk02541.txt blk02542.txt blk02543.txt blk02544.txt blk02545.txt blk02546.txt blk02547.txt blk02548.txt blk02549.txt blk02550.txt blk02551.txt blk02552.txt blk02553.txt blk02554.txt blk02555.txt blk02556.txt blk02557.txt blk02558.txt blk02559.txt blk02560.txt blk02561.txt blk02562.txt blk02563.txt blk02564.txt blk02565.txt blk02566.txt blk02567.txt blk02568.txt blk02569.txt blk02570.txt blk02571.txt blk02572.txt blk02573.txt blk02574.txt blk02575.txt blk02576.txt blk02577.txt blk02578.txt blk02579.txt blk02580.txt blk02581.txt blk02582.txt blk02583.txt blk02584.txt blk02585.txt blk02586.txt blk02587.txt blk02588.txt blk02589.txt blk02590.txt blk02591.txt blk02592.txt blk02593.txt blk02594.txt blk02595.txt blk02596.txt blk02597.txt blk02598.txt blk02599.txt blk02600.txt blk02601.txt blk02602.txt blk02603.txt blk02604.txt blk02605.txt blk02606.txt blk02607.txt blk02608.txt blk02609.txt blk02610.txt blk02611.txt blk02612.txt blk02613.txt blk02614.txt blk02615.txt blk02616.txt blk02617.txt blk02618.txt blk02619.txt blk02620.txt blk02621.txt blk02622.txt blk02623.txt blk02624.txt blk02625.txt blk02626.txt blk02627.txt blk02628.txt blk02629.txt blk02630.txt blk02631.txt blk02632.txt blk02633.txt blk02634.txt blk02635.txt blk02636.txt blk02637.txt blk02638.txt blk02639.txt blk02640.txt blk02641.txt blk02642.txt blk02643.txt blk02644.txt blk02645.txt blk02646.txt blk02647.txt blk02648.txt blk02649.txt blk02650.txt blk02651.txt blk02652.txt blk02653.txt blk02654.txt blk02655.txt blk02656.txt blk02657.txt blk02658.txt blk02659.txt blk02660.txt blk02661.txt blk02662.txt blk02663.txt blk02664.txt blk02665.txt blk02666.txt blk02667.txt blk02668.txt blk02669.txt blk02670.txt blk02671.txt blk02672.txt blk02673.txt blk02674.txt blk02675.txt blk02676.txt blk02677.txt blk02678.txt blk02679.txt blk02680.txt blk02681.txt blk02682.txt blk02683.txt blk02684.txt blk02685.txt blk02686.txt blk02687.txt blk02688.txt blk02689.txt blk02690.txt blk02691.txt blk02692.txt blk02693.txt blk02694.txt blk02695.txt blk02696.txt blk02697.txt blk02698.txt blk02699.txt blk02700.txt blk02701.txt blk02702.txt blk02703.txt blk02704.txt blk02705.txt blk02706.txt blk02707.txt blk02708.txt blk02709.txt blk02710.txt blk02711.txt blk02712.txt blk02713.txt blk02714.txt blk02715.txt blk02716.txt blk02717.txt blk02718.txt blk02719.txt blk02720.txt blk02721.txt blk02722.txt blk02723.txt blk02724.txt blk02725.txt blk02726.txt blk02727.txt blk02728.txt blk02729.txt blk02730.txt blk02731.txt blk02732.txt blk02733.txt blk02734.txt blk02735.txt blk02736.txt blk02737.txt blk02738.txt blk02739.txt blk02740.txt blk02741.txt blk02742.txt blk02743.txt blk02744.txt blk02745.txt blk02746.txt blk02747.txt blk02748.txt blk02749.txt blk02750.txt blk02751.txt blk02752.txt blk02753.txt blk02754.txt blk02755.txt blk02756.txt blk02757.txt blk02758.txt blk02759.txt blk02760.txt blk02761.txt blk02762.txt blk02763.txt blk02764.txt blk02765.txt blk02766.txt blk02767.txt blk02768.txt blk02769.txt blk02770.txt blk02771.txt blk02772.txt blk02773.txt blk02774.txt blk02775.txt blk02776.txt blk02777.txt blk02778.txt blk02779.txt blk02780.txt blk02781.txt blk02782.txt blk02783.txt blk02784.txt blk02785.txt blk02786.txt blk02787.txt blk02788.txt blk02789.txt blk02790.txt blk02791.txt blk02792.txt blk02793.txt blk02794.txt blk02795.txt blk02796.txt blk02797.txt blk02798.txt blk02799.txt blk02800.txt blk02801.txt blk02802.txt blk02803.txt blk02804.txt blk02805.txt blk02806.txt blk02807.txt blk02808.txt blk02809.txt blk02810.txt blk02811.txt blk02812.txt blk02813.txt blk02814.txt blk02815.txt blk02816.txt blk02817.txt blk02818.txt blk02819.txt blk02820.txt blk02821.txt blk02822.txt blk02823.txt blk02824.txt blk02825.txt blk02826.txt blk02827.txt blk02828.txt blk02829.txt blk02830.txt blk02831.txt blk02832.txt blk02833.txt blk02834.txt blk02835.txt blk02836.txt blk02837.txt blk02838.txt blk02839.txt blk02840.txt blk02841.txt blk02842.txt blk02843.txt blk02844.txt blk02845.txt blk02846.txt blk02847.txt blk02848.txt blk02849.txt blk02850.txt blk02851.txt blk02852.txt blk02853.txt blk02854.txt blk02855.txt blk02856.txt blk02857.txt blk02858.txt blk02859.txt blk02860.txt blk02861.txt blk02862.txt blk02863.txt blk02864.txt blk02865.txt blk02866.txt blk02867.txt blk02868.txt blk02869.txt blk02870.txt blk02871.txt blk02872.txt blk02873.txt blk02874.txt blk02875.txt blk02876.txt blk02877.txt blk02878.txt blk02879.txt blk02880.txt blk02881.txt blk02882.txt blk02883.txt blk02884.txt blk02885.txt blk02886.txt blk02887.txt blk02888.txt blk02889.txt blk02890.txt blk02891.txt blk02892.txt blk02893.txt blk02894.txt blk02895.txt blk02896.txt blk02897.txt blk02898.txt blk02899.txt blk02900.txt blk02901.txt blk02902.txt blk02903.txt blk02904.txt blk02905.txt blk02906.txt blk02907.txt blk02908.txt blk02909.txt blk02910.txt blk02911.txt blk02912.txt blk02913.txt blk02914.txt blk02915.txt blk02916.txt blk02917.txt blk02918.txt blk02919.txt blk02920.txt blk02921.txt blk02922.txt blk02923.txt blk02924.txt blk02925.txt blk02926.txt blk02927.txt blk02928.txt blk02929.txt blk02930.txt blk02931.txt blk02932.txt blk02933.txt blk02934.txt blk02935.txt blk02936.txt blk02937.txt blk02938.txt blk02939.txt blk02940.txt blk02941.txt blk02942.txt blk02943.txt blk02944.txt blk02945.txt blk02946.txt blk02947.txt blk02948.txt blk02949.txt blk02950.txt blk02951.txt blk02952.txt blk02953.txt blk02954.txt blk02955.txt blk02956.txt blk02957.txt blk02958.txt blk02959.txt blk02960.txt blk02961.txt blk02962.txt blk02963.txt blk02964.txt blk02965.txt blk02966.txt blk02967.txt blk02968.txt blk02969.txt blk02970.txt blk02971.txt blk02972.txt blk02973.txt blk02974.txt blk02975.txt blk02976.txt blk02977.txt blk02978.txt blk02979.txt blk02980.txt blk02981.txt blk02982.txt blk02983.txt blk02984.txt blk02985.txt blk02986.txt blk02987.txt blk02988.txt blk02989.txt blk02990.txt blk02991.txt blk02992.txt blk02993.txt blk02994.txt blk02995.txt blk02996.txt blk02997.txt blk02998.txt blk02999.txt blk03000.txt blk03001.txt blk03002.txt blk03003.txt blk03004.txt blk03005.txt blk03006.txt blk03007.txt blk03008.txt blk03009.txt blk03010.txt blk03011.txt blk03012.txt blk03013.txt blk03014.txt blk03015.txt blk03016.txt blk03017.txt blk03018.txt blk03019.txt blk03020.txt blk03021.txt blk03022.txt blk03023.txt blk03024.txt blk03025.txt blk03026.txt blk03027.txt blk03028.txt blk03029.txt blk03030.txt blk03031.txt blk03032.txt blk03033.txt blk03034.txt blk03035.txt blk03036.txt blk03037.txt blk03038.txt blk03039.txt blk03040.txt blk03041.txt blk03042.txt blk03043.txt blk03044.txt blk03045.txt blk03046.txt blk03047.txt blk03048.txt blk03049.txt blk03050.txt blk03051.txt blk03052.txt blk03053.txt blk03054.txt blk03055.txt blk03056.txt blk03057.txt blk03058.txt blk03059.txt blk03060.txt blk03061.txt blk03062.txt blk03063.txt blk03064.txt blk03065.txt blk03066.txt blk03067.txt blk03068.txt blk03069.txt blk03070.txt blk03071.txt blk03072.txt blk03073.txt blk03074.txt blk03075.txt blk03076.txt blk03077.txt blk03078.txt blk03079.txt blk03080.txt blk03081.txt blk03082.txt blk03083.txt blk03084.txt blk03085.txt blk03086.txt blk03087.txt blk03088.txt blk03089.txt blk03090.txt blk03091.txt blk03092.txt blk03093.txt blk03094.txt blk03095.txt blk03096.txt blk03097.txt blk03098.txt blk03099.txt blk03100.txt blk03101.txt blk03102.txt blk03103.txt blk03104.txt blk03105.txt blk03106.txt blk03107.txt blk03108.txt blk03109.txt blk03110.txt blk03111.txt blk03112.txt blk03113.txt blk03114.txt blk03115.txt blk03116.txt blk03117.txt blk03118.txt blk03119.txt blk03120.txt blk03121.txt blk03122.txt blk03123.txt blk03124.txt blk03125.txt blk03126.txt blk03127.txt blk03128.txt blk03129.txt blk03130.txt blk03131.txt blk03132.txt blk03133.txt blk03134.txt blk03135.txt blk03136.txt blk03137.txt blk03138.txt blk03139.txt blk03140.txt blk03141.txt blk03142.txt blk03143.txt blk03144.txt blk03145.txt blk03146.txt blk03147.txt blk03148.txt blk03149.txt blk03150.txt blk03151.txt blk03152.txt blk03153.txt blk03154.txt blk03155.txt blk03156.txt blk03157.txt blk03158.txt blk03159.txt blk03160.txt blk03161.txt blk03162.txt blk03163.txt blk03164.txt blk03165.txt blk03166.txt blk03167.txt blk03168.txt blk03169.txt blk03170.txt blk03171.txt blk03172.txt blk03173.txt blk03174.txt blk03175.txt blk03176.txt blk03177.txt blk03178.txt blk03179.txt blk03180.txt blk03181.txt blk03182.txt blk03183.txt blk03184.txt blk03185.txt blk03186.txt blk03187.txt blk03188.txt blk03189.txt blk03190.txt blk03191.txt blk03192.txt blk03193.txt blk03194.txt blk03195.txt blk03196.txt blk03197.txt blk03198.txt blk03199.txt blk03200.txt blk03201.txt blk03202.txt blk03203.txt blk03204.txt blk03205.txt blk03206.txt blk03207.txt blk03208.txt blk03209.txt blk03210.txt blk03211.txt blk03212.txt blk03213.txt blk03214.txt blk03215.txt blk03216.txt blk03217.txt blk03218.txt blk03219.txt blk03220.txt blk03221.txt blk03222.txt blk03223.txt blk03224.txt blk03225.txt blk03226.txt blk03227.txt blk03228.txt blk03229.txt blk03230.txt blk03231.txt blk03232.txt blk03233.txt blk03234.txt blk03235.txt blk03236.txt blk03237.txt blk03238.txt blk03239.txt blk03240.txt blk03241.txt blk03242.txt blk03243.txt blk03244.txt blk03245.txt blk03246.txt blk03247.txt blk03248.txt blk03249.txt blk03250.txt blk03251.txt blk03252.txt blk03253.txt blk03254.txt blk03255.txt blk03256.txt blk03257.txt blk03258.txt blk03259.txt blk03260.txt blk03261.txt blk03262.txt blk03263.txt blk03264.txt blk03265.txt blk03266.txt blk03267.txt blk03268.txt blk03269.txt blk03270.txt blk03271.txt blk03272.txt blk03273.txt blk03274.txt blk03275.txt blk03276.txt blk03277.txt blk03278.txt blk03279.txt blk03280.txt blk03281.txt blk03282.txt blk03283.txt blk03284.txt blk03285.txt blk03286.txt blk03287.txt blk03288.txt blk03289.txt blk03290.txt blk03291.txt blk03292.txt blk03293.txt blk03294.txt blk03295.txt blk03296.txt blk03297.txt blk03298.txt blk03299.txt blk03300.txt blk03301.txt blk03302.txt blk03303.txt blk03304.txt blk03305.txt blk03306.txt blk03307.txt blk03308.txt blk03309.txt blk03310.txt blk03311.txt blk03312.txt blk03313.txt blk03314.txt blk03315.txt blk03316.txt blk03317.txt blk03318.txt blk03319.txt blk03320.txt blk03321.txt blk03322.txt blk03323.txt blk03324.txt blk03325.txt blk03326.txt blk03327.txt blk03328.txt blk03329.txt blk03330.txt blk03331.txt blk03332.txt blk03333.txt blk03334.txt blk03335.txt blk03336.txt blk03337.txt blk03338.txt blk03339.txt blk03340.txt blk03341.txt blk03342.txt blk03343.txt blk03344.txt blk03345.txt blk03346.txt blk03347.txt blk03348.txt blk03349.txt blk03350.txt blk03351.txt blk03352.txt blk03353.txt blk03354.txt blk03355.txt blk03356.txt blk03357.txt blk03358.txt blk03359.txt blk03360.txt blk03361.txt blk03362.txt blk03363.txt blk03364.txt blk03365.txt blk03366.txt blk03367.txt blk03368.txt blk03369.txt blk03370.txt blk03371.txt blk03372.txt blk03373.txt blk03374.txt blk03375.txt blk03376.txt blk03377.txt blk03378.txt blk03379.txt blk03380.txt blk03381.txt blk03382.txt blk03383.txt blk03384.txt blk03385.txt blk03386.txt blk03387.txt blk03388.txt blk03389.txt blk03390.txt blk03391.txt blk03392.txt blk03393.txt blk03394.txt blk03395.txt blk03396.txt blk03397.txt blk03398.txt blk03399.txt blk03400.txt blk03401.txt blk03402.txt blk03403.txt blk03404.txt blk03405.txt blk03406.txt blk03407.txt blk03408.txt blk03409.txt blk03410.txt blk03411.txt blk03412.txt blk03413.txt blk03414.txt blk03415.txt blk03416.txt blk03417.txt blk03418.txt blk03419.txt blk03420.txt blk03421.txt blk03422.txt blk03423.txt blk03424.txt blk03425.txt blk03426.txt blk03427.txt blk03428.txt blk03429.txt blk03430.txt blk03431.txt blk03432.txt blk03433.txt blk03434.txt blk03435.txt blk03436.txt blk03437.txt blk03438.txt blk03439.txt blk03440.txt blk03441.txt blk03442.txt blk03443.txt blk03444.txt blk03445.txt blk03446.txt blk03447.txt blk03448.txt blk03449.txt blk03450.txt blk03451.txt blk03452.txt blk03453.txt blk03454.txt blk03455.txt blk03456.txt blk03457.txt blk03458.txt blk03459.txt blk03460.txt blk03461.txt blk03462.txt blk03463.txt blk03464.txt blk03465.txt blk03466.txt blk03467.txt blk03468.txt blk03469.txt blk03470.txt blk03471.txt blk03472.txt blk03473.txt blk03474.txt blk03475.txt blk03476.txt blk03477.txt blk03478.txt blk03479.txt blk03480.txt blk03481.txt blk03482.txt blk03483.txt blk03484.txt blk03485.txt blk03486.txt blk03487.txt blk03488.txt blk03489.txt blk03490.txt blk03491.txt blk03492.txt blk03493.txt blk03494.txt blk03495.txt blk03496.txt blk03497.txt blk03498.txt blk03499.txt blk03500.txt blk03501.txt blk03502.txt blk03503.txt blk03504.txt blk03505.txt blk03506.txt blk03507.txt blk03508.txt blk03509.txt blk03510.txt blk03511.txt blk03512.txt blk03513.txt blk03514.txt blk03515.txt blk03516.txt blk03517.txt blk03518.txt blk03519.txt blk03520.txt blk03521.txt blk03522.txt blk03523.txt blk03524.txt blk03525.txt blk03526.txt blk03527.txt blk03528.txt blk03529.txt blk03530.txt blk03531.txt blk03532.txt blk03533.txt blk03534.txt blk03535.txt blk03536.txt blk03537.txt blk03538.txt blk03539.txt blk03540.txt blk03541.txt blk03542.txt blk03543.txt blk03544.txt blk03545.txt blk03546.txt blk03547.txt blk03548.txt blk03549.txt blk03550.txt blk03551.txt blk03552.txt blk03553.txt blk03554.txt blk03555.txt blk03556.txt blk03557.txt blk03558.txt blk03559.txt blk03560.txt blk03561.txt blk03562.txt blk03563.txt blk03564.txt blk03565.txt blk03566.txt blk03567.txt blk03568.txt blk03569.txt blk03570.txt blk03571.txt blk03572.txt blk03573.txt blk03574.txt blk03575.txt blk03576.txt blk03577.txt blk03578.txt blk03579.txt blk03580.txt blk03581.txt blk03582.txt blk03583.txt blk03584.txt blk03585.txt blk03586.txt blk03587.txt blk03588.txt blk03589.txt blk03590.txt blk03591.txt blk03592.txt blk03593.txt blk03594.txt blk03595.txt blk03596.txt blk03597.txt blk03598.txt blk03599.txt blk03600.txt blk03601.txt blk03602.txt blk03603.txt blk03604.txt blk03605.txt blk03606.txt blk03607.txt blk03608.txt blk03609.txt blk03610.txt blk03611.txt blk03612.txt blk03613.txt blk03614.txt blk03615.txt blk03616.txt blk03617.txt blk03618.txt blk03619.txt blk03620.txt blk03621.txt blk03622.txt blk03623.txt blk03624.txt blk03625.txt blk03626.txt blk03627.txt blk03628.txt blk03629.txt blk03630.txt blk03631.txt blk03632.txt blk03633.txt blk03634.txt blk03635.txt blk03636.txt blk03637.txt blk03638.txt blk03639.txt blk03640.txt blk03641.txt blk03642.txt blk03643.txt blk03644.txt blk03645.txt blk03646.txt blk03647.txt blk03648.txt blk03649.txt blk03650.txt blk03651.txt blk03652.txt blk03653.txt blk03654.txt blk03655.txt blk03656.txt blk03657.txt blk03658.txt blk03659.txt blk03660.txt blk03661.txt blk03662.txt blk03663.txt blk03664.txt blk03665.txt blk03666.txt blk03667.txt blk03668.txt blk03669.txt blk03670.txt blk03671.txt blk03672.txt blk03673.txt blk03674.txt blk03675.txt blk03676.txt blk03677.txt blk03678.txt blk03679.txt blk03680.txt blk03681.txt blk03682.txt blk03683.txt blk03684.txt blk03685.txt blk03686.txt blk03687.txt blk03688.txt blk03689.txt blk03690.txt blk03691.txt blk03692.txt blk03693.txt blk03694.txt blk03695.txt blk03696.txt blk03697.txt blk03698.txt blk03699.txt blk03700.txt blk03701.txt blk03702.txt blk03703.txt blk03704.txt blk03705.txt blk03706.txt blk03707.txt blk03708.txt blk03709.txt blk03710.txt blk03711.txt blk03712.txt blk03713.txt blk03714.txt blk03715.txt blk03716.txt blk03717.txt blk03718.txt blk03719.txt blk03720.txt blk03721.txt blk03722.txt blk03723.txt blk03724.txt blk03725.txt blk03726.txt blk03727.txt blk03728.txt blk03729.txt blk03730.txt blk03731.txt blk03732.txt blk03733.txt blk03734.txt blk03735.txt blk03736.txt blk03737.txt blk03738.txt blk03739.txt blk03740.txt blk03741.txt blk03742.txt blk03743.txt blk03744.txt blk03745.txt blk03746.txt blk03747.txt blk03748.txt blk03749.txt blk03750.txt blk03751.txt blk03752.txt blk03753.txt blk03754.txt blk03755.txt blk03756.txt blk03757.txt blk03758.txt blk03759.txt blk03760.txt blk03761.txt blk03762.txt blk03763.txt blk03764.txt blk03765.txt blk03766.txt blk03767.txt blk03768.txt blk03769.txt blk03770.txt blk03771.txt blk03772.txt blk03773.txt blk03774.txt blk03775.txt blk03776.txt blk03777.txt blk03778.txt blk03779.txt blk03780.txt blk03781.txt blk03782.txt blk03783.txt blk03784.txt blk03785.txt blk03786.txt blk03787.txt blk03788.txt blk03789.txt blk03790.txt blk03791.txt blk03792.txt blk03793.txt blk03794.txt blk03795.txt blk03796.txt blk03797.txt blk03798.txt blk03799.txt blk03800.txt blk03801.txt blk03802.txt blk03803.txt blk03804.txt blk03805.txt blk03806.txt blk03807.txt blk03808.txt blk03809.txt blk03810.txt blk03811.txt blk03812.txt blk03813.txt blk03814.txt blk03815.txt blk03816.txt blk03817.txt blk03818.txt blk03819.txt blk03820.txt blk03821.txt blk03822.txt blk03823.txt blk03824.txt blk03825.txt blk03826.txt blk03827.txt blk03828.txt blk03829.txt blk03830.txt blk03831.txt blk03832.txt blk03833.txt blk03834.txt blk03835.txt blk03836.txt blk03837.txt blk03838.txt blk03839.txt blk03840.txt blk03841.txt blk03842.txt blk03843.txt blk03844.txt blk03845.txt blk03846.txt blk03847.txt blk03848.txt blk03849.txt blk03850.txt blk03851.txt blk03852.txt blk03853.txt blk03854.txt blk03855.txt blk03856.txt blk03857.txt blk03858.txt blk03859.txt blk03860.txt blk03861.txt blk03862.txt blk03863.txt blk03864.txt blk03865.txt blk03866.txt blk03867.txt blk03868.txt blk03869.txt blk03870.txt blk03871.txt blk03872.txt blk03873.txt blk03874.txt blk03875.txt blk03876.txt blk03877.txt blk03878.txt blk03879.txt blk03880.txt blk03881.txt blk03882.txt blk03883.txt blk03884.txt blk03885.txt blk03886.txt blk03887.txt blk03888.txt blk03889.txt blk03890.txt blk03891.txt blk03892.txt blk03893.txt blk03894.txt blk03895.txt blk03896.txt blk03897.txt blk03898.txt blk03899.txt blk03900.txt blk03901.txt blk03902.txt blk03903.txt blk03904.txt blk03905.txt blk03906.txt blk03907.txt blk03908.txt blk03909.txt blk03910.txt blk03911.txt blk03912.txt blk03913.txt blk03914.txt blk03915.txt blk03916.txt blk03917.txt blk03918.txt blk03919.txt blk03920.txt blk03921.txt blk03922.txt blk03923.txt blk03924.txt blk03925.txt blk03926.txt blk03927.txt blk03928.txt blk03929.txt blk03930.txt blk03931.txt blk03932.txt blk03933.txt blk03934.txt blk03935.txt blk03936.txt blk03937.txt blk03938.txt blk03939.txt blk03940.txt blk03941.txt blk03942.txt blk03943.txt blk03944.txt blk03945.txt blk03946.txt blk03947.txt blk03948.txt blk03949.txt blk03950.txt blk03951.txt blk03952.txt blk03953.txt blk03954.txt blk03955.txt blk03956.txt blk03957.txt blk03958.txt blk03959.txt blk03960.txt blk03961.txt blk03962.txt blk03963.txt blk03964.txt blk03965.txt blk03966.txt blk03967.txt blk03968.txt blk03969.txt blk03970.txt blk03971.txt blk03972.txt blk03973.txt blk03974.txt blk03975.txt blk03976.txt blk03977.txt blk03978.txt blk03979.txt blk03980.txt blk03981.txt blk03982.txt blk03983.txt blk03984.txt blk03985.txt blk03986.txt blk03987.txt blk03988.txt blk03989.txt blk03990.txt blk03991.txt blk03992.txt blk03993.txt blk03994.txt blk03995.txt blk03996.txt blk03997.txt blk03998.txt blk03999.txt blk04000.txt blk04001.txt blk04002.txt blk04003.txt blk04004.txt blk04005.txt blk04006.txt blk04007.txt blk04008.txt blk04009.txt blk04010.txt blk04011.txt blk04012.txt blk04013.txt blk04014.txt blk04015.txt blk04016.txt blk04017.txt blk04018.txt blk04019.txt blk04020.txt blk04021.txt blk04022.txt blk04023.txt blk04024.txt blk04025.txt blk04026.txt blk04027.txt blk04028.txt blk04029.txt blk04030.txt blk04031.txt blk04032.txt blk04033.txt blk04034.txt blk04035.txt blk04036.txt blk04037.txt blk04038.txt blk04039.txt blk04040.txt blk04041.txt blk04042.txt blk04043.txt blk04044.txt blk04045.txt blk04046.txt blk04047.txt blk04048.txt blk04049.txt blk04050.txt blk04051.txt blk04052.txt blk04053.txt blk04054.txt blk04055.txt blk04056.txt blk04057.txt blk04058.txt blk04059.txt blk04060.txt blk04061.txt blk04062.txt blk04063.txt blk04064.txt blk04065.txt blk04066.txt blk04067.txt blk04068.txt blk04069.txt blk04070.txt blk04071.txt blk04072.txt blk04073.txt blk04074.txt blk04075.txt blk04076.txt blk04077.txt blk04078.txt blk04079.txt blk04080.txt blk04081.txt blk04082.txt blk04083.txt blk04084.txt blk04085.txt blk04086.txt blk04087.txt blk04088.txt blk04089.txt blk04090.txt blk04091.txt blk04092.txt blk04093.txt blk04094.txt blk04095.txt blk04096.txt blk04097.txt blk04098.txt blk04099.txt blk04100.txt blk04101.txt blk04102.txt blk04103.txt blk04104.txt blk04105.txt blk04106.txt blk04107.txt blk04108.txt blk04109.txt blk04110.txt blk04111.txt blk04112.txt blk04113.txt blk04114.txt blk04115.txt blk04116.txt blk04117.txt blk04118.txt blk04119.txt blk04120.txt blk04121.txt blk04122.txt blk04123.txt blk04124.txt blk04125.txt blk04126.txt blk04127.txt blk04128.txt blk04129.txt blk04130.txt blk04131.txt blk04132.txt blk04133.txt blk04134.txt blk04135.txt blk04136.txt blk04137.txt blk04138.txt blk04139.txt blk04140.txt blk04141.txt blk04142.txt blk04143.txt blk04144.txt blk04145.txt blk04146.txt blk04147.txt blk04148.txt blk04149.txt blk04150.txt blk04151.txt blk04152.txt blk04153.txt blk04154.txt blk04155.txt blk04156.txt blk04157.txt blk04158.txt blk04159.txt blk04160.txt blk04161.txt blk04162.txt blk04163.txt blk04164.txt blk04165.txt blk04166.txt blk04167.txt blk04168.txt blk04169.txt blk04170.txt blk04171.txt blk04172.txt blk04173.txt blk04174.txt blk04175.txt blk04176.txt blk04177.txt blk04178.txt blk04179.txt blk04180.txt blk04181.txt blk04182.txt blk04183.txt blk04184.txt blk04185.txt blk04186.txt blk04187.txt blk04188.txt blk04189.txt blk04190.txt blk04191.txt blk04192.txt blk04193.txt blk04194.txt blk04195.txt blk04196.txt blk04197.txt blk04198.txt blk04199.txt blk04200.txt blk04201.txt blk04202.txt blk04203.txt blk04204.txt blk04205.txt blk04206.txt blk04207.txt blk04208.txt blk04209.txt blk04210.txt blk04211.txt blk04212.txt blk04213.txt blk04214.txt blk04215.txt blk04216.txt blk04217.txt blk04218.txt blk04219.txt blk04220.txt blk04221.txt blk04222.txt blk04223.txt blk04224.txt blk04225.txt blk04226.txt blk04227.txt blk04228.txt blk04229.txt blk04230.txt blk04231.txt blk04232.txt blk04233.txt blk04234.txt blk04235.txt blk04236.txt blk04237.txt blk04238.txt blk04239.txt blk04240.txt blk04241.txt blk04242.txt blk04243.txt blk04244.txt blk04245.txt blk04246.txt blk04247.txt blk04248.txt blk04249.txt blk04250.txt blk04251.txt blk04252.txt blk04253.txt blk04254.txt blk04255.txt blk04256.txt blk04257.txt blk04258.txt blk04259.txt blk04260.txt blk04261.txt blk04262.txt blk04263.txt blk04264.txt blk04265.txt blk04266.txt blk04267.txt blk04268.txt blk04269.txt blk04270.txt blk04271.txt blk04272.txt blk04273.txt blk04274.txt blk04275.txt blk04276.txt blk04277.txt blk04278.txt blk04279.txt blk04280.txt blk04281.txt blk04282.txt blk04283.txt blk04284.txt blk04285.txt blk04286.txt blk04287.txt blk04288.txt blk04289.txt blk04290.txt blk04291.txt blk04292.txt blk04293.txt blk04294.txt blk04295.txt blk04296.txt blk04297.txt blk04298.txt blk04299.txt blk04300.txt blk04301.txt blk04302.txt blk04303.txt blk04304.txt blk04305.txt blk04306.txt blk04307.txt blk04308.txt blk04309.txt blk04310.txt blk04311.txt blk04312.txt blk04313.txt blk04314.txt blk04315.txt blk04316.txt blk04317.txt blk04318.txt blk04319.txt blk04320.txt blk04321.txt blk04322.txt blk04323.txt blk04324.txt blk04325.txt blk04326.txt blk04327.txt blk04328.txt blk04329.txt blk04330.txt blk04331.txt blk04332.txt blk04333.txt blk04334.txt blk04335.txt blk04336.txt blk04337.txt blk04338.txt blk04339.txt blk04340.txt blk04341.txt blk04342.txt blk04343.txt blk04344.txt blk04345.txt blk04346.txt blk04347.txt blk04348.txt blk04349.txt blk04350.txt blk04351.txt blk04352.txt blk04353.txt blk04354.txt blk04355.txt blk04356.txt blk04357.txt blk04358.txt blk04359.txt blk04360.txt blk04361.txt blk04362.txt blk04363.txt blk04364.txt blk04365.txt blk04366.txt blk04367.txt blk04368.txt blk04369.txt blk04370.txt blk04371.txt blk04372.txt blk04373.txt blk04374.txt blk04375.txt blk04376.txt blk04377.txt blk04378.txt blk04379.txt blk04380.txt blk04381.txt blk04382.txt blk04383.txt blk04384.txt blk04385.txt blk04386.txt blk04387.txt blk04388.txt blk04389.txt blk04390.txt blk04391.txt blk04392.txt blk04393.txt blk04394.txt blk04395.txt blk04396.txt blk04397.txt blk04398.txt blk04399.txt blk04400.txt blk04401.txt blk04402.txt blk04403.txt blk04404.txt blk04405.txt blk04406.txt blk04407.txt blk04408.txt blk04409.txt blk04410.txt blk04411.txt blk04412.txt blk04413.txt blk04414.txt blk04415.txt blk04416.txt blk04417.txt blk04418.txt blk04419.txt blk04420.txt blk04421.txt blk04422.txt blk04423.txt blk04424.txt blk04425.txt blk04426.txt blk04427.txt blk04428.txt blk04429.txt blk04430.txt blk04431.txt blk04432.txt blk04433.txt blk04434.txt blk04435.txt blk04436.txt blk04437.txt blk04438.txt blk04439.txt blk04440.txt blk04441.txt blk04442.txt blk04443.txt blk04444.txt blk04445.txt blk04446.txt blk04447.txt blk04448.txt blk04449.txt blk04450.txt blk04451.txt blk04452.txt blk04453.txt blk04454.txt blk04455.txt blk04456.txt blk04457.txt blk04458.txt blk04459.txt blk04460.txt blk04461.txt blk04462.txt blk04463.txt blk04464.txt blk04465.txt blk04466.txt blk04467.txt blk04468.txt blk04469.txt blk04470.txt blk04471.txt blk04472.txt blk04473.txt blk04474.txt blk04475.txt blk04476.txt blk04477.txt blk04478.txt blk04479.txt blk04480.txt blk04481.txt blk04482.txt blk04483.txt blk04484.txt blk04485.txt blk04486.txt blk04487.txt blk04488.txt blk04489.txt blk04490.txt blk04491.txt blk04492.txt blk04493.txt blk04494.txt blk04495.txt blk04496.txt blk04497.txt blk04498.txt blk04499.txt blk04500.txt blk04501.txt blk04502.txt blk04503.txt blk04504.txt blk04505.txt blk04506.txt blk04507.txt blk04508.txt blk04509.txt blk04510.txt blk04511.txt blk04512.txt blk04513.txt blk04514.txt blk04515.txt blk04516.txt blk04517.txt blk04518.txt blk04519.txt blk04520.txt blk04521.txt blk04522.txt blk04523.txt blk04524.txt blk04525.txt blk04526.txt blk04527.txt blk04528.txt blk04529.txt blk04530.txt blk04531.txt blk04532.txt blk04533.txt blk04534.txt blk04535.txt blk04536.txt blk04537.txt blk04538.txt blk04539.txt blk04540.txt blk04541.txt blk04542.txt blk04543.txt blk04544.txt blk04545.txt blk04546.txt blk04547.txt blk04548.txt blk04549.txt blk04550.txt blk04551.txt blk04552.txt blk04553.txt blk04554.txt blk04555.txt blk04556.txt blk04557.txt blk04558.txt blk04559.txt blk04560.txt blk04561.txt blk04562.txt blk04563.txt blk04564.txt blk04565.txt blk04566.txt blk04567.txt blk04568.txt blk04569.txt blk04570.txt blk04571.txt blk04572.txt blk04573.txt blk04574.txt blk04575.txt blk04576.txt blk04577.txt blk04578.txt blk04579.txt blk04580.txt blk04581.txt blk04582.txt blk04583.txt blk04584.txt blk04585.txt blk04586.txt blk04587.txt blk04588.txt blk04589.txt blk04590.txt blk04591.txt blk04592.txt blk04593.txt blk04594.txt blk04595.txt blk04596.txt blk04597.txt blk04598.txt blk04599.txt blk04600.txt blk04601.txt blk04602.txt blk04603.txt blk04604.txt blk04605.txt blk04606.txt blk04607.txt blk04608.txt blk04609.txt blk04610.txt blk04611.txt blk04612.txt blk04613.txt blk04614.txt blk04615.txt blk04616.txt blk04617.txt blk04618.txt blk04619.txt blk04620.txt blk04621.txt blk04622.txt blk04623.txt blk04624.txt blk04625.txt blk04626.txt blk04627.txt blk04628.txt blk04629.txt blk04630.txt blk04631.txt blk04632.txt blk04633.txt blk04634.txt blk04635.txt blk04636.txt blk04637.txt blk04638.txt blk04639.txt blk04640.txt blk04641.txt blk04642.txt blk04643.txt blk04644.txt blk04645.txt blk04646.txt blk04647.txt blk04648.txt blk04649.txt blk04650.txt blk04651.txt blk04652.txt blk04653.txt blk04654.txt blk04655.txt blk04656.txt blk04657.txt blk04658.txt blk04659.txt blk04660.txt blk04661.txt blk04662.txt blk04663.txt blk04664.txt blk04665.txt blk04666.txt blk04667.txt blk04668.txt blk04669.txt blk04670.txt blk04671.txt blk04672.txt blk04673.txt blk04674.txt blk04675.txt blk04676.txt blk04677.txt blk04678.txt blk04679.txt blk04680.txt blk04681.txt blk04682.txt blk04683.txt blk04684.txt blk04685.txt blk04686.txt blk04687.txt blk04688.txt blk04689.txt blk04690.txt blk04691.txt blk04692.txt blk04693.txt blk04694.txt blk04695.txt blk04696.txt blk04697.txt blk04698.txt blk04699.txt blk04700.txt blk04701.txt blk04702.txt blk04703.txt blk04704.txt blk04705.txt blk04706.txt blk04707.txt blk04708.txt blk04709.txt blk04710.txt blk04711.txt blk04712.txt blk04713.txt blk04714.txt blk04715.txt blk04716.txt blk04717.txt blk04718.txt blk04719.txt blk04720.txt blk04721.txt blk04722.txt blk04723.txt blk04724.txt blk04725.txt blk04726.txt blk04727.txt blk04728.txt blk04729.txt blk04730.txt blk04731.txt blk04732.txt blk04733.txt blk04734.txt blk04735.txt blk04736.txt blk04737.txt blk04738.txt blk04739.txt blk04740.txt blk04741.txt blk04742.txt blk04743.txt blk04744.txt blk04745.txt blk04746.txt blk04747.txt blk04748.txt blk04749.txt blk04750.txt blk04751.txt blk04752.txt blk04753.txt blk04754.txt blk04755.txt blk04756.txt blk04757.txt blk04758.txt blk04759.txt blk04760.txt blk04761.txt blk04762.txt blk04763.txt blk04764.txt blk04765.txt blk04766.txt blk04767.txt blk04768.txt blk04769.txt blk04770.txt blk04771.txt blk04772.txt blk04773.txt blk04774.txt blk04775.txt blk04776.txt blk04777.txt blk04778.txt blk04779.txt blk04780.txt blk04781.txt blk04782.txt blk04783.txt blk04784.txt blk04785.txt blk04786.txt blk04787.txt blk04788.txt blk04789.txt blk04790.txt blk04791.txt blk04792.txt blk04793.txt blk04794.txt blk04795.txt blk04796.txt blk04797.txt blk04798.txt blk04799.txt blk04800.txt blk04801.txt blk04802.txt blk04803.txt blk04804.txt blk04805.txt blk04806.txt blk04807.txt blk04808.txt blk04809.txt blk04810.txt blk04811.txt blk04812.txt blk04813.txt blk04814.txt blk04815.txt blk04816.txt blk04817.txt blk04818.txt blk04819.txt blk04820.txt blk04821.txt blk04822.txt blk04823.txt blk04824.txt blk04825.txt blk04826.txt blk04827.txt blk04828.txt blk04829.txt blk04830.txt blk04831.txt blk04832.txt blk04833.txt blk04834.txt blk04835.txt blk04836.txt blk04837.txt blk04838.txt blk04839.txt blk04840.txt blk04841.txt blk04842.txt blk04843.txt blk04844.txt blk04845.txt blk04846.txt blk04847.txt blk04848.txt blk04849.txt blk04850.txt blk04851.txt blk04852.txt blk04853.txt blk04854.txt blk04855.txt blk04856.txt blk04857.txt blk04858.txt blk04859.txt blk04860.txt blk04861.txt blk04862.txt blk04863.txt blk04864.txt blk04865.txt blk04866.txt blk04867.txt blk04868.txt blk04869.txt blk04870.txt blk04871.txt blk04872.txt blk04873.txt blk04874.txt blk04875.txt blk04876.txt blk04877.txt blk04878.txt blk04879.txt blk04880.txt blk04881.txt blk04882.txt blk04883.txt blk04884.txt blk04885.txt blk04886.txt blk04887.txt blk04888.txt blk04889.txt blk04890.txt blk04891.txt blk04892.txt blk04893.txt blk04894.txt blk04895.txt blk04896.txt blk04897.txt blk04898.txt blk04899.txt blk04900.txt blk04901.txt blk04902.txt blk04903.txt blk04904.txt blk04905.txt blk04906.txt blk04907.txt blk04908.txt blk04909.txt blk04910.txt blk04911.txt blk04912.txt blk04913.txt blk04914.txt blk04915.txt blk04916.txt blk04917.txt blk04918.txt blk04919.txt blk04920.txt blk04921.txt blk04922.txt blk04923.txt blk04924.txt blk04925.txt blk04926.txt blk04927.txt blk04928.txt blk04929.txt blk04930.txt blk04931.txt blk04932.txt blk04933.txt blk04934.txt blk04935.txt blk04936.txt blk04937.txt blk04938.txt blk04939.txt blk04940.txt blk04941.txt blk04942.txt blk04943.txt blk04944.txt blk04945.txt blk04946.txt blk04947.txt blk04948.txt blk04949.txt blk04950.txt blk04951.txt blk04952.txt blk04953.txt blk04954.txt blk04955.txt blk04956.txt blk04957.txt blk04958.txt blk04959.txt blk04960.txt blk04961.txt blk04962.txt blk04963.txt blk04964.txt blk04965.txt blk04966.txt blk04967.txt blk04968.txt blk04969.txt blk04970.txt blk04971.txt blk04972.txt blk04973.txt blk04974.txt blk04975.txt blk04976.txt blk04977.txt blk04978.txt blk04979.txt blk04980.txt blk04981.txt blk04982.txt blk04983.txt blk04984.txt blk04985.txt blk04986.txt blk04987.txt blk04988.txt blk04989.txt blk04990.txt blk04991.txt blk04992.txt blk04993.txt blk04994.txt blk04995.txt blk04996.txt blk04997.txt blk04998.txt blk04999.txt blk05000.txt blk05001.txt blk05002.txt blk05003.txt blk05004.txt blk05005.txt blk05006.txt blk05007.txt blk05008.txt blk05009.txt blk05010.txt blk05011.txt blk05012.txt blk05013.txt blk05014.txt blk05015.txt blk05016.txt blk05017.txt blk05018.txt blk05019.txt blk05020.txt blk05021.txt blk05022.txt blk05023.txt blk05024.txt blk05025.txt blk05026.txt blk05027.txt blk05028.txt blk05029.txt blk05030.txt blk05031.txt blk05032.txt blk05033.txt blk05034.txt blk05035.txt blk05036.txt blk05037.txt blk05038.txt blk05039.txt blk05040.txt blk05041.txt blk05042.txt blk05043.txt blk05044.txt blk05045.txt blk05046.txt blk05047.txt blk05048.txt blk05049.txt blk05050.txt blk05051.txt blk05052.txt blk05053.txt blk05054.txt blk05055.txt blk05056.txt blk05057.txt blk05058.txt blk05059.txt blk05060.txt blk05061.txt blk05062.txt blk05063.txt blk05064.txt blk05065.txt blk05066.txt blk05067.txt blk05068.txt blk05069.txt blk05070.txt blk05071.txt blk05072.txt blk05073.txt blk05074.txt blk05075.txt blk05076.txt blk05077.txt blk05078.txt blk05079.txt blk05080.txt blk05081.txt blk05082.txt blk05083.txt blk05084.txt blk05085.txt blk05086.txt blk05087.txt blk05088.txt blk05089.txt blk05090.txt blk05091.txt blk05092.txt blk05093.txt blk05094.txt blk05095.txt blk05096.txt blk05097.txt blk05098.txt blk05099.txt blk05100.txt blk05101.txt blk05102.txt blk05103.txt blk05104.txt blk05105.txt blk05106.txt blk05107.txt blk05108.txt blk05109.txt blk05110.txt blk05111.txt blk05112.txt blk05113.txt blk05114.txt blk05115.txt blk05116.txt blk05117.txt blk05118.txt blk05119.txt blk05120.txt blk05121.txt blk05122.txt blk05123.txt blk05124.txt blk05125.txt blk05126.txt blk05127.txt blk05128.txt blk05129.txt blk05130.txt blk05131.txt blk05132.txt blk05133.txt blk05134.txt blk05135.txt blk05136.txt blk05137.txt blk05138.txt blk05139.txt blk05140.txt blk05141.txt blk05142.txt blk05143.txt blk05144.txt blk05145.txt blk05146.txt blk05147.txt blk05148.txt blk05149.txt blk05150.txt blk05151.txt blk05152.txt blk05153.txt blk05154.txt blk05155.txt blk05156.txt blk05157.txt blk05158.txt blk05159.txt blk05160.txt blk05161.txt blk05162.txt blk05163.txt blk05164.txt blk05165.txt blk05166.txt blk05167.txt blk05168.txt blk05169.txt blk05170.txt blk05171.txt blk05172.txt blk05173.txt blk05174.txt blk05175.txt blk05176.txt blk05177.txt blk05178.txt blk05179.txt blk05180.txt blk05181.txt blk05182.txt blk05183.txt blk05184.txt blk05185.txt blk05186.txt blk05187.txt blk05188.txt blk05189.txt blk05190.txt blk05191.txt blk05192.txt blk05193.txt blk05194.txt blk05195.txt blk05196.txt blk05197.txt blk05198.txt blk05199.txt blk05200.txt blk05201.txt blk05202.txt blk05203.txt blk05204.txt blk05205.txt blk05206.txt blk05207.txt blk05208.txt blk05209.txt blk05210.txt blk05211.txt blk05212.txt blk05213.txt blk05214.txt blk05215.txt blk05216.txt blk05217.txt blk05218.txt blk05219.txt blk05220.txt blk05221.txt blk05222.txt blk05223.txt blk05224.txt blk05225.txt blk05226.txt blk05227.txt blk05228.txt blk05229.txt blk05230.txt blk05231.txt blk05232.txt blk05233.txt blk05234.txt blk05235.txt blk05236.txt blk05237.txt blk05238.txt blk05239.txt blk05240.txt blk05241.txt blk05242.txt blk05243.txt blk05244.txt blk05245.txt blk05246.txt blk05247.txt blk05248.txt blk05249.txt blk05250.txt blk05251.txt blk05252.txt blk05253.txt blk05254.txt blk05255.txt blk05256.txt blk05257.txt blk05258.txt blk05259.txt blk05260.txt blk05261.txt blk05262.txt blk05263.txt blk05264.txt blk05265.txt blk05266.txt blk05267.txt blk05268.txt blk05269.txt blk05270.txt blk05271.txt blk05272.txt blk05273.txt blk05274.txt blk05275.txt blk05276.txt blk05277.txt blk05278.txt blk05279.txt blk05280.txt blk05281.txt blk05282.txt blk05283.txt blk05284.txt blk05285.txt blk05286.txt blk05287.txt blk05288.txt blk05289.txt blk05290.txt blk05291.txt blk05292.txt blk05293.txt blk05294.txt blk05295.txt blk05296.txt blk05297.txt blk05298.txt blk05299.txt blk05300.txt blk05301.txt blk05302.txt blk05303.txt blk05304.txt blk05305.txt blk05306.txt blk05307.txt blk05308.txt blk05309.txt blk05310.txt blk05311.txt blk05312.txt blk05313.txt blk05314.txt blk05315.txt blk05316.txt blk05317.txt blk05318.txt blk05319.txt blk05320.txt blk05321.txt blk05322.txt blk05323.txt blk05324.txt blk05325.txt blk05326.txt blk05327.txt blk05328.txt blk05329.txt blk05330.txt blk05331.txt blk05332.txt blk05333.txt blk05334.txt blk05335.txt blk05336.txt blk05337.txt blk05338.txt blk05339.txt blk05340.txt blk05341.txt blk05342.txt blk05343.txt blk05344.txt blk05345.txt blk05346.txt blk05347.txt blk05348.txt blk05349.txt blk05350.txt blk05351.txt blk05352.txt blk05353.txt blk05354.txt blk05355.txt blk05356.txt blk05357.txt blk05358.txt blk05359.txt blk05360.txt blk05361.txt blk05362.txt blk05363.txt blk05364.txt blk05365.txt blk05366.txt blk05367.txt blk05368.txt blk05369.txt blk05370.txt blk05371.txt blk05372.txt blk05373.txt blk05374.txt blk05375.txt blk05376.txt blk05377.txt blk05378.txt blk05379.txt blk05380.txt blk05381.txt blk05382.txt blk05383.txt blk05384.txt blk05385.txt blk05386.txt blk05387.txt blk05388.txt blk05389.txt blk05390.txt blk05391.txt blk05392.txt blk05393.txt blk05394.txt blk05395.txt blk05396.txt blk05397.txt blk05398.txt blk05399.txt blk05400.txt blk05401.txt blk05402.txt blk05403.txt blk05404.txt blk05405.txt blk05406.txt blk05407.txt blk05408.txt blk05409.txt blk05410.txt blk05411.txt blk05412.txt blk05413.txt blk05414.txt blk05415.txt blk05416.txt blk05417.txt blk05418.txt blk05419.txt blk05420.txt blk05421.txt blk05422.txt blk05423.txt blk05424.txt blk05425.txt blk05426.txt blk05427.txt blk05428.txt blk05429.txt blk05430.txt blk05431.txt blk05432.txt blk05433.txt blk05434.txt blk05435.txt blk05436.txt blk05437.txt blk05438.txt blk05439.txt blk05440.txt blk05441.txt blk05442.txt blk05443.txt blk05444.txt blk05445.txt blk05446.txt blk05447.txt blk05448.txt blk05449.txt blk05450.txt blk05451.txt blk05452.txt blk05453.txt blk05454.txt blk05455.txt blk05456.txt blk05457.txt blk05458.txt blk05459.txt blk05460.txt blk05461.txt blk05462.txt blk05463.txt blk05464.txt blk05465.txt blk05466.txt blk05467.txt blk05468.txt blk05469.txt blk05470.txt blk05471.txt blk05472.txt blk05473.txt blk05474.txt blk05475.txt blk05476.txt blk05477.txt blk05478.txt blk05479.txt blk05480.txt blk05481.txt blk05482.txt blk05483.txt blk05484.txt blk05485.txt blk05486.txt blk05487.txt blk05488.txt blk05489.txt blk05490.txt blk05491.txt blk05492.txt blk05493.txt blk05494.txt blk05495.txt blk05496.txt blk05497.txt blk05498.txt blk05499.txt blk05500.txt blk05501.txt blk05502.txt blk05503.txt blk05504.txt blk05505.txt blk05506.txt blk05507.txt blk05508.txt blk05509.txt blk05510.txt blk05511.txt blk05512.txt blk05513.txt blk05514.txt blk05515.txt blk05516.txt blk05517.txt blk05518.txt blk05519.txt blk05520.txt blk05521.txt blk05522.txt blk05523.txt blk05524.txt blk05525.txt blk05526.txt blk05527.txt blk05528.txt blk05529.txt blk05530.txt blk05531.txt blk05532.txt blk05533.txt blk05534.txt blk05535.txt blk05536.txt blk05537.txt blk05538.txt blk05539.txt blk05540.txt blk05541.txt blk05542.txt blk05543.txt blk05544.txt blk05545.txt blk05546.txt blk05547.txt blk05548.txt blk05549.txt blk05550.txt blk05551.txt blk05552.txt blk05553.txt blk05554.txt blk05555.txt blk05556.txt blk05557.txt blk05558.txt blk05559.txt blk05560.txt blk05561.txt blk05562.txt blk05563.txt blk05564.txt blk05565.txt blk05566.txt blk05567.txt blk05568.txt blk05569.txt blk05570.txt blk05571.txt blk05572.txt blk05573.txt blk05574.txt blk05575.txt blk05576.txt blk05577.txt blk05578.txt blk05579.txt blk05580.txt blk05581.txt blk05582.txt blk05583.txt blk05584.txt blk05585.txt blk05586.txt blk05587.txt blk05588.txt blk05589.txt blk05590.txt blk05591.txt blk05592.txt blk05593.txt blk05594.txt blk05595.txt blk05596.txt blk05597.txt blk05598.txt blk05599.txt blk05600.txt blk05601.txt blk05602.txt blk05603.txt blk05604.txt blk05605.txt blk05606.txt blk05607.txt blk05608.txt blk05609.txt blk05610.txt blk05611.txt blk05612.txt blk05613.txt blk05614.txt blk05615.txt blk05616.txt blk05617.txt blk05618.txt blk05619.txt blk05620.txt blk05621.txt blk05622.txt blk05623.txt blk05624.txt blk05625.txt blk05626.txt blk05627.txt blk05628.txt blk05629.txt blk05630.txt blk05631.txt blk05632.txt blk05633.txt blk05634.txt blk05635.txt blk05636.txt blk05637.txt blk05638.txt blk05639.txt blk05640.txt blk05641.txt blk05642.txt blk05643.txt blk05644.txt blk05645.txt blk05646.txt blk05647.txt blk05648.txt blk05649.txt blk05650.txt blk05651.txt blk05652.txt blk05653.txt blk05654.txt blk05655.txt blk05656.txt blk05657.txt blk05658.txt blk05659.txt blk05660.txt blk05661.txt blk05662.txt blk05663.txt blk05664.txt blk05665.txt blk05666.txt blk05667.txt blk05668.txt blk05669.txt blk05670.txt blk05671.txt blk05672.txt blk05673.txt blk05674.txt blk05675.txt blk05676.txt blk05677.txt blk05678.txt blk05679.txt blk05680.txt blk05681.txt blk05682.txt blk05683.txt blk05684.txt blk05685.txt blk05686.txt blk05687.txt blk05688.txt blk05689.txt blk05690.txt blk05691.txt blk05692.txt blk05693.txt blk05694.txt blk05695.txt blk05696.txt blk05697.txt blk05698.txt blk05699.txt blk05700.txt blk05701.txt blk05702.txt blk05703.txt blk05704.txt blk05705.txt blk05706.txt blk05707.txt blk05708.txt blk05709.txt blk05710.txt blk05711.txt blk05712.txt blk05713.txt blk05714.txt blk05715.txt blk05716.txt blk05717.txt blk05718.txt blk05719.txt blk05720.txt blk05721.txt blk05722.txt blk05723.txt blk05724.txt blk05725.txt blk05726.txt blk05727.txt blk05728.txt blk05729.txt blk05730.txt blk05731.txt blk05732.txt blk05733.txt blk05734.txt blk05735.txt blk05736.txt blk05737.txt blk05738.txt blk05739.txt blk05740.txt blk05741.txt blk05742.txt blk05743.txt blk05744.txt blk05745.txt blk05746.txt blk05747.txt blk05748.txt blk05749.txt blk05750.txt blk05751.txt blk05752.txt blk05753.txt blk05754.txt blk05755.txt blk05756.txt blk05757.txt blk05758.txt blk05759.txt blk05760.txt blk05761.txt blk05762.txt blk05763.txt blk05764.txt blk05765.txt blk05766.txt blk05767.txt blk05768.txt blk05769.txt blk05770.txt blk05771.txt blk05772.txt blk05773.txt blk05774.txt blk05775.txt blk05776.txt blk05777.txt blk05778.txt blk05779.txt blk05780.txt blk05781.txt blk05782.txt blk05783.txt blk05784.txt blk05785.txt blk05786.txt blk05787.txt blk05788.txt blk05789.txt blk05790.txt blk05791.txt blk05792.txt blk05793.txt blk05794.txt blk05795.txt blk05796.txt blk05797.txt blk05798.txt blk05799.txt blk05800.txt blk05801.txt blk05802.txt blk05803.txt blk05804.txt Show all files
Advertisement: