logo DERO HE BlockChain Explorer(v1) Mainnet

Tx hash: d574fdf3762f233c3336e9c57cfcd542b5310643ee319538f1a8f7cb70075b1e Type SC

Block: 0582d2dfa452d60508cff48017f11aac4c38645c214062bd7078fd5bd8f4e4e8 (VALID)
built BLID : f51af27049aabb424140056d1c173a091cae5ac36cc156217301c1d00ad379ba
Tx RootHash: 4d1c0cbce73c25250032a0360a0212129b6590fef8ec836a0bfa55a7b2024ef8 built height : 4754451
Timestamp: 1735068022921 Timestamp [UTC]: 2024-12-24 19:20:22 Age [y:d:h:m:s]: 6699:30:59.61
Block: 4754456 Fee: 0.24681 Tx size: 13.771 kB
Tx version: 1 No of confirmations: 1249306 Signature type: DERO_HOMOMORPHIC
Extra:
DERO : 2 inputs/outputs (RING size) Fees 0.24681 Deposited to SC 0.00000
Sender : dero1qy4yf7c577wqzvzq44x30lygha5wjz7wrhw6dnv5n3pq4f4d7aqluqq30m7ak
address
dero1qykyta6ntpd27nl0yq4xtzaf4ls6p5e9pqu0k2x4x3pqq5xavjsdxqgny8270
dero1qy4yf7c577wqzvzq44x30lygha5wjz7wrhw6dnv5n3pq4f4d7aqluqq30m7ak
SC Balance: 0.00000 DERO
SC CODE:
  
