Skip to content

Instantly share code, notes, and snippets.

@fanoush
Last active May 8, 2021 10:21
Show Gist options
  • Save fanoush/0622360d9c0def3da291867d7d9652ea to your computer and use it in GitHub Desktop.
Save fanoush/0622360d9c0def3da291867d7d9652ea to your computer and use it in GitHub Desktop.
espruino code to update SDK14 DFU bootloader located at 0x78000 (e.g. DaFit watches like P8), if updating from stock DaFit bootloader make sure to fix also UICR MBR settings at 0x10001018 or you will brick device when downgrading to SDK11/12
// -- 0. check https://github.com/fanoush/ds-d6/wiki/Replacing-Nordic-DFU-bootloader for fixing MBR settings UICR at 0x10001018
// this is needed before flashing any softdevice/bootloader upgrading/downgrading package
// basically peek32(0x10001018).toString(16); shoud return 0x7e000 and not 0xffffffff or you will brick device by downgrading SDK/SoftrDevice !!!
/* something like this should work (+disconnect/reconnect)
NRF.onRestart=function(){
poke32(0x4001e504,1);while(!peek32(0x4001e400)); // enable flash writing
poke32(0x10001018,0x7E000);while(!peek32(0x4001e400)); // set mbr settings
poke32(0x4001e504, 0);while(!peek32(0x4001e400)); // disable flash writing
}
NRF.restart();
*/
// -- 1. copy paste methods for flash writing and verification below to Espruino WebIDE left side
E.setFlags({unsafeFlash:1});
var fl=require("Flash");
var ladd=0;var lpg=0;var nadd=0;// last address, last page addr, next addr
var flash=function(a,d){
if (nadd>0 && nadd<a) console.log("Hole in data, got "+a.toString(16)+", expected "+nadd.toString(16));
var p=fl.getPage(a).addr;
if (p>lpg) {fl.erasePage(p);lpg=p;console.log("Erasing page 0x"+p.toString(16));}
p=fl.getPage(a+d.length-1).addr;
if (p>lpg) {fl.erasePage(p);lpg=p;console.log("Erasing page 0x"+p.toString(16));}
if (a>ladd) {fl.write(d,a);ladd=a;nadd=a+d.length;}
console.log(a.toString(16)+" F-OK")
}
var verify=function(a,d){
if (typeof(d)=="string") d=E.toUint8Array(d);
var m=fl.read(d.length,a)
for (var i=0;i<d.length;i++,a++)
if (m[i]!=d[i]) console.log(a.toString(16)+" V-FAIL");
console.log(a.toString(16)+" V-OK");
}
var f=flash
// uuencoded bootloader binary below was created from compiled binary by bash shell code:
// a=$((0x78000));for i in `base64 -w96 nrf52832_xxaa_s132.bin` ; do echo "f(${a},atob('$i'));";a=$((a+72)) ; done
//
// -- 2. copy paste code below starting with echo(0) and ending with echo(1) to WebIDE console - left side
echo(0);
f(491520,atob('AAABILWCBwDdggcA34IHAOGCBwDjggcA5YIHAAAAAAAAAAAAAAAAAAAAAADtrwcA6YIHAAAAAADrggcA7YIHAF2wBwDvggcA'));
f(491592,atob('74IHAO+CBwDvggcA74IHAO+CBwDvggcA74IHAO+CBwDvggcA74IHAO+CBwDvggcA74IHAO+CBwDvggcAmbMHAO+CBwDvggcA'));
f(491664,atob('wbAHAO+CBwBtrwcA74IHAO+CBwDvggcA74IHAO+CBwDvggcA74IHAAAAAAAAAAAA74IHAO+CBwDvggcA74IHAO+CBwDvggcA'));
f(491736,atob('74IHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(491808,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(491880,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(491952,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(492024,atob('AAAAAAAAAAAQtQVMI3gzuQRLE7EESK/zAIABIyNwEL3EKAAgAAAAAOS+BwAItQNLG7EDSQNIr/MAgAi9AAAAAMgoACDkvgcA'));
f(492096,atob('FUsAKwi/E0udRqP1gDoAIYtGD0YTSBRKEhoD8Jv8D0sAKwDQmEcOSwArANCYRwAgACEEAA0ADUgAKALQDEiv8wCAA/BH/CAA'));
f(492168,atob('KQAD8N/5A/At/AC/AAAIAAAAASAAAAAAAAAAAMQoACCYNAAgAAAAAAAAAAAGSQdKB0ubGgPdBDvIWNBQ+9wD8LP4//e5/wAA'));
f(492240,atob('RL8HADAoACDEKAAg/uf+5/7n/uf+5/7n/uf+5/7n/udwte/zEIZytg1KlGgBI6S5k2AMSwxN0/iAEClAEWDD+IBQ0/iEEFFg'));
f(492312,atob('T/D/MsP4hCAEcAa5YrYAIHC9A3D55wC/4CgAIADhAOD8Bv+9IEshSRpoLyMAvwC/AL8AvwC/AL8AvwC/ikIv0AC/AL8AvwC/'));
f(492384,atob('AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/'));
f(492456,atob('AL8AvwC/AL8AvwC/AL8AvwE7w9FwRwC/MCgAIAAk9AAES1PoAR/B6gFBQ+gBEgAq99FwR+woACATtRFLU+gBL5Sy2YkMRJmJ'));
f(492528,atob('jEIov2QaGYmMQgK/v/MvjwAjB+DE6gIEQ+gBQQAp6dFP8AEDjfgDMAGSAZsDYJ34AwACsBC9AL/sKAAgcLQERg9ICkYBaJmx'));
f(492600,atob('qrFDaB1oax4jQBLRxmi0Qg/TZh4F+wJlBmm1QgnYDWkhRqxGcLxgRwggcLxwRwkg++cQIPnnAL+wKAAgELUGSwAiU+gAHwHq'));
f(492672,atob('AgBD6AAElPAAD/bREL0Av/woACBI33BHYd9wR2DfcEcR33BHEN9wRxC1C2iaaEtoACTA6QJDwOkAIpR4I0QDYZL5A0AjRENh'));
f(492744,atob('S2gDYQHxDANDYVN4A/DAA4ArBL8EMQFhEL1DaBpEQmARsQE5mkIB0QEgcEcT+AELAfgBD/bnLenzRwAlBkaIRi9GLEazaEOz'));
f(492816,atob('M2gBIg3xBwEwRphHCLOzaJ34B8ABOwzwfwJf+oL5xPEgAbNgpPEgAwn6A/Mp+gHxCfoE8gtDHPCAD0XqAgVH6gMHBPEHBALR'));
f(492888,atob('yOkAVwLgRizU0QAgArC96PCH97UPRmlGFkb/98T/sLHd6QATACUB8AEESghC6sNyVOoFAU/qUwMUv91DHUY7eRS/1EMURggr'));
f(492960,atob('A9HG6QBFA7DwvQQrCNE0YCJG0xerQga/okIBIAAg8ucCKwPRI7IzgBqy8ucBKwPRY7IzcFqy7OcAIOTnc7UMRmlGFkb/94v/'));
f(493032,atob('aLEjeQgrDNHd6QBFxukARd3pACOrQga/okIBIAAgArBwvQQrBNEAmzNgHEYAJe/nAitP8AAABNEAmzOAnLIFRubnASvr0QCb'));
f(493104,atob('M3AD8P8E9uc3tQ1GaUYURv/3Xf8wsSp5CCrd6QAxA9HE6QAxA7AwvQQqGEZP6uNxCNEjYBpGC0aLQga/gkIBIAAg7+cCKgTR'));
f(493176,atob('G7IjgBqy0xfy5wEqA9FbsiNwWrL35wAg4Oct6fNBg2gERohGI7kAJzhGArC96PCBA2gBIg3xBwGYRwdGACjy0KNonfgHUAE7'));
f(493248,atob('KgajYBrVBfB/BQcmo2gAK+XQI2gBIg3xBwEgRphHACjd0KNonfgHIAE7o2AC8H8Ds0AdQxMGBvEHBgLUyPgAUM7nIy7i0crn'));
f(493320,atob('c7UNRgGpBEb/97//BkYYuQAmMEYCsHC9lOgPAIXoDwABmYpC9NOpYKNoWxqjYPDnMLUERoWwFUapuQJoEUuaQhHQEC0G2CpG'));
f(493392,atob('aUYgRv/38P8FsDC9ECJpRiBG//fp/wAo9tAQPe3no2irQgHSACDv5yNoKkYgRphHACj30KNoXRulYOXn44QHAPe1DkYBqQdG'));
f(493464,atob('FUb/93r/qLEBmgEj0xhP8AAEBNJxeAHwwAGAKQHRIEYI4DF5mUL60ylGOEb/97j/AZvsVAOw8L1ztQ1GAakGRhRG//da/5Cx'));
f(493536,atob('AZr/KhHYa3gD8MADgCsC8QEBCtAreYtCB9MhRjBGAfgBK//3mf8CsHC9ACD75xO1FEZpRggi//eP/xix3ekAI8TpACMCsBC9'));
f(493608,atob('E7UURgQiDesCAf/3gf8IsQGbI2ACsBC9E7UERgUpH9jf6AHwAw8VHh4cASIBqSBG//du/xixnfkEMAAr9dsCsBC9CCIAISBG'));
f(493680,atob('//di//fnAan/9wv/ACjy0AGa8+cEIvHnACDs5xC1Q2gaeHqxA/EMAkJgGntiuQFow2jA6QESjHgjRANhkfkDEAtEQ2EQRiDg'));
f(493752,atob('WXgaeQHwMAQwLBvRXHsE8DAEMCwe0Zl4AmlSGgJhACJZeBHwMA8Cv4FoATGBYJl7EUQCaQpEAmGT+Q8wGkRCYQEgEL0B8PAE'));
f(493824,atob('ICwD0Vl5EfsC8uXnAfDAAYApCL8EIt/nv/NPjwVJBkvKaAL04GITQ8tgv/NPjwC//ecAvwDtAOAEAPoFCLX/9+v/CLX/9+j/'));
f(493896,atob('Kd9wRxjfcEcftQMjzekAMJIIaEYCkQOS//f0/wWwXfgE+x+1ACPN6QEzA5NoRgIjAJP/9+f/BbBd+AT797UWTQRGKGoBMChi'));
f(493968,atob('8bEUSAZo7rHysUVob2iy+/f1B/sVJb25QeoEBa0HFdHFaKxCEtNVHgdpJUS9Qg3YAJP1aBNGCkYhRqhHA7DwvQ4g++cIIPnn'));
f(494040,atob('CSD35xAg9efgKAAgsCgAIARLGmoSsRpqAToaYgNpA7EYR3BH4CgAID7fcEfwtQNGGGiA8wiIWGj/JGSy7/MFhQAtCNHv8xSB'));
f(494112,atob('AiIh6gIBgfMUiKZGAEclRgZGISc/uvC0ACQAJQAmACfwtPkgQLIAR/C9E99wRwhLT/D/MhC1w/iAIMP4gCEERv/38/8YuSBG'));
f(494184,atob('vegQQMrnEL0A4QDgabELeAIrDNECKATQAygMvwggESBwRwMjC3AAIHBHDiBwRxEgcEc4sQRLA2AES0NgASMDcgAgcEcOIHBH'));
f(494256,atob('RZYHAHWKBwBm33BHYt9wR2nfcEet33BHqd9wR6jfcEem33BHf7UAI834CjCt+A4wASON+AowDfEGA634CBAEkwKpBEut+AYg'));
f(494328,atob('BZP/9+n/B7Bd+AT7BCkAIDC0E0sERpiIT/b/c5hCHNAQS51r7QcY1Qsqg/gmIIP4JRAEv5P4PCCD+CcgT/BgBQi/ACGD+CRQ'));
f(494400,atob('BL+D+DwQBCIhiBi/AyIwvMDnCCAwvHBHMCgAIOAoACAwtBhLBEaYiE/2/3OYQibQFUuda+0HItVgJYP4JFADJYP4JVABJYP4'));
f(494472,atob('JlANCoP4JxCD+ChQDQwJDoP4KhARCoP4KyCD+CwQEQwSDoP4LiCD+ClQg/gtECGICyIwvIrnCCAwvHBHMCgAIOAoACCl33BH'));
f(494544,atob('ot9wR6DfcEeQ33BHj99wR4bfcEd/33BHfd9wR3zfcEd633BHdt9wR3XfcEd033BHELUqTKCIT/b/c5hCSdAoSpNrEyFD8AQD'));
f(494616,atob('k2P/9+v/ACg+0SJoI0skSQC/AL8AvwC/AL8AvwC/AL+KQi/QAL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/'));
f(494688,atob('AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/ATvD0RC9//er/wAg'));
f(494760,atob('+ucAvzAoACDgKAAgQA0DAAAk9ABz33BHct9wRwC1j7AAIRAiAqgC8GH/KCOt+BIwFiOt+AYwFEsGk0X2AhOt+BwwDfEGAf4j'));
f(494832,atob('DfEhAI34HjD/93b/qLm9+AYQSxyN+B8wCSMZRI34IDACRgNGybIGqP/30v8ouf/3bf8BIQKo//fJ/w+wXfgE+wIBBgNt33BH'));
f(494904,atob('bN9wRw9LMLUBJMP4BEW/82+Pv/NPjwHrggJAGpFCB9EAIsP4BCW/82+Pv/NPjzC9RBhR+ARbJWDT+ABEACz70OznAL8A4AFA'));
f(494976,atob('CksCIsP4BCW/82+Pv/NPj8P4CAXT+AAkACr70AAiw/gEJb/zb4+/80+PcEcA4AFADksAIlpkmmQaZdpkDEoRaMkHBtTgIYL4'));
f(495048,atob('ABMBIcL4gBERYJP4VCAauU/wgEHB+BglASKD+EAgACBwRwC/4CgAIADhAOA4tQdMBR4E8QgDGL8cRiNoK7EaaCJgW2goRphH'));
f(495120,atob('9+c4vSgpACAAuevncEcHSwEiGmBP8IBC0vgYNBP0gDP60QNKgvhCMHBHAL8MAABA4CgAIEDfcEdbaJpoBUuaQgbR0OkBIwRJ'));
f(495192,atob('ATIBO4ply2VwRwC/0LsHAOAoACBwtQpLk/hgMHuxCU4JTKQb5AgAJQQ2rEID0Fb4NTCYRwix//dD/QE19edwveAoACDovgcA'));
f(495264,atob('8L4HAC3p8E/JsAiqAfFABRRGS3gOeBsEQ+oGY854M0OOeAQxQ+oGI41CRPgEO/DRECSRaxZGT+rxQ4PqcUOD6pEjcWo2aFL4'));
f(495336,atob('BF8xRAtET+q1QYHq9RGB6tUBATQLREAs02Pm0dDpFOMAk4NtAZPDbQKTA24Dk0NuBJODbgWTw24Gk93pBXvd6QMc3ekBWStL'));
f(495408,atob('AJ4Hk3RGT/AACAebU/gEKweTT+rxI4PqsROD6nFqCKtT+CgwGkQK6wIDJ+oBCgHqDAKK6gICGkRP6nQ6huoFA1pEiuq0Cgbq'));
f(495480,atob('BQsjQIPqCwOK6rRaCPEBCJpEuPFADwLrCQO7RlJEqUYZ0XJEAmUAmiJEQmUBmjJEgmUCmipEwmUDmhpEBJsCZgtEQ2YFm2NE'));
f(495552,atob('g2YGmztEw2ZJsL3o8I9nRjVGjEYmRhlGFEau50i8BwBDaEOxAmiRaAtEQ2BSaJNCBL8AI0NgcEd/tQ5NDkwPTgGo//dH+ni5'));
f(495624,atob('tEIYvyBGApUDkAObACvz0AGY0+kAIZBHAqj/993/9OcFKAHQ//d0/ASwcL1IvQcALL8HADy/BwBwtRFNEUwSTpKwOCMN8QYB'));
f(495696,atob('BKit+AYw//cf+ni5tEIYvyBGApUDkAObACvu0ASo0+kAIZBHAqj/97P/9OcFKAHQ//dK/BKwcL1UvQcA/L4HAAS/BwAHtQpL'));
f(495768,atob('AJMKSgpLk0IIvwAjAZMBmxO5A7Bd+AT70+kAIJBHaEb/95L/8+cAv2C9BwAsvwcAHL8HABO1CksAkwpKCkuTQgi/ACMERgGT'));
f(495840,atob('AZsLuQKwEL0gRtPpACGQR2hG//d1//PnbL0HABy/BwAMvwcAE7UMSwCTDEoMS5NCCL8AIwRGAZMBmAi5ArAQvdDpADEgRphH'));
f(495912,atob('GLFoRv/3WP/y5xEg8ucAv3i9BwAMvwcABL8HAHO1H02V+FRAACw20QEmIEaF+GFg//fU/xEoJdAgRv/3s/8YSxhJGGgBkAGo'));
f(495984,atob('//eY+QRGyLkVS4X4VGDgIoX4YQCD+BYjg/gVI5P4FiNSCbJCEdkEKg/QqmhKsStoQ/SAAytgASD/95D/IEYCsHC9T/SAAhpg'));
f(496056,atob('9ef/9637CCT05wC/4CgAIIS9BwBDiQcAAOEA4ARLk/hsAAEisPqA8IP4dSBACXBH4CgAIANLk/hsAAAwGL8BIHBHAL/gKAAg'));
f(496128,atob('ACBwRwAgcEcIRnBHCEZwRw5LcLUD8WQBASRR6AAvQuoEBUHoAFaW8AAP9tFiuQhJQWCT+FQQg/h0EAPxeAHD6QMSWmEDSpph'));
f(496200,atob('ACBwveAoACCIvQcA/AAcAHC1BWiraIawBEYORnOxECIAIQGoAvCS/KNoBZMjeQKWM7EBKwzQq2gBqJhHBrBwvQEjjfgEMCNp'));
f(496272,atob('A5NjaQST8ucCI434BDDjaBsD9eco33BHN7U4TJT4bDAAKzHRBPEMA1PoAi8f+qLw2YiIQgK/v/MvjwAjDeDZiQhEmYmIQii/'));
f(496344,atob('QBrC6gBAQ+gCAQAp6NFP8AEDjfgDMAGSAZqd+AMwxPh0IQPw/wEjucT4eBEAI6NmLeDjaAPrEkPE+HgxACv10AIj1Ph4UYT4'));
f(496416,atob('bDAreUuxASsf0AMhKEb/95P/ACOE+Gww5efV6QUj0hoUKii/FCLV6QMQkggBKji/ASIZRBhE//f3+mCxESjk0QEjhPhsMAOw'));
f(496488,atob('ML3V6QMDGET/95j/8eeU+HQwACvz0QFGAiADsL3oMEAU4AC/4CgAIADw/QMBKwnRBUsAIoP4dSBCHlBCUEGD+HQAfedwRwC/'));
f(496560,atob('4CgAIDi1PEyU+GwwASsF0AIrb9ECKAjQAyg60JT4dTAAKz/Rveg4QGbnACLU+HgxImcaeTqxASrw0RppATIaYVtpmkII4NPp'));
f(496632,atob('BRKNGhQtlL9SGRQymmGRQuDRAihP8AADDL8ZRg0h1Ph4AYT4bDD/9xv/tPh0IbT4djGaQs7RH0tT6AIfweohQUPoAhIAKvfR'));
f(496704,atob('xOcjbwEzCCsB2CNnvucAIyNn2ueU+GEwI7OU+FQw87EBIP/3T/4RKBzQAiD/9y7+//cW+LC5o2iE+FQAhPhhADuxI2gj9IAD'));
f(496776,atob('I2ADIL3oOEAc5gdLT/SAAsP4gCD1573oOEBP5ji9AL/gKAAg7CgAIADhAOAztAxJASIB8WgDU+gADxRGQ+gARZXwAA/30QGQ'));
f(496848,atob('AZsruZH4dTATuQKwMLzj5gKwMLxwRwC/4CgAIAJL2GkAMBi/ASBwR+AoACAt6fBBFUYfRoawgEYORhVLASJT6ABPROoCAUPo'));
f(496920,atob('ABCQ8AAP9tHcuSFGjUIS0f73pP/Y+AgwS7ECIo34BCAAIs3pAibN6QRXAaiYRyBGBrC96PCBBusBMP/3FfwBMeTnESTz5wC/'));
f(496992,atob('/CgAIC3p8EEPRoawEUaARh5GASURSlLoAE9E6gUDQugAMJDwAA/20ay5sgg4Rv/31fv+92//2PgIIEKxDJuN+ARQzekCRwSW'));
f(497064,atob('BZMBqJBHIEYGsL3o8IERJPnnAL/8KAAgCLX+91f/ACAIvQJLQ2AAIHBHAL+UvQcAMLU6sRNo20MKTQFEgUIE0dhDML1P8P8z'));
f(497136,atob('9ucQ+AErU0AIIhPwAQQYvyxGATqE6lMD99Hr5yCDuO0QtQtL0/icAQEoDtHT+JhBVLHT+JQRQ/IIAwAiGGj/99P/IxpYQlhB'));
f(497208,atob('EL0AIPznAL/gKAAgOLUERgm5DiA4vQt4BCsE2N/oA/AcBQMcHAARIPTnAiMLTQtw1ficMQAo7NABMw3RACIYIQQw//et/yFG'));
f(497280,atob('IGAHIgX1znC96DhA//dcuQgg2+cA8AcAELUIS5poWrFQue/zEIFytgVKHGgUYFxoVGCYYAG5YrYAIBC94CgAIADhAOABKBO1'));
f(497352,atob('CdAYsQMoHtACsBC9GksBIsP4gCD45xlMACMN8QcAjfgHMP73Af6U+EAwC7n/91z742wBM+NkASOE+EIwnfgHAP/3xv/g5wxL'));
f(497424,atob('4CKD+AAjASLD+IAhDfEHABpgACON+Acw/vfi/QVL2mwBOtpk22wAK+TR//dw++HnAOEA4OAoACAMSpL4NTOS+DYTATPbsplC'));
f(497496,atob('CL8AI5L4NBOZQh+/A3CS+DUDGCMD+wAgFL8A9U5wACBwRwC/4CgAIC3p80EcTpb4NjMFRg9Gi7OAs0Npc7NDfAAkASsN8QcA'));
f(497568,atob('DL+IRqBGjfgHQP73of0N8QYA//fJ/9ixASMDcA9LRWDT+AQ1wOkEhMDpAjed+AYwhvg1M534BwD/917/JLkIS0/0gBLD+AAh'));
f(497640,atob('IEYCsL3o8IEEJO/nCCT35+AoACAAEAFAAOEA4Ai1//cD/6CxCkiQ+DYzc7GQ+FA0W7mA+FE0B0vA+FQ0T/SgIQD1iGD/96j/'));
f(497712,atob('CLH/93H4CL3gKAAgPYkHADi1DkyU+GA0s7mU+DYze7GU+HQ0Y7kBJQlLhPh1VEDyZmEE8mRAxPh4NP/3if8Isf/3UviE+GBU'));
f(497784,atob('OL0Av+AoACBtjgcAc7UWTpb4NjMFRiuzILNDaROzACQEdA3xBwCN+AdA/vcl/Q3xBgD/903/mLECIwNwnfgGMEVghvg1M534'));
f(497856,atob('BwD/9+n+JLkGS0/0gBLD+AAhIEYCsHC9BCTw5wgk+OfgKAAgAOEA4Ai1B0j/98r/CLH/9xH4T/RwEQNI//dA/wAo9tEIvQC/'));
f(497928,atob('ZC0AIA1LDkhP9AAyELXD+IAgASRP9IAzwPhIM8D4CDNEYP73B/2EYAZIACTA+KRE/vcA/YD4qEQQvQC/AOEA4AAQAUDgKAAg'));
f(498000,atob('DEsbeAYrENELSxtoGgcM0QpLGGgA8PADMCsI0ADw4ACg8UADWEJYQXBHACBwRwEgcEcAv+APAPDkDwDw6A8A8AlLG3gGKwzR'));
f(498072,atob('CEsbaBoHCNEHSxhoAPDwAKDxMANYQlhBcEcAIHBHAL/gDwDw5A8A8OgPAPDwtRVGnbAQuQ4gHbDwvRNoACsA8KCAU2ggKwHQ'));
f(498144,atob('CSD0505MT0oAJgAnzekSZ83pFEJMTk1KTU/N6RZiTUrN6RhyTEoakgLxdFKi9SMCACOi9pJCEJMbkgRGRhgfRqZCTtFraCAr'));
f(498216,atob('2tEsaAAszdAQmhypUxw3KgpET/CAAQL4cBxP8AACXNg4K1PR3ekSIxCYCCHh+wAjEEYZRhK6zekSAQ+SaUYaCo34OzCN+Dog'));
f(498288,atob('CEYaDBsOjfg5II34ODD/9xH6Yx4AIhuZ0UAD+AEfGpnRQBlxGZnRQBlyGJnRQBlzF5nRQBl0FpnRQBl1FZnRQBl2FJnRQAgy'));
f(498360,atob('ICoZd+PRACCF5xCbFPgBGxyqGkQBM0ArAvhwHBCTo9FpRmhG//fi+RKbE5oQlxP1AHNC8QACzekSMpXnDfgDIAEzpecN+AMg'));
f(498432,atob('ATM/K/rZaUZoRv/3y/k4IgAhaEYC8D74mOcQIFfnAL9n5glqha5nu3Lzbjw69U+lf1IOUYxoBZur2YMfOLVD8ggDBUYZaBpL'));
f(498504,atob('Gmii9UBSUhqCQivTF0jQ+JxBwPisFAEsINHQ+JQxA/b/cyP0f2Mj8A8D0hqVQk/wAAIE2cDpY0IA9cp0BuALRMDpYyTA+Kw0'));
f(498576,atob('APXQdAwiACEgRgHw+/8lYAAgOL0AI8DpYzPp5wQg+OcUEAAQ4CgAIAi1DCIAIQHw6f8DSwAiw+lrIsPpYyIIveAoACAt6fNH'));
f(498648,atob('gkYBqA1GkEaZRv73/fsQsxJLvfgEYN9ovBkc0BwiACEgRgHwy/8BIyNxR/gGoL34BCC9+AYwxPgIkC0LmkLlYMT4FIAB0f73'));
f(498720,atob('0/v/90f8ACACsL3o8IcEIPrnAL/gKAAgLenzR4JGAaiJRpBGH0b+98v7CLMRS734BFDeaHQZG9AcIgAhIEYB8Jn/ACMjcUb4'));
f(498792,atob('BaAKm6NgvfgEIL34BjBnYZpCxOkDiQHR/vei+//3FvwAIAKwvejwhwQg+ufgKAAgE7UTTBQiACEE8WQAAfB2/wTxDANT6AIf'));
f(498864,atob('2Iix6zFPT/AAAhe/ibJA6gBAQeoAQATgWWix6zFPCL8BIkPoAgEAKejRjfgHIJ34BzAAIAKwEL3gKAAgMLVCaFJ4AvAPAQgp'));
f(498936,atob('h7ADRg/RA2kcaAAlDLkHsDC9IUYlc2hG/vfK+2hG//fp/6Ro8ucS8MABINEC8DAAECgO0VppEXBaaBhpU3iUaAPwDwMHKwnR'));
f(499008,atob('AUYgRgDwF/jd55AG8NVbaRlw2OcSeSFGFLEB8A3/0ucB8Bj/z+eAKc3RAGkAIZIGAWDI1evnf7UAI83pAjGDeBlEkPkDMASR'));
f(499080,atob('GUQDeAWRzekAADuxaEb/96n/aEb+93b9ACj30QewXfgE+y3p8ENVaGt4E/DABImwBkaMRhdGA9BALGzQACQM4GBJA/APAgHr'));
f(499152,atob('ggED8DADECvR+NCBINAE2MuxIEYJsL3o8IMgKx7QMCv30XtpKXgZcAcqCtF7aDhpGnkhRgHwxv57aDlpmGj/97L/OmlA4Dpp'));
f(499224,atob('KUbARwRG4Od7aQEiGnA6aXlo9ue88QIP1/gUkCTRBCoi2ASp/vdk/ARGACi+0AabK7F5aJn4ADBKeZpCBdgFm3NgBpsAK8DQ'));
f(499296,atob('sOcIeTppAPsDIgSowEcosZn4ADABM4n4ADDk5wRG6ueZ+AAwanmaQpzZOmkpeVgcifgAAAH7AyJ5aDBGvefS+BCARUZV+AQ7'));
f(499368,atob('E7n+98n8tecCKRTRBKn+9yf8ACiC0Nj4ADB5aCpGBKiYRwRGACg/9HmvBpsAK/LRBZtzYIHnASkr0EyyTLEFKX/0bK8EIg3r'));
f(499440,atob('AgH+9yH8BCQk4A3xBAkBNAssP/RfrwEiSUYwRv73FPwAKD/0V68Z+QE7ACvv2wxLBJMBq83pBTQAIweT2PgAMHloKkYEqJhH'));
f(499512,atob('cOcIIgGp/vf7+wgkACjq0TznAL/QuwcA44QHAC3p8E+LeI+wACXN6QRSGkSR+QMwBpLN6QBVzekCERpEBEYHkk/wAQijaCu7'));
f(499584,atob('3ekDNAKoXXj+94D8ACj30RXwMA8D0QObG3gDsQE0ACxl0GMJACKTQlvRDqoC64MDBPAfBE/w/zDE8SAEIPoE9FP4OAwjGlhC'));
f(499656,atob('WEEI4AipIEb+91/7MLmjaAAr0dAAIA+wvejwjwie3fgMoAAuyND3CAbwBwYDmxp4l0IE0Vt4A/APAggqWNECqP73QPzd+AyQ'));
f(499728,atob('ykXv0b1CDdgDmlN4A/APAwgrKdACqP73MfwDm5lF89FP8P81MUYgRv73AvwAKJ3RzOebaBt4n0Iz0UlGCKj+9yv6ifgMgAiq'));
f(499800,atob('MUYgRv/3pf4l4F34IhABMbjRATKb5wEgteeaRd7QgecVeL1C2tgGm9T4CKDT+ACQo2i58QAP8NCaRX/0c6/Z+AAw0/gAsLvx'));
f(499872,atob('AA/O0DNGOkZJRiBG2EcAKJTQ2fgIkOfnE/AwDw/RBJs/KwzYWgkOqQHrggID8B8DUvg4HAj6A/MLQ0L4ODzU+AyQufEADwTQ'));
f(499944,atob('AqsyRjlGIEbIRwKqMUYgRv/3V/6e5/C1hbAORoxoaUYHRhVG/vf8+oixsGh4sXN4A/AwAyArA9EpRiBG//cn/ipGIUZoRv/3'));
f(500016,atob('Ef8Bm3tgBbDwvXC1D0wQTdT4tDHE+Lg0BPWYZg1KDkvE+LAkxPi8NAT17HIAIzFGKEbE+LQkxOkWM//3BP4yRilGBPWWYP/3'));
f(500088,atob('7f5wveAoACDEvQcA44QHAEmOBwA4tRJMI2oFRgEzASEQSCNi/vdG+QJGuLlYIQT1wHD/9xX6T/TccsT4fAEE9b5xBPJMYAHw'));
f(500160,atob('2/wrRk/03HIE8kxhA0j+99n7ALEDIDi94CgAIADwBwAt6f9HI08kStfpa2MD9v91rRsVQKwIBPb/dBRABusACAuxnkIz0G6z'));
f(500232,atob('BvWAVt/4aKBP8AEJpUI8vwX2/3QE6goEowhoRs3pAJgClgOT/veO+6i5IkZBRjBG/veK+3i5pULX+LAxNL8FRi0bWxsAICZE'));
f(500304,atob('oETH+Kwx//eZ/wAt2tEEsL3o8IfH+MSBT/SAVs7nACD15wC/4CgAIADw//9/tRZLDGjT+LAx5BqLaKwrBUYORg3QIkYpRhFI'));
f(500376,atob('/vda+4C5MEb/94r8Dkj/93H/BLBwvaD1gEEiRglI/vdL+wAo6dHu5xAiACFoRgHwZfykCGhGAZUClP73O/vo5+AoACAAgAcA'));
f(500448,atob('BZgHAAi1EEYaRgHwRfwAIAi9CLUQRhpGAfA+/AAgCL0t6fBDlbAAIwiTzekNMw+T/vcr+wRGAChA8BGBjEj+95T7BEYAKEDw'));
f(500520,atob('CoH+9wv/BEYIsf738fqHSwiTAUYMIg2oAfAo/AElCJqN+DZADalAIK34NFD+97T7IUYMIg2oAfAZ/BcjCJqN+DRQDakjIK34'));
f(500592,atob('NjD+96X7BEYAKEDw4IAIqP73jPgERgAoQPDZgAJGGCFxSP/3IflxSdH4nDGYQgvRb0wcIgH1znEE9gQAAfDk+6NrQ/ACA6Nj'));
f(500664,atob('ACPN6Q0zCKgRI434EDD+97X8BEYAKEDwtoCd+CEwCKgBM434ITD+96v8BEYAKEDwqoBdTatrmQdA8amA1fgcCAX2CAGCsgSo'));
f(500736,atob('/vf0+wRGAChA8JmAVUpP8MhzDajN6Q0j/vfq+wRGAChA8I2AUEtP9v9ymoABIE/2WWNOSo34CgACqa34CDD+98n7BEYAKHrR'));
f(500808,atob('SUsErAPxEAYYaFloIkYDwggzs0IURvfRREkEqP73KvsERgAoZ9EBRhwiDagB8I77nfg0MK34BEBD8AQDjfg0MJX4IjiN+A4w'));
f(500880,atob('AiPN6QpEDJSt+AwwoEYUIwTw+ARE8AMErfgsMAGuT/ARCQOvMEu1+CAIjfgGQAiqDamN+AWQzekIdv73gfsERqi7AUYcIg2o'));
f(500952,atob('AfBc+534NDC1+CAIrfgEQCPwGAND8BgDjfg0MJX4IjiN+A4wASOt+AwwCPDoCBcjzekKREjwEwit+CwwCKoZSwyUDamN+AWQ'));
f(501024,atob('jfgGgM3pCHb+91L7BEYwuatrQ/ABA6tj/vfE+wRGIEYVsL3o8IMOSAHwLPsMSVXnAIAHADAoACCg8QcAAPAHAOAoACAGABgA'));
f(501096,atob('MCgAIAAxACDovQcAAjEAIAQxACAMMQAg2L4HAC3p8EcDiCEriLAFRm7QHNgTK03QC9gQKzDQESsy0AErHtGySwAhmIj+94T6'));
f(501168,atob('VOAaKwDwhoMfK1LQFCsR0QAjGkYZRoCI/vcK+0bgUisA8HiDCdhQKwDwe4NZ2CMrAPCChAiwvejwh1YrSNBXKxfQVSv20Rch'));
f(501240,atob('gIj+92P6LeCCiJtLmoDt55pLm2taBwTU/vdY+wix/vd/+ZVLT/b/cvDnlEuT+DQoACrb0AEig/hgINfnAiMCkwGrA5OMS5yI'));
f(501312,atob('AqpC9gUhIEb+98D6A0YAKOHRAkaFISBG/vfE+gAowdDZ54NLAPEIAZiI/vfF+vXnACNpRoCIrfgAMP73r/rt54N5ACuu0XpL'));
f(501384,atob('EyGYiP73svrk54R5ACyl0BAiACEN6wIAAfB4+gIsndFyTCqJtPgsOJpCl9GrewQ7AiuT2Z34FjBrTrT4MBi3iEPwAQON+BYw'));
f(501456,atob('K4qt+Bgwa4qt+BowBfEUAwIiB5MAI434ECCt+AowrfgIIAGrAqo4RgOT/vdn+mC5nfgEMNsHCNRA8v0TBKk4Rq34FDD+99r5'));
f(501528,atob('ZOcAIwSpOEat+BQw/vfS+QFGACh/9FqvDCIEqAHwLvovfXseBSsA8r6C3+gT8AYAIgIzAokAvAJJAmuK3/gogQYrBdADIgEh'));
f(501600,atob('QEb+99H5PedqfbT4ODik+DY4ASHV+BYwBZKKQgaTjfgQEAfRsnG1eQEtB9ACLR7QBSUa4AIq9dAHJRbgACtV0LP1gH9U2AAm'));
f(501672,atob('M0j/92v4ICIxRjJIhPg6aAHw7PkGm8T4rGHE+LQx//eP+CpGx+cAKzzQw/MLAjKx1PjQIdT4PBgaRIpCMtGz9YBfMdiU+Doo'));
f(501744,atob('grPU+NAh1Pg8GJgYiEIp2NT4yBHE+MwhxOlwMdT4kDHE+KwhC7nE+JwxlPhAONT4rAQBMwPwAwOE+EA4ACOk+EI4I2oBIQEz'));
f(501816,atob('EEQjYv339v0AKKXR//dQ+D1GvucDJbznBCW65wgluOe1eU/wAwgBLY34EIAO0AItAPCwgAUlWOAwKAAg4CgAICAtACCUKgAg'));
f(501888,atob('DDEAINTpbTKaQkDweoGU+Do4ACtF0f/3UPwBKObRlPhkNQArAPCHgJT4ajUAKwDwi4DU6RYBALEJuQQjEOCU+Ps1I7GU+Pw1'));
f(501960,atob('C7EKJSfglPh0NQAr8dDU+Hg1NCsD0AYjhPg8MG7glPjBNQMrAPALg5T4fOXf+BTDACJD8gwIckUB2wcj7Odc+ASruPgAkMpF'));
f(502032,atob('APDzggEy8ucLJYT4PFD+9+P/KkYEIa9IG+eU+NA1ACvD0NT41DXE+Dw4ICKqSTBpAfAa+dT4PAiAs//39/iguf/3HPwAKLjR'));
f(502104,atob('ASOE+Do43ueU+Mg1ACuo0NT4zCXE+DwonkvD9fwjmkLf2T1Gz+eU+MI1ACuZ0NT4xDXU55T4yDUAK5LQlPjCNQArjtDU+MQ1'));
f(502176,atob('1PjMJZkYxPg8GAu5AyW25wAq3dH655T4wDQAKz/0Vq+E+DyACyWq5wUlqOfU6XMj1PjAEdMamUJA8NOAACDU+MQxxPjAAcT4'));
f(502248,atob('0CHE+Mgx//fN+wdGAChA8MaA1Pg8ONT4zBGZQkDwu4CU+Nk1Aysa0XdK1PisBP731f8gIgAockkwaQy/ASUKJQHwmPgYsQwj'));
f(502320,atob('hPg8MAsl1PiQATCxASh/9ESvbEsC4Akj8udrS5T4wSUDKgDyjIDf6ALwcAJwSU/0QFEJeBQpgb9D8hQBY0gJaLH78PHU+KwE'));
f(502392,atob('APUAVpi/ACE2eBQugb9C8hQGh1lbSLf78Pe5QnHRAS1q0aUhmWDU+MQVxPiwEQAqVdACOgEqWdnU+MQhWmDU+DwoGmABJSAi'));
f(502464,atob('ACFPSAHwZvj8Iv8hTUgB8GH4ACPE+KwxS0gBI4T4NDj/91T7ACg/9Bqv7uZP9EBRCXgUKYG/Q/IUAUBOCWix+/bx1PisZAb1'));
f(502536,atob('AFyYvwAhnPgAwLzxFA+Bv0LyFAf3WTdOt/v297lCBNABKALRACHE+JwRAS0c0awhsOcBLRjRASqr0AIqDNCdYNT4kCEBKgLR'));
f(502608,atob('ACLE+Jwh1PhwJcT4hCGn56oimmDU+HAlxPiIIaDnCiUAIsPpASIaYKHnBSX45wElzeYIJc3mCiXL5muKFUgDKwO/a32qfUPq'));
f(502680,atob('AiMDIgK/pPg4OKT4NjgBIgIh2uUEI434EDCzeQtIASsE0AIrB9AFIgMhzuXU6W4S/ffK/wrl1PjMEdT4xCH352uKAisY0AMi'));
f(502752,atob('BiGg5gwxACC7LgAgAIAHAEAoACCAKgAgdCoAIEBCDwCUKgAguCoAIEGYBwBgLgAga30FkwYiASuN+BAgB9GzcbN5ASsH0AIr'));
f(502824,atob('QtAFItjnAiv10Aci1OfU6W4jT/SAcbCIT/b/dahCP/TNrKVr7Qd/9cmsCQpgJYT4KBARCoT4JFCE+CsgBiWE+CwQEQwSDoT4'));
f(502896,atob('JVCE+C4gASUaCoT4JlCE+C8wACWE+DAgGgwbDoT4LRCE+DEghPgnUIT4KVCE+CpQhPgyMA8itPgsGP33E/+Z5NT4xDHU+Mwh'));
f(502968,atob('T/SAUb/nAyI5RjDmACMaRhlGqIj99/z+xOSgTMKItPgkOJpCf/SCrAwiACEEqADwVf8CI434EDCZS7X4EJCbec34GJAF8RIK'));
f(503040,atob('ASvN+BSgGdACKzjQACY1RrT4OHgALz/0Zay0+DY4ATubsqT4NjgAK3/0XKwyRilGikj99xX/pPg2eFPk1Pi4UdT4tDEJ6wUC'));
f(503112,atob('mkIC2dT4vGHe52AZSkZRRgD17HAA8Az/BpnU+LhRBZgNRAT13nLE+LhR/vcx/AZGxPi8AcjnlPg6ONT4zFHU+MRhACvA0Lnx'));
f(503184,atob('gA+92NT40DHU+MAhCesFCKjrAwOTQrPYbUpuT0lGUEb+9xL8tPhCWMT4xAEGRpT4QAjE+MyBBesJAwXrwBB/KzhENthKRlFG'));
f(503256,atob('APDO/rT4QigGmxNEpPhCOEVGtPhCKAAqjtDU+NAx1PisAdT4wBHTGgNEi0KE05T4QBgH68ER1PisdAAjOET997X9AChb0dT4'));
f(503328,atob('rDG0+EIoE0TE+KwxlPhAOAEzA/ADA4T4QDgAI6T4Qjhm58XxgAWtsipGUUYA8JT+Bpu0+EIolPhAGNT4rARbGwaTBZsqRB1E'));
f(503400,atob('BZXU+KxRkrIAIwfrwREoRKT4Qij994L9ALvU+KwxtPhCKBNExPisMUVGlPhACAaaATAA8AMAACOE+EAIpPhCOAAqntAFmQfr'));
f(503472,atob('wBAA8GH+tPhCKAabE0Sk+EI4kufU+Mhh1PjQUcT4xGHE+MxR3efU+Mhh1PjQUcT4xGHE+MxRoecAIgSpgIjN6QQi/fdx/v/3'));
f(503544,atob('sbsBKwjQE7ECK3/02qyU+Gw1ACs/9NWslPgINgArf/T/rBNK/vdS/QAof/TSrJT4CTZAK3/0zayU+ME1xPg8CAMrP/a+rAGi'));
f(503616,atob('Uvgj8CupBwB/qQcAYakHAI2pBwDgKAAgMCgAIAwxACCkKgAgJDEAIDgoACA3tR1MACUN8QcAjfgHUP33ufmU+EQalPhFKtOy'));
f(503688,atob('tPhGKpNCOL8BM8myOL/dsqlCFdCU+EValPhFOtuymkKGvwEz27IAI4T4RTqd+AcA/vdu+0/2/3OdQgTR/feo/E/2/3Xy59T4'));
f(503760,atob('SDoFSUP4NRAD68UCACOTgAOwML3gKAAglZAHAB7wBA8Mv+/zCIDv8wmAAPABuAC/cLUUSxRKDCHSGrL78fKBaRH4AlwERjW5'));
f(503832,atob('AGkAIZFCBdEBIyNgDuBP8P8w9uceaK5CDNFGHAfRnWjU6QAB1OkCI6hHIGBwvV5ohkL00AExDDPk5wC/8L4HAPy+BwAHtRVL'));
f(503904,atob('GmhysQAgGGAbaACTT/CAQgCbASPC+AgzD0qC+EEw/fe5/g5LGmiSsQAiGmAbaAGTAZtP8IBDAiLD+AgjBksBIIP4QgADsF34'));
f(503976,atob('BOv996O+A7Bd+AT7AAEAQOAoACAEAQBALenwT7BMlPhQOpT4USqaQoWwQ9ABM9uyAisIvwAjhPhQOpT4UDrU+KR0BOuDAwAi'));
f(504048,atob('0/hsCzsYI/B/Q8T4pDTU+Ew6FUYWRpRGG7lSscT4TDoH4BlogUIP2QqxxPhMOgkaGWABJtT4TDoBk9/4YJIAIwCTtbmqRmbg'));
f(504120,atob('QBoORNlow/gAwNP4HOAxsboZIvB/QsPpASHdYR1GASJzRtXnACUuRuDnKEbtaUNo1PikJN/4JOLQ+AjAmRoh8H9BcUUA8q+A'));
f(504192,atob('YUQBYAEiAnTU+EwqACPA6QEzw2EAKkDwrIDE+EwKyOdaHJT4NhML+wND0rKRQoT4NCOT+DgjCL+E+DSjAirT+DwDI9ADKhbQ'));
f(504264,atob('ASon0QF8KbvT+EAjQmDT+ERzh2DT+Ehzx2DT+Ewzg2GU+HQ7ACsIvxFGQWC359T4TDoAIgAradEKscT4TDpP8BgLB+DU+Ewq'));
f(504336,atob('EUaQRgApWNGA+BCglPg0M5T4NSOaQrvRAJrU+Ew6IrkBmppCAdEALkHQACt70FNN1PikBNX4BHXT+ACQlPioND4aJvB/RgM2'));
f(504408,atob('m7lP9IAzxfhEM8X4BDNKS0/0ADJP8AEIw/iAIRpgxfgAgP33X/iE+KiEsUUsv0hEgBkg8H9AxfhABdX4BDXbGyPwf0PAGwMz'));
f(504480,atob('IPB/QINCCtnV+AQ1xfhANf33RPg2S0/0ADLD+AAhACOE+HQ7BbC96PCPiEI20IhGyWmf54P4EKABIttpjufTGiPwf0NjRTS/'));
f(504552,atob('rOsDAwAjA2BI5wFoE2iZQhvYWRoRYMJhS+eh6wwB0/gcwBpGvPEADwrQY0bT+ADAjEXy06zrAQzD+ADAnEYTRgFgwPgcwNhh'));
f(504624,atob('/+YTRu7n/vfp+sDnQEUT0dL4HMDE+EzKvPEADwzRASPN6QIhyfgIMMT4pMSE+HQ7/Pfs/93pAiELaMlpyPgcEBGxD2g7RAtg'));
f(504696,atob('AJnU+Ew6mkIYvwEhAJFH5+AoACAAEAFAAOEA4P7/fwAt6fBBIUkiTAAmwfhAYcH4RGHB+EhhwfhMYcH4AGHB+ARh1PhMOmuz'));
f(504768,atob('0fgEVdT4pBRtGiXwf0WwRhpoqkIK2K0aFkQafN9pIrGD+BCA0+kFIJBHz7mU+FEqlPhQOpNCBtEBM9uyAisIvwAjhPhROpT4'));
f(504840,atob('UToE64MEB0vE+GxrT/SAEsP4ACG96PCBO0bV5wAQAUDgKAAgAOEA4Ai1/veN+iixcUtyShtow/MEIxNg/vek+hCxb0tvShpg'));
f(504912,atob('/vd++iixbktuShtow/NCMxNg/veV+iCxa0rTaCPwgHPTYP73bfpAsU/wgEMAIsP4DCHD+BAhw/g4Jf73gfoQsWJLAyIaYP73'));
f(504984,atob('e/pAsWBLBSIaYAEimmcAIppgPyJaYF1LG3gGK1DRXEsbaBkHTNFbSxtoA/DwA1ArRtFP8IBSWEvS+AQUw/ggFdL4CBTD+CQV'));
f(505056,atob('0vgMFMP4KBXS+BAUw/gsFdL4FBTD+DAV0vgYFMP4NBXS+BwUw/hAFdL4IBTD+EQV0vgkFMP4SBXS+CgUw/hMFdL4LBTD+FAV'));
f(505128,atob('0vgwFMP4VBXS+DQUw/hgFdL4OBTD+GQV0vg8FMP4aBXS+EAUw/hsFdL4RCTD+HAl/vf6+SixNUs1ShtoA/BPAxNg/vfx+Uix'));
f(505200,atob('T/CAQ9P4ACTSB0S/b/ABAsP4ACQtStL4iDBD9HADwviIML/zT4+/82+PT/AQI9P4ACIAKgPb0/gEMgArJNokSwEiw/gEJdP4'));
f(505272,atob('ACQAKvvQT/AQIhUhwvgAEtP4ACQAKvvQT/AQIxUiw/gEIhlLGkbT+AAUACn70AAhw/gEFdL4ADQAK/vQ/feQ+RJLE0oaYAi9'));
f(505344,atob('JAMAEEA1AUB0wAdADfCtukQCABA8BQBA8O0A4KAFAEAQVgBA4A8A8OQPAPDoDwDwAMAAQFgCABDkDgBAAO0A4ADgAUAwKAAg'));
f(505416,atob('AJDQAy3p80eoT6lLO2AAIThG/fe2/wZGCLH991n5pUylSU/03HIE9b5wAPCB+tT4fFFqHAfQMkZYIQT1wHD996f/hUIN0E/0'));
f(505488,atob('3HIAIZtIAPB9+gEjACDE+IAx/vdz/QAo29GU+EAwACvX0f33ffsGRgAo0tGU+EIwACt60I34BAABqPz3Ef7jbJ34BAABM+Nk'));
f(505560,atob('/ffe/0/wgELS+Bg02wP71f73EPkLIoT4NiOFSgAjT/SAEeAgpPg0M8T4TDqE+FA6hPhROsL4gBGC+BQDEWAB8YBBofVvIcH4'));
f(505632,atob('CDWC+BED0fgENcT4pDSU+JQ0ACuV0YT4lTTU+Iwhc0vE+Jg0Q/IIAwEqG2hP0NT4kCEAKkvQ1PiUUd/4uJEF9v91JfR/ZSXw'));
f(505704,atob('DwUdRNn4CCClKgDwqIA+2AEqUNBP8IBD0/gcJQEqEtDT+Bwl0rKxKg3Q1PjUIQEqT/AAAEDwwIDE+NQB/vfy/AAof/Rar0/w'));
f(505776,atob('gEMAIsP4HCW24I34AwAN8QMA/PeV/eNsW7lRSx5gG2gBkwGbT/CAQwIiw/gEIwEimmDjbJ34AwABM+NkdOcdRt/4KJG656oq'));
f(505848,atob('dtCsKr7R1PjEMQArGL8dRihG/vfp/CC71PiwAUlGKET+9zD9YuDU+JAhASqq0dT4rCHU+KChA+sCCKrrAgYVRCNqtvWAXwPx'));
f(505920,atob('AQNP8AEBQEYjYrFGKL9P9IBZ/Pfr/QNGCLEBJo7nSkYpRkBG/feO+AAo9tFKRilGQEb99234ACjv0dT4rDFLRMT4rDH+94L8'));
f(505992,atob('tusJBshETUTS0UPyCAMyRhhoUUb995z+1PikMZhCBL8BI8TpZgMZSAi/xPiUof73f/kAIP73ZvwAKMrRWufU+MQBACgIvyhG'));
f(506064,atob('/veG/AAowNFIRv73bfkOSP73VPwBJuvnSUYoRv73xvzm5wC/sCgAIPi9BwDgKAAgAPAHAFwqACAA4QDgPYkHAAQBAECAKgAg'));
f(506136,atob('BZgHAHQqACDD+BwFAC5M0GhIxPhICgDxiAPE+GQ7ACOE+EU6hPhEOggjpPhoO0/0cBEQI6D1umCk+EY6/fcU/wVGACh/9IGu'));
f(506208,atob('W0tcTvYa9giYRq5CVNFaS1pIO2AAIf33S/zIudT4tDGbsf732vuAsdT4nDEAK0vR1PiUMQArR9DE+Dw41Pg8CP73zPgBI4T4'));
f(506280,atob('OjgAI4T4PDCU+EQqlPhFOppCQNH99yD49uf99yX+ACiu0NT42DLU+BgjE0ABM1HRQUsBIE/wgEHD+IAAT/D/M8H4CDP99xf6'));
f(506352,atob('lPhUMAArXND99yT6ACOE+EAwQ/IIAxxo/Pev/wAoQ9EgRv33HPg/4Fj4NTCYRwAof/QfrgE1oOfU+KgxACu/0dT4lDEAK7vQ'));
f(506424,atob('1PigMaznlPhEOtT4SCq0+Ghb1PhkC9uyGbIC68EGA/sFAFL4MSCxiJBHlPhEOrT4RirbsppChr8BM9uyACOE+EQ6medP9P4g'));
f(506496,atob('/fd++VciF0lP9P4g/fdW+f33vv0AKJ/RQ/IIAxxo/Pdk/xC5IEb899L/ACACsL3o8IcNSxhg0fgMNAPwAROz8QEf+NAAI4T4'));
f(506568,atob('QTCX5zQzACDovgcA8L4HABi+BwCwKAAgAOEA4FwqACAEAABACLUHSwRGE7EAIa/zAIAFSxhog2oDsZhHIEYA8FX4AL8AAAAA'));
f(506640,atob('4L4HAHC1DU0NTGQbpBAAJqZCCdELTQxMAPBG+GQbpBAAJqZCBdFwvVX4BDuYRwE27udV+AQ7mEcBNvLnqCgAIKgoACCoKAAg'));
f(506712,atob('rCgAIDC1ATkAJKJCAdEAIAXgA10BNA1dq0L20FgbML0KRJFCAPH/MwDRcEcQtRH4AUsD+AFPkUL50RC9AkQDRpNCANFwRwP4'));
f(506784,atob('ARv55wNGE/gBKwAq+9EYGgE4cEf+5wC/+LUAv/i8CLyeRnBH+LUAv/i8CLyeRnBHAREE/AQAAAAAAAAAAhEE/AQAAAAAAAAA'));
f(506856,atob('AyEE/AQQAAAAAAAABBEB/wEAAAAAAAAABREC/gQAAAAAAAAABhEE/AQAAAAAAAAABxEE/AQAAAAAAAAACBcB/yIAAAA8vgcA'));
f(506928,atob('CRAB/wEAAAA4vgcAAAAAAAAAAAAAAAAAmC+KQpFEN3HP+8C1pdu16VvCVjnxEfFZpII/ktVeHKuYqgfYAVuDEr6FMSTDfQxV'));
f(507000,atob('dF2+cv6x3oCnBtybdPGbwcFpm+SGR77vxp3BD8yhDCRvLOktqoR0StypsFzaiPl2UlE+mG3GMajIJwOwx39Zv/ML4MZHkafV'));
f(507072,atob('UWPKBmcpKRSFCrcnOCEbLvxtLE0TDThTVHMKZbsKanYuycKBhSxykqHov6JLZhqocItLwqNRbMcZ6JLRJAaZ1oU1DvRwoGoQ'));
f(507144,atob('FsGkGQhsNx5Md0gntbywNLMMHDlKqthOT8qcW/NvLmjugo90b2OleBR4yIQIAseM+v++kOtsUKT3o/m+8nhxxiy/BwA8vwcA'));
f(507216,atob('CAAAAPy+BwAEvwcACAAAABy/BwAsvwcACAAAAAy/BwAcvwcACAAAAAS/BwAMvwcACAAAAAAQAgEAEAAABAAAAAEAAAAAEAAA'));
f(507288,atob('BAAAAAEAAAA5hgcA3YUHAGuFBwApiAcAD4gHANGHBwCRhwcA/6AHAAAAAAABFwT8oAAAAKi+BwACFwT85AAAAHi+BwAAAAAA'));
f(507360,atob('AAAAAAAAAABQ6towiIO4n2BPFfMAAMmOy5UHAMGVBwDlogcAZZUHAP2UBwAJkgcAAZIHAO2UBwARkgcAmZwHAPOiBwA5nAcA'));
f(507432,atob('1ZsHAA2SBwAFkgcA7ZEHAAAAAAABAQAAAQAAAAAAAAACBQAAIQAAAAAAAAAAAAAAAAAAAAAAAAABAQAABAAAAAAAAAAAAAAA'));
f(507504,atob('AAAAAAAAAAABBwAAoAAAAKi+BwACAQAAAQAAAAAAAAADBQAAQQAAAAAAAAAAAAAAAAAAAAAAAAABEQH/AQAAAAAAAAACFwL+'));
f(507576,atob('lAAAANC7BwADFwT8BAAAAGC+BwAAAAAAAAAAAAAAAABEZnVUYXJnAEgoACAAAAAAAaMHAAGMBwAAAAAAAwAAAJuKBwCFpQcA'));
f(507648,atob('AAAAANWRBwAAAAAAkZMHAAAAAADFlgcAAAAAAEGQBwAAAAAA+Y8HAAAAAAC1kwcAAAAAABmOBwAAAAAABMP/fwEAAAAAkNAD'));
f(507720,atob('//8BAFg0ACAgAAAAeDQAICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(507792,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlggcAAYIHAAAAAAAAAAAA6YkHAAAQAAAAAAgA'));
echo(1);
// include also this line or press enter after echo(1)
// now you may set f function to verify method via "f=verify" and paste bootloader code again to verify it was written correctly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment