SHOWING: First 60
{
"p": "tap",
"op": "dmt-deploy",
"elem": "a00e1b152a3a8584717b1c1ddc4c73e7cae6a1653ec4fb3b083915631f3215aci0",
"tick": "natjewels",
"dt": "h"
"id": "01d3ce59cdd3ad3e393fe58c17c8edae6ca025c311c6ae95e22b951da1b8e99ai0"
"prv":"895ed8b9d26160b13d7d1ce1d2c2027619115cf143657ea960089c7618b80852i0"
}#76,514,237text{
"p": "tap",
"op": "dmt-deploy",
"elem": "a00e1b152a3a8584717b1c1ddc4c73e7cae6a1653ec4fb3b083915631f3215aci0",
"tick": "natstones",
"dt": "h"
"id": "01d3ce59cdd3ad3e393fe58c17c8edae6ca025c311c6ae95e22b951da1b8e99ai0"
"prv":"895ed8b9d26160b13d7d1ce1d2c2027619115cf143657ea960089c7618b80852i0"
}
#76,513,763text<div id="natstviewer" width="512" height="512"></div>
<input id="blk" type="number" style="display:none" />
<script id="preview" mint="MINT_INSCRIPTION_ID">
const root=document.getElementById('natstviewer')
root.parentElement.style.width='100%'
root.parentElement.style.height='100%'
root.parentElement.style.padding='0px'
root.parentElement.style.margin='0px'
const Wimg=512
const Himg=512
let scaleW=1
let scaleH=1
let blknum="10"
var howmanysym=0
var vunpaired=[]
var nodd=0
var zeroSym=false
var vColors=[]
var vPalette=[]
const sc=`,`
const sp=` `
const vsparkles=[];
vsparkles.push(150,222,7,32)
vsparkles.push(244,100,6,18)
vsparkles.push(127,320,5,12)
vsparkles.push(321,407,8,21)
vsparkles.push(415,180,5,0)
vsparkles.push(350,244,7,17)
vsparkles.push(221,360,3,27)
// Resize window
window.addEventListener('resize',resize,true)
resize()
// Retrieve content inscription id
let mintText=document.getElementById('preview').getAttribute('mint')
// Check no mint provided
if(mintText.includes('MINT_INSCRIPTION_ID')) {
let input=document.getElementById('blk')
input.style.display='none'
input.style.position='absolute'
input.style.fontSize='20px'
input.style.margin='20px'
input.style.top='0'
input.value=blknum
input.addEventListener('input',(event)=> {
blknum=input.value
update()
})
update()
}
// Mint was provided
else {
const request=new XMLHttpRequest()
try {
request.open('GET','/content/'+mintText)
request.responseType='text'
request.addEventListener('load',()=> initialize(request.response))
request.addEventListener('error',()=> console.error('XHR error'))
request.send()
} catch (error) {
console.error(`XHR error ${request.status}`)
}
}
function initialize(result) {
if(result) {
data=JSON.parse(result)
blknum=data.blk
}
update()
}
function resize(event) {
root.width=window.innerWidth
root.height=window.innerHeight
scaleW=root.width / Wimg
scaleH=root.height / Himg
offsetX=0
offsetY=0
if(scaleH < scaleW) {
scaleW=scaleH
offsetX=(root.width-Wimg * scaleW) / 2
}
else {
scaleH=scaleW
offsetY=(root.height-Himg * scaleH) / 2
}
root.style.zoom=scaleW / 2
update('resize')
}
function update() {
generateHtmlBasedOnBlockNumber(blknum)
}
function generateHtmlBasedOnBlockNumber(blknum) {
if(blknum<0){
return
}
vPalette=[]
const blkNumStr=blknum.toString()
lenStrblk=blkNumStr.length
howmanysym=0
vret=calcSym(blkNumStr,lenStrblk)
vunpaired=vret[0]
howmanysym=vret[1]
nodd=0
for(k=0;k<vunpaired.length;k+=2){
dd=Math.abs(vunpaired[k+1]-vunpaired[k])
nodd+=dd
}
bkgcol="#00000000" // transparent
bcol="#999"
fl2=Math.floor(lenStrblk/2)
ratioSym=lenStrblk==1 ? true :howmanysym/(fl2)
maxSym=howmanysym==Math.floor(fl2) || lenStrblk==1
zeroSym=howmanysym==0
natdiam=null
if(blknum % 1000==0){
natdiam=drawPearl()
}else if(blknum % 100==0 ){
bcol="#567"
createPaletteGems()
vpal=vPalette
natdiam=drawGem(blknum,vpal)
}else if(blknum % 10==0 ){
createPaletteBlackDiam()
vpal=vPalette
natdiam=drawBlackDiam(blknum,vpal,howmanysym,ratioSym)
} else {
iMod4=blknum%10
if(iMod4<=3){ // emerald [1,2,3]
createPaletteEmerald()
vpal=vPalette
natdiam=drawEmerald(blknum,vpal,howmanysym ,ratioSym)
}else if(iMod4<=6){ // ruby [4,5,6]
createPaletteRuby()
vpal=vPalette
natdiam=drawRuby(blknum,vpal,howmanysym,ratioSym)
}else{ // sapphire [7,8,9]
createPaletteSapphire()
vpal=vPalette
natdiam=drawSapphire(blknum,vpal,howmanysym,ratioSym)
}
}
document.getElementById('natstviewer').innerHTML=natdiam
}
function drawPearl(){
atime1="5"
atime2=atime3="7"
sparkles=addSparkles(vsparkles)
var natdiam=`<div style="position:absolute; top:0px; left:0px;">
<svg width="512" height="512" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="gradSphere" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
<stop offset="0%" style="stop-color:#eee;stop-opacity:1" />
<stop offset="100%" style="stop-color:#f60;stop-opacity:1" />
</radialGradient>
</defs>
<rect width="512" height="512" fill="`+bkgcol+`"/>
<circle cx="256" cy="256" r="221" fill="#9EB2B9" />
<circle cx="246" cy="242" r="200" fill="#CFDED7" />
<circle cx="220" cy="200" r="136" fill="#EDEFEE" />
<circle cx="164" cy="180" r="64" fill="url(#gradSphere)" />
<circle cx="136" cy="350" r="24" fill="#fff" />
<g transform="translate(140,156)">
<ellipse class="dAnim1" rx="24" ry="24" cx="24" cy="24" fill="#f60" stroke="#777"/>
</g>
</svg>`+sparkles+fillStyle(atime1,atime2,atime3)
return natdiam
}
function drawGem(blk,vc){
const pE1={x:252,y:24}
const pE2={x:372,y:56}
const pE3={x:460,y:146}
const pE4={x:492,y:264}
const pE5={x:462,y:384}
const pE6={x:374,y:470}
const pE7={x:252,y:506}
const pE8={x:132,y:472}
const pE9={x:44,y:384}
const pE10={x:10,y:264}
const pE11={x:42,y:146}
const pE12={x:132,y:56}
const pC1={x:332,y:124}
const pC2={x:422,y:266}
const pC3={x:334,y:406}
const pC4={x:172,y:404}
const pC5={x:82,y:266}
const pC6={x:170,y:124}
const pC={x:252,y:266}
strGrad1="\"url(#gradLin1)\""
strGrad2="\"url(#gradLin2)\""
strGrad3="\"url(#gradLin3)\""
strGrad4="\"url(#gradLin4)\""
opac=0.08
var pathStella=genStella(vc[6],opac)
var polE=a3p(pE1,pE2,pC1,vc[3])
polE+=a3p(pE2,pE3,pC1,vc[4])
polE+=a3p(pE3,pE4,pC2,vc[1])
polE+=a3p(pE4,pE5,pC2,vc[0])
polE+=a3p(pE5,pE6,pC3,vc[0])
polE+=a3p(pE6,pE7,pC3,vc[1])
polE+=a3p(pE7,pE8,pC4,vc[1])
polE+=a3p(pE8,pE9,pC4,vc[0])
polE+=a3p(pE9,pE10,pC5,vc[4])
polE+=a3p(pE10,pE11,pC5,vc[3])
polE+=a3p(pE11,pE12,pC6,vc[4])
polE+=a3p(pE12,pE1,pC6,vc[3])
var polI=a3p(pE1,pC1,pC6,vc[7])
polI+=a3p(pE3,pC1,pC2,vc[2])
polI+=a3p(pE5,pC2,pC3,vc[1])
polI+=a3p(pE7,pC3,pC4,vc[0])
polI+=a3p(pE9,pC4,pC5,vc[1])
polI+=a3p(pE11,pC5,pC6,vc[6])
var polC=a3pg(pC,pC6,pC1,strGrad2,bcol)
polC+=a3pg(pC,pC1,pC2,strGrad3,bcol)
polC+=a3pg(pC,pC2,pC3,strGrad1,bcol)
polC+=a3pg(pC,pC3,pC4,strGrad2,bcol)
polC+=a3pg(pC,pC4,pC5,strGrad1,bcol)
polC+=a3pg(pC,pC5,pC6,strGrad3,bcol)
hstroke=bcol
atime1="5"
atime2=atime3="7"
sparkles=addSparkles(vsparkles)
var natdiam=`<div style="position:absolute; top:0px; left:0px;">
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="gradLin1">
<stop offset="0" stop-color="`+vc[0]+`"/>
<stop offset="1" stop-color="`+vc[2]+`"/>
</linearGradient>
<linearGradient id="gradLin2">
<stop offset="0" stop-color="`+vc[1]+`"/>
<stop offset="1" stop-color="`+vc[3]+`"/>
</linearGradient>
<linearGradient id="gradLin3">
<stop offset="0" stop-color="`+vc[4]+`"/>
<stop offset="1" stop-color="`+vc[6]+`"/>
</linearGradient>
<linearGradient id="gradLin4">
<stop offset="0" stop-color="`+vc[5]+`"/>
<stop offset="1" stop-color="`+vc[7]+`"/>
</linearGradient>
</defs>
<rect width="512" height="512" fill="`+bkgcol+`"/> `
+polE+polI+polC+pathStella+sparkles+`
</svg>`+fillStyle(atime1,atime2,atime3)+`
</div>`;
return natdiam
}
function drawRuby(blk,vc,howmanysym,ratioSym){
const pE1={x:256,y:28}
const pE2={x:442,y:70}
const pE3={x:482,y:256}
const pE4={x:442,y:442}
const pE5={x:256,y:482}
const pE6={x:70,y:442}
const pE7={x:28,y:256}
const pE8={x:70,y:70}
var pI1={x:256,y:118}
var pI2={x:400,y:256}
var pI3={x:256,y:400}
var pI4={x:118,y:256}
var pC1={x:200,y:200}
var pC2={x:310,y:200}
var pC3={x:310,y:310}
var pC4={x:200,y:310}
// ruby
if(vunpaired.length >=6 ){
pC1.x=pC1.x+nodd * 4
pC2.y=pC2.y-nodd* 4
pC3.x=pC3.x+nodd* 4
pC4.y=pC4.y-nodd* 4
pI1.x=pI1.x+nodd* 4
pI2.y=pI2.y-nodd* 4
pI3.x=pI3.x+nodd* 4
pI4.y=pI4.y-nodd* 4
} else if(vunpaired.length >=4 ){
pC1.x=pC1.x+nodd* 2
pC2.y=pC2.y-nodd* 2
pC3.x=pC3.x+nodd* 2
pC4.y=pC4.y-nodd * 2
} else if(vunpaired.length >=2){
pI1.x=pI1.x+nodd
pI2.y=pI2.y-nodd
pI3.x=pI3.x+nodd
pI4.y=pI4.y-nodd
}
opac=0.21
var pathStella=genStella(vc[6],opac)
var pathA="<path d='M 120 300 A 256 206 20 0 0 386 210' stroke='"+vc[5]+"' stroke-width='60' fill='none' />"
var polE=a3p(pE1,pE2,pI1,vc[2])
polE+=a3p(pE2,pE3,pI2,vc[1])
polE+=a3p(pE3,pE4,pI2,vc[0])
polE+=a3p(pE4,pE5,pI3,vc[0])
polE+=a3p(pE5,pE6,pI3,vc[1])
polE+=a3p(pE6,pE7,pI4,vc[2])
polE+=a3p(pE7,pE8,pI4,vc[4])
polE+=a3p(pE8,pE1,pI1,vc[5])
var polI=a3p(pI1,pE2,pC2,vc[4])
polI+=a3p(pC2,pE2,pI2,vc[3])
polI+=a3p(pI2,pE4,pC3,vc[2])
polI+=a3p(pC3,pE4,pI3,vc[1])
polI+=a3p(pI3,pE6,pC4,vc[2])
polI+=a3p(pC4,pE6,pI4,vc[3])
polI+=a3p(pI4,pE8,pC1,vc[5])
polI+=a3p(pC1,pE8,pI1,vc[4])
var polC=a3p(pC1,pC2,pI1,vc[5])
polC+=a3p(pC2,pC3,pI2,vc[1])
polC+=a3p(pC3,pC4,pI3,vc[3])
polC+=a3p(pC4,pC1,pI4,vc[4])
atime1=atime2=atime3="5"
if(ratioSym < 1){
atime1= Math.floor(5 * ratioSym)
atime2= Math.floor(7 * ratioSym)
atime3= Math.floor(9 * ratioSym)
}
if(ratioSym==0){
atime1=atime2=atime3="0"
}
sparkles=addSparkles(vsparkles)
var natdiam=`<div style="position:absolute; top:0px; left:0px;">
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="512" height="512" fill="`+bkgcol+`"/>`
+pathA+polE+polI+polC+pathStella+sparkles+`
</svg>`+fillStyle(atime1,atime2,atime3)+`
</div>`;
return natdiam
}
function drawEmerald(blk,vc,howmanysym,ratioSym){
// perim ext
const pe1={x:420,y:46}
const pe2={x:464,y:70}
const pe3={x:464,y:450}
const pe4={x:420,y:476}
const pe5={x:86,y:476}
const pe6={x:42,y:450}
const pe7={x:42,y:70}
const pe8={x:86,y:46}
const ph1={x:450,y:50}
const ph2={x:450,y:470}
const ph3={x:52,y:470}
const ph4={x:52,y:50}
// perim int
const pi1={x:432,y:68}
const pi2={x:432,y:458}
const pi3={x:70,y:458}
const pi4={x:68,y:68}
var pC1={x:252,y:92}
var pC2={x:350,y:116}
var pC3={x:390,y:256}
var pC4={x:350,y:412}
var pC5={x:252,y:432}
var pC6={x:152,y:410}
var pC7={x:114,y:256}
var pC8={x:152,y:116}
lelps=80+howmanysym * 15
helps=12-howmanysym * 2
// emerald
if(vunpaired.length >=6 ){
pC1.x=pC1.x+nodd*2
pC2.y=pC2.y-nodd*2
pC3.x=pC3.x+nodd*2
//pC4.y=pC4.y-nodd* 2
pC5.y=pC5.y+nodd*2
pC6.y=pC6.y-nodd*2
pC7.y=pC7.y+nodd*2
pC8.y=pC8.y-nodd*2
}else if(vunpaired.length >=2 ){
pC1.x=pC1.x+nodd*2
pC2.x=pC2.x+nodd
pC3.y=pC3.y-nodd*2
//pC4.x=pC4.x+nodd
pC5.x=pC5.x+nodd*2
pC6.x=pC6.x+nodd
pC7.y=pC7.y-nodd*2
pC8.y=pC8.y-nodd
}else if(vunpaired.length >=2){
pC2.x=pC2.x+nodd
pC4.y=pC4.y-nodd
pC6.x=pC6.x+nodd
pC8.y=pC8.y-nodd
}
opac=0.21
var pathStella=genStella(vc[6],opac)
var pathA="<path d='M 82 400 A 236 256 20 0 0 426 230' stroke='"+vc[5]+"' stroke-width='80' fill='none' />"
var pathB="<path d='M 80 330 A 256 206 20 0 0 384 80'' stroke='"+vc[6]+"' stroke-width='100' fill='none' />"
var polE=add7pt(pe1,ph1,pi1,pC1,pi4,ph4,pe8,vc[6])
polE+=add7pt(ph1,pe2,pe3,ph2,pi2,pC3,pi1,vc[2])
polE+=add7pt(ph2,pe4,pe5,ph3,pi3,pC5,pi2,vc[2])
polE+=add7pt(ph3,pe6,pe7,ph4,pi4,pC7,pi3,vc[4])
var polT=a3p(pC1,pC2,pi1,vc[4])
polT+=a3p(pi1,pC3,pC2,vc[0])
polT+=a3p(pC3,pi2,pC4,vc[1])
polT+=a3p(pC4,pi2,pC5,vc[0])
polT+=a3p(pC5,pi3,pC6,vc[4])
polT+=a3p(pC6,pi3,pC7,vc[1])
polT+=a3p(pC7,pi4,pC8,vc[5])
polT+=a3p(pC8,pi4,pC1,vc[4])
atime1=atime2=atime3="5"
if(ratioSym < 1){
atime1= Math.floor(5 * ratioSym)
atime2= Math.floor(7 * ratioSym)
atime3= Math.floor(9 * ratioSym)
}
if(ratioSym==0){
atime1=atime2=atime3="0"
}
sparkles=addSparkles(vsparkles)
var natdiam=`<div style="position:absolute; top:0px; left:0px;">
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="512" height="512" fill="`+bkgcol+`"/>`
+pathB+pathA+polE+polT+pathStella+sparkles+`
</svg>`+fillStyle(atime1,atime2,atime3)+`
</div>`;
return natdiam
}
function drawSapphire(blk,vc,howmanysym,ratioSym){
var pe1={x:256,y:36}
var pe2={x:354,y:60}
var pe3={x:416,y:120}
var pe4={x:456,y:200}
var pe5={x:464,y:262}
var pe6={x:456,y:328}
var pe7={x:420,y:406}
var pe8={x:356,y:466}
var pe9={x:256,y:492}
var pe10={x:154,y:470}
var pe11={x:85,y:406}
var pe12={x:50,y:326}
var pe13={x:40,y:262}
var pe14={x:50,y:200}
var pe15={x:86,y:122}
var pe16={x:154,y:62}
var pC1= {x:296,y:188}
var pC2= {x:340,y:242}
var pC3= {x:338,y:298}
var pC4= {x:296,y:340}
var pC5= {x:210,y:338}
var pC6= {x:158,y:296}
var pC7= {x:166,y:230}
var pC8= {x:210,y:188}
var pC= {x:252,y:262}
// sapphyr
if(vunpaired.length >=6 ){
pC1.x=pC1.x+nodd * 2
pC2.y=pC2.y-nodd* 2
pC3.x=pC3.x+nodd* 2
//pC4.y=pC4.y-nodd* 2
pC5.y=pC5.y+nodd* 2
pC6.y=pC6.y-nodd* 2
pC7.y=pC7.y+nodd* 2
pC8.y=pC8.y-nodd* 2
}else if(vunpaired.length >=2 ){
pC1.x=pC1.x+nodd* 2
pC2.x=pC2.x+nodd
pC3.y=pC3.y-nodd* 2
//pC4.x=pC4.x+nodd
pC5.x=pC5.x+nodd* 2
pC6.x=pC6.x+nodd
pC7.y=pC7.y-nodd * 2
pC8.y=pC8.y-nodd
}else if(vunpaired.length >=2){
pC2.x=pC2.x+nodd
pC4.y=pC4.y-nodd
pC6.x=pC6.x+nodd
pC8.y=pC8.y-nodd
}
opac=0.21
var pathStella=genStella(vc[6],opac)
var polE=a3p(pe1,pe2,pC1,vc[7])
polE+=a3p(pe2,pe3,pC1,vc[4])
polE+=a3p(pe3,pe4,pC2,vc[7])
polE+=a3p(pe4,pe5,pC2,vc[1])
polE+=a3p(pe5,pe6,pC3,vc[3])
polE+=a3p(pe6,pe7,pC3,vc[1])
polE+=a3p(pe7,pe8,pC4,vc[0])
polE+=a3p(pe8,pe9,pC4,vc[3])
polE+=a3p(pe9,pe10,pC5,vc[0])
polE+=a3p(pe10,pe11,pC5,vc[2])
polE+=a3p(pe11,pe12,pC6,vc[3])
polE+=a3p(pe12,pe13,pC6,vc[1])
polE+=a3p(pe13,pe14,pC7,vc[3])
polE+=a3p(pe14,pe15,pC7,vc[6])
polE+=a3p(pe15,pe16,pC8,vc[7])
polE+=a3p(pe16,pe1,pC8,vc[6])
var polC=a4p(pC,pC8,pe1,pC1,vc[4],bcol,"")
polC+=a4p(pC,pC1,pe3,pC2,vc[6],bcol,"")
polC+=a4p(pC,pC2,pe5,pC3,vc[0],bcol,"")
polC+=a4p(pC,pC3,pe7,pC4,vc[3],bcol,"")
polC+=a4p(pC,pC4,pe9,pC5,vc[2],bcol,"")
polC+=a4p(pC,pC5,pe11,pC6,vc[4],bcol,"")
polC+=a4p(pC,pC6,pe13,pC7,vc[6],bcol,"")
polC+=a4p(pC,pC7,pe15,pC8,vc[7],bcol,"")
atime1=atime2=atime3="5"
if(ratioSym < 1){
atime1= Math.floor(5 * ratioSym)
atime2= Math.floor(7 * ratioSym)
atime3= Math.floor(9 * ratioSym)
}
if(ratioSym==0){
atime1=atime2=atime3="0"
}
sparkles=addSparkles(vsparkles)
var natdiam=`<div style="position:absolute; top:0px; left:0px;">
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="512" height="512" fill="`+bkgcol+`"/>`
+polE+polC+pathStella+sparkles+`
</svg>`+fillStyle(atime1,atime2,atime3)+`
</div>`;
return natdiam
}
function drawBlackDiam(blk,vc,howmanysym,ratioSym){
//fixed points
var pl={x:6,y:170}
const pc= {x:256,y:170}
var pr= {x:506,y:170}
const pb= {x:256,y:482}
const p0= {x:48,y:110}
const p1={x:100,y:82}
const p2={x:132,y:172}
const p3={x:128,y:170}
var p4={x:180,y:122}
const p5={x:168,y:170}
var p6={x:256,y:97}
const p7={x:332,y:122}
const p8={x:464,y:110}
const p9={x:412,y:82}
const p10={x:380,y:172}
const p11={x:384,y:170}
const p12={x:332,y:122}
const p13={x:344,y:170}
var pT1={x:236,y:390}
var pT2={x:276,y:390}
const pA={x:70,y:170}
const pB={x:442,y:170}
const pC={x:196,y:170}
const pD={x:316,y:170}
var pCl={x:50,y:40}
var pCr={x:462,y:40}
// upper left
var polL=a3p(pl,p2,p0,vc[0],bcol,"")
polL+=a4p(p0,p1,p4,p3,vc[1],bcol,"")
polL+=a3p(p3,p4,p5,vc[2],bcol,"")
polL+=a3p(p4,p5,pc,vc[3],bcol,"")
polL+=a3p(p1,p4,p6,vc[4],bcol,"")
// upper central
strokec="#777"
polC=a4p(p4,p6,p7,pc,"#f60",strokec,"")
// upper right
var polR=a3p(pr,p10,p8,vc[0],bcol,"")
polR+=a4p(p8,p10,p7,p9,vc[1],bcol,"")
polR+=a3p(p13,p7,p10,vc[2],bcol,"")
polR+=a3p(p13,p7,pc,vc[3],bcol,"")
polR+=a3p(p9,p7,p6,vc[4],bcol,"")
// lower
var polT =a3p(pl,pr,pb,vc[0],bcol,"")
var polt1=a3p(pA,p3,pT1,vc[4],bcol,"")
var polt2=a3p(p3,p5,pT1,vc[7],bcol,"")
var polt3=a3p(p5,pC,pT1,vc[4],bcol,"")
var polt4=a3p(pB,p11,pT2,vc[4],bcol,"")
var polt5=a3p(p11,p13,pT2,vc[7],bcol,"")
var polt6=a3p(p13,pD,pT2,vc[4],bcol,"")
// horns
hstroke=bcol
cornacol="#888"
var polCl=a3p(p0,p1,pCl,cornacol,bcol,"")
var polCr=a3p(p8,p9,pCr,cornacol,bcol,"")
sparkles=addSparkles(vsparkles)
atime1= 5
atime2= 7
atime3= 9
var natdiam=`<div style="position:absolute; top:0px; left:0px;">
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="512" height="512" fill="`+bkgcol+`"/>`
+polL+polC+polR+polT+polt1+polt2+polt3+polt4+polt5+polt6+polCl+polCr+sparkles+`
</svg>`+fillStyle(atime1,atime2,atime3)+`
</div>`;
return natdiam
}
function a3p(p1,p2,p3,palcol,opac){
s=`<polygon points="`+p1.x+sc+p1.y+sp+p2.x+sc+p2.y+sp+p3.x+sc+p3.y +`" fill="`+palcol+`"; stroke="#ccc"`
if(opac !=null ) {
s+=`"; opacity="`+opac+`"`
}
s+=`/>`
return s
}
function a3pg(p1,p2,p3,palcol){
s=`<polygon points="`+p1.x+sc+p1.y+sp+p2.x+sc+p2.y+sp+p3.x+sc+p3.y +`" fill=`+palcol+` />`
return s
}
function a4p(p1,p2,p3,p4,palcol,dAnim){
s=""
if(dAnim.length > 0 ){
s=`<polygon class="`+dAnim+`" points="`+p1.x+sc+p1.y+sp+p2.x+sc+p2.y+sp+p3.x+sc+p3.y+sp+p4.x+sc+p4.y+`" fill="`+palcol+`" />`
}else{
s=`<polygon points="`+p1.x+sc+p1.y+sp+p2.x+sc+p2.y+sp+p3.x+sc+p3.y+sp+p4.x+sc+p4.y+`" fill="`+palcol+`" />`
}
return s
}
function a4ps(p1,p2,p3,p4,fillcol,bcol,opac){
var s=`<polygon points="`+p1.x+sc+p1.y+sp+p2.x+sc+p2.y+sp+p3.x+sc+p3.y+sp+p4.x+sc+p4.y+`"`
s+=`" fill="`+fillcol+`" stroke="`+bcol+`"; stroke-width="1"; opacity="`+opac+`"/>`
return s
}
function add7pt(p1,p2,p3,p4,p5,p6,p7,palcol){
s=`<polygon points="`+p1.x+sc+p1.y+sp+p2.x+sc+p2.y+sp+p3.x+sc+p3.y +sp+
p4.x+sc+p4.y+sp+p5.x+sc+p5.y+sp+p6.x+sc+p6.y +sp+
p7.x+sc+p7.y +`" fill="`+palcol+`" />`
return s
}
function genStella(col,opac) {
var cx=Wimg/2
var cy=Himg/2
var L=24
var pe1={x:330,y:56}
var pe2={x:438,y:162}
var pe3={x:462,y:246}
var pe4={x:430,y:378}
var pe5={x:326,y:470}
var pe6={x:190,y:474}
var pe7={x:92,y:418}
var pe8={x:40,y:276}
var pe9={x:86,y: 122}
var pe10={x:184,y:48}
var pi1={x:256,y:190}
var pi2={x:300,y:204}
var pi3={x:326,y:244}
var pi4={x:326,y:290}
var pi5={x:300,y:328}
var pi6={x:256,y:340}
var pi7={x:216,y:324}
var pi8={x:184,y:290}
var pi9={x:186,y:244}
var pi10={x:210,y:200}
var pathS= a3p(pi1,pi2,pe1,col,opac)
pathS+=a3p(pi2,pi3,pe2,col,opac)
pathS+=a3p(pi3,pi4,pe3,col,opac)
pathS+=a3p(pi4,pi5,pe4,col,opac)
pathS+=a3p(pi5,pi6,pe5,col,opac)
pathS+=a3p(pi6,pi7,pe6,col,opac)
pathS+=a3p(pi7,pi8,pe7,col,opac)
pathS+=a3p(pi8,pi9,pe8,col,opac)
pathS+=a3p(pi9,pi10,pe9,col,opac)
pathS+=a3p(pi10,pi1,pe10,col,opac)
return pathS
}
function addSparkles(vdata) {
palcol="#eff"
atime1=3
atime2=2
atime3=1
var spark=`<div style="position:absolute; top:0px; left:0px;">
<svg width="512" height="512" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="gradSpark" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
<stop offset="0%" style="stop-color:#ffffff;stop-opacity:1" />
<stop offset="100%" style="stop-color:#daeaea;stop-opacity:1" />
</radialGradient>
</defs>`
for(i=0;i<vdata.length;i+=4 ){
x=vdata[i]
y=vdata[i+1]
rr=vdata[i+2]
ln=vdata[i+3]
var ss=`<circle cx="`+x+`" cy="`+y+`" r="`+rr+`" fill="#eee" />
<circle cx="`+x+`" cy="`+y+`" r="`+(rr+2)+`" fill="url(#gradSpark)" />
<polygon class="dAnim1" points="`+(x-2)+sc+(y+2)+sp+(x+2)+sc+(y-2)+sp+(x+ln)+sc+(y+ln) +`" fill="`+palcol+`" />
<polygon class="dAnim2" points="`+(x-2)+sc+(y+2)+sp+(x+2)+sc+(y-2)+sp+(x-ln)+sc+(y-ln) +`" fill="`+palcol+`" />
<polygon class="dAnim3" points="`+(x-4)+sc+(y+1)+sp+(x+2)+sc+(y-2)+sp+(x+ln)+sc+(y-ln) +`" fill="`+palcol+`" />
<polygon class="dAnim1" points="`+(x-4)+sc+(y+1)+sp+(x+3)+sc+(y-3)+sp+(x-ln)+sc+(y+ln) +`" fill="`+palcol+`" />`
spark+=ss
}
spark+=`</svg> </div>`
return spark
}
function fillTicks(strcol){
var ticks=`<rect x=60 y=16 width=3 height=2 fill="`+strcol+`" stroke="#777"/>`
ticks+=`<rect x=125 y=16 width=3 height=2 fill="`+strcol+`" stroke="#777"/>`
ticks+=`<rect x=190 y=16 width=3 height=2 fill="`+strcol+`" stroke="#777"/>`
ticks+=`<rect x=255 y=16 width=3 height=2 fill="`+strcol+`" stroke="#777"/>`
ticks+=`<rect x=320 y=16 width=3 height=2 fill="`+strcol+`" stroke="#777"/>`
ticks+=`<rect x=385 y=16 width=3 height=2 fill="`+strcol+`" stroke="#777"/>`
ticks+=`<rect x=448 y=16 width=3 height=2 fill="`+strcol+`" stroke="#777"/>`
return ticks
}
function fillStyle(atime1,atime2,atime3){
var strstyle=`<style>
.dAnim1 {
animation-name:dOpacity;
animation-duration:`+atime1 +`s;
animation-iteration-count:infinite;
}
.dAnim2 {
animation-name:dOpacity;
animation-duration:`+atime2 +`s;
animation-iteration-count:infinite;
}
.dAnim3 {
animation-name:dOpacity;
animation-duration:`+atime3 +`s;
animation-iteration-count:infinite;
}
@keyframes dOpacity {
0% { opacity:1; }
50% { opacity:0.1; }
100% { opacity:1; }
}
</style>`
return strstyle
}
function calcSym(blkNumStr,len){
howmanysym=0
vunpaired=[]
let len2=Math.floor(len / 2)
for (let i=0; i < len2; i++) {
let ch1=blkNumStr.charAt(i)
let ch2=blkNumStr.charAt(len-1-i)
i1=parseInt(ch1)
i2=parseInt(ch2)
if(ch1==ch2){
howmanysym++
} else {
vunpaired.push(i1)
vunpaired.push(i2)
}
}
return [vunpaired,howmanysym]
}
function createPaletteEmerald(){
vPalette.push("#006837")
vPalette.push("#009245")
vPalette.push("#39B54A")
vPalette.push("#68EA74")
vPalette.push("#22B573")
vPalette.push("#5EEAA7")
vPalette.push("#B2F9D5")
vPalette.push("#FFFFFF")
}
function createPaletteRuby(){
vPalette.push("#B20602")
vPalette.push("#D80326")
vPalette.push("#EA3B7E")
vPalette.push("#FF0000")
vPalette.push("#F48EB0")
vPalette.push("#FFDEEB")
vPalette.push("#FFF2F8")
vPalette.push("#FFFFFF")
}
function createPaletteSapphire(){
vPalette.push("#040521")
vPalette.push("#2340A5")
vPalette.push("#0025CC")
vPalette.push("#2943FF")
vPalette.push("#3F6FF5")
vPalette.push("#618BFF")
vPalette.push("#19A8F7")
vPalette.push("#DAF9FA")
}
function createPaletteBlackDiam(){
vPalette.push("#000")
vPalette.push("#333")
vPalette.push("#555")
vPalette.push("#777")
vPalette.push("#999")
vPalette.push("#bbb")
vPalette.push("#bbe")
vPalette.push("#ddd")
vPalette.push("#ddf")
}
function createPaletteGems(){
vPalette.push("#006868")
vPalette.push("#009292")
vPalette.push("#39B5B5")
vPalette.push("#68EAEA")
vPalette.push("#22B5B5")
vPalette.push("#5EEAAEA")
vPalette.push("#B2F9F9")
vPalette.push("#E2FEFE")
vPalette.push("#FFFFFF")
}
</script>#76,511,652textnatlife.3.10.element#76,489,779texttoken-transfer4,381.gib#76,484,107tap726.716472.bitmap#76,292,939textnatlife.0.4.element#76,154,663textnatoshi.0.4.element#76,151,503textnatoshi.21.10.element#76,150,173textlife.3.10.element#76,149,781textlife.3.4.element#76,149,572textnatdiamonds.21.10.element#76,121,483textnatdiamonds.21.4.element#76,121,435textdmt-mint.bitminer#76,085,855tapsilver.d47.11.element#71,280,313textgold.d79.11.element#71,280,182textcopper.11.element#70,887,451textsilver.47.11.element#70,887,375textplatinum.78.11.element#70,886,917textgold.79.11.element#70,886,390textPERIODICTABLE#70,285,100texttransfer25.pups#67,734,248brc-20<div id="natdiamviewer" width="512" height="512"></div>
<input id="blk" type="number" style="display:none" />
<script id="preview" mint="MINT_INSCRIPTION_ID">
// Retrieve render area
const root = document.getElementById('natdiamviewer')
root.parentElement.style.width = '100%'
root.parentElement.style.height = '100%'
root.parentElement.style.padding = '0px'
root.parentElement.style.margin = '0px'
const Wimg = 512
const Himg = 512
const maxLev = 232
let scaleW = 1
let scaleH = 1
let blockNumber = '707'
var howmanysym = 0
var vunpaired = []
var vColors = []
var vPalette = []
var vPaletteMaxSym = []
class sCol {
constructor(rr, gg, bb) {
this.r = rr;
this.g = gg;
this.b = bb;
}
}
// Resize window
window.addEventListener('resize', resize, true)
resize()
// Retrieve content inscription id
let mintText = document.getElementById('preview').getAttribute('mint')
// Check no mint provided
if(mintText.includes('MINT_INSCRIPTION_ID')) {
let input = document.getElementById('blk')
input.style.display = 'none'
input.style.position = 'absolute'
input.style.fontSize = '20px'
input.style.margin = '20px'
input.style.top = '0'
input.value = blockNumber
input.addEventListener('input',(event) => {
blockNumber = input.value
update()
})
update()
}
// Mint was provided
else {
const request = new XMLHttpRequest()
try {
request.open('GET', '/content/' + mintText)
request.responseType = 'text'
request.addEventListener('load', () => initialize(request.response))
request.addEventListener('error', () => console.error('XHR error'))
request.send()
} catch (error) {
console.error(`XHR error ${request.status}`)
}
}
function initialize(result) {
if(result) {
console.log('Result', result)
data = JSON.parse(result)
blockNumber = data.blk
}
update()
}
function resize(event) {
root.width = window.innerWidth
root.height = window.innerHeight
scaleW = root.width / Wimg
scaleH = root.height / Himg
offsetX = 0
offsetY = 0
if(scaleH < scaleW) {
scaleW = scaleH
offsetX = (root.width - Wimg * scaleW) / 2
}
else {
scaleH = scaleW
offsetY = (root.height - Himg * scaleH) / 2
}
root.style.zoom = scaleW / 2
update('resize')
}
function update() {
generateHtmlBasedOnBlockNumber(blockNumber)
}
//fixed elements
function generateHtmlBasedOnBlockNumber(blockNumber) {
vPalette = []
vPaletteMaxSym = []
howmanysym =0
vunpaired = []
isEven = blockNumber%2 == 0
const blkNumStr = blockNumber.toString()
lenStrblk = blkNumStr.length
calcSym(blkNumStr, lenStrblk)
fillColors()
createPalette(blockNumber)
strbkgcol = "#212121"
strokecol = "#999"
cornacol = "#cb26e8"
mod5 = blockNumber%10
if(mod5==1){
cornacol = "#cb26e8"
}else if(mod5==2){
cornacol = "#26e8cb"
}else if(mod5==3){
cornacol = "#e826cb"
}else if(mod5==4){
cornacol = "#cbe826"
}else if(mod5==5){
cornacol = "#777"
}else if(mod5==6){
cornacol = "#f60"
}else if(mod5==7){
cornacol = "#06f"
}else if(mod5==8){
cornacol = "#396"
}else if(mod5==9){
cornacol = "#e8cb26"
}
aurcol = "#000"
if(blkNumStr.includes("666")){
cornacol = "#000"
}else{
const regex = new RegExp('6', "g");
const count6 = (blkNumStr.match(regex) || []).length;
cornacol = count6 == 3 ? "#dc143c" : cornacol
}
has777 = false
if(blkNumStr.includes("777")){
aurcol = "#9ed5ef"
has777 = true
}else{
const regex = new RegExp('7', "g");
const count7 = (blkNumStr.match(regex) || []).length;
has777 = count7 == 3
aurcol = has777 ? "#007fff" : aurcol
}
has21 = blkNumStr.includes("21")
fl2 = Math.floor(lenStrblk/2)
ratioSym = lenStrblk==1 ? true : howmanysym/(fl2)
maxSym = howmanysym == Math.floor(fl2) || lenStrblk == 1
zeroSym = howmanysym == 0
numEvenDigits = zeroSym ? evenDigits(blockNumber) : 0
vpal = vPalette
if(zeroSym && numEvenDigits == 0){
vpal = []
}
if(maxSym){
vpal = vPaletteMaxSym
}
natdiam = drawDiam(blockNumber, vpal,cornacol,aurcol,zeroSym,ratioSym,has777, has21)
//construction
const htmlContent = natdiam
document.getElementById('natdiamviewer').innerHTML = htmlContent
}
function drawDiam(blk, vpalcol, cornacol, aurcol, isZeroSym, ratioSym, has777, has21){
const sc = `,`
const sp = ` `
//fixed points
var pl = {x: 6, y: 170}
const pc = {x: 256, y: 170}
var pr = {x: 506, y: 170}
const pb = {x: 256, y: 482}
const p0 = {x: 48, y: 110}
const p1 = {x: 100, y: 82}
const p2 = {x: 132, y: 172}
const p3 = {x: 128, y: 170}
var p4 = {x: 180, y: 122}
const p5 = {x: 168, y: 170}
var p6 = {x: 256, y: 97}
const p7= {x: 332, y: 122}
const p8 = {x: 464, y: 110}
const p9 = {x: 412, y: 82}
const p10 = {x: 380, y: 172}
const p11 = {x: 384, y: 170}
const p12 = {x: 332, y: 122}
const p13 = {x: 344, y: 170}
var pT1 = {x: 236, y: 390}
var pT2 = {x: 276, y: 390}
const pA = {x: 70, y: 170}
const pB = {x: 442, y: 170}
const pC = {x: 196, y: 170}
const pD = {x: 316, y: 170}
var pCl = {x: 50, y: 40}
var pCr = {x: 462, y: 40}
lelps = 80 + howmanysym * 15
helps = 12 - howmanysym * 2
if(vunpaired.length >= 2){
pT1.y = pT1.y - vunpaired[0] * 16
pT2.y = pT2.y - vunpaired[1] * 16
}
if(vunpaired.length >= 4 ){
p4.x = p4.x - 4 * 16+ vunpaired[2] * 16
p6.x = p6.x - 4 * 16+ vunpaired[3] *16
}
if(vunpaired.length >= 6 ){
pl.x = pl.x + 4 + vunpaired[4] * 4
pr.x = pr.x - vunpaired[5] * 4
}
// upper left
var polL = `<polygon points="` + pl.x+sc+ pl.y+ sp +p2.x+sc+p2.y + sp + p0.x+sc+p0.y + `" fill="`+vpalcol[0]+`" stroke="`+strokecol+`" />`
polL += `<polygon points="` + p0.x+sc+ p0.y+ sp +p1.x+sc+p1.y + sp + p4.x+sc+p4.y + sp +p3.x+sc+ p3.y +`" fill="`+vpalcol[1]+`" stroke="`+strokecol+`" />`
polL += `<polygon points="` + p3.x+sc+ p3.y+ sp +p4.x+sc+p4.y + sp + p5.x+sc+p5.y + `" fill="`+vpalcol[2]+`" stroke="`+strokecol+`" />`
polL += `<polygon points="` + p4.x+sc+ p4.y+ sp +p5.x+sc+p5.y + sp + pc.x+sc+pc.y + `" fill="`+vpalcol[3]+`" stroke="`+strokecol+`" />`
polL += `<polygon points="` + p1.x+sc+ p1.y+ sp +p4.x+sc+p4.y + sp + p6.x+sc+p6.y + `" fill="`+vpalcol[4]+`" stroke="`+strokecol+`" />`
// upper central
strokec = "#777"
if(isEven){
polC = `<polygon class="dAnim1" points="` + p4.x+sc+ p4.y+ sp +p6.x+sc+ p6.y + sp+p7.x+sc+p7.y + sp +pc.x+sc+ pc.y +`" fill="#f60" stroke="`+strokec+`" />`
}else{
polC = `<polygon class="dAnim1" points="` + p4.x+sc+ p4.y+ sp +p6.x+sc+ p6.y + sp +pc.x+sc+ pc.y +`" fill="#666" stroke="`+strokec+`" />`
polC += `<polygon class="dAnim1" points="` + p7.x+sc+ p7.y+ sp +p6.x+sc+ p6.y + sp +pc.x+sc+ pc.y +`" fill="#777" stroke="`+strokec+`" />`
}
// upper right
var polR = `<polygon points="` + pr.x+sc+ pr.y+ sp +p10.x+sc+p10.y + sp + p8.x+sc+p8.y + `" fill="`+vpalcol[0]+`" stroke="`+strokecol+`" />`
polR += `<polygon points="` + p8.x+sc+ p8.y+ sp +p10.x+sc+p10.y + sp + p7.x+sc+p7.y + sp +p9.x+sc+ p9.y +`" fill="`+vpalcol[1]+`" stroke="`+strokecol+`" />`
polR += `<polygon points="` + p13.x+sc+ p13.y+ sp +p7.x+sc+p7.y + sp + p10.x+sc+p10.y + `" fill="`+vpalcol[2]+`" stroke="`+strokecol+`" />`
polR += `<polygon points="` + p13.x+sc+ p13.y+ sp +p7.x+sc+p7.y + sp + pc.x+sc+pc.y + `" fill="`+vpalcol[3]+`" stroke="`+strokecol+`" />`
polR += `<polygon points="` + p9.x+sc+ p9.y+ sp +p7.x+sc+p7.y + sp + p6.x+sc+p6.y + `" fill="`+vpalcol[4]+`" stroke="`+strokecol+`" />`
// lower
var polT = `<polygon points="` + pl.x+sc+ pl.y+ sp +pr.x+sc+pr.y + sp+pb.x+sc+pb.y + `" fill="`+vpalcol[0]+`" stroke="`+strokecol+`" />`
var polt1 = `<polygon points="` + pA.x+sc+ pA.y+ sp +p3.x+sc+p3.y + sp+pT1.x+sc+pT1.y + `" fill="`+vpalcol[4]+`" stroke="`+strokecol+`" />`
var polt2 = `<polygon points="` + p3.x+sc+ p3.y+ sp +p5.x+sc+p5.y + sp+pT1.x+sc+pT1.y + `" fill="`+vpalcol[7]+`" stroke="`+strokecol+`" />`
var polt3 = `<polygon points="` + p5.x+sc+ p5.y+ sp +pC.x+sc+pC.y + sp+pT1.x+sc+pT1.y + `" fill="`+vpalcol[4]+`" stroke="`+strokecol+`" />`
var polt4 = `<polygon points="` + pB.x+sc+ pB.y+ sp +p11.x+sc+p11.y + sp+pT2.x+sc+pT2.y + `" fill="`+vpalcol[4]+`" stroke="`+strokecol+`" />`
var polt5 = `<polygon points="` + p11.x+sc+ p11.y+ sp +p13.x+sc+p13.y + sp+pT2.x+sc+pT2.y + `" fill="`+vpalcol[7]+`" stroke="`+strokecol+`" />`
var polt6 = `<polygon points="` + p13.x+sc+ p13.y+ sp +pD.x+sc+pD.y + sp+pT2.x+sc+pT2.y + `" fill="`+vpalcol[4]+`" stroke="`+strokecol+`" />`
puntacol = has21 ? "#f60" : "#000"
var punta = `<polygon class="dAnim2" points="226,440 256,480 286,440" fill="`+puntacol+`" stroke="`+puntacol+`" />`
// horns
hstroke = strokecol
if(cornacol == "#000"){
hstroke = "#dc143c"
}
var polCl = `<polygon class="dAnim3" points="` + p0.x+sc+ p0.y+ sp +p1.x+sc+p1.y + sp+pCl.x+sc+pCl.y + `" fill="`+cornacol+`" stroke="`+hstroke+`" />`
var polCr = `<polygon class="dAnim3" points="` + p8.x+sc+ p8.y+ sp +p9.x+sc+p9.y + sp+pCr.x+sc+pCr.y + `" fill="`+cornacol+`" stroke="`+hstroke+`" />`
// halo
var aureola = `<ellipse rx="`+lelps+`" ry="`+helps+`" cx="256" cy="67" " fill="`+aurcol+`" stroke="#777"/>`
aureola = has777 ? aureola : ""
var meter = `<rect x=60 y=23 width=392 height=2 fill="`+vpalcol[0]+`" stroke="#777"/>`
var ticks = `<rect x=60 y=18 width=3 height=2 fill="`+aurcol+`" stroke="#777"/>`
ticks += `<rect x=125 y=18 width=3 height=2 fill="`+aurcol+`" stroke="#777"/>`
ticks += `<rect x=190 y=18 width=3 height=2 fill="`+aurcol+`" stroke="#777"/>`
ticks += `<rect x=255 y=18 width=3 height=2 fill="`+aurcol+`" stroke="#777"/>`
ticks += `<rect x=320 y=18 width=3 height=2 fill="`+aurcol+`" stroke="#777"/>`
ticks += `<rect x=385 y=18 width=3 height=2 fill="`+aurcol+`" stroke="#777"/>`
ticks += `<rect x=448 y=18 width=3 height=2 fill="`+aurcol+`" stroke="#777"/>`
posCursor = Math.floor(60 + 392 * ratioSym)
cursorcol = "rgb("+(128+blk%64)+","+(128+blk%128)+","+(256-blk%128)+")"
var cursor = `<polygon points="`+(posCursor-6)+`,10 `+posCursor+`,18, `+(posCursor+6)+`,10" fill="`+cursorcol+`" stroke="`+strokecol+`" />`
atime1 = atime2 = atime3 = "5"
if(ratioSym < 1){
atime1 = Math.floor(5 * ratioSym)
atime2 = Math.floor(7 * ratioSym)
atime3 = Math.floor(9 * ratioSym)
}
if(ratioSym == 0){
atime1 = atime2 = atime3 = "0"
}
var natdiam = `<div style="position: absolute; top: 0px; left: 0px;">
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="512" height="512" fill="`+strbkgcol+`"/>`
+polL+polC+polR+polT+polt1+polt2+polt3+polt4+polt5+polt6+polCl+polCr+aureola+punta+meter+ticks+cursor+`
</svg>
<style>
.dAnim1 {
animation-name: dOpacity;
animation-duration: `+ atime1 +`s;
animation-iteration-count: infinite;
}
.dAnim2 {
animation-name: dOpacity;
animation-duration: `+ atime2 +`s;
animation-iteration-count: infinite;
}
.dAnim3 {
animation-name: dOpacity;
animation-duration: `+ atime3 +`s;
animation-iteration-count: infinite;
}
@keyframes dOpacity {
0% { opacity: 1; }
50% { opacity: 0.1; }
100% { opacity: 1; }
}
</style>
</div>`;
return natdiam
}
function calcSym(blkNumStr, len){
let len2 = Math.floor(len / 2)
for (let i = 0; i < len2; i++) {
let ch1 = blkNumStr.charAt(i)
let ch2 = blkNumStr.charAt(len-1-i)
i1 = parseInt(ch1)
i2 = parseInt(ch2)
if(ch1 == ch2){
howmanysym++
} else {
vunpaired.push(i1)
vunpaired.push(i2)
}
}
}
function fillColors(){
for (let i = 0; i < maxLev; i+=16) {
var col = new sCol(maxLev,maxLev-i,0);
vColors.push(col)
}
for (let i = 0; i < maxLev; i+=16) {
var col = new sCol(maxLev-i,maxLev,0);
vColors.push(col)
}
for (let i = 0; i < maxLev; i+=16) {
var col = new sCol(0,maxLev,i);
vColors.push(col)
}
for (let i = 0; i < maxLev; i+=16) {
var col = new sCol(0,maxLev-i,maxLev);
vColors.push(col)
}
for (let i = 0; i < maxLev; i+=16) {
var col = new sCol(i,0,maxLev);
vColors.push(col)
}
}
function createPalette(blockNumber){
const step = 8
pos = blockNumber%vColors.length
var cc = vColors[pos]
dR = Math.floor((maxLev - cc.r)/step)
dG = Math.floor((maxLev - cc.g)/step)
dB = Math.floor((maxLev - cc.b)/step)
for (let i = 0; i < step; i++) {
//var col = new sCol(cc.r+i*dR,cc.g+i*dG,cc.b+i*dB);
strcol = "rgb("+(cc.r+i*dR)+","+(cc.g+i*dG)+","+(cc.b+i*dB)+")"
vPalette.push(strcol)
}
vr = [247,247,247,247,247,247,247,247]
vg = [121,140,160,180,200,220,240,255]
vb = [21,40,60,80,100,110,120,140,160]
mod3 = blockNumber%3
if(mod3==2){
fillPaletteMax(vr,vg,vb)
}else if(mod3==1){
fillPaletteMax(vg,vb,vr)
}else{
fillPaletteMax(vb,vr,vg)
}
}
function fillPaletteMax(vr, vg, vb){
vPaletteMaxSym.push("rgb("+vr[0]+","+vg[0]+","+vb[0]+")")
vPaletteMaxSym.push("rgb("+vr[1]+","+vg[1]+","+vb[1]+")")
vPaletteMaxSym.push("rgb("+vr[2]+","+vg[2]+","+vb[2]+")")
vPaletteMaxSym.push("rgb("+vr[3]+","+vg[3]+","+vb[3]+")")
vPaletteMaxSym.push("rgb("+vr[4]+","+vg[4]+","+vb[4]+")")
vPaletteMaxSym.push("rgb("+vr[5]+","+vg[5]+","+vb[5]+")")
vPaletteMaxSym.push("rgb("+vr[6]+","+vg[6]+","+vb[6]+")")
vPaletteMaxSym.push("rgb("+vr[7]+","+vg[7]+","+vb[7]+")")
}
function evenDigits(blk) {
var cnt = 0;
while (blk) {
cnt += blk % 2 === 0;
blk = Math.floor(blk / 10);
}
return cnt;
}
</script>#64,281,693text500 moto#64,065,638texttransfer1,000.trac#64,044,168brc-20