SC Arguments: [Name:SC_ACTION Type:uint64 Value:'0' Name:SC_ID Type:hash Value:'bfe785f81c25be362b03863a6a18cb261b7dfc5f7d3c3ff0e82730f0e9cd41bb' Name:content Type:string Value:'var doctypeselect = document.getElementById('doc_type'); var docNameHdr = document.getElementById('docNameHdr'); var docDescrHdr = document.getElementById('docDescrHdr'); var docIconURLHdr = document.getElementById('docIconURLHdr'); var docDURL = document.getElementById('docDURL'); var docSubDir = document.getElementById('docSubDir'); var docinputs = [docNameHdr,docDescrHdr,docIconURLHdr,docDURL,docSubDir]; docinputs.forEach((input) => { input.addEventListener("keyup", docEdit); input.addEventListener("change", docEdit); input.addEventListener("blur", docEdit); }); doctypeselect.addEventListener("change", docEdit); function docEdit(event) { smartcontract.value = getDocSCCode(); let ok = checkDocInputs(); if(ok.ok){ deployDocButton.removeAttribute("disabled"); }else { deployDocButton.setAttribute("disabled", true); } if(ok.errors.length != 0){ let errorsText = ""; for (const error of ok.errors) { errorsText = error + errorsText + "\n"; } alert(errorsText); } } function checkDocInputs(){ let ok = true; let errors = []; blob = new Blob([docText.value]); if(blob.size > 18000){ errors.push("Doc too large."); ok = false; } if( doctypeselect.value==""|| docNameHdr.value==""|| docDescrHdr.value==""|| docDURL.value==""|| fileCheckC==""|| fileCheckS==""|| docText.value==""|| filename==""|| signed_filename=="" ){ ok = false; } if(signed_filename !="" && filename !=""){ let test_filename = ""; let test_signed_filename = ""; test_signed_filename = signed_filename.substring(0, signed_filename.lastIndexOf('.')) || signed_filename; test_signed_filename = test_signed_filename.split('.').pop(); test_filename = filename.split('.').pop(); if("TELA-"+test_filename.toUpperCase()+"-1" != doctypeselect.value || "TELA-"+test_signed_filename.toUpperCase()+"-1" != doctypeselect.value){ errors.push("File Extension doesn't match selected document type."); ok = false; } if(installed_docs.length > 0){ let full_loc = docSubDir.value + docNameHdr.value; for (let x in installed_docs) { if(full_loc == installed_docs[x].subdir + installed_docs[x].filename){ errors.push("Doc already installed!"); ok = false; } } } } return {"ok":ok,"errors":errors}; } //docs function getDocSCCode(){ let SCInit = `// Copyright 2024. Civilware. All rights reserved. // TELA Decentralized Web Document (TELA-DOC-1) Function InitializePrivate() Uint64 10 IF init() == 0 THEN GOTO 30 20 RETURN 1 30 STORE("nameHdr", "`+ docNameHdr.value +`") 31 STORE("descrHdr", "`+ docDescrHdr.value +`") 32 STORE("iconURLHdr", "`+ docIconURLHdr.value +`") 33 STORE("dURL", "`+ docDURL.value +`") 34 STORE("docType", "`+ doctypeselect.value +`") 35 STORE("subDir", "`+ docSubDir.value.replace(/^\/|\/|\/$/g, '') +`") 36 STORE("fileCheckC", "`+ fileCheckC +`") 37 STORE("fileCheckS", "`+ fileCheckS +`") 100 RETURN 0 End Function `; let SCTheRest = `Function init() Uint64 10 IF EXISTS("owner") == 0 THEN GOTO 30 20 RETURN 1 30 STORE("owner", address()) 50 STORE("docVersion", "1.0.0") 60 STORE("hash", HEX(TXID())) 70 STORE("likes", 0) 80 STORE("dislikes", 0) 100 RETURN 0 End Function Function address() String 10 DIM s as String 20 LET s = SIGNER() 30 IF IS_ADDRESS_VALID(s) THEN GOTO 50 40 RETURN "anon" 50 RETURN ADDRESS_STRING(s) End Function Function Rate(r Uint64) Uint64 10 DIM addr as String 15 LET addr = address() 16 IF r < 100 && EXISTS(addr) == 0 && addr != "anon" THEN GOTO 30 20 RETURN 1 30 STORE(addr, ""+r+"_"+BLOCK_HEIGHT()) 40 IF r < 50 THEN GOTO 70 50 STORE("likes", LOAD("likes")+1) 60 RETURN 0 70 STORE("dislikes", LOAD("dislikes")+1) 100 RETURN 0 End Function `; let telaDocFileContents = "/*"+docText.value+"*/"; return SCInit + SCTheRest + telaDocFileContents; } let fileCheckC = ""; let fileCheckS = ""; var filename=""; var signed_filename=""; var installed_docs = []; let fileContents = document.querySelector('input#open_file[type="file"]'); fileContents.addEventListener('change', () => { if(fileContents.files.length !== 1){ docText.value = ""; filename = ""; docNameHdr.value = ""; docEdit(); return; } let file = fileContents.files[0]; let reader = new FileReader(); reader.onload = () => { docText.value = reader.result; filename = file.name; docNameHdr.value = filename; docEdit(); }; reader.readAsText(file); }); function parseSignedFile(signed){ let c = signed.split('C: ', 2)[1]; let s = c.split('S: ', 2)[1]; c = c.split(/\r?\n/, 2)[0]; s = s.split(/\r?\n/, 2)[0]; return {"C":c,"S":s}; } let fileCheck = document.querySelector('input#open_signed_file[type="file"]'); fileCheck.addEventListener('change', () => { if(fileCheck.files.length !== 1){ fileCheck.value = ""; fileCheckC = ""; fileCheckS = ""; docEdit(); return; } let file = fileCheck.files[0]; let reader = new FileReader(); reader.onload = () => { if(file.name.split('.').pop() !== "signed"){ fileCheck.value = ""; fileCheckC = ""; fileCheckS = ""; alert("Not a .signed file."); docEdit(); return; } let signs = parseSignedFile(reader.result); fileCheckC = signs.C; fileCheckS = signs.S; signed_filename = file.name; let test_signed_filename = ""; test_signed_filename = signed_filename.substring(0, signed_filename.lastIndexOf('.')) || signed_filename; if (test_signed_filename != filename){ if(filename != ""){ alert("Filename Mismatch"); }else{ alert("No document file selected yet."); } } docEdit(); }; reader.readAsText(file); }); var installType = "doc"; function listener(event) { let lastObj = JSON.parse(event.data); let res = lastObj.result; if (res.txid) { if(installType == "doc"){ installed_docs.push({"subdir":docSubDir.value.replace(/^\/|\/|\/$/g, ''),"filename":filename,"scid":res.txid}); docNameHdr.value = ""; filename=""; signed_filename=""; fileContents.value = ""; fileCheck.value = ""; let outputText =""; for (let x in installed_docs) { outputText += (installed_docs[x].subdir !=""? installed_docs[x].subdir + "/" :"") + installed_docs[x].filename + ":" + installed_docs[x].scid +"<br>"; } document.getElementById("output").innerHTML = outputText; docEdit(); alert(res.txid); }else if(installType == "index"){ document.getElementById("indexscid").innerHTML = "Tela Site Index SCID:" + res.txid; alert("Congrats, you're all done! This is your Tela Site SCID:" + res.txid); } } socket.removeEventListener("message", listener); }; function socketSend(data){ socket.addEventListener("message", listener); sendData(data); } var smartcontract = document.getElementById('smartcontract'); var docText = document.getElementById('document'); var deployDocButton = document.getElementById('deployDoc'); function getQuoteJSON(smart_contract){ let quoteJSON = {}; quoteJSON.jsonrpc = "2.0"; quoteJSON.id = "1"; quoteJSON.method = "DERO.GetGasEstimate"; quoteJSON.params = {}; quoteJSON.params.transfers = [{ destination: "dero1qykyta6ntpd27nl0yq4xtzaf4ls6p5e9pqu0k2x4x3pqq5xavjsdxqgny8270", amount:0, Burn:0, payload_rpc:[] }]; quoteJSON.params.sc = smart_contract; quoteJSON.params.sc_value = 0; quoteJSON.params.sc_rpc = []; quoteJSON.params.ringsize = 2; quoteJSON.params.signer = "dero1qykyta6ntpd27nl0yq4xtzaf4ls6p5e9pqu0k2x4x3pqq5xavjsdxqgny8270"; return quoteJSON; } deployDocButton.addEventListener('click', function(event) { installType ="doc"; let quoteJSON = getQuoteJSON(smartcontract.value); let result = confirm("Estimated Cost: "+(niceRound(quoteJSON.params.sc.length * 2 * .00001)) +" DERO, Install Doc?"); if (result) { installDoc(); } else { alert("Action canceled."); } }); //Install JSON function getInstallJSON(smart_contract){ let installJSON = {}; installJSON.jsonrpc = "2.0"; installJSON.id = "1"; installJSON.method = "transfer"; installJSON.params = {}; installJSON.params.fees = 0; installJSON.params.transfers = [{ destination: "dero1qykyta6ntpd27nl0yq4xtzaf4ls6p5e9pqu0k2x4x3pqq5xavjsdxqgny8270", amount:0, Burn:0, payload_rpc:[] }]; installJSON.params.sc = smart_contract; installJSON.params.sc_value = 0; installJSON.params.sc_rpc = []; installJSON.params.ringsize = 2; return installJSON; } //Install Doc function function installDoc(){ socketSend(getInstallJSON(smartcontract.value)); } //Install Index function function installIndex(){ socketSend(getInstallJSON(indexSCCode.value)); } var indexNameHdr = document.getElementById('indexNameHdr'); var indexDescrHdr = document.getElementById('indexDescrHdr'); var indexIconURLHdr = document.getElementById('indexIconURLHdr'); var indexDURL = document.getElementById('indexDURL'); var deployIndexButton = document.getElementById('deployIndex'); var generateIndexButton = document.getElementById('generateIndex'); var indexinputs = [indexNameHdr,indexDescrHdr,indexIconURLHdr,indexDURL]; indexinputs.forEach((input) => { input.addEventListener("keyup", indexEdit); input.addEventListener("change", indexEdit); input.addEventListener("blur", indexEdit); }); function indexEdit(event) { let docs =""; let line_no = 40; for (let x in installed_docs) { docs += (line_no++) + ` STORE("DOC`+(parseFloat(x) + 1) + `", "` +installed_docs[x].scid + `")`+"\n"; } indexSCCode.value = getIndexSC(docs); let ok = checkIndexInputs(); if(ok.ok){ deployIndexButton.removeAttribute("disabled"); }else{ deployIndexButton.setAttribute("disabled", true); } if(ok.errors.length != 0){ let errorsText = ""; for (const error of ok.errors) { errorsText = error + errorsText + "\n"; } alert(errorsText); } } deployIndexButton.addEventListener('click', function(event) { installType ="index"; let quoteJSON = getQuoteJSON(indexSCCode.value); let result = confirm("Estimated Cost: "+(niceRound(quoteJSON.params.sc.length * 2 * .00001)) +" DERO, Install Tela-Index?"); if (result) { installIndex(indexSCCode.value); } else { console.log("Action canceled."); } }); function checkIndexInputs(){ let ok = true; let errors = []; blob = new Blob([indexSCCode.value]); if(blob.size > 18000){ errors.push("Doc too large."); ok = false; } if( indexNameHdr.value==""|| indexDescrHdr.value==""|| indexDURL.value==""|| indexSCCode.value==""|| installed_docs.length == 0 ){ ok = false; } return {"ok":ok,"errors":errors}; } //Index var indexSCCode = document.getElementById('indexSCCode'); function getIndexSC(docs){ let indexInit = `// Copyright 2024. Civilware. All rights reserved. // TELA Decentralized Web Standard (TELA-INDEX-1) Function InitializePrivate() Uint64 10 IF init() == 0 THEN GOTO 30 20 RETURN 1 30 STORE("nameHdr", "`+indexNameHdr.value+`") 31 STORE("descrHdr", "`+indexDescrHdr.value+`") 32 STORE("iconURLHdr", "`+indexIconURLHdr.value+`") 33 STORE("dURL", "`+indexDURL.value+`") ` + docs + ` 1000 RETURN 0 End Function `; let indexTheRest = `Function init() Uint64 10 IF EXISTS("owner") == 0 THEN GOTO 30 20 RETURN 1 30 STORE("owner", address()) 50 STORE("telaVersion", "1.0.0") // TELA SC version 60 STORE("commit", 0) // The initial commit 70 STORE(0, HEX(TXID())) // SCID commit hash 80 STORE("hash", HEX(TXID())) 85 STORE("likes", 0) 90 STORE("dislikes", 0) 100 RETURN 0 End Function Function address() String 10 DIM s as String 20 LET s = SIGNER() 30 IF IS_ADDRESS_VALID(s) THEN GOTO 50 40 RETURN "anon" 50 RETURN ADDRESS_STRING(s) End Function Function Rate(r Uint64) Uint64 10 DIM addr as String 15 LET addr = address() 16 IF r < 100 && EXISTS(addr) == 0 && addr != "anon" THEN GOTO 30 20 RETURN 1 30 STORE(addr, ""+r+"_"+BLOCK_HEIGHT()) 40 IF r < 50 THEN GOTO 70 50 STORE("likes", LOAD("likes")+1) 60 RETURN 0 70 STORE("dislikes", LOAD("dislikes")+1) 100 RETURN 0 End Function Function UpdateCode(code String) Uint64 10 IF LOAD("owner") == "anon" THEN GOTO 20 15 IF code == "" THEN GOTO 20 16 IF LOAD("owner") == address() THEN GOTO 30 20 RETURN 1 30 UPDATE_SC_CODE(code) 40 STORE("commit", LOAD("commit")+1) // New commit 50 STORE(LOAD("commit"), HEX(TXID())) // New hash 60 STORE("hash", HEX(TXID())) 100 RETURN 0 End Function `; return indexInit + indexTheRest; } function niceRound(number){ return Math.round(number*100000000)/100000000; } ' Name:entrypoint Type:string Value:'StoreItem' Name:name Type:string Value:'siteinstaller.js']


Prove to someone that you have sent them DERO in this transaction

proof can be obtained using wallet command in dero-wallet-cli or from the statement
Note: proof is sent to the server, as the calculations are done on the server side


TX hex bytes
01000005009398a202f51af27049aabb424140056d1c173a091cae5ac36cc156217301c1d00ad379ba01000000000000000000000000000000000000000000000000000000000000000000004ce71ad478a7c3f5d9b9d8627f4c96262a5b62ad38adf90754166560106807c94f772d2ea2f51c6d801fc0d0ec827bb42192a491000a7e92b8a57c2304d8e5a16945e21edaae2964e4e0626e98c64374f3bf0cc22cb0dbf03499b8a3cd1906dae5d1ac42af5dab1dc88a43bb10098c8b99edc0081b1a13abd18b4c31c7a6966dadc2d198c46b8fcc7a236e540407c000350104e9c00120dadbe5ededade7538e4d6cd2468847830432326473ef6d59ce930609da314e00635d6e4e0652cc4b27cb6c3100ba2ca7a932dd4d141c6ee7d14a3d63bdd100b492af9e398e8e60c70108f36304c4bc2bdec61eeb07b2b29d750e390747f514bbeec00aae48b6cf0cfd014d1c0cbce73c25250032a0360a0212129b6590fef8ec836a0bfa55a7b2024ef8ea60a5656e616d65537073697465696e7374616c6c65722e6a736653435f4944485820bfe785f81c25be362b03863a6a18cb261b7dfc5f7d3c3ff0e82730f0e9cd41bb68636f6e74656e7453792ffb76617220646f637479706573656c656374203d20646f63756d656e742e676574456c656d656e74427949642827646f635f7479706527293b0a76617220646f634e616d65486472203d20646f63756d656e742e676574456c656d656e74427949642827646f634e616d6548647227293b0a76617220646f634465736372486472203d20646f63756d656e742e676574456c656d656e74427949642827646f63446573637248647227293b0a76617220646f6349636f6e55524c486472203d20646f63756d656e742e676574456c656d656e74427949642827646f6349636f6e55524c48647227293b0a76617220646f634455524c203d20646f63756d656e742e676574456c656d656e74427949642827646f634455524c27293b0a76617220646f63537562446972203d20646f63756d656e742e676574456c656d656e74427949642827646f6353756244697227293b0a0a76617220646f63696e70757473203d205b646f634e616d654864722c646f6344657363724864722c646f6349636f6e55524c4864722c646f634455524c2c646f635375624469725d3b0a646f63696e707574732e666f72456163682828696e70757429203d3e207b0a09696e7075742e6164644576656e744c697374656e657228226b65797570222c20646f6345646974293b0a09696e7075742e6164644576656e744c697374656e657228226368616e6765222c20646f6345646974293b0a09696e7075742e6164644576656e744c697374656e65722822626c7572222c20646f6345646974293b0a7d293b0a646f637479706573656c6563742e6164644576656e744c697374656e657228226368616e6765222c20646f6345646974293b0a0a66756e6374696f6e20646f6345646974286576656e7429207b200a09736d617274636f6e74726163742e76616c7565203d20676574446f635343436f646528293b0a096c6574206f6b203d20636865636b446f63496e7075747328293b0a202020206966286f6b2e6f6b297b0a09096465706c6f79446f63427574746f6e2e72656d6f7665417474726962757465282264697361626c656422293b0a097d656c7365207b0a09096465706c6f79446f63427574746f6e2e736574417474726962757465282264697361626c6564222c2074727565293b0a097d0a096966286f6b2e6572726f72732e6c656e67746820213d2030297b0a09096c6574206572726f727354657874203d2022223b0a0909666f722028636f6e7374206572726f72206f66206f6b2e6572726f727329207b0a0909096572726f727354657874203d206572726f72202b206572726f727354657874202b20225c6e223b0a09097d0a0909616c657274286572726f727354657874293b0a097d0a7d0a0a66756e6374696f6e20636865636b446f63496e7075747328297b0a096c6574206f6b203d20747275653b0a096c6574206572726f7273203d205b5d3b0a09626c6f62203d206e657720426c6f62285b646f63546578742e76616c75655d293b0a09696628626c6f622e73697a65203e203138303030297b0a09096572726f72732e707573682822446f6320746f6f206c617267652e22293b0a09096f6b203d2066616c73653b0a097d0a096966280a09646f637479706573656c6563742e76616c75653d3d22227c7c0a09646f634e616d654864722e76616c75653d3d22227c7c0a09646f6344657363724864722e76616c75653d3d22227c7c0a09646f634455524c2e76616c75653d3d22227c7c0a0966696c65436865636b433d3d22227c7c0a0966696c65436865636b533d3d22227c7c0a09646f63546578742e76616c75653d3d22227c7c0a0966696c656e616d653d3d22227c7c0a097369676e65645f66696c656e616d653d3d22220a09297b0a09096f6b203d2066616c73653b0a097d0a096966287369676e65645f66696c656e616d6520213d22222026262066696c656e616d6520213d2222297b0a09096c657420746573745f66696c656e616d65203d2022223b0a09096c657420746573745f7369676e65645f66696c656e616d65203d2022223b0a0909746573745f7369676e65645f66696c656e616d65203d207369676e65645f66696c656e616d652e737562737472696e6728302c207369676e65645f66696c656e616d652e6c617374496e6465784f6628272e272929207c7c207369676e65645f66696c656e616d653b0a0909746573745f7369676e65645f66696c656e616d65203d20746573745f7369676e65645f66696c656e616d652e73706c697428272e27292e706f7028293b0a0909746573745f66696c656e616d65203d2066696c656e616d652e73706c697428272e27292e706f7028293b0a0a09096966282254454c412d222b746573745f66696c656e616d652e746f55707065724361736528292b222d312220213d20646f637479706573656c6563742e76616c7565207c7c202254454c412d222b746573745f7369676e65645f66696c656e616d652e746f55707065724361736528292b222d312220213d20646f637479706573656c6563742e76616c7565297b0a0909096572726f72732e70757368282246696c6520457874656e73696f6e20646f65736e2774206d617463682073656c656374656420646f63756d656e7420747970652e22293b0a0909096f6b203d2066616c73653b0a09097d0a0909696628696e7374616c6c65645f646f63732e6c656e677468203e2030297b0a0909096c65742066756c6c5f6c6f63203d20646f635375624469722e76616c7565202b20646f634e616d654864722e76616c75653b0a090909666f7220286c6574207820696e20696e7374616c6c65645f646f637329207b0a0909090969662866756c6c5f6c6f63203d3d20696e7374616c6c65645f646f63735b785d2e737562646972202b20696e7374616c6c65645f646f63735b785d2e66696c656e616d65297b0a09090909096572726f72732e707573682822446f6320616c726561647920696e7374616c6c65642122293b0a09090909096f6b203d2066616c73653b0a090909097d0a0909097d0a09097d09090a097d090a0972657475726e207b226f6b223a6f6b2c226572726f7273223a6572726f72737d3b0a7d0a0a2f2f646f63730a66756e6374696f6e20676574446f635343436f646528297b0a6c6574205343496e6974203d20602f2f2020436f7079726967687420323032342e20436976696c776172652e20416c6c207269676874732072657365727665642e0a2f2f202054454c4120446563656e7472616c697a65642057656220446f63756d656e74202854454c412d444f432d31290a46756e6374696f6e20496e697469616c697a655072697661746528292055696e7436340a313020494620696e69742829203d3d2030205448454e20474f544f2033300a32302052455455524e20310a33302053544f524528226e616d65486472222c2022602b20646f634e616d654864722e76616c7565202b6022290a33312053544f524528226465736372486472222c2022602b20646f6344657363724864722e76616c7565202b6022290a33322053544f5245282269636f6e55524c486472222c2022602b20646f6349636f6e55524c4864722e76616c7565202b6022290a33332053544f524528226455524c222c2022602b20646f634455524c2e76616c7565202b6022290a33342053544f52452822646f6354797065222c2022602b20646f637479706573656c6563742e76616c7565202b6022290a33352053544f52452822737562446972222c2022602b20646f635375624469722e76616c75652e7265706c616365282f5e5c2f7c5c2f7c5c2f242f672c20272729202b6022290a33362053544f5245282266696c65436865636b43222c2022602b2066696c65436865636b43202b6022290a33372053544f5245282266696c65436865636b53222c2022602b2066696c65436865636b53202b6022290a3130302052455455524e20300a456e642046756e6374696f6e0a0a603b090a0a6c657420534354686552657374203d206046756e6374696f6e20696e697428292055696e7436340a31302049462045584953545328226f776e65722229203d3d2030205448454e20474f544f2033300a32302052455455524e20310a33302053544f524528226f776e6572222c20616464726573732829290a35302053544f52452822646f6356657273696f6e222c2022312e302e3022290a36302053544f5245282268617368222c204845582854584944282929290a37302053544f524528226c696b6573222c2030290a38302053544f524528226469736c696b6573222c2030290a3130302052455455524e20300a456e642046756e6374696f6e0a0a46756e6374696f6e2061646472657373282920537472696e670a31302044494d207320617320537472696e670a3230204c45542073203d205349474e455228290a33302049462049535f414444524553535f56414c4944287329205448454e20474f544f2035300a34302052455455524e2022616e6f6e220a35302052455455524e20414444524553535f535452494e472873290a456e642046756e6374696f6e0a0a46756e6374696f6e205261746528722055696e743634292055696e7436340a31302044494d206164647220617320537472696e670a3135204c45542061646472203d206164647265737328290a31362049462072203c2031303020262620455849535453286164647229203d3d2030202626206164647220213d2022616e6f6e22205448454e20474f544f2033300a32302052455455524e20310a33302053544f524528616464722c2022222b722b225f222b424c4f434b5f4845494748542829290a34302049462072203c203530205448454e20474f544f2037300a35302053544f524528226c696b6573222c204c4f414428226c696b657322292b31290a36302052455455524e20300a37302053544f524528226469736c696b6573222c204c4f414428226469736c696b657322292b31290a3130302052455455524e20300a456e642046756e6374696f6e0a0a603b0a0a6c65742074656c61446f6346696c65436f6e74656e7473203d20222f2a222b646f63546578742e76616c75652b222a2f223b0a72657475726e205343496e6974202b20534354686552657374202b2074656c61446f6346696c65436f6e74656e74733b0a7d0a0a6c65742066696c65436865636b43203d2022223b0a6c65742066696c65436865636b53203d2022223b0a0a7661722066696c656e616d653d22223b0a766172207369676e65645f66696c656e616d653d22223b0a76617220696e7374616c6c65645f646f6373203d205b5d3b0a6c65742066696c65436f6e74656e7473203d20646f63756d656e742e717565727953656c6563746f722827696e707574236f70656e5f66696c655b747970653d2266696c65225d27293b0a66696c65436f6e74656e74732e6164644576656e744c697374656e657228276368616e6765272c202829203d3e207b0a0969662866696c65436f6e74656e74732e66696c65732e6c656e67746820213d3d2031297b0a0909646f63546578742e76616c7565203d2022223b0a090966696c656e616d65203d2022223b0a0909646f634e616d654864722e76616c7565203d2022223b0a0909646f634564697428293b0a090972657475726e3b0a097d0a202020206c65742066696c65203d2066696c65436f6e74656e74732e66696c65735b305d3b0a202020206c657420726561646572203d206e65772046696c6552656164657228293b0a202020207265616465722e6f6e6c6f6164203d202829203d3e207b0a0909646f63546578742e76616c7565203d207265616465722e726573756c743b0a090966696c656e616d65203d2066696c652e6e616d653b0a0909646f634e616d654864722e76616c7565203d2066696c656e616d653b0a0909646f634564697428293b0a202020207d3b0a202020207265616465722e726561644173546578742866696c65293b0a7d293b0a0a0a66756e6374696f6e2070617273655369676e656446696c65287369676e6564297b0a096c65742063203d207369676e65642e73706c69742827433a20272c2032295b315d3b0a096c65742073203d20632e73706c69742827533a20272c2032295b315d3b0a0963203d20632e73706c6974282f5c723f5c6e2f2c2032295b305d3b0a0973203d20732e73706c6974282f5c723f5c6e2f2c2032295b305d3b0a0972657475726e207b2243223a632c2253223a737d3b0a7d0a0a6c65742066696c65436865636b203d20646f63756d656e742e717565727953656c6563746f722827696e707574236f70656e5f7369676e65645f66696c655b747970653d2266696c65225d27293b0a66696c65436865636b2e6164644576656e744c697374656e657228276368616e6765272c202829203d3e207b0a0969662866696c65436865636b2e66696c65732e6c656e67746820213d3d2031297b0a090966696c65436865636b2e76616c7565203d2022223b0a090966696c65436865636b43203d2022223b0a090966696c65436865636b53203d2022223b0a0909646f634564697428293b0a090972657475726e3b0a097d0a202020206c65742066696c65203d2066696c65436865636b2e66696c65735b305d3b0a202020206c657420726561646572203d206e65772046696c6552656164657228293b0a202020207265616465722e6f6e6c6f6164203d202829203d3e207b0a090969662866696c652e6e616d652e73706c697428272e27292e706f70282920213d3d20227369676e656422297b0a09090966696c65436865636b2e76616c7565203d2022223b0a09090966696c65436865636b43203d2022223b0a09090966696c65436865636b53203d2022223b0a090909616c65727428224e6f742061202e7369676e65642066696c652e22293b0a090909646f634564697428293b0a09090972657475726e3b0a09097d0a09096c6574207369676e73203d2070617273655369676e656446696c65287265616465722e726573756c74293b0a090966696c65436865636b43203d207369676e732e433b0a090966696c65436865636b53203d207369676e732e533b0a09097369676e65645f66696c656e616d65203d2066696c652e6e616d653b0a09096c657420746573745f7369676e65645f66696c656e616d65203d2022223b0a0909746573745f7369676e65645f66696c656e616d65203d207369676e65645f66696c656e616d652e737562737472696e6728302c207369676e65645f66696c656e616d652e6c617374496e6465784f6628272e272929207c7c207369676e65645f66696c656e616d653b0a090969662028746573745f7369676e65645f66696c656e616d6520213d2066696c656e616d65297b0a09090969662866696c656e616d6520213d202222297b0a09090909616c657274282246696c656e616d65204d69736d6174636822293b0a0909097d656c73657b0a09090909616c65727428224e6f20646f63756d656e742066696c652073656c6563746564207965742e22293b0a0909097d0a09097d0a0909646f634564697428293b0a202020207d3b0a202020207265616465722e726561644173546578742866696c65293b0a7d293b0a0a0a76617220696e7374616c6c54797065203d2022646f63223b0a66756e6374696f6e206c697374656e6572286576656e7429207b20202020202020200a096c6574206c6173744f626a203d204a534f4e2e7061727365286576656e742e64617461293b0a096c657420726573203d206c6173744f626a2e726573756c743b0a09696620287265732e7478696429207b0a0909696628696e7374616c6c54797065203d3d2022646f6322297b0a090909696e7374616c6c65645f646f63732e70757368287b22737562646972223a646f635375624469722e76616c75652e7265706c616365282f5e5c2f7c5c2f7c5c2f242f672c202727292c2266696c656e616d65223a66696c656e616d652c2273636964223a7265732e747869647d293b0a090909646f634e616d654864722e76616c7565203d2022223b0a09090966696c656e616d653d22223b0a0909097369676e65645f66696c656e616d653d22223b0a09090966696c65436f6e74656e74732e76616c7565203d2022223b0a09090966696c65436865636b2e76616c7565203d2022223b0a0909096c6574206f757470757454657874203d22223b0a090909666f7220286c6574207820696e20696e7374616c6c65645f646f637329207b0a090909096f757470757454657874202b3d2028696e7374616c6c65645f646f63735b785d2e73756264697220213d22223f20696e7374616c6c65645f646f63735b785d2e737562646972202b20222f22203a222229202b20696e7374616c6c65645f646f63735b785d2e66696c656e616d6520202b20223a22202b20696e7374616c6c65645f646f63735b785d2e73636964202b223c62723e223b0a0909097d0a090909646f63756d656e742e676574456c656d656e744279496428226f757470757422292e696e6e657248544d4c203d206f7574707574546578743b0a090909646f634564697428293b0a090909616c657274287265732e74786964293b0a09097d656c736520696628696e7374616c6c54797065203d3d2022696e64657822297b0a090909646f63756d656e742e676574456c656d656e74427949642822696e6465787363696422292e696e6e657248544d4c203d202254656c61205369746520496e64657820534349443a22202b207265732e747869643b0a090909616c6572742822436f6e67726174732c20796f7527726520616c6c20646f6e6521205468697320697320796f75722054656c61205369746520534349443a22202b207265732e74786964293b0a09097d0a097d0a09736f636b65742e72656d6f76654576656e744c697374656e657228226d657373616765222c206c697374656e6572293b0a7d3b0a0a66756e6374696f6e20736f636b657453656e642864617461297b0a09736f636b65742e6164644576656e744c697374656e657228226d657373616765222c206c697374656e6572293b0a0973656e64446174612864617461293b0a7d0a0a76617220736d617274636f6e7472616374203d20646f63756d656e742e676574456c656d656e74427949642827736d617274636f6e747261637427293b0a76617220646f6354657874203d20646f63756d656e742e676574456c656d656e74427949642827646f63756d656e7427293b0a766172206465706c6f79446f63427574746f6e203d20646f63756d656e742e676574456c656d656e744279496428276465706c6f79446f6327293b0a0a66756e6374696f6e2067657451756f74654a534f4e28736d6172745f636f6e7472616374297b0a096c65742071756f74654a534f4e203d207b7d3b0a0971756f74654a534f4e2e6a736f6e727063203d2022322e30223b0a0971756f74654a534f4e2e6964203d202231223b0a0971756f74654a534f4e2e6d6574686f64203d20224445524f2e476574476173457374696d617465223b0a0971756f74654a534f4e2e706172616d73203d207b7d3b0a0971756f74654a534f4e2e706172616d732e7472616e7366657273203d205b7b0a090964657374696e6174696f6e3a20226465726f3171796b797461366e74706432376e6c3079713478747a6166346c733670356539707175306b3278347833707171357861766a73647871676e7938323730222c0a0909616d6f756e743a302c0a09094275726e3a302c0a09097061796c6f61645f7270633a5b5d200a097d5d3b0a0971756f74654a534f4e2e706172616d732e7363203d20736d6172745f636f6e74726163743b0a0971756f74654a534f4e2e706172616d732e73635f76616c7565203d20303b0a0971756f74654a534f4e2e706172616d732e73635f727063203d205b5d3b0a0971756f74654a534f4e2e706172616d732e72696e6773697a65203d20323b0a0971756f74654a534f4e2e706172616d732e7369676e6572203d20226465726f3171796b797461366e74706432376e6c3079713478747a6166346c733670356539707175306b3278347833707171357861766a73647871676e7938323730223b0a0972657475726e2071756f74654a534f4e3b0a7d0a0a6465706c6f79446f63427574746f6e2e6164644576656e744c697374656e65722827636c69636b272c2066756e6374696f6e286576656e7429207b0a09696e7374616c6c54797065203d22646f63223b2020200a096c65742071756f74654a534f4e203d2067657451756f74654a534f4e28736d617274636f6e74726163742e76616c7565293b090a096c657420726573756c74203d20636f6e6669726d2822457374696d6174656420436f73743a20222b286e696365526f756e642871756f74654a534f4e2e706172616d732e73632e6c656e677468202a2032202a202e3030303031292920202b22204445524f2c20496e7374616c6c20446f633f22293b0a0969662028726573756c7429207b0a0909696e7374616c6c446f6328293b0a097d20656c7365207b0a0909616c6572742822416374696f6e2063616e63656c65642e22293b0a097d0a7d293b0a0a2f2f496e7374616c6c204a534f4e0a66756e6374696f6e20676574496e7374616c6c4a534f4e28736d6172745f636f6e7472616374297b0a096c657420696e7374616c6c4a534f4e203d207b7d3b0a09696e7374616c6c4a534f4e2e6a736f6e727063203d2022322e30223b0a09696e7374616c6c4a534f4e2e6964203d202231223b0a09696e7374616c6c4a534f4e2e6d6574686f64203d20227472616e73666572223b0a09696e7374616c6c4a534f4e2e706172616d73203d207b7d3b0a09696e7374616c6c4a534f4e2e706172616d732e66656573203d20303b0a09696e7374616c6c4a534f4e2e706172616d732e7472616e7366657273203d205b7b0a090964657374696e6174696f6e3a20226465726f3171796b797461366e74706432376e6c3079713478747a6166346c733670356539707175306b3278347833707171357861766a73647871676e7938323730222c0a0909616d6f756e743a302c0a09094275726e3a302c0a09097061796c6f61645f7270633a5b5d200a097d5d3b0a09696e7374616c6c4a534f4e2e706172616d732e7363203d20736d6172745f636f6e74726163743b0a09696e7374616c6c4a534f4e2e706172616d732e73635f76616c7565203d20303b0a09696e7374616c6c4a534f4e2e706172616d732e73635f727063203d205b5d3b0a09696e7374616c6c4a534f4e2e706172616d732e72696e6773697a65203d20323b0a0972657475726e20696e7374616c6c4a534f4e3b0a7d0a0a090a2f2f496e7374616c6c20446f632066756e6374696f6e0a66756e6374696f6e20696e7374616c6c446f6328297b0a09736f636b657453656e6428676574496e7374616c6c4a534f4e28736d617274636f6e74726163742e76616c756529293b0a7d0a0a2f2f496e7374616c6c20496e6465782066756e6374696f6e0a66756e6374696f6e20696e7374616c6c496e64657828297b0a09736f636b657453656e6428676574496e7374616c6c4a534f4e28696e6465785343436f64652e76616c756529293b0a7d0a0a0a76617220696e6465784e616d65486472203d20646f63756d656e742e676574456c656d656e74427949642827696e6465784e616d6548647227293b0a76617220696e6465784465736372486472203d20646f63756d656e742e676574456c656d656e74427949642827696e646578446573637248647227293b0a76617220696e64657849636f6e55524c486472203d20646f63756d656e742e676574456c656d656e74427949642827696e64657849636f6e55524c48647227293b0a76617220696e6465784455524c203d20646f63756d656e742e676574456c656d656e74427949642827696e6465784455524c27293b0a0a766172206465706c6f79496e646578427574746f6e203d20646f63756d656e742e676574456c656d656e744279496428276465706c6f79496e64657827293b0a7661722067656e6572617465496e646578427574746f6e203d20646f63756d656e742e676574456c656d656e7442794964282767656e6572617465496e64657827293b0a0a0a76617220696e646578696e70757473203d205b696e6465784e616d654864722c696e64657844657363724864722c696e64657849636f6e55524c4864722c696e6465784455524c5d3b0a696e646578696e707574732e666f72456163682828696e70757429203d3e207b0a09696e7075742e6164644576656e744c697374656e657228226b65797570222c20696e64657845646974293b0a09696e7075742e6164644576656e744c697374656e657228226368616e6765222c20696e64657845646974293b0a09696e7075742e6164644576656e744c697374656e65722822626c7572222c20696e64657845646974293b0a7d293b0a0a66756e6374696f6e20696e64657845646974286576656e7429207b0a0a096c657420646f6373203d22223b0a096c6574206c696e655f6e6f203d2034303b0a09666f7220286c6574207820696e20696e7374616c6c65645f646f637329207b0a0909646f6373202b3d20286c696e655f6e6f2b2b29202b20602053544f52452822444f43602b287061727365466c6f6174287829202b203129202b2060222c202260202b696e7374616c6c65645f646f63735b785d2e73636964202b20602229602b225c6e223b0a097d0a09696e6465785343436f64652e76616c7565203d20676574496e646578534328646f6373293b0a0a096c6574206f6b203d20636865636b496e646578496e7075747328293b0a202020206966286f6b2e6f6b297b0a09096465706c6f79496e646578427574746f6e2e72656d6f7665417474726962757465282264697361626c656422293b0a097d656c73657b0a09096465706c6f79496e646578427574746f6e2e736574417474726962757465282264697361626c6564222c2074727565293b0a097d0a096966286f6b2e6572726f72732e6c656e67746820213d2030297b0a09096c6574206572726f727354657874203d2022223b0a0909666f722028636f6e7374206572726f72206f66206f6b2e6572726f727329207b0a0909096572726f727354657874203d206572726f72202b206572726f727354657874202b20225c6e223b0a09097d0a0909616c657274286572726f727354657874293b0a097d0a7d0a0a0a6465706c6f79496e646578427574746f6e2e6164644576656e744c697374656e65722827636c69636b272c2066756e6374696f6e286576656e7429207b0a09696e7374616c6c54797065203d22696e646578223b0a096c65742071756f74654a534f4e203d2067657451756f74654a534f4e28696e6465785343436f64652e76616c7565293b0a096c657420726573756c74203d20636f6e6669726d2822457374696d6174656420436f73743a20222b286e696365526f756e642871756f74654a534f4e2e706172616d732e73632e6c656e677468202a2032202a202e3030303031292920202b22204445524f2c20496e7374616c6c2054656c612d496e6465783f22293b0a0969662028726573756c7429207b0a0909696e7374616c6c496e64657828696e6465785343436f64652e76616c7565293b0a097d20656c7365207b0a0909636f6e736f6c652e6c6f672822416374696f6e2063616e63656c65642e22293b0a097d0a7d293b0a0a0a66756e6374696f6e20636865636b496e646578496e7075747328297b0a096c6574206f6b203d20747275653b0a096c6574206572726f7273203d205b5d3b0a09626c6f62203d206e657720426c6f62285b696e6465785343436f64652e76616c75655d293b0a09696628626c6f622e73697a65203e203138303030297b0a09096572726f72732e707573682822446f6320746f6f206c617267652e22293b0a09096f6b203d2066616c73653b0a097d0a096966280a09696e6465784e616d654864722e76616c75653d3d22227c7c0a09696e64657844657363724864722e76616c75653d3d22227c7c0a09696e6465784455524c2e76616c75653d3d22227c7c0a09696e6465785343436f64652e76616c75653d3d22227c7c0a09696e7374616c6c65645f646f63732e6c656e677468203d3d20300a09297b0a09096f6b203d2066616c73653b0a097d0a0972657475726e207b226f6b223a6f6b2c226572726f7273223a6572726f72737d3b0a7d0a0a0a2f2f496e6465780a76617220696e6465785343436f6465203d20646f63756d656e742e676574456c656d656e74427949642827696e6465785343436f646527293b0a0a66756e6374696f6e20676574496e646578534328646f6373297b0a6c657420696e646578496e6974203d20602f2f2020436f7079726967687420323032342e20436976696c776172652e20416c6c207269676874732072657365727665642e0a2f2f202054454c4120446563656e7472616c697a656420576562205374616e64617264202854454c412d494e4445582d31290a46756e6374696f6e20496e697469616c697a655072697661746528292055696e7436340a313020494620696e69742829203d3d2030205448454e20474f544f2033300a32302052455455524e20310a33302053544f524528226e616d65486472222c2022602b696e6465784e616d654864722e76616c75652b6022290a33312053544f524528226465736372486472222c2022602b696e64657844657363724864722e76616c75652b6022290a33322053544f5245282269636f6e55524c486472222c2022602b696e64657849636f6e55524c4864722e76616c75652b6022290a33332053544f524528226455524c222c2022602b696e6465784455524c2e76616c75652b6022290a60202b20646f6373202b20600a313030302052455455524e20300a456e642046756e6374696f6e0a0a603b0a0a6c657420696e64657854686552657374203d206046756e6374696f6e20696e697428292055696e7436340a31302049462045584953545328226f776e65722229203d3d2030205448454e20474f544f2033300a32302052455455524e20310a33302053544f524528226f776e6572222c20616464726573732829290a35302053544f5245282274656c6156657273696f6e222c2022312e302e302229202f2f2054454c412053432076657273696f6e0a36302053544f52452822636f6d6d6974222c203029202f2f2054686520696e697469616c20636f6d6d69740a37302053544f524528302c20484558285458494428292929202f2f205343494420636f6d6d697420686173680a38302053544f5245282268617368222c204845582854584944282929290a38352053544f524528226c696b6573222c2030290a39302053544f524528226469736c696b6573222c2030290a3130302052455455524e20300a456e642046756e6374696f6e0a0a46756e6374696f6e2061646472657373282920537472696e670a31302044494d207320617320537472696e670a3230204c45542073203d205349474e455228290a33302049462049535f414444524553535f56414c4944287329205448454e20474f544f2035300a34302052455455524e2022616e6f6e220a35302052455455524e20414444524553535f535452494e47287329200a456e642046756e6374696f6e0a0a46756e6374696f6e205261746528722055696e743634292055696e7436340a31302044494d206164647220617320537472696e670a3135204c45542061646472203d206164647265737328290a31362049462072203c2031303020262620455849535453286164647229203d3d2030202626206164647220213d2022616e6f6e22205448454e20474f544f2033300a32302052455455524e20310a33302053544f524528616464722c2022222b722b225f222b424c4f434b5f4845494748542829290a34302049462072203c203530205448454e20474f544f2037300a35302053544f524528226c696b6573222c204c4f414428226c696b657322292b31290a36302052455455524e20300a37302053544f524528226469736c696b6573222c204c4f414428226469736c696b657322292b31290a3130302052455455524e20300a456e642046756e6374696f6e0a0a46756e6374696f6e20557064617465436f646528636f646520537472696e67292055696e7436340a3130204946204c4f414428226f776e65722229203d3d2022616e6f6e22205448454e20474f544f2032300a313520494620636f6465203d3d202222205448454e20474f544f2032300a3136204946204c4f414428226f776e65722229203d3d20616464726573732829205448454e20474f544f2033300a32302052455455524e20310a3330205550444154455f53435f434f444528636f6465290a34302053544f52452822636f6d6d6974222c204c4f41442822636f6d6d697422292b3129202f2f204e657720636f6d6d69740a35302053544f5245284c4f41442822636f6d6d697422292c20484558285458494428292929202f2f204e657720686173680a36302053544f5245282268617368222c204845582854584944282929290a3130302052455455524e20300a456e642046756e6374696f6e0a603b0a0a72657475726e20696e646578496e6974202b20696e646578546865526573743b0a7d0a0a66756e6374696f6e206e696365526f756e64286e756d626572297b0a0972657475726e204d6174682e726f756e64286e756d6265722a313030303030303030292f3130303030303030303b0a7d0a6a53435f414354494f4e55006b656e747279706f696e74536953746f72654974656d16345c0c0dfe79aa125bd8395e9e3849abf9970c6bbed9b51c5b56480295b4c9010410186dc15f6400575b416129ff16aae89bcf548c624c84001b91c2e5b448890009d1f81ae5755d3a1c0cbf5731620aba214122401133f2f8ecf36e8e895f2a5c001b5596e69470352f8af1afe37b631b4f188cd634789ec4f3e7693de0a6ad69df0026b718a358e4f728b0dd8d6f4f5246e97959caf8f5fca60f6902343028d5b6270118d0dea38a43b05104030142cb6f7c8e96039451f805f0c60251485cb43fba030017e65c0f9c7c849f64e969b1e70e617b4d6797a40678cf9d27cd23de0be5407d00279b09d579d49e615ac1f6580b0df38f24590c0631a595b2ee791ed304c732da0100e939322c579ae1dd78704f50d0af54d7139869a310ad94ba5e253cf33790a9012ed2fd8bc9042093bce3b37957525e4df45e2231cd528a9e73b5d971b676f8160124227e297d9aadadcaa770fa0ae65c5dbe7fa77214078cb849f850f9b06b2a2b002fb7f97eb777c21d7f56ad7c7bfe9f4cd91826c3f178d66c14d27ad1ebe5d99f0010cfd79d64eb8fe23e493c3d1deb897e0bde41701500667ac469e45c52f97226001975486acc62b39a25f0b3b627675e46b6a1d0a06c36fb5d43a9f92e2d6461590000000000000000000000000000000000000000000000000000000000000000221e4e0a7ee4555927c0d0f9a4b2a2f37b2b080dbd5e917fa8ad897dfdc89f7b006d0d8ee28aa29ba3abce624c89332787c0d2c4d54e1bc51cc608fa5bd85e3c0118351462e1642e9670d4dd2aee68ce5af1b6b3e22a693ebae3a4609802a8a78d01200f18eed152db9d8cffe19282b0b431481d11ebd5d6ec198ad57990c7da416e20060882cf36337d6aecbfbd79e38c1d86b3214a2d1cd49f0d605ab775a7a6b503818ccb01d22d060c5bde9024aa8888930a2646230eb7047b4d7ff870e863b925390a50a2c09f62ba1dccd0c3686b2720d41876fab0bb8666e19563171a27e41d6ee9d0dcdd918ae5424d2324ff42add6d9acf821d92e9835e07da7f83290f92ee108d3f8cfc0410cb15ed511ef4097eb64194bae2f77697d15cc079eeea954265cd3b3af30a9819367e1311c47d908628e3ffd6fec8eb244d7aacbef599f4b03a4670e2290e8b774d2a5502da4ecd8dc357119d000250f9d369923e478c15909801c3ad94e815e592e50157fb549457d499d2d8b32b42b9ffa79ff72a49cac084ea982c969ac0236e5193859f487ae39b4af1d29da6fd8347852216760ec4f012dad14dafdc8300af50b2f7662ad2d27fb488d9e2796aa3fbe2dd3b8795fe1220020d0184e750ff36d271f4c2d7846b3e9a57f4554ea6dc866d66033820e14409f002f0024f646c9e3676465b0f5b559345e30bf9298f47c55edaacaa77e9d8015f50127773a0a11e7e99a8ff1d00a3d46c11eb10b95c400ede36bd03e7c91f506058e010dd809020cb8624d92642bdc65aae6530523ac1ec8cedc9fc60858c04780de55002ad2569615f49ebe9535991de1d91ef94b45c73d697de40d1c42fe7cdbc403a70017dc2fad2a5a9aa4063c693632bc645bd55d3e649b7401dfb39b425269bbcce00006e654800a44c4e25f719bdbc6fc196f0acea52137dab81a0097ef6bcfb62700002195477dc484456004463a893e9e342d692ac86fd13050e6bbb171c9f68f015500120e6ea3d8cc8fb40f489bb3ee5d4486eb8a81d6dd451065f0e10e58c5791227012b7cce58a0e52d4914c9ef5a7dc90fb71aa529605845c191f54edc99c073e6ae000a9ec5db57939ad50b104c783230af6fdff207e22229a5f0d0d73282b0aee192011288f375dd9885066ebab2dbdff5b6268adbbb06db7c73cf4b7498d9a4a8a6cb00
DERO explorer source code | explorer version (api): under development (1.0) | dero version: golang pre-alpha | Copyright 2017-2022 Dero Project