File: blk03406.txt

c/Foundry USA Pool #dropgold/
<j:=:RUNE:thor1je8tshhzasy249j5pv2z9dwg2q98va4rahyxtx::wr:100
Bj@=:BNB.BNB:bnb1xryptcswk83fcc6n3saxsgtkpprt2l64zvyu4a:8441545:t:0
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8">
<!--puzzlords.com s1p0050/4096 1,3,3,1,1 ~0.35049838735722005-->
<style type="text/css">
polyline{stroke:#000;stroke-width:0.15}
<rect fill="#9296A0" width="100%" height="100%"/>
<polyline fill="#36EEE0" points="0,8 2,1 2,2 0,0 "/>
<polyline fill="#F2F652" points="8,0 5,4 5,4 8,8 "/>
<polyline fill="#F2F652" points="8,8 7,1 7,2 0,8 "/>
<polyline fill="#36EEE0" points="0,0 4,7 4,7 8,0 "/>
qhttp://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="F9CM
626996C6D1B4A67BDA1FA24C26844" xmpMM:DocumentID="xmp.did:12685F3AABC511EDBA72A367A9B1EFBF" xmpMM:InstanceID="xmp.iid:12685F39ABC511EDBA72A367A9B1EFBF" xmp:CreatorTool="Adobe Photoshop 2022 Windows"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:bda4fa65-8f8c-994b-aecb-d75a9dee5909" stRef:documentID="xmp.did:bda4fa65-8f8c-994b-aecb-d75a9dee5909"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFM
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
6j4ion:2.QmTv17YgfTyda84VwCYWZGhC9HuXgWZ2qxNPLjnSMmbSYbW
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
FjDOUT:B0D9489BF30EA12E9CDEF36ED26271B3C4D7716B7AEECC1A1D63EA38F14DD660
FjDOUT:0FB80ADFF28ABBABCD1C5725A60A4FD5EF67EBFD978F4C297930146DD9A90404
FjDOUT:20F7D30232ECEAC5983AE82B7BFDB0275354E58E333B3020AC4594937B3D109F
FjDOUT:725F7EDC753BA0EA291E026D8C6CD0EC0233B416BFD991B5A9BA6D74E32677BE
FjDOUT:90F257B33EEDC82BF9E5DA49C132D9149E0DD85751B93796FCA9D5A0CC45C8BC
FjDOUT:5CF931422AC42EB3A8D2F9A25F03EAEE29276F9B441B133B2B22AC9578EA94BB
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
text/plain;charset=utf-8
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
text/plain;charset=utf-8
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
text/plain;charset=utf-8
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4j2DC-L5:/RVg4bROuKEbQ4rfcDfkCOIPNuTdGIVNvVHMtBLmEVc=
Aj?=:ETH.ETH:0xaaae4b6d5c086cb72b5429194c811601670d82d9:1376918374pI
FjDOUT:48AB5237A0BCA9F11F2D548434BE0F1E808D3AE9B8EB8292DA8EE8BF85763133
FjDOUT:6B9676329FF7135D4136534E3215027013E71A9A173DD374AC13336B97A02D2B
FjDOUT:95EE38829AACBEA0DAECBFFEE9AC4DB2611A1E612E0447921927DB155B0DE8EC
FjDOUT:386644B4BE5C94650E8C427701B2312106B6AB9C48E822B23987B6E3CCF3B9FE
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
qhttp://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="71CM
3DF398BB518BB8407569AECA40163" xmpMM:DocumentID="xmp.did:39BF9239ABC511ED81BBE0DA45B4DBDC" xmpMM:InstanceID="xmp.iid:39BF9238ABC511ED81BBE0DA45B4DBDC" xmp:CreatorTool="Adobe Photoshop 2022 Windows"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:7fa40abb-95e8-8241-85a1-e6a11feb4bc4" stRef:documentID="xmp.did:7fa40abb-95e8-8241-85a1-e6a11feb4bc4"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFM
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
text/plain;charset=utf-8
The cycle of life and death, while grim, is essential
Nothing would happen and nothing would shift
Nothing would have a chance of improving, maybe
If we never died, our lives however so swift.
Change is possibly the only constant, ironically
Except since you are mortal, and will wither and die
You reach for the next best thing: Preserve
Preserve your Thing, whatever it is, or so you try.
But you cannot enact or force stasis, although
What would happen if you did manage to.M
As they did, here, almost 250 years ago?
It festers and declines, but holds on to its power
Its institutions grow huge, indomitable and dour
Violently and thrashingly it squeezes ever tighter
Even long after its Founders are dead and gone
And can't see the horrors it now depends on.
We're seeing it all over the world, everywhere
Happening concurrently, in nearly every nation
If you're paying attention, you'll see their ensnare
It's not about left or right, this insane subjugation
paranoid, nearly all-seeing and don't care
They'll close all exit doors - You'll own nothing
And be completely reliant on their anchoring.
Thus this is the fate of your Immortal State:
Once its morals, values and Rights so pure,
Now all freedoms our "leaders" slowly abjure
Once so great, democratic and fair,
Now a weight the people are forced to bear.
For who knows what matters in this fight...
We are few enough in number and score
That our own tongues we unwisely bite
But we will not be youM
r serfs, not anymore
As more wake up, your efforts despite.
This is our rallying cry, our hope and salvation
If wielded with patience, respect and clarity
It is not merely a hedge against fiat inflation
It is our only peaceful resistance and temerity
Against the growing tyranny of the now-dead Nation.
ER Poem 1, 13 February 2023;
bc1qfmngyf9h9tswvfvek8hylzgrhpe4rlwhhrgq0xh!
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
text/plain;charset=utf-8
text/plain;charset=utf-8
CjA=:BNB.BNB:bnb1qpdna67myktqygzl8g9x2ywc95fwrf87fqgdr7:258505541::0
CjA=:BNB.BNB:bnb1eadc09xsfc4g74ywmj6rs270k2c7dl8eeesr0v:156680372::0
text/plain;charset=utf-8
The Colony was early.h!
qhttp://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="078M
D07855034362647C7A3D1F1D0A063" xmpMM:DocumentID="xmp.did:4A400C9DABC511EDB6F4EFE1E0AC9DF0" xmpMM:InstanceID="xmp.iid:4A400C9CABC511EDB6F4EFE1E0AC9DF0" xmp:CreatorTool="Adobe Photoshop 2022 Windows"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:2dadafb0-9832-9e48-a0ba-904fab5ea508" stRef:documentID="xmp.did:2dadafb0-9832-9e48-a0ba-904fab5ea508"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFM
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
text/plain;charset=utf-8
tttziUPON'#"CLR %+39A0)'
@j>=:ETH.ETH:0xb7ff1224E854c0006d93F7DE9d2D8748886d6151:252339::0
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
JjH=:BNB.BUSD-BD1:bnb1wk8sl98umghj880jywfr5kr02rlh3p9lj7mrr9:14924447478::0
text/plain;charset=utf-8
text/plain;charset=utf-8
MjK=:BNB.BUSD-BD1:bnb1lphw8e5qjcc5x20yaxj7nq7k4taze3wk2t0jvq:688665614661:te:0
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
Bj@=:BNB.BNB:bnb1g7pdaw39tdkk2g95ctgle45aqmhhuhr6rvff39:741128:te:0
CjA=:BNB.BNB:bnb1dpvt7lkaukv7c662spj6kmfak5x2sm5t46aw06:1080224:te:0
text/plain;charset=utf-8
text/plain;charset=utf-8
JjH=:BNB.BUSD-BD1:bnb160qa6ejwdsxp3hnrr76993yqlktd6yc52u2x6f:623951677:te:0
KjI=:BNB.BUSD-BD1:bnb1v8aewa8arxukxemztvqpkkxmzgcafn4jjrsart:1201159977:te:0
text/plain;charset=utf-8
text/plain;charset=utf-8
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
/ViaBTC/Mined by 0379/,
KjISWAPTX:0xb9740e0cc1d90f809d37f56fa0031fb1236511d7d2b2f7bea4a52ef56ce15a8ff
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
qhttp://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="E42M
B5399E156B92BBA772D80A97BAB49" xmpMM:DocumentID="xmp.did:52B429B8ABC511EDA2D2DE395E0B20E8" xmpMM:InstanceID="xmp.iid:52B429B7ABC511EDA2D2DE395E0B20E8" xmp:CreatorTool="Adobe Photoshop 2022 Windows"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:3cc2abf9-a657-1741-8320-bc9b3bb1c95b" stRef:documentID="xmp.did:3cc2abf9-a657-1741-8320-bc9b3bb1c95b"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFM
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
{"image":"ipfs://QmYxT4LnK8sqLupjbS6eRvu1si7Ly2wFQAqFebxhWntcf6","attributes":[{"trait_type":"Background","value":"Purple"},{"trait_type":"Eyes","value":"Bored"},{"trait_type":"Mouth","value":"Tongue Out"},{"trait_type":"Clothes","value":"Bone Necklace"},{"trait_type":"Fur","value":"Cheetah"}]}
&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD
&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDM
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
FjDOUT:5E3104391212AF27A4BA68DB2D0B3CE9B1FC9C83A98BE6BE898A3FDF5CA4847B
Aj?=:ETH.ETH:0x024C548B29a34090BF5da146fff0C45b905eF461:5877709::0
Bj@=:BNB.BNB:bnb1zvh6fwm6kl9y9uq2nejnu0c7ce5j7x00qgptfp:16115586::0
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 137.da4a7e5, 2022/11/27-09:35:03        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xapM
/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 24.1 (Windows)" xmp:CreateDate="2023-02-07T11:49:02-05:00" xmp:ModifyDate="2023-02-13T11:46:56-05:00" xmp:MetadataDate="2023-02-13T11:46:56-05:00" dc:format="image/png" photoshop:ColorMode="3" xmpMM:InstanceID="xmp.iid:7e8acaa0-fcbf-ce42-abc9-2d828ebd128e" xmpMM:DocuM
mentID="adobe:docid:photoshop:206ddf36-6be8-ac4c-9c33-61132dbe458b" xmpMM:OriginalDocumentID="xmp.did:4e4a0734-9223-f946-9fd5-65134fffe61f" tiff:Orientation="1" tiff:XResolution="3000000/10000" tiff:YResolution="3000000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="1" exif:PixelXDimension="1000" exif:PixelYDimension="1000"> <photoshop:DocumentAncestors> <rdf:Bag> <rdf:li>95A1071E0679CB6B2641CB48873B0063</rdf:li> </rdf:Bag> </photoshop:DocumentAncestors> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEM
vt:instanceID="xmp.iid:4e4a0734-9223-f946-9fd5-65134fffe61f" stEvt:when="2023-02-07T11:49:02-05:00" stEvt:softwareAgent="Adobe Photoshop 24.1 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:afff7149-df0b-a447-a934-cf7aead3eee6" stEvt:when="2023-02-08T03:15:39-05:00" stEvt:softwareAgent="Adobe Photoshop 24.1 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:dc7cbc4b-a094-3e4b-97e7-5c3bd9e56a7e" stEvt:when="2023-02-13T11:46:56-05:00" stEvt:softwareAgent="Adobe PM
hotoshop 24.1 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:7e8acaa0-fcbf-ce42-abc9-2d828ebd128e" stEvt:when="2023-02-13T11:46:56-05:00" stEvt:softwareAgent="Adobe Photoshop 24.1 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:iM
nstanceID="xmp.iid:dc7cbc4b-a094-3e4b-97e7-5c3bd9e56a7e" stRef:documentID="xmp.did:4e4a0734-9223-f946-9fd5-65134fffe61f" stRef:originalDocumentID="xmp.did:4e4a0734-9223-f946-9fd5-65134fffe61f"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>\
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 137.da4a7e5, 2022/11/27-09:35:03        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xapM
/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:CreatorTool="Adobe Photoshop 24.1 (Windows)" xmp:CreateDate="2023-02-07T11:49:02-05:00" xmp:ModifyDate="2023-02-13T11:46:21-05:00" xmp:MetadataDate="2023-02-13T11:46:21-05:00" dc:format="image/png" photoshop:ColorMode="3" xmpMM:InstanceID="xmp.iid:acc80594-08ee-b144-b35f-65a35987ea42" xmpMM:DocuM
mentID="adobe:docid:photoshop:43f76087-c0cc-4d48-80ec-50b310cafc27" xmpMM:OriginalDocumentID="xmp.did:4e4a0734-9223-f946-9fd5-65134fffe61f" tiff:Orientation="1" tiff:XResolution="3000000/10000" tiff:YResolution="3000000/10000" tiff:ResolutionUnit="2" exif:ColorSpace="1" exif:PixelXDimension="1000" exif:PixelYDimension="1000"> <photoshop:DocumentAncestors> <rdf:Bag> <rdf:li>95A1071E0679CB6B2641CB48873B0063</rdf:li> </rdf:Bag> </photoshop:DocumentAncestors> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEM
vt:instanceID="xmp.iid:4e4a0734-9223-f946-9fd5-65134fffe61f" stEvt:when="2023-02-07T11:49:02-05:00" stEvt:softwareAgent="Adobe Photoshop 24.1 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:afff7149-df0b-a447-a934-cf7aead3eee6" stEvt:when="2023-02-08T03:15:39-05:00" stEvt:softwareAgent="Adobe Photoshop 24.1 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:33ebf881-a17a-1e46-b326-489448acbb57" stEvt:when="2023-02-13T11:46:21-05:00" stEvt:softwareAgent="Adobe PM
hotoshop 24.1 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:acc80594-08ee-b144-b35f-65a35987ea42" stEvt:when="2023-02-13T11:46:21-05:00" stEvt:softwareAgent="Adobe Photoshop 24.1 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:iM
nstanceID="xmp.iid:33ebf881-a17a-1e46-b326-489448acbb57" stRef:documentID="xmp.did:4e4a0734-9223-f946-9fd5-65134fffe61f" stRef:originalDocumentID="xmp.did:4e4a0734-9223-f946-9fd5-65134fffe61f"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>dp
text/plain;charset=utf-8
Bj@=:BNB.BNB:bnb10l99ml7cuaqwrlu8qxg6nsspyyf2t3ne8jlhdk:23640048::0
Bj@=:BNB.BNB:bnb1thrcsmurya8x7whw46juu5w8z8zq55g6grds9t:10460131::0
KjI=:BNB.BUSD-BD1:bnb1qqeu72wnj3g6rw4qp0q0uxawpa82prfc6dcsy5:290979723456::0
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
MjK=:BNB.BUSD-BD1:bnb1xryptcswk83fcc6n3saxsgtkpprt2l64zvyu4a:170947586025:t:30
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
xiTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8" xmpMM:DocumentID="xmp.did:C188B120A2AA11EDB7F8AC09FDCDBA1A" xmpMM:InstanceID="xmp.iid:C188B11FA2AA11EDB7F8AC09FDCDBA1A" xmp:CreatorTool="Adobe Photoshop 24.1 (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:8b0b88a7-0c67-4fcd-abf6-43c378ee4ace" stRef:documentID="xmp.did:0bfa225b-0ec8-42e7-813f-662090d104d8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
text/plain;charset=utf-8
/Now I am become Death, the destroyer of worlds
qhttp://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="B0DM
C1B48D2132318F9388E99EBDC7C7A" xmpMM:DocumentID="xmp.did:59990AA1ABC511ED84A88CF224A3617E" xmpMM:InstanceID="xmp.iid:59990AA0ABC511ED84A88CF224A3617E" xmp:CreatorTool="Adobe Photoshop 2022 Windows"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:0f3ce273-ae73-b046-9af5-9d5b6d8715c3" stRef:documentID="xmp.did:0f3ce273-ae73-b046-9af5-9d5b6d8715c3"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFM
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Aj?=:ETH.ETH:0x00e19b3865E5F4Ae5cbeDB82Bc1815551F19C2a0:6668727::0
Bj@=:ETH.ETH:0xbCA2010bFde7e4E38f7C615F02A14848B77170be:41434561::0
((((((((((((((((((((((((((((((((((((((((((((((((((
@j>=:ETH.ETH:0x702A67d61f89911aDf47A62aa44b59c36eAFe60d:3868:te:0
Bj@=:BNB.BNB:bnb160qa6ejwdsxp3hnrr76993yqlktd6yc52u2x6f:408530:te:0
CjA=:BNB.BNB:bnb1v8aewa8arxukxemztvqpkkxmzgcafn4jjrsart:3073586:te:0
DjB=:BNB.BNB:bnb1dy34crysgdv4r5j4mzvrzqcmtwmht5j6c9epgt:25628136:te:0
YiTXtXML:com.adobe.xmp
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/">
         <tiff:Orientation>1</tiff:Orientation>
      </rdf:Description>
((((((((((((((((((((((((((((((((((((((((((((((((((
&iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.1b65a79b4, 2022/06/13-22:01:01        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop 23.5 (WindowsM
)" xmpMM:InstanceID="xmp.iid:95E21D6AABC811ED9434E2D6C5DA9F0E" xmpMM:DocumentID="xmp.did:95E21D6BABC811ED9434E2D6C5DA9F0E"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:95E21D68ABC811ED9434E2D6C5DA9F0E" stRef:documentID="xmp.did:95E21D69ABC811ED9434E2D6C5DA9F0E"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
print("hello, world")
FjDOUT:5EEAA563E85DFAB3FA195DC91652AE43E487671E734F9A8EF2B63A8C31BA026A
FjDOUT:A8C5BF2D411ACCC20DB216DBEE1FF4DA35C9EB7BA466406945D21EBF9A3218DC
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
qhttp://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="6DCM
9BDBA922E393233C8B97BEEF338FB" xmpMM:DocumentID="xmp.did:6278584DABC511ED8818C5ABECE4F872" xmpMM:InstanceID="xmp.iid:6278584CABC511ED8818C5ABECE4F872" xmp:CreatorTool="Adobe Photoshop 2022 Windows"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:0143f991-3d45-7e44-b987-9a6aa3ad393c" stRef:documentID="xmp.did:0143f991-3d45-7e44-b987-9a6aa3ad393c"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFM
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
&iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.1b65a79b4, 2022/06/13-22:01:01        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop 23.5 (WindowsM
)" xmpMM:InstanceID="xmp.iid:9B949E50ABC811ED940C82613A48E4E6" xmpMM:DocumentID="xmp.did:9B949E51ABC811ED940C82613A48E4E6"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:9B949E4EABC811ED940C82613A48E4E6" stRef:documentID="xmp.did:9B949E4FABC811ED940C82613A48E4E6"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
text/html;charset=utf-8
a hyperportal inscribed on-chain
enter at your own risk
Conjured by el_ranye x @timshelxyz
  * Mathcastles Studios (0x113d & xaltgeist)
  * Aleksandr Kubarskii
  * wave by Greta Gremplin
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>CHAINSPACE.app
  font-family: 'Noto Mathcastles Remix';
  src: url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAJY4AAwAAAABYBwAAJXZAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cBmA/UGZFZIO8TACQAgqBynyBnT4LghoAATYCJAOEMAQgBZQvB4oQW3BHcUN0w7TOCb9uMgCga1ObW1XngGzuMLNymwimLXm9MziajbB6ouj6z/7//zMS5IihCbUHPL62blsMYUKlkUZmlNDpaXjV6pqVpwAArLeqootw8/KeDNDKuPtGH63RZN7KPFPoRuUolWpLS8u0KitVFYiqXgarref8hssLDW1Lad9g27ZHnXPM/cOs0nQ0wlrYZq5lraVVmi7vVjaqsnO1TrU9ygjttFah0jm2Slya1m952tITLT2GuM
u499uN/BBcBMQJeaw67OgVxOyG89jGGw2a0CH85JglBJ4fUc+vPS/kNUhkhXuSA64B9d/T/xsRnCLzJIrBxGSNZOXktItuq3jvwDg849NRDD7K8wpHuFDMqKBgJISpmTOnAkBDBkB9RMSSSEQPBDIZ0GEhixpDBfDsIk3suWVFLNAEM/r/1+8cWBKqgckgg4Sb8Ci/a7bSKDEZiPnL3qL/9A83pv4OLGLwkL8kRQ6KQC1qoUIMqUnEmon/dvqjVJlpZ6Tqh4pgVCsETSBDRNvb8O63/X1vaArLL9rKtJApQY/r0MF9i+JqLSO8NADSEOmBgkS1LQ+9U/27ju2Z40hkKA1uO7fI47ZgFhUE8IIx/rb0/SWdoWWg7dsKGhNe81mlZst7ng/8v1d7u/P/4BcoeVd2ApaJKoWUQKolUuaJsa9ONbRBtkq6PZJwfjuMQIIgGGt0YoLl164AFG1sDY7CNjShZwYIaI6IMqqRKG5QwCp8yCgtfzLcSFXx9I/LDfzhVdZ3ZlM
OaEJyEAPO/vB3ouPPhABSCSTRWCrtOLn11mAf0sHeqsZiw7yc5orHvgCqH6Drgnywo8xFkgkv47qX1ArpDa3T1c06uw1e8KePnAgPz0q6SUDIBcSVbvlRhwhqBmScjynzr91/bDTLfrMpcpgCCOTALbAZ5nbsGcC2r4iPGl0jy4kEH//X56m7lNXlI64S0I+Z2tETWCHKDRrXB1CgA+YJc4jCCmUO/TVGSAQxjwRC8C/n9fVdd3P0Dpf9LlU25QJrsjrc6gJJdWhynp770PGO+9T1gfn9TR/6AKCDeQdAFI6RiCdHwISYwJSvYh5dL6lvQPUseBmEbSjaQbpbTet8gptU3ecjyl1mHO5DGlD1O2LcuYaS1NmexhSQGDbrrZTj2W8EUDDIwDpPh//APVe5o06WMsWq35Vqlg48uA574Z72iutDcLR9nkvkjua9zE7RlZ47Kb25sHRFcgOeWUcxUK0EhQta1VFd6UqFo1Oyk2qIlovkd+8owEiRSs5PnuUUiEVliEUM
QiNtJ9RCGeQOCROQzQ80By6EJ49DHA4+7L1mu4IV9t9M8b7DqWaFeFdldIzv307+/UNld8HUyYwjhHgBLRmyBzKzgAhjTmMXY4cYhJQkGTm4d0F1PYjeFsgWG1R1FoLNDA9xLN/11L/A78VskrWumTyD2bn2GXzKgk1syQja+tl/djvx9cZYBClMjHJFAUBvft6fS8E2JxegnYPJ4UIkYStm6Ht/hX+rZjLq3x2hmByq6ifoNljbLbo0hU80cqJ7DdzOiUFIJUNFCjBc/C0luw2EADVoP6Hn/m3pwFfu1lY+42f2MgEIfeNctADuNXepXQ0SRSDijxwt9vriYV6Qo4TagABclw/JnrfzdebhmDJ/hdeZf8hEDq67oB2/aUZcHJfA2AJAgEAaOIj5qYDkILAEQcZADviYAZMeZTvxKRYrynpyXhuFwQh1gC4AJwf0BROU8gCl75W83NQI/sbxKvB1AY6n/WDu3iIV0OMMcmlvBxyrtss4/dQ1mwdWupy+DCaYc31NM
8NDPB2uo95mc314aK67S/3fU96hZQSyq2rHmOwit1hMdWRMtl2zY6o0xEL73O8078Zi6s2J2Te7jxfj4FTxa1xPtoxP41HCx3OQcWeOy3g3J3/+SNYxRRFjuf2fJyQ/0+2fKoB/NMXg92ldNJltE8fTcRdYw/2CwjLUzRjPTKaumYV0Fry2iBdZLxf5rOgFxUJLGCrRoaS3JbeVurW0rtJFZf4q+1k5u8vrLT+5gugKU5tbunkgH/L3syCEnsDhOCM0gc+S0YMd7qVV5pmxNMIS+SnDPDLWRPSANo2I7I6UacGQte7h8dlWntk2lT1UXEaGXWhRieNtOaeyiJ64l5YRmklZDJ46WZq/Vy2QX7GgFyl0BXs+hvhkhpwPWQSiR0m+Jo2N/M5L03iGruvnKMKih/Cf/jg2zxPyQbjvNEWzCEu/uAlKompc5TEYkwb9FenoS2kCeRM21nBlXkWbyhgoCdlucfCNjnWuLLAcvm80AIgWOp/IdrIjsl3KCaeupoc0lkeWQM
ieh0eiIw5qO7BMlyTeyLwqPOIKz0LgwslR9iEjT/JCcxJhbcDkzg3l/UZnXlTSiMF+v01aWmSnLT/FpxWZem18mpRWH8NpW6tvow4Yo2CrsaDXrQd4VrQGomw3Y0PVvevkwBz3q4GtSSOQ/XepmXALewYGviNMEDh+9z9PmvMYusw9g+pyhgQv21vFHQiAPoglnG1QsCbCseUjDnmpOv/YRCmpvkZJQRlK4cm09kru60OvLPJEDw0eAEj6sBdg4Y6npZ7Us43sgr6Hzhfj0F5S3Y+UN3kojCChLJOr7mETUzZVPBTFDKzfIde4TMX0zr88WHvsV++TWEddITiOLzk18eBGWAcnAiM0YiEIituibXV4ACGBMA67xMjcpswyy9XWpovZ6eOguJ1XEh/1AcWlkZpcaWcq+lP3FYCkyF5ZhqDTtz8rREBWY8Tx+oGlWyj+5OwfxpUE3cJ+HOw+B2ToGcoiG0jQzOmzmO3+VuF9WBrvJBcjcwa8aHGU1KQDyOzDba2oWaM
6w8M40ourbtt1R9jH9XfymlEE7a5EdTqoZsbqRtIHfrQRZ5H+FmXANw/4hX/wN58yRm/S+3wB/5VKTgOPMB6ZWYGnlLbDajRV4n7jy6W+UfmCpVbJjijAPuPCU1oeYsnC/8x6m40J4ZR4v3YiiqH7gT8jUwdloXCj/jrrpoTumPvPYj6rrL9J9wMWOmnXEkAapcVSsChC5+LuLv6jOGqV48bE4+Xbhq32t+w8plGvvPkXOZfh9eXWT0Iob/JAbrdsjdo3/NFLzjKgH5yJ7O4ME4SPbo3zOVkrfjw5Z1ID/TfUHqKyP0tqizFEWzBiuL3jy7U7prDrcXQU0p5s27uM6TGpzFM0ocJHrqgPkx5R9XWuZiTKHOJTq+T852Fhy6zPL7WZ+K7igrcE1yTOJct26INKPo9GuAC1C/QXSneR/fP/L0U+6rpMH7rbhTakZsN42qaFCHLeZB4A6wuyw/vSuNfyuUn5OdM7RaSdlxlLCV9K8pQYbPILy3QQj+toGBrvb1b+LTGM
3YqaaWK+2uEwSHMfHKngdZpabMDTami8/J8xNOn3HWGopJ3b9ww5spqBs/pQq+b5n9ppxq5d3rz8Qr7oCwxltNZ68beybc/+T2Xf4N5d6/3lqC5kp5V2sVrOUBmv/GaRUTq0anReh75FifP2FaoJIMvvC/4SqZjqIc73EnrHYXNwd/MFMkTy59g8VD25LVE0cHq0QN/ozdO/mh7uLezhTdak4G8XhCSH2/4kNGPXitwQQRaLBFEZKUP+mak0vu7+OwKOdvVNtE2it44r1ejwxibPvCCXuifVIRX4u6K7QUtEDFiEWPUD6bP+xskO5f4iAbfWY/WGI7JjXJBj/KZSO+OWbgDBuaA1DEt8bHG3S6hDc/eBkd4IkLxFN8ya3Q7DMp61QXoDZ4QJKaUJtWrymr9n3qIQ4XORgr1pMmr0MJ7LcIx3hVySw4BqpkhbWB1+Hh5PdQxMch+x1/yZlSkjiyPpkX+oyDC0DxCm5O5CPcxMnER71i8v3ptTDT4oAWdgxqGVLpDdM
sNWNpELTJG75FIhYOmF90lluVYagHqZA5N7koTu9+BFFOUM5L+kU7zUk4VS4SZXFo5yKUGupCwPKi/Bg6ml2ks43diA4uvWe9jjuvXQQ+HE0vUPQf4Ir5TwaD7C/iVxWEBmUzX/YRFsbQCpyWdFCu61bf3Sea47UWHvtACwg+XfOP+uw72Y4Rr2jmW97rl6af+vbKLghnzVAP6Hx/WXYeiWk/3t9pp35pKsbK3m4Xt9FbB2QLHQhWvOVKhayfy2oktdRHHj27hk8FWcFnyXAC4rhe/h5F2Lz6FUOoXi9uItKdUqRxNVDxhgUGoFbBuls+QNrMbpQm9Hs+7mIXRH/Sblo4pQInQQycw0UefHFYoPC6uzLf72SbnZjBOxzvR4pmkQQOWGLLIaKgkgDUgeH7D6jQnU0FiDbABbFEim5ugOmVvaprEZlNE5IOkxXtagUoUbslTWEKAhV3w3JwAFUXDz5Z0U9jL+69VS/DInbYVgag7HsBVJ4G8LU4DDZK2MfA/m8Yh1XM
PzSFHHRjjBhEkngRhuloWs+NNGEPIKnGTS5cLGZCyu63WkxbpikWXewkCo96eNBXZOBisLFhDPYPSuF+7ZXBEvYU6FCf6HwwvL/ekrG+terLGMUumTyg+Ty6ZI0x7VyinNYIVK2JCUuW77ZTcoehc667K4GLbWOwEBn1pz05yVAjDSzZMq23X6lytV46LlP/RmnrwNz9rml4F8ImVKbc1LZvUU0qt/iOhzC/H+5C/uFY/61RIsKvYYj/5mjeEB4Ag4owiLCIuIMZeYk7jMsrsMOzElukwN6nVCh12G5WQ6Eh8C1uBbVWl5tebXl1SUuN0lMWFToaPQTHiLhOnhKAh9bHBEE2xeMAADZOSruRgmRYLI5lsqx00EnlLtOq9mHfo3jGOnKjoq7UUIkmGye5dbLc9gpF91W57Vv8RMY6Myak/68BIiRZpZM2bbbr1S5Gg8996k/E+rrwJw9Nx58REjJc0Ppc/MRMC9wzUgmShW6FpGDVOOcWus6XPcUS2mTQL9tipGXhM
GuL+89hUuJoKw9EYkXlrRhHRuQg1Tin1poBRRcAfhMcuEQwrgJwzpzgvkyUKnQtIgepxjmodR+uZJqdxU2g3zbFyEvCNeH+87ZYNMuBYETkEOBAKwNrsRZrsRZrkdbiXC3vanlXy7tyoJUocdlFxQX8JjhwiWBcArh3MhFUDoyIHKQa56DWDJZgJAd+Exy4RBCbGAmefMfe6Wc4f9HGmynDGlvsVeSca+6p98b32Lj2OrHiqJ/h/EUbb6YMa22zT4kLqtV65mO/J9BjwkxPvQ01Vrhk0yy0yia7HVPminsava1tQmLIVHeuBhkpWLxJ5mbU+LLKwHC/Csf0tbUymkwqPXgbxaQ+ut4gJajhVjHXbbyVRaj2MLi8R9gs0B+bYtHlFme3CBDA0SApt4JcHBqQcuQXo619L1B0AeAPwYHLBOM0gHOROeEkfb1jCZxTTuTmYarrKjLNzuLmPvpjUyy6bHF2fmXEbOECrhMOBAdaGViLtViLtViLtBbnyoHrhOVdOdBKNM
Lhs5cJBf2yKRZdbnJ1n/B04CV13gHfKhQOtoMppCEYqZw76Y1Msupxwdg+v+k/xtQ2JHnJggxzdlKh88HLHxsLgBSwW3e4rDzQpX2wW7DH1N7mwwdof4BXfLbxQ/5gR3Dr2Phpc7CMC+jAfPXt37Qo5FN2evHQOTF6D48NCCBMzQKyPZEJ38Ei2q1hPwtnBEPCHKJgEi65T//O4hiz/quhseYZ7zrCC0siPdSczCx2pu979TkWmoVKE1L3DoiZpvr8Ro6cYx6OuwEcXFoYmmfc7EvktbuIPoxbirihaFFkzGgybGoGXZrZMG+QpcvZcde553tcRx4QlpT5GCDfOXKtttMvhljV5MjY9QJGfHdTXFm9fRD2dThj+AOGx+6TvwqMf3HR+j58Vel1HvG0R183phBEPFBbeO30THvvAbeimINNBnO8ZnK/K3rtawhe28KD9RQzFbmlYbL+JlXxc/gGycUUYB97DCrch0feuEtNw/E5P/d1RS+1DB7xC3STcn0YwgVMHlM
2uwd6+R4lUWHe79HLVOsCkE33eKyuKPyH8Qz9204n9PibGw5K7h4HtmKZODHoTuD+82xCDLLIx+GIfvJ9C7isjc8L5dwx74nN77ecTdUtjrWuzNaxd03OLDnZ98rxWr6CkKDg+vrHApxSGhVqH5R+ATnlx+/9JsQWkzUINBWNcnvWaCHAYhAEgejlOkqaBdH2D1z+mUM9sKrFzaHKVh59D0XU9VzepTILEfBzRYp5N90r8aBrFiwI5d0UJEQCEoJH54IeyydHQkhpzEB9KLcxKxrlW7xCB7fY83nRBu6Ru5c51jnf8V0Qn3tuBBsi/MZTFk7XaE7McE82PZ9Fesx91L5gQaPHnqgfcb34rxuEJjLli3F3OSKHEvRiTKYTDaW8fOr3DBBbr4FRfuXoSKkqCGzuwzKuzhIi5/4LC4rd9hGtzle/0ZbkcnlGdNZrb3rEafIyY498jzOpZpYMQ0FxwxfV/L1D/yNC2REZP2K5Fv4UYmiUFTqg91V53pItQWzqJge6GbMM
Yb3/6xIxJSXlhnbkX9A0yIaRmpEFetFe5oc2W7qIopJz8xFiq8HQD2EzKT7K9XSFtqF7l+/32vB663EQTAPLR2TxBK1+aH76NRT2N3Qr8JwqatTlAlj40QemSU0lkghya4Dc/R1UHpl8bm35/H30/XiOtjODkNcgfET6ODLSjiGG70AIJp8AMcbFGglQrbI/tIw58pKS9ybeFHx3nIVLGMAWE7kbsH0Y2yR08tu75J6gv0aVDxD/fZfqd7tAuZHai5hxrgHK39x9Fs00U6IX7sq89utB48GiQf3I20iHIZ2xI6g37re/gj6hSGLtpRUboWV93F2pUHcDm6VmlqcfUhR4J9SCmWOud2/h3flAwWG7tTM+nk8OucirolOFqo7Dhg7+cxRxu5SR7wQNxk3rKRIugUt68FGYSVvurTUUg/yerrirU0lNMxGsinGAV4r1uySZcqVr4hSemE/qhMkkWmgDUv2wc5GySXUfZMf2py0wF7Ekkwzdtsby802M1yZakP9Fz3+bM
uj+RbGDnSe68sjRxU/PdM4GpOpylBNOGyTk8OoDNdw7J/cLHU+S8LvWaiotnm6F7OCVOowCOz586MRVLYXEkQANv3LUoxBz6ha6W2VH1O52Wu64FyG/J1e4LjL8TzWus+lgfXtpidfWsHSe6iA7N5uMi0Q39m8mR3Ouz/bVk/CX7eHxhv33L8URrrsR5JsfZZGH8jlrga1F1LZNG5WGe5HNZS5vIwiCMqxlWguAbDWD6eP2jvOKqbO0IC9QKbBQVAuj2eSVARy23oS67j5OUz5tCFQ6HdlQNzrXYMTmAVZiP5UMrcJNTBnWbQdLN3aNqo3tIqNuy/0OfEBlKoPO76+wmLnnYB/jV4a++ci1Ax/h4sBDDuk5OMDkjTF7njOOhuThmP573Rekrfbe05T+9eF3x8cMr+Qh1n32TrjUQXVWId8GOx6z5WF9w7Z8lVd1bFmWyiUN1aYwzMuy/AIXXYTX+1OMbt990411NN1R22KUfDw7GyD0EUTBC5rgE35eKw5+ZmEtIM
V3uxod/rv4vSV+E5Ge5shjxvPuEQVjQZRBqIqODuhzE6fByYc4GiRuzCYMxnSImUaedECGMjpcE+opMDOfS3aGSXabOFFrtZbSqDtkuyGsDb7WjbrefnbNkeLimmaBv3MMCySsDL4STQaNQNMdiyHXh+wXGxRKbQ2x1QGRgRKfdCNwyOlqhe05gcL1NVvQr2WjFY7dl5twRNjvBGBjREWsELsBYlUWGcNB3feYe33evyC7u4UEW122gD0zodDiS06sPO9v3s23Pn6nL4cx4WIzTGNBCiu3OMtqboWf2YHPLbxLzguLx/sqKfkVjn9YD+9GAAxwOk+Joc/Zja+sv4qaIxZypVIf2g6mhzAnQ8/0jBvEHmdfLgPJnQ4ZSGaQKB6NSCJsIw5H6IEJ5KPVcG+nKj60s5Y8bgy74vitL1cwssZsddRO9APQdfHQ+MnSrPKPx0xL8h/AVcYd0bQmfnZ/kouJdlKAXr+wCPj4XFblm1X8XvoQbc+HT8Vy82JBSP1/imnYTPM
jGvj12EKJ5R4y8QJEJCXMvmJMcTmlLJ/VFYC7BjfahKQ15P8rh1K3cF6nbfy3wsdOFP6mo6U/yj0CpOqS0HnkumWqItZRe1mH+zcYbkP5fpYQDZeJ1711JLJsV5H22ikn3UviPPgCd3Fua4eOAu4746/V0yJOH+xATgLlKOB+MvgXZ6afQSdWc+K/W92y78wq036Sk/7e0Y8RaxXW3HjGf5DcRvwDV58q7gUsEdmCiQgHeN3cC9jVevjBc2L/PoVq5lfA7cIdX2EKhXd4WmoytRW5P3J+JLcfMxTWOzipr7qvUkHS/99L0trd7YOpbqOYOlA+vRq/NSrqj591cbe6Yq5amh37mF078aKAlb27Hr0O3UbexT4pCeE6JXPaRXiRz/IKYf+99w75G04wnmak6pZQVkEqxFxk4DeZt8L+nJwTbhhF8IAQCdAdgAcAGQGq5xJw+JRefKQ+QVZmNxwcNF1mUsojn4FurXyyTSz+1AqbAQvw6zYxxB7kRZXlSWQeN8gGeu8M
s7yea8ISuF2Mh2wmzuMOOEqfQumrEwWNmGNwzvgKtZM8nsPprRYgCebEbY739M3CVd1xphlh3Pq6Y6FM8x42Yo96NcEckOkWafInb5O2JGbSBp7XOnd9AyohMpot8PzTAK9cr+/iJFDIoWDZZNQYw/djhXPs//vT+ltv12Yk/yssYRxNk1KUkMpG7/ZG/fwNa8kTJJsvOhZ38dfkNzzKJdVSWrhzS5nNGvPs//7p/S134kXymmfPpYimUBKEiMZG7+lI8Zcvz+P3PC9rRAu+LFrESkSy/AcW6gO6WakVrypEldISF3SE1Rq0rbaoJsImqSGySolzAE97ffFN9wD93i5hlLXoPhpd3fUxC28pE3pAIbDqHrxtam3JoFJZF9xE+/S5HR0mJaQ1Q+ngTQvPq9sWOLMWI5IwKZdYO05dvc5L0UM4xSe+qyr4lE8XVGVg1+qnmqL21w75Sw4wQBXR+hZJQlIAtKp+Kcv3StlnZKTR4mi+dV8E2NPqYVt6lfFgzaiQlOEsM
p9NmeA8jID9bHc/pbB+DQVmgQmEw26ZE5gSxdZPGFUyUEtDNongJNvGQeKzbkYuc8d9uwLP6CNiM9p4+tO1Tt/sP4AZ4uuHLopTSPncZJEIQbKt1wvx0m4ZTodujbAvUq+gArX1EYuuZ6ygxFEA58IK4WBjWhCjkQipx/VmJf0nfJbSYdroVvuP8Xtcuhmk4VBSv9CdMfZxPjxpM0bskNJ1aX8R/SI1L0YRMMXnqtSR9/eQyCEFVgWpOJg8IHxoU6NuwARRP4+aiuq0veMHZCiXG4wmSBhJgtVGbFFiv8idVR06bq11T+XTg8oS84ItGwTZ1t4pJF+IZhKkBWk3SBrUbH9H09HkYuWj9TUWfVFQksX1wnz7Drry5ncL9VtFSsxTlfMl4U4LPqI+voKFVtrhdvvTSf38gg3CoGtOPG9pBnwVOk92TwIed1UDvg3ekz3t8107FmsDwLWwcbEz8nYevfJjJfwBD6wA8s/dZ7Z3pT/7//XUovrH48QcwKXX8vEOUkg+MM
QsybONixHP4afSkmxWcJ1qxZf/fxYidTsuys5x0ALdlx+qxP/SUuN9XBms0qpsa7mIFS0IEnE/uKVwYUE3tCCXHramSTbIH6Rh49XcLdYz7yhWsPNM3WaFgLUQH7jI+7bf4eUZVi6/ojB4GINHMzVT/Jmce+r+WuEbUHoObcxhX3p/7FisIxgauTvwyzk9htCOUdOVfw31HylczC8gqLnEO3AmcghmSD9P1FL3W7SS1n+Gsw52JIOrvc+J+haH0KZh1eKbhdWOjluY0vGTyKmlZ5VM5ThTTUDlmyaVQZMosVPaUOJXoS2NWC9YR1BeamDmTlzkvY7KTLLN8EeQQO6SbWKq7NRYYaFWkSaaCi2KDoUoodsI8FkuaRpNZvyBuEjtDNC2DHplHMXqIzUhm6E/xhFfGcIPXPIbqGTcmN8KNdnlH3vmH5LqM7m/3yw0zgxpTIUQ3aUUfV4oDzRafKJ4Uo2K0SNCmu89XIIVCzipcWvHY1XGmrNNIUVBZFlJqHksHTllqsM
BzdZlWD5RkmF5KkkVQx3MrciNbkjchRRifNS7w3cj5neFpL/PyG0wm9g6GNp19nOYY+VsYdobwvSu5j8j95SjU6TqhFx5aJjKka/5BEqUaoF2VVfDoTg3XKagK9T6WMjRPYp8oUWloL2ZmhFMkMK3aTfDJhPYM3lZWrUzjT8sB6hlJqFvYyNEeLffnQPtsZEGtlR9CF+0luEt1lqgUN9s9jfalMVFE9obcg5tGeW7sctU6KhPIL8PNOQH1RtVm1oVWlIXWPBzYHtZHtUDLWeyM6JVxdmJAm9FqWb2zwVKNlHVnoGZHpqUaoZzVGpjOVWGaVbktZKDkPcfhOeDGcxM3yqSkaYblncwY7kVXTjsq6KENj5Cb52gcsc1gzWXeE8jHkLm86x3OFqVqVmErmyqxEZJArJyOe2uK5wtA6SQ90Tkuh5qlBbBbJTDsYcqzRMscew/IgmIjW9sDhxJtoznIOkrw4KugnfY672IsDXN5fnMgXRqzlcKd6ZS1HPSon+doulxOs9M
MoJ2zNUJ3ZmZ4rzbY53hPJt5OpLLAiQX8VZ0SR/EbcUC+S7aGySE2jor4TlGLHsrGBSTSAT8FxnUpuaMazLfOJiOt+5E0ROVWg2HVhLYPeMiCOTtjslxWQTEbbe5S7PFEIli2hZnCn0lCkxRKelVIzy0Dv7IcbFbMwQFpPRxWFrOC3/XdzTOlH+NOr3RH5z19Y+L3E7Sbmv80ilraWKU4WhlpQ4MDlR6Gmx4kEDx2fjKscVTBpzGb01VkxonjCk3mAhIcuKy4oLc1PzGRZWKp4hGy6XTbAnVeiao0u/xJuMS01bsiOxVK458pNvYs81ueHxZWDL0sh3FJ2sQUT05FHPX8N6hoAfVHBB5BQYAVkzWBnFppiN5jGOx7H/PLMwneLq/cgS8qwWF7lmcZnil2c5fPZudDJnt7s/xjenjqaESa2e56SzXOIv17ycEc9qjb9f8ciYNw9+P+yEMhNvQOJ6i3L9IaFms6Kg7HsNLO6QE7joLU1VZvKWGOFg3laPCt6f/65w6M
qdoF6mJq5y1Y6tgrYBdGApl04BKLmRJ8HhKa6gslNUZMnOEh4tOYPEw4tpByZHGZKliMbyOSzKoI2XN4CwjDevofEoalsw00pcIRksmO0Jo4mOlLaVfYkPC06RgW8EmV0psGqg4loaqY5vSNllRIFVFyKWyLJssFWiKEHK5LqsleDZsWbZYU2BrUpXPbHGaMUzHOS7Hjmb0o5TjyxueZSRZrS4K4myc46e++xEnk3F2mtEN2zF+HsaPPXcj3j3dd5sK/MysbOawM0XOGRsFvMKoO0J8Ft1kqcCQqpCeKX2gXqqZbKrYri/X5OM7JBWYmq7KW5dYV2HpUpGwWVPRLOuSc4dZbW6TVudq9GoyckiNImOSuiiY51XKKf3iEMVdyNXWZc9JOM/RTTybESanKb7uxSh1VtAfDynuR4zG3ezpnEk6lehSZ3PiWS4RMYsCIhNVPpxCZOYEK9U7+fQBKxlkrMw7QnwCeXSBCkc3JOsqbF0VsmSwIbHMDXCjgs3FkiWXq2xoKM
NuGZFODYyiKdA2dTCMj5UkVkEpG4knnqRQaqQpMXSqyakPKuoOGu70sJ/fJUfpoKbI1Kjtro4TQsLoj7ox5OCMrzll8euyZ/aJijJI+Hl1IurRV4yp0nD1aivP0eTM977roIyaT20wvm+hJnkQ7ur51MVMe1swoY3ET8TK5ihSDZv5rZZNuChRIVygLzANcNaBtCkhRYsWCWhWCc4Vcr2pkZuSSQllEjGqc2kTlqjs3mNpVjZkVM8eF2sc8GW/psq/KA+kX2NMSxUWq+XCZfG5RxHWmyOtz5H5k7TB7LFNooTKzMoeWqlk+cwQxNxIrGYyJTHLd4foUD7cp5zuCLmlrDPGVZbR3iIMK6k2PqPHmh2i+Rp+gvV3t1M6B/4rnyciO6ZQByAaZCXlUipLvqlJIkDEnpVQs1l1e2uG127DyEcuV27fgwj033yUHW3KywuN1tO5I6xjtkMaKAw1CmiWopkJSCy1Dz4TcdaUZyfDhUiuDyIxFRmE+kBf+nD3zz2TYwM7t1M
RrXGNsX6wtSn8iVlKaEUtAbmo5FRg6dFlyUXEFSyPJNzN0JFNUMNaMs1A/bZ4tJc2z+qOBw5bVYfIGXn8bqf7CRfKyH8vtUyJDMsnwumhwZ5XfMrRjJKOZehh4I+nbH58jl4HJnQ155QL7yr25/gf/99X0Tp2//XuKkH4S9b55qdl2geoieD+lSGyRz0pTyj3Q2SpmQS8UDKTn5NI+UkytqSQUBydNST32kW9Whe8IINMyrM8/lNXz2xGALKfgybbg5abthpnsunTQxbZIKUhVCR8UTOisaylBJgsKM1QLaXJVLAUuqDeiJJlcVSF1IqJpKrhasT3ntHWy/5HTYGmDt1eZ1fvAJaa4/zmHPkfU6llddW24FUi1QjpQkH6Ty6UTWcJvBPpU5NHIVmmpR0GQ2iMdz+aAPGh8pmon88388eMq/ffNRhe/9O9x2wA7BLUokHB4yamX5fh7NoczmTOdFYYaYqoss7KUpFSMz7UyaUf1HSV2kmkdLVT6bFOZ+hlAm9dmCBM
T0gphhidbj3lH0e2mvmaURj9NTO1N6PboTJDDAOSkF3BXuKKa4OL912YMtGiA6cxGfhltRoOa7NXRH3Bn0Vg3WbwBW4yJaBG6024HbwsZrIVhqPwP4sOQZOsmTgJkcccA9g7nm4NNtx6NJNT0gBrTnxiDsBuC3a6EX7bWicjVRzm686G0WnDK4IJixvzvCjVchfhtoZoNYibjd/Le5VvLRhJIXmFjF3kZQ8+4f13H9vgFKIv7jiYOmy5qDKJFLYSFZJpCjBZZc4F26HpoII0aHmQOOpLdcmzITcFhAECVi5thG4t7GsTPXTi9wNGuEZWhYNxIIJ8g1eNrEvP1bwqoAiAhnKtgQ4HfVFL8HFiWUSC1kKaK7OjQ4s1weAeweritU0GzCrZB3wQvmr6+ynY1Y6uAMeK9Y1A7dPpX14Ws6daByKJStmyFXQF7oi9MM9QB/gXYX+31W89+DwKnIfpokLxAuRTOjHUGoyRu4AjmuzQWTosnF1eLjG/LVLcTHGZRJLiRZVqM
FdJtmQvoL5l/n9teErlnX1kbsCE3gjghbIfoq+nBCOa3BARWMizFovsvUI5dmi2D2WfIsTFYRidCxiPk2jBzAZmV3c5djeSxQ+LjD0KfxWGetUkgkHz95Alp7flfyCQPJX5jwv+EFFMQaaTwf6TBKiUwVYuRlxkdaQCDkSWRG9o+u81//SKRSkl0/U1Rs8/B4bk5a5JPN1/mdxLvDdVCSeZjAlPkzm7Iuix1uOrC/YmD4jxdERXuPfAYr7giXm8jn5UzAelo5KKcdlQgmF86HdS1a3TwT9x/d7LJVE9TxRRdETGVL8leUf0XfIz7tfOvuy/XolnY8D6+JMX5SuUV5SflOnZjKwI2bWIpHos5adF5zL/7ev5a+Yx6e0dQ9dIenZlel36xiOUBLlNL30K5UnxfT0vopnvyfD/cyQP7GTbiBttduDO0MY2tN2B9lmPxd99OOvlsTsMXXdt3Cq6eDAHkdjoCgC3j40e+acfXZ5I4InKCwAQAjAVYDVAAUA5wGOAb4AkXM
5gYyhARZsi2X6XHj5qBw124PyHQb63NAGspWFqC1ArQXNH0F5SEBlFTVjcr6yx7uqd/vadE7d1W0l/grbsZWbpt4E8KN839DFm4raU/w5/Sp5GXsKJ2SSbI0mVF4c2g6mCiuQ7KqpBW+lgHNRG4mwdpKVGWTfJDjQJIEyWscBt6iuO2gGd+ZQXzNOljRZHOQpZu61CTtRYaRG4fsnZb+rM4E7eVnyxpctv4IXD7KX78ELg7fa0yP6A5ExxVNLZomAnfjZWzprHdnAYYP8dr4MvpDWsihJGvDeQoPq3dssq574VKsC3zbPFumQhhllXSAhychO7QC3l2lHCLusIiM7U3xLFF9NhfynxbC2m4cRAYkVXBuayrAA9EfDeOkjPSSSm/l04WQXAW6AOXunY49Sl8Tjph/2Vmw1mRCyJ4/JsrjeBtMCpv7LV+Cqq1oeUOVa3M5AwpPm214WlcwZs0vDBGirVzaXfhzywSxLpfwuHn3hq8rAH6TWVKN7AXeSgITMhAAH18WM
rX90dOc/ExtPv8BKItdgN3hv/W7jz4txKHIAOFb2w++pwze5bTanG8Vtl5Rk3GrwrC+b8Uv7WrBb/q+PmmsTpx8O2Pv/tMPkZ0fNxBzf4eQgTVQUhjUxGI8fb9pKwD8C0urptZBU5eKtuxSgotqACwqlGoJN+5/nMKSdwWa3eruZCyvtevOrBGqjsf9xbab7O0/p5F2LjNZg3bMB1OW0tAX47BB7qFjWIlK5xAQnfVvbU8mP4tZxA30BhLvzLwL7mdqKsw1Mzcry9TVrmamahCr3SzVdG0Z+d+f+nmTSbCcNN2nv+ivIZOn0wV30w9ZU0ljC7VRU3pQvy0G9LI1Onxrd08nCfOy/ovBQX4X6lOba3/12/pZ/9wiy1xnArPZix1CgufJ+Oiz1656/PhFXBdMxHTAyvO/yeaRKd8mZL7chmbysNA02g5lGmUVmT8VMwiDFCn9MbwTMKRV/bRE9pYjjV1ijX4SkoZ1/ZPd4ffof+2mkPejvZlSp/dEvmn4xr6qqrHFiM
lG+PhV+1iLq5M0KtqVhheUuTH+8ISrS4MI0i+g8QxlRgzOMh+Ue7oqzfbwxyczfPDMuFZSnwKL7tIjzdNlB+9XGcunPTrGuv7yI1X+84Gdrb9VTbSawgP0AqRaVAuzAzFditlJIVOMi+sJ+jOdoxmrF07R2jWlQ1f9SbszDGRXP8UZeEpuyZkO+hncsbWNpvviAb10L4TvkN+RPgzWLKfQEDympupJS8/xwd2/5ynSsQLcYTp/eZVQUrMhMUw0aaa54ep4Rs7Kn2zE8MPQAhszBeGb/l5FX4KF8qJqVGHL+liiJu3KIWwh0hrrPemaXjMzY9Xr+n0D+v5ItZB5A7IxRYglzSQTSWTDswxnPl2gpdObP9Fsse65TIksKklQb7n+ZS60mwRbW6wFR/dn7FdaqdJ3QTLh7y54QX/W6ohlguqVnJrdhmdok5xdxHuaOeof5qeXfz1Nh3GEZHIeXT1jcXrJGD52Wy35NRcc09BlhYXgUwsMxJ4N5FqMwvuiiHz2mgb/j3M
+AYKsoCkH+hBk7qRoNfqBS34m7nA7ir3rIosxEPCPBKRK+SlnI/M8F/NkjH+uj/Q/jFVEB7VI3qIWfJZgc6NoND4KTWzdx2tAD3Pt1qxdbbapmt5LiNGa0OxffyH7G4J4v5O/T0ugn365CVzUvUGEnHNvP7lCsy2eYwui6Bdnqw+cr3QztGjNPPe5cWW3ZIErjQuSNaQ99NaooyHal/udjS5fCMPmmMXh3Ad4ZSVpbJAUFZWZe1v5C1TNHXYvTfvV+zrQq5QRXsWBRaq/5vXceUqixk/PAwZRmd8ChGOARVgzIWmmWihPpMneTrthSqfNNEnF6KIVpVQlDBUt0jbZJzIO/tSSHlyNzEOLJpEHgAQH4V6FBcnz+VX5RimbqSNYVLK8B5WWatws5HYF8QFgpFQRaFTxb4qceoeqyN4KjKB4+56zMJfPbJzqHl68vY3YjKDqt8eBOObooqmFnqBjr0sio500hr5AYNvnARD5lFkQ++J8ZD3/RT1jVs8RL5azjzsnHMVM
obLR40xVyK+9Rh3tfwpVzP+lDf85XX4kptbu7y5x591mA/uQ0Zp+YTXX+KP/BSZfgHD/hh6gyNEr7R7D094pz9UTzq83TuIEf5LciS14jNRcCroKSNiiqP8boqfT13M1OkcLzxU6NWEy0oVbFmFr0IWQiNVgWtIRRYyfnDeWUY7OV54pHBUFVVWyliql3Os5VonX1ekkPJtB9H08iFPBD0vd33Dxh+kNt/M8Q1f/x93PMX+21NeLZ+rz/LGiYupeq2jIkH//UXfhV2mjlwONDqH2DR54zbeflxqfERQZ6XB+oPQHlUWZK3g4pin/5Xl/y1X2zmKWVNG26/i86qDkDUPvucW2Misn+VdJ1KRcmQ5ERx7ogo1WJtztUCpVZz9uRP5aSfyEcEtRwQ/F0W1cdiZAqZgLWYkJAC3QNkBOnQXD5TF9LHhhK/rKX81XUjAK+ZB4N7Hyjbdm12UUElbPLihh114M/mHq3LWjZ+IZn/uQfzDwF5ZC0wk5V54JkjTZR4ViaypXM
MxGLp7IUS/+kcOpf0PlWGEyVrEVsUqxvmAhN0Le1ZfTG/Eby851uvqE1FGKHhexyqmxcLlAxVCkRseIpHYi91ueK7SL+rfNoCfWwm4BpyQMubbAbGBFGkQF1dysms70Sie758kgG2xAtPZkkGUz8siIyK9gZ4GCoMwfrvKLK3ilOdI90v3SGp47d1qRLrjZ5zvfxy173pTLU77jiO++jrMf0FupKMadFYio0LzT2aKuYiOpwFGlZKG5dnAH97+Orq++usD9TX72Cd/KoPTWXlk6Za4N+d6X+JELWP8vKi833ua1X0LVz0ENl0qw76NasMijz3LP19HwzT/ewkOf/2e3v3yYLw9+u8LXVvn3kum37fh33JjkY52faeKlpZ7NXQevLPVNnjdx8JEbRAdXe0PyscH/W8L/t7vECT93g/ev6lcMqyen7H+I1Verp3I4dq+J/cvdVRS5FaFpmbl0jJ1/UPayPeL1a1g/sBN2P+CVP6HIP0fTv0t7XD7mW/4Xtz6LPud1mM
d6J9M45S1Y0mhb3cxGP4reZvJZvPeu7+ybdq1Ohlxweyt+WyQ+WuTCIymdihjRRKYU1lZJOLSGDlpx04x+QMoe+NyRihGMVYpQTXbioSFXIu0M5H8ZvTXqu09HCnE6uLzEwNUUJsITU6AiNNE7ljWPPBa1cvzKYqalIiG9SfpTmSuytn9Z4HLGX9GLC112cLNMCqKR52K0NarLkodJbGLBTwopXJsCbY/h7dA/qJq0Xu1i7Yo92hLio3IBG0zbIFMvYqh0HPIHJnuUpNmfsGS5O1oY7ghaUF30x6gJbRJGBjmIi5FBHSxEKufi3Fj/JwRFahxVU/55j+aZejiY8kegxoMcwDFwXOwZuD3EYsHfchbzbQKSwcUHsAi5Dxh8osx2fajEDdz/u3aGOR1UCZM31WLr/f1q8rftWKntZxM8RdsWOO9h+zIOY6EQjFdpueB3XXYM7009tVdzp+lr4BjRU1rLCMlslroSaCuRS0r+wnYodcgMkb5hJbOKWVo/sXetoUEKaXM
C2Ixmtf2NMDi/ytvfholaGBqBPVZ+Hm/JsyuE5jNKRr/V4P+YGOBMrI/+WzPzD4ihZb1fO0GeN09DiMg0X2854p7s6CkNb70THhElZBbgf5Gcozv3R6DOFgb3el+UBWd9C0XeHIYQk2lxdI7Ox+dAPATh0E0heh+MvxYoH9mqdhWOUCcOdopxeTS0QfQrx8swtTeFHFPMfCmNaGMWrKILQpos4GN9j2ESUFN8CFeIkbk0o/aGCMEZ+6SjE/eQwV6vWKVfMMD7fTUXBsJyB+muQr5m2Mv2MGbgXXRdod7NIh+4uvpYkhw24dNh9gxe7o0uNyR8hXeRzYXCy88IEHqwk03+yjc7oDDQGAiIoVyvqzyzmqzFUPNPvYn1E7MlacDDBCsARTLIhyE3LZO0aXkD9Xe+KZqUKhqSYJV+2rURjDoeSnZmYyuRU/ox2cSeyJN9OHFbwmavAx9c/UJdzRJpiUPZWTejP1n+LVyG3R1aMISMUV96i3KUdTx1O3ij2UVMnUPBdQlM
lxzHXNOtUde9X1EjJlx0I+3YImmWdiq7rbhAysL+pUr1YEaxTouyDFUKJ7CbZmvwnwL0zvLP7S4xmRW/vchqaRfx5JNySqZWtKjhNny3a+SD0oWllwlJfaTZbu7Z5myfFql2/1k2YcYuhQsGz/M8b2h1EGWsXcfTZXxMiwQOhgiJtHdX2zT2KNhSXj1JT9p7DAFADEzRgMvCvrCLWHk5W9ysIIcFuhX3Ku2EmzPPKUeVhImzLLO/j4dKIl8fd5YVwiBVCUhoRdSWCi7uoFS2SNMNGaO0OFJTbIm2VqBuUa6PC6cxSTdkpyNCQetKPi6xJXKjP2cOzHtaCrWUlRO6ccM85nK0LQpEiIp/j0Od4JfYXN/ZyoJHmUTobSeQv+EOwucbHOyhc7CKdHDQO8NUjWrzjT67pTIkM5VmsIeqZWtlBtTIKVYyCeHXO+0oovjc1HJU4thbep6rhOWMykimywzay2svYUeu2NUO5UZ/JS+jPlwl2uHKTlJmI0UG8EYUizGvJ2TsM
5jeKJ+dRaSt6exJl73dn8UeX2uiuxXWkJQ1DmyoTHZQxWhxBp5VONzEoX9AhGjNe+k9el7mxCFcJTswIEvCYFmDd8kF2yVsLZZ1djQsGLaEJW3CgZXoI5cGuHlQEj4abplwsDCzF0mBhZwGgYWhNxAJurNB5Ghr1A0UqCp5oGNiJiJGEvbSjPLimepZBUnpRIrJUjPYIVUKDNtnEUE0c4NpqSeGuHaQkqdTrU+oIeJE0BekwIC5ZhMKZKZIZm5KFaKFQMHcKESGJJxEF0ptbjsTRMUSLlTySij996XK4vflA4rXzjMaeEQp/Z2sCvy6yjkCdoTyDcqnQ0hmBi6GlVl+t5HPGmUFaTF/CqSLyUhFKG3CgK6bhAMztoLd2feU+3wdhkPtwEBizQ23Ebk7vOfWGtlUtQjudc/n7P77cHgsYAoyAhO6KXQWKshUBWsqKo5BrhfQCjr10H3v7nCJNPoKflI+pOlRTP+Lo6+yaXhansEGMj1FaY/TzteVcIQVuNCzPfGkBM
o5oQd/5T0r9GE0fwKVZQQ3v+2IB/q+pWLygU07ua1BlYX0WbVYgkv5Id3qrjzW75ozrztN1Wa/nJErtCvAkBQBwWmfDfqgOffqcLrhBJNc42PtEjV5+PK7i+Qz5B3FkScc1UZGAC4AJW5eRnZ4EHKN9zk6Mt1LCDtxrSwLuDOZ2q5u5jXiwEGspdoUfrkP7FaifPuw9s/fuIPd93ByGHkmkFC5vkMzB+1KSYll3lv37V2FX47V4IfL0+XPaKWIpKYxl7Gpe1Jllrz3jGh1M0VHoWHnKwMpVXz169H85+1iZipPm+O7hWrN3lN63M3eA/4zYq8kxgbYSwhQVlDVIFTiwZZPXSh43Xd/pup30H5FfsIaSXsRDuanhDAHWQkHcJXyky9ZNujG09kmJK2HDEKkjDaJboxVxVYgtQZW4j6Y3ruHmP8KpeVsZPKFaHdH53tDgP53WBOu1t/6irLzl6wt4a2ny05cyDVWo+nLlZC621SXKEqE5AsY0TMnzUc1fnFMVnCmIjM
DnLnUhs5BYkxxpOQxJofsgvanTapfaIVIzKVsg5bAFRtgjgyuBpmzgLVaXYIaeEAWmBW8U4j7Gcven32T6fSmIH6/IycGU0J4wJKXNaqiL+HKX+n9b+E1NPaFrkTwNC/sFmxkeTuDGEdRo8z5ileXFUMIjTRJYlaUbF4LCOd/mIOMXb/f6WWZKkOZWFiX5PIceEitnjFbwYXCWu4P8fpB8oZvkcOSObT1JGVWGsH0l9+n3I8iKllDfHFsfuiHSdPltks6RIKFJ8kq+C15AuSwc2HMLBcl8SOkxLSAiFHOT2NmT7Arcu8dFt6DTHxBC9TuqdTuh370UHA6MlEh4OufH0L//y/ZQsVG6MxtAWJTRcy2DLRNVxiRLqfTtkd4KgVaZIKB3xnRxSwNJLBrs6DKkROkqZsrBSwM0VySUzA5X7q3x6Fr3VQnhmEFqJNKF4jw//x7IOcGSkrGUwE10b2jlRMIOvcLAditDFJyhCOyAf4IQD9MTxqUSVU2YLmN3OGXIbCWsg+M
yEQu/b1lkVYbYHxkj+/ncDpwEES/m+Fwowl9JQz1KwYM+iNa8rLp3ZC+a9zMD/ZgpPWn0R7RBM7QhWPWq4BchVNUqOtaO8q5UnpfmwqtoZgAvUMIHc6Ybb2w1HXArpb5t8uRgiCMn8c59guCeAXFGV8E/FDRXTpCKPOYd83+EGDY2FyhynAGct/RoUWWeFGqXc/zooEsuwn99XC+y3OIJf3exML0SYf7s0SuTEfY1YUeutREhmyt0XgkLG6/KtdBDUVF2Rmzr2w+qXzFy0tR494ynGjOwdcg3hqyOE79z3g3qDvGrDhO92f98j9HeY0xANPYgAAOwJqIeCkBFxfAi4dgFsDuP2AuwCIVMXJMYFd/UyDu0LxngNiAiU6IzTAOahNyAidklzO6pdI4WHTIC2xjCIMQF9zBAAACDSAABAAKfI6h50c6AIJjKYlKfUQ30HGQAFlSfEo9tCOmPF2wQ49WguRy+DoJ3GC4yr5wQbObq8LdupYXwT5JdQH9GP2CbArlmWJYM
jl7La4eAS0159X78HUDtkD+IL7i9tpzrEnmJVQCkoGGwq6SzNBcUEIDHmmDmq/627jwIV0FbXxweCMmaHPmRq9FHPa9o4jOaTpZHUBeo8/gGNPX097GFGaLklC317o3Zn9Xz1IconrcPGZngsaxPWHNRhUO4ePcB/QMeuZZ+Vg4bLN74yDGaFWoFGhQbSGhmtQLNO4HaC1PtcjmxPs/ts0FX+vy1uQHsYd3nA/ZFDjwJmtyrng29/EurWsqZFATkVnJoERUGKHVbxUJ8ZPM5/jE2z6am1QOGO/6R0SX3xtx41hf9rC+e452hPK14nN8J9bXaDUA31jA+6UOcYx3TvQWjHnhKraPqrQjxAG9oUQ9G3ZUEibgkxXYiBpTw/MKumsRMeVBy8M9wkNlYpRPLFOJF6KEfjJkqDMOiDm5kycLPH4Q1p1QYulHoZ2NZxWchA4Zt4VlBbEBUp4X4r/MCR0UqVLkUgzP5/SXwrITSh7lQd/AcxJ9YRwil32WFMTKAyv/FROYDM
rvhIv1BT+jJ0x3kwc3cdNY9d6uBGK4tBn3Zs2q+5M+hrwSpIRMZyFBBKUnI4cuACeq93L+dw6DfU3PL3TPhi+FGkNzeDiMKle/IaB5iOC6IDOH8FCN0ElgzJ38Rk1DJKyLnItyJiHhBk6LcfAJLD+Ynsz2uz77chJE7IeWHF5vw0XeD2ck8CSY4n1BwrNBsN+71hS9OtrgQ9Y97OPTMnfobDzGvtfjQ536wUEZj1pVjjkSDO7pA1Px1SAmMoJiXa4++wtIbCH1uIGlIw832w76zZt/xLdK5r7jwkYCVsAUKoASVP+ETDut1WPXEwvWZRrRYjCDmpgwFWr3wsuhy5its8P4TJeEcJqI5BZUVcjmIqVPlAC2FqdP4KgfIDbmpFfIWEJUUvirz9goanE7VFkBL0T1ZhBduW6ZVheSZn72IbHyoyTM+WMuAamumA/bZG9N9c3U9egbGYSIaU3AynSivUIMeK/gFSbBNqpiVx1lollMh3dThEJlZv7R3fMQXRsgMOYHiSM
DQZ1SDmOgxCY0/7SGd12xF82XMKor12LZmNMOk2Ct+tGb244dIzHR7G0qO0YGxIoQQ0EYc0k7TmD28X0fAOXn5mTm75bMp7XES0fCkhOapWE26iYEtIUebflbbfufl585CfmnHNLK0icDH0LWVVA9A5EGPixbCJMR4rBRG8iYR4IQuL9jGGPsVQzF0Z3uaBAwgolHpCHOpBFyhRtkxSRQWblW2AQ5KxwkZJkwB3iVwDGLZPc8EA4z3NBRPwjDfHSvgicWu4pU/dhzgEg3ME/Z3fiRfCUCys0ySJQkAowOiBjb7rIQY6tggk3O+GCG7EpAKyFcH2D2lmrJ0QrwIRh2ypCCANRIjtFNa6G2MJUaQxSGHHQuKFeEz7Mvd0DSeQApRDWuveH4uIYiXvbNEvwUMk2mBjHNyJnkjQecrjU4fRMTqQkNaf4z4YtD0NpUqk/8/I/2/R3YGonKAONJN2q8Ix/1qP+fCN/CxeULbfWHTnI+65n+iqGLSQESRcknt/oEBPOU1r3M
uLeGYShq56iNT+0mUZnVFM79MrRElXCLSKnVvga1bsfryIPRFKSvSPJv8XNEQ6MdierQpZ/J0uRRtBUrcoGAyAFVkEhehCBev03AR5J6M89dgqPe/QDZOzHuDuGUkX+7A523UiiZBb6VR9VYpeuS8InIvw/YUfIISFDNcxuIuiV+Vb+t8XQLXf1e8BCvHKKuCJIvpcEzgRSxegpevC2FOF23e3JzNrApp5vZpJWNp/dS6V2/SXQKi1mVJWGwfODczAeZsEOqBSvko4qExeleEtICe5elbmZRZeR8iwv7bJdi8iYa7Ezmf4Y6v41Iwo3ZhEK/fJRSVc1emHM7/6CyIGddeXmQO67HLPmF0sP3Xp2MsiH23YKIttdC5RCzg6JUxDuLp+0qt9uAZUXy4L/2DNu0Vm3tCMbpcRA9MxaKn6dL9Hj+pMgksjTw7H5l9px94E1HpseXgw31l8EsSS8QiyCmHaZvIJIDFGPKgF+WUuy78waCzNWLPsiazZud6cAdytta0RLAM
WhLUTMbyVvAtcYa8dae175hxTgeYgIOh82DWlyRFCqlUCFLTS1qzJXN2aiJ7wDuCjY1yjcHUBPQDSGbQQHdz2a3hhgKaGD6MK7R2gB/vEPsmQqlzVzx8r+FwFuQKgyLD0p9+XHvIXGEFokNBPAd9V2pQUOQ0hbQp/Lq4hgdIRGz6+9EjRrHEceGb+Mfv0BDo/Qx/ZqgSOZgXzQRK8ncqjCJzxNdeoMfj5B/8wi35zWiIY0/+IyCn1yr6O4fLpoTmVpU1QckTqHzYizFrqGEjcSnockWqgqYH7rCKnPDAMsk+cFunmFPfFrWEGkxbCaYzM5qfnNjnEZAuKKOFp0SMABVj33g/wnoG3bMEBRQGCnpa2pUqw3ALaKjHXpnH7a3/ipMaRZacL4Mof8zqBqD3jmAfd134no4aIIwhQ3dBZmUwtpksn+R/fAKogROoPFzI7uxuHpjBZrbWKZm6LRO9qrqvuErPN2wiKQ9TcudPBy7Zwi8lzDgQ+1ZAWossIxroWH4qr7dHM
CzqNrWy4+OghmXj0bPeaewoOwDCZrgGHmzvM7aEkYcF5KBtirRtkbYxVgF2YJ5Sjyob/ZnnzHMmh4GSsMylaVhhWkwE4jduRZ0VE6ADI3stv7a/Wh90NbIY+ovrBuGxeaqJZvEeBiXH2o4QP/FX+EIv/u53vRd2DOVTUWUdr6eJIBjsyjvOjiA/R2v4AEeaIgoR4xCD0o4QFkqHeoZDTUwwQwx5XN1hxLuQoJtfmGniO3eqLi0kzR1GzASXKwMpGrPNedWQGhFAwbDxwY/qD5AVWHih7uWLVpyiS0WcI+yI1dV2Eek8GsCzP3MK/HFemrdgXsVLTgnCuZtfK5Wqcx4dK2OaZ6e7OLPyfB6twt421/H7Ktnu8TqfVuVmIpdWrWHvahwYXa2nBQ56gh+rk5rmMA+3kKGnsa5zv1d4sXqQTJWGmG29fe7yHI9qEta2ed1KQ8y21V1e4d0WIVRq5e6WrOHSloIUE7plFEM4uBWOfK4X2Go/nq5vkJ/rT+RR69dtYz0H2M
0zoN07jOW0bakfKdm3kzXYnWWWvu/jQHtP2VXOzCX37S3YgnCv3QZjtllnm2VMF+HsXz+3yM7p6ZNXvquYK3Titmy/o9lu787zu9u5fmPZv1X6wRy/t8b17csvqbr76O/P7NXyWn/1D00k4yrRrq9/01cPPw8d190POc7867T9jCqbUb047mWV1D3Wu4q6jr9ajstaq9e40+nrxS+iZN7qHbJHcKrR1a1F4/en/Hmpe4fOZkujT+nJe+uq5ZkqRvOc/U3Uv/5jP7m62h6U9muBf/LxezWTyjSLs+uXO3anCPOSRGvrAH8/xrHXMtB9q8fIQsw4fr8PUPsH6ydA8FgT6FrF+83fp03J83TXH+U9Ne5qW7PGo2Q7e9yi3XLj23wrZ//eRkWhV2Pg2rIodnNyM2nN+6T4MRw/ubGT8jJ+/DwNRfz9/HTN/alP+1IL1O20hbx9yTUnZgY9Yp7w6Sl+rrSq2dxT/htKbrEXxABvSMD46d07hfA9iA9awsWXmafdX0ejLWM
5TYYUZrZFhP+Tw5LkrcRobXB8rxebuRrvUNb+EzG/FgnVuemprhRHNa7j9LcWleVcPQl/P8awfVFtp/ou+jnvvf+L0sve0PvvUtflBnRtURlPlsPWS1cslo7ZT1+WoONkKo0dj+RKFFjUKLvYasPmOtZzi49A/YgXxWY3KvIotkafXgdvp+G1QwLK/IZy2yWeo3nOQEaoVg6+VWywBVr7FO8k5LfNy73WYCGz5LGziwYExecBZRL7J00EafR4BhvlNTNzjG5gNmo+JbaGJAHtvxgbQH90XjLXbJjU3ZbfPZlMNzeZTdhO7L2kzTZS570ih9g3Evlm3Q7ZlKS7f5mF6qhYvz3X5ybbzXQus9vy36bvt5CnX5AGogVepa1q62ikBVqMa11iih2kjTaoRkqlUqUteq/JtUCACBGmpe7sjpk19fKBf3m0JGJeV/iDW/uMHzZPT8p2vGGq8cneqT//1l4c5KDDSwFrbDoWXhTNslSbL6fTOBXPdhQJKMffWrn7xdNObRvM
Ysornd4C7LBDzNwanj/akhlnKssKfDNTKNBkAa/MnA7fQacVhe89/VSxMNcXPGut1CLYc++KvXwgd/BXlbFgAjn7nObTBZ3yzoFHpsvxgrk3rJfb0Xrhg/2racyK1dApT46S/XfxFqC631mnppN5mLHZ0Yc4Ia9aIzjUTd3V8RRr+tSELGS7F1oR5NJu7+WahcvMgLo8HeISWKN2HJCO+TG4/at9M3P+g6qdGeEs/kbXadwD3aTWY/vSnBVRsj7g0lMXn0Qc0ucfZOTWAzeX9WDXY/VMnUVH96FeoV1OTYs+ZoI21JZ49zcbqG5kOyjcz3lF7XyEB/5Rbn059BQiFLxDH+Mk5GkDEpKu8PIjJsJM/PMTlNu3nRISy9Jry8+j7uGbc6EWAecbepw94OpJda4hpxx3BqMa8uIpw51Zrv2UynWWWBi97NqVwdalizO+QbI0WIsx5ZWZYONHnI6uXXobBfa2gqJsmHQg/8OJJSBcRmjscVUjYaRGkRqEKnBGtjHFvwzUM
vynaMjry/jcAp+Y37+p4/5DRMQ8sxr4Aql9cuGwZ18iB/OLTlvfOmrdQslDuHvUx2djLs/99TiQ5HObMOFyPnaZ+rOLLTrttlv0VrwaZT5HeT/EtQ/Jdydincleu4rrmUPe7aX7XkDGcfXyz+oN7ToJufzrd5GgwWG92HBU53kHuXrWWK/dpI5O7y9tIyJ99n/zs4r/+Tupp23PMsy0PaEMmfHw+Z3enY45Fp/tQ8fygLJr2arYHqp1yq/i7TZV7NU6qhm2KfPEX2Y8pMpS6J4fOnOXYo0jbjDqI2MqoRbIU+U1fU4CzXedHTswdsNWzKUTV4apnHgBt/AVxq4ce2FQxlY2VkjeQppYXi+XEy/gFr7CxK0Qehi7YctmhG6YZWNU1myXo2T9n08cJ9QkUmthV3PtqnK2ghNU52qkPlVJqkBSBdIrFf8ESxe97nyspjeReitNpMaijtQhUo9IDSI1idRbhJGaS8TBXmHiVgs9M9W0N4G/jh12an9mMnh0/EkuvNCX9M
zR09yB1rR31bzOpMZyMhcgmbnHwFGSutSM0VzWGUrAQ2djF4Cmpq19ziA8AzWQOJ605FPuDdoNUla45KvtzCfvJxletSd6q2bFO9N+sqtQ6e8t8qzzB+zoHlujoWUpf/Unzj3hO83dd7c8d2zytqOmn5de7kw/i9pxmrcZQVoaMn8bFQXa/ll+9ilVnwaH2mUBSj2UYSpSzRtG9tzj7MHTHef8DVEKGca+qMlwYw63CC5X0iik6v9v8/VZ+Jt9Y5ssrw7Y8nJbEwFmew7OcrSC8BOvnWG7QrnLJUi6V7aX28rzRZjPBwljygWtu84qI/6e0l17eK4pvn/zc/2W/+fh2p3BwNjxFU3gWrroiXdAu6WnTdadu1HL9Q92YlHTdYmScw8YgwIbmKZyWK+WYpRndGctT549lJUFvxS9cwEaA2ulix/tu73HcXpkbS6wz9Jp645D5uISJoYQfhBPJtu0io2qiSSd1zbFmZ2EzyZHNVjk8sXha4mHqBqm76YDezDVirvZZCM
+WFDhaV9JxyqU1265Pjsbc8+URzq3SwakNOOGbmQn+ILqMnxUYb/B66cEp0crHseHT6ouNx+z0Xqeir6LZTjM41D2b0eh6938WNdl48c5vZM39hvtN8y5bXj3WHLpaMdGdf58k5FzatXlqeNbD0YW3JrVaVeokf8QsBRnRTBdv2UmcK+SEBLipB2fg5okwjR3J7vTRKz4kpwxyMS7KQtw4FFkQ/4GGefZAPNvuIaEhb5j6ZtkeHaGAm3HGL1w+VUhfT6JDwpxMPvcRss6Rzq65UXavJ43VaLe6iRq8Z8QiC4vGco7vR1A1ipnObzM/xaejHU+hFnr3XWpUX5owMzlyFEumm5s40nKVb23izZNVlWUbGutp5QabEZ/NaS4UoVQYTF05dkgUo84KW0DWcY3Cl7raWCEdxzXHaVyAJJSwjDI9JVhynCfEW0ITiMGE2M5pqun3dQdF4iZ/MyYlYRK5IJA2d5jl9i7JWWhiMUZg5SmGk+/q+p5LRvU6hHin61JmhfOSHvM
7qCziU0/N1w6wr815cxuMTrt2P1smzf2f96hZfukGd2Et6Xt3aS5Bxx4YbYNrPi2n8GpxkHTuHwpt/c//2GYVY+7NH9tnIAjwbGOE7QzxVrGvJaVF7J50y6JPV55vNondVSA5Vz5CNUHqCpS77ejPYarNd9Lu3aj3otI4QANk8CbLeoqZHGGBtJYrAe0Xn94LR49Vux/fSIoxtMt+P/ttyN/VzI45JIC+ioNVdMJxNnDnd88Xec2Lqpy52NW9M++KKF6jdvD5M9EzfZhMdrP4gGsrd7yZqJm53Crnw3fBl58R++yUeOO8bTVHuHi13iVaF/rBrdV3xbMXdaeHkj53e0L/8HWc/StR726j6Hiq6U+AYitqJqHcrLyyJuigMFIFMbS97jxAoDqktkdimy16MyfYiyfppa+2NB1JWWglE7Ez6dsetKJ7hawbjKmvz/b6eprDuyERP7fKIJzfFTm9ZhsUOo+kMmk38I1qHxnrlnBgaeYsqAU9rw5+IZvW3FADyV+8H2TM
bTJzuXSpna0F0opKch4t8z/kIfnisnTtC1Evikkz1JbHVV5HsFXIhb6CZQm0zYlbvRqxH5mymv4mjI/3BrCzfSstH75i0FdHW/Tn6a8xd9xNmrLDMM75oIozExHFkRjZgpW242fg8PT0Gc6UIj8PPN8lIMYzEyqudj4OVaQtbE9nNnh/haqnNmIxojgd0DxGe3BFSSNa+0dc63DnlzAWm3M/IVOxrtV5XH+uvdd1V+ZlLhta17BhNXXa9PKeXvPl+4cCkx+a95qLpO1mPIPGHB9s/u2SJ2/v24vUewyuno5a/60Bgs5sPo5SnWeuUbGJPbstZ2C7pA4/QqiXXVmZdY7a7dGxiix9I3JPJBvQ2Ei9hZ2N8L02ZT7rijsYNHZA0WHL6yc0PwF65m/Dixl3urWym2hVjasrk0Z69pansUPKWQc+tfVNKaWPtdgETLv6ZD848fVfxCw4HHU6indXPCXOv5e7Hbf46v6Wzw7yX8+RMf7zdOH8fQ0PsOJzgzflsEdp7/dRM
tudQc47mNm20Hca6A0zHuDy4xn8YRX4y4WWq2jd2YjdOUu5fq9//XopPnmcXhvEo8OmR3J1gn6XjgHoqhoa+asJAQwAaKd5RHcON5RY5MoaK2iry4xaHMtQUerK0by8CmXcEPLLkF3MS7ZRva2tZ5v9R+h+KN81o9/S1ZuE/Uk0gCl7F48Z5jx9AQ9PY1tDRy1v6s9vG8C1w22fOkDPtePTNW155+jQ55j5TUvCX8n8bwz/E86/yuYJNI3L/5aiH+qOg+yOsk+pRnopGtDTjMcJNC8Fz2RnkcfqsEDLfhj/MG0pum7bW0J3k+wPKw7aNlPJvh1NW6aKHqrCxyYu/3dd+b/8yRnSAz5aWboQJk/CtHK75flouuvCrlXITFwop5sO1+HB8pYLa+irRLwaiar2PSWxirY24cZepuB0GmDPGE5Ky4nsiYglvSpGB2ikzi1jVVBZHYRb/81Xoqg6ku5y1CPnl6OxIlb5mjZMCezJd/bTui50tqeuTPBDGUZuCww08fX4XM
2Kh8h2+nUnZqrb7amjLTdxwOY/+L6r/Cef+tunPdu+rNL7VdnuPzz/C+UNtH6fQBw78OiJ/lsMaI181oieBvnH/f+F4SuYr+mjz0e67qDq1O5Hub/ONTozpaYs8TVHn0HxtYsodXFWe4P43VafrnwUCnjVpfhbo9hwFQUaxeHnyDrOvDz3WyJgPMTBNS+0ZBiVEE2BRqwpEV4jKsl6Roh0sWFPux2B/cUS7CpyasRrWbZ3BQkCN9so2nerPsiFkNwztsBdqiXEPbSPpenQyCc+mSfcOykUJnm4V+3bKsgNTn9egP06LT4dpr6bQ32B14n15zLMB27r82/rwsWrSueZ6jQ240O2v6rCNlNbYxI0BdE5ezVWRy03qUF9Ff2WYLB+mlA6/PoLR0+7lCDHaaQ0G6b30GpRQyK3H9Cipo15+zY2DGf+IoRq6W8wuW1ZkWVHyV8hyanbRsBLDSmZ/ahdnZlKTugncD6PqjBXy5Hrj1z/11zrJvh1c32CH0X8aLgqf4X2gfM
qZz6NdsR5W9C+oZi2j/9a+VTOb6GfBirEnpybr26d42GApAEYGXNVc+kUsa2SbZq5Csi2kP0dDvCnBVlXcX0JlHdUjPs2n+z9B+9K2+ray+ZFRPi2eGY7bx2b8gJw0MPExzOmPfXEZlyZ/20jXKgViOuBiB0R5RG/2gG3539npiQDYWzBHzDvvTnLYR8Hd1cjhmg6xzesnPbaE3QrYfIFqjVmbYR7htEIti2ilumYROUVxcwaiE3go6QkiJ0JJp1JVVsVjOnOhVqKPOZgRDfPF6T9ZbydlBCBJY65o2R24ijRjKjKlRkJtb5DvNFuX2o3/ZiROqwKjKacEpiXQMw5BWAtNlamsFTnq7mFVoWBRWsSoPG2tt+b+LLubQ+Mw85qdp9ROU9UZfHitPyVPR/vr/orRP0Pwhi238wF9fwv83N9TWZhT9qaX2rOvz8V9ZNOUO8jO7retxbTRy1sMx7xN34j47dvXwUJF/pB4dV13fWTkqBdy/qnRUtuOkTi8idYjUJVKniM
UhdIjVGJlKj/rpARwV5k62bW25kuT6Lgbw8+SU8vAvrLB/1w9bPTSPjtdgW5m9ex4w/NU+qLv3zmVkatK/+slx5e9kMrn6FGJv0RGitUEbnINqO+gxrKixrpKtpOWoo/BXkJvUtgmpyf0lpx2jdvzDtpOXHUzgaZjZVhwlaNMFNE6g29VtxT/mGnXgoNXvYqfgNrAxUZtn++HZ0ffa7GPQwNPPRiKNnMI/QHLHpoeayMSgst2kbmam9GpfnLHN4hdoGa9w6h/6aEtmsHPePldrThUASU8faWqtsDTb6qtL+hNYZLR/RFBvDWkNXNl9X4q4ZZcI7xn3aBSsVbSLfge3jZD1Am74bHbBy6QHfT00RWS8YPybfBRcVccEXeHdIrnnX+Fzjo9SY64J47tPxkEZxTMG2eZb4AsxtjLozrUZhhplFZosp7ajmngHvOxGrV3gy1DdeblzFm4mJpo/kTqoBO3rR1mNATacdMYa0MdnlxkgrbaU2q/tROYxX1/P5uxPrRlSZLM
jICMBilSXoasXqSELF3oqmEqwPtvUpHw+4QtOtcfkNabeXAz+YAakolth3+PrRVQjpDDpYxbIZnVm2W+xM/w52UKdRYtie8PQI5K1oifOs0jgZkjB8x0b5Pj23haB4cftGH9n5UIhg3MRbdMmx7ap+5GxKDohGinQTtKVveZLTBzA2MRVENSs+xg6qtKm1lUg4Hqhdb17ORa8NokXuhgTt6hCN3fFcOBq63jjGPRA6mdos/J6zVam2+PzSvz8wPk2C2bOmcbJDtMVmzyZp6ZW+v2hizTZ0d1trOiGsM27bO6rS2MRLeGe7hsOT3cGYiWQrZGSbfceOGAfIV0aJCWff8IIYfYLIv6rNia78a6JKKal2nihc3EudN5TjejuAkQpyEOontjbIxFhHTKaICqmqytHNUWDWir7I9KnTHQiKo+uCYWWEOblU1n2gqcxXSzxX+v6gIa1fi0A2ACk9FN4x1R3lHur4Se5FxgDBUrUIMukPoWc+DF1YMQ3P+V9poaw5X5AiXBM
0UhB47deG9sGOtmXN06d2x0r3dPn9WvS9ypPNzuX+BaPHpz7ONtObQjnnuetnvQekndvktc98DlTkciE9qXxwgzbWQPNbu5y9jsUartTmhfHrOE4e4qLo9bCkpbSCMEuIrsD5GJ6vqgeix+oEtxFLeWEjeRezWa7YZYb4QZWnrNyl16GECoGa8v0Ew92u3A2RHQ0dZD/T2bDhwyK9jwNipUTTNL5X+3f1/Ey402TQ66/pejzSl2gvEtrOlHWd8SDnkK2lJIWwxpy+GWkk2dw4z+wh6CxH7lS5Cvw+/fOe331uwDiMHCquDRRyE8xu+ht87/kZdytCmgXBPqug+Jz2jQp2QaNnTHAVeiiCWVScxh0eGD1urrp/xS/uTMtfkFgjVbzyKKEiWIkkWZovmiUlGjxXpsMGzUPdGQGOziOSzGi2PEceIkcbo4W7xCPCX+Q3xD/Fr80QHvQHSgO6gdxh0+OH11+ikJk7x3ZjoLZc2xl+N4Q5zjitNvzzXmq2Jgx7o9HIeY7M
fmHDzzu0/ok27SjTFuObct6g+3toHd85JLuRAv/CcFe6Jma1aB6lWiXRjWkQfWf0f7X0HSNxkN/im+YafjmH1945TeZOHtz9trsxdnzs6dnj8went0xu312bHZ4duPshtl5sxmzobOmWe3MPzNLMwszMzOTM6UzAzM9Mx0zRTOFM+EzYTPGGd6dA3dKby24Ne8WY7p6Onw66OrLkfUjIUnhAXN8Wjx2AyBcdywW0Dgk4eKCXAvuQAcRGAlncC4UkEMSnBSp8EMu4jAPaahCVqu+UTphYBsUgFZcmwCM4r0MwCz+HwHsOv9d+xiAVQJpAG4JkgPwSrAmAL8E6wMISmQJICxRVABRiRICiEuUHMChRJkBHLto3vn8hZNipZw1auSq2WIyy/Xw0WeDOYYNMxg1yuhP95i89KoFT8UAI4SCgQsDx4gRPyFC+AsTJkCkKIHixQuWLFmIXLlCVagQ5qqrwj3wQIT33ov01dcWNf3PiBGiSUnF6EIu1hBDxDviiARffGmJ0M
55tjJDkl98teW7vQ5Ba9p+DceXQNRhfDrZBWjlnBhMq9MfBxAo7IZhUBccFk6vqGsGUunJqMLWqvzqBaZDLkyeBdMj1lZPAdCghtTVnUKZFSyuffpEzQoUMGa1y+h3HCFX4+Ko5cFCjV69aN91U54EHbeG0zcgI9YoVazBsWKNx45rstVez445rcdZZrc47r80997R74GHrmP7sY4Qujz2+7F7yyfcfNW0F+jTOWmKenxt6oku60yeaF/5diC0ncxX0zhckZ2zgBICY+I8X9xiOF29oOwp75h1gI/DjP3JUvUEoXzFkHGR9LU97MmzO1QxDq4bbjyo7KwG5YRYW/S9QDT/8/1YbD5kcGTAVDTrUUHacxQhG0lifRifGa9ILeNjzsECkchFnNnp6ugEJuAaDwCjuIuSSvviTxUcTVYSSmxjfyRQkiqGhWQfJVU6S0Lq3utrVS3OQ+DYmn4mLrkByLxqIssaK7rqqh4upPgFheVXh0r6X0IQRJ7kwJ2xBesyCc5+IoM
oMes7qmnqUeZ1b2dfeIjQcELsbO4UuFFS9Jz4quD4Rn2spyI2W0i6nqsmkdLz9TrIfkup1J424PggDLEtqXqU64Ulb2uPfRdL0uOESNm775CQvW0tKKhZgpojkPrphEj4+ia+urHw218oj8Cp57ExlTNdQlHyifUNAULOFEan4Ntp/uqJ3XbbHaKPFcTG1k0spvV3FWjT5cjnqcmb/IaLSFzHkKbPSUFcDGj5Xk6ywxC6oedlKtahOaVixSx+jteAcsXT4BKrPhJcgonUfEChzhXRFXRUAyOT6IdoTneaaJfRhCnALgfVldXTwrKC7tleWPTuMfy1XtXlFbc2USKzuOhAwEjgQOBZrYgaF7BrVDrbBpl3Zpl/k65Y1p200hDCkDxXUU+ODjo5lyMq6ZCVF2nBOhYwuDAfeo3wU00MT+EGwHuB6reCWO6r4JmBXehqtre98/oK4vetDwqHMRccFX4kptFqf5Tbh5AadzAchIhRNVFOf8Vxg78zzos3Xc7VFdNX/1+M
xDDeYR/X4AG3+/g29N1kL/4FPjzHgB/7ulcm1uDV05OdnGabqe9Nk6Td+PisbE5FGc6mWoHxbE79m9fD3tduTfKZcJdvvULk1vuO+ZffK510Qff+hTxRf/6jZPcR6w446EjRRk5V7OzXNn6qbgAwyJO88Dcvr7v975f+A74/jwkH/i+OyQfnofce2q8yZYUZ/Y2ZZv4vhoNs+n6dgmrItAyEzPmpgYFbT2hXiF2Oel0EfhL+69/RsE/+L0XaPXaoZ/jERxc1eqjgQXjbAsBnXPBQJnTnlygljMOowTREbKCq+95XBGm8Rh3FimEORSLvp8rdgtT0M8aAPsMO7S/C7SHu1MThNNTyJPTDBOToAqTL5bKnOjQh4K3YY0ZkKLzFGv0mIhFYEw6zRIWGbjxUv+SOHLzhalh1SwO9oUUtAhPbImR7N3UjNy+oJJVi7qQaapZLMckf+G7SF3XuR4zbdNZkMahvC98SIYS6lWnfKgweY1TtIo1NUiP8xb0eAqAa9f41mNknM
WxWuafEhXse+RLe+UVgV9CMWDKEPnwmMvzA/WlpWCy6QWVbdkK7T33s0UV8eIHvzjEaHnowxzpu+WBfB5t1uTD5kilWz6/tchoZqvpmKXeTkv7ABVE1AeEraZ7L82F6KuxgJIOeDHuj7TiVs7WjuuqMCPnMYjg5SbO1RcoqEN8Fh5g+ijP8W4mKSuDZqfDhpi/AeF4Afvnhh6zx4yACjyhC1ODRgPFdE0VbEAs2b0N8bxqnMHXo9M1xjTdiVoDTLAU+oZnD6oXslZ1X4mzTPofxdVinapLqSqoyO1uwJZCBFKBZKLdv2C9Kd+W2DaKgrgyWEsJgxdlittaEeR5pbkKbSmhupI51B2V2NF5p0tqWytFaqgLzZR6f4eGIVk+0AnAmCKShGoAJgSzmzxxfR0YfAY4RlKgDh4imkV3fWNRGpBg4RUslC6tOnC3SLnmWshrFd8bq7J1bAu+/ksO/fj1C24F0PAAfRZ6HeQerOpcEfCQaJqJh80ef5cx6rtAX1qDrP6uh/M
Oawh4h04HDnemL/wfcb0lz/xnERdd3zVado8Psk/9S/76gswgwwDc11ce874Dvse3P6B+s4BUlorMGJA/qXiPWWTthsiKhuhbZyxYZ9crl4dn59ot9/QkKH75qUU+OxJdeVsYjcDJ9cDeOTMDR6KPo7kV/jcLoO7BqXloOBkxso93dPWDvHRBnZia+Vy8ogePoqJeRnRpkmMZN4Oav+6kNarVkG3n/Ka6vupwswqB0W0XO/F4yldo0qnFh/r3GV9FFuq6aJlVl24dFYv6/1YqOCMpZQkrZiR403jPsNyNpwKb9tKvcJwZq0Snf2q9zO/wb19743X2Il5HyHfW/23bCsfNnkMDpBRKeEa+rNeFaqLK6G4RRe5DoMfX/5rrIfTcI8w0kHfdCEfJ+IOhQmBOApvDO+OwZ+gmlMwqv7Mzrc9mmg+l4czz3T5XFcMApwTopQA2X7P/VRfLCxsMrne2rEVCJ0zkQ5HfoFngeWBnfsO/DGPm2PjaIvMgavW80dhaG/veX7GM
5mj0mGWDyP9F0aT65HbSdMH7r87AmCVXwHZpXxd4I3OkNEbkmybFwxDYW/J5SOJ+JFYpUlLWNzgt+lQJ5U3JVntZNprc7qV9M6lLR+fj0pBILsKmKgwhcSC9p3KcEpNsVnMalQMGjfyGOXYET6W0EzylFYkejou2aTr3JdQNr4n5HmOqF4CSiVOT6ax5tybWYrubSv9PHrxXqEK880uVj2g6LofOjXKKpQaVR7j9A4qCI8YtmAf0Xm1C0S2vkNYbSY9FO7lsPhoXLtr8q9stUdtQ+Ctzh/amkmGmoTVTiY/izjuTZi828+rDlZn0anUJsxX+ZjR4ImVfZeINgLaB6J6iTNsVADm0+jQfZoL6FxBQ7OIS96nbIC9DuVGrFzmM4xRRowdfXvXaIo5lMndbvtOStnjzM7iB/Kz4X9npVhlcFQjkZ1W3qoROebOsYTmJh48EGKtltn6mMWfFJeGXJqBCibRptDKOeFxuo6xqlKqmcArzImzKa1FiAZWkojSV2hHbFhQZM
EQXEd0Rn5Ri2VDr8FdKqBADHy0fNKmFfaSVUOls4KTjUg2+wJxqu5tVFH/RUfWxjDJvqzO8wRM3hetZQpomeYF4sKWTd9E55RYGYRb9cPGa1h2rlqp1afbIvxojxVLOnrueoLgEtpCgDTNhzkOD1wjMvfl0/CiGVaiChGKyQBfR+wWh0JEaEXk2EolEuU8R0JbdsYKkXOg0YL6G1flRQOKJAfOIj0N6y1PgWXOySZ9cfXNz7MhEkwwZo5jhS9WYcnFVBruKJam5mq0tZjlKdYDjVMqwCmAC5WsrRBP37hoPuOhhZ8B43QMS4Qkx7IzR2P6EuORvrSd4qcBnGMyncVYYnzQJWS1sIJ6x9DJv45VQ6cu8UXiO4eRQM6fcwB8RX2DNcJA2uhzVx7eFoc+BtdiD1NYcGSkh0g5fyEVHCCe6/mNBwBlYtIiuiZKOPiaiKiGiayftGXxDfuyHJRIZQ008v5KnigdAHd2KCzGGYdV+1Rt4f5A2Q+PcMmpf9NH7M/y06wovnM
S1N310+Ak/8gykGqrBhFXEGJaAIRJO1sAg8fiCqKWjYwprVnNDiLMw3lxd618sHUpKa03ORNHZRZw4n4N6pwY3WB+qVEOLFQmvjIZRFxGpbMiZMNEbbF8xuEzbWEQZLHufZ34U3lzMJMvOPjya996FGJ87CcLyudCWs3j2dgGGo4NNAAu/3hKuQ+l64BhXv81piyvnuvVfl9ni3u887k8rmwkRoUM6FLMptIYUO6IJ0DqPdd9IiDAsozgHz7xZgwHaPwOuCLwpuLhCbuum44OYh+QJwg6sVXxb6/pbWDMSiOqUAQaVBJrGERSiB2ueB9Z3OCAnG7bui/L9ydflW3mzdnogBTop3n++jKNveVTOh0j+AgD3x/UjxXvOZI7FpnGhFQfD0nVgIlWTCvbkTr8gvnj7+EgOdSuHnQLBCQgECOatxt/b7T/jzPf3FF8uZ9fBRBLvql73V7WGoSCfiVY3AOTiA2qUwCGhRZ40q41MTJ0Hykzx/Ms67DqR0HWMrr++tIGkmWM
w6t5YP/VfYm3y/4I+F/ghH/n35egSYj7DPSa8D/pc9fgraL75WckOJstoTnT46WxLM3aZjHHbdo+Zj0Y2f1a7zmEn6Rrblebgf3RexeRvvXx9ChwEby7UD5b4lFhzoXTLktAF00Lb6nynpQD3oh5YvpDsaMUV7UQifNRSVYnELv1wJX1Yg+f0AvIuZQAteqlFWO0gGrazEgqfb7sXIb/c1Gp8GXG40YjDKM8j11cR2nU6eSrKtSlqN6O2mdOSNY0IQfao9KdDkRjByLFFuEaVAn5BzvbpiJQc3ljSqtOJyqY0Q228RZjevR7G9cu/9E0V+qk1jpHFMZzCpsNQzjlZOOJaOtHuNGNLIcJJnDTaONi3Fy/KRVImlJsXv2RpPHyEOkE9pSEI4LHc5wUkQW5aG8oZ00oukcTkfksrAAyGHR5yOiYSM7onLoDlWig4ZJRlDNaNZxaCWkwmWXuzDf6fV4o3c+Q71zZzj9zLl5MEIyHA1GGdsb7lovC9S6FATbRisAOxn2iM
d3UE0OYVAp2rydaEcoNVGgRe23NOnUVlLjR8TSpNjIawJWCtD7f5g4z8OyWLl2Klk+ciKUk7dChSLFeJ6YgDxkhFeYKmo6w1H8UcejTJJQRs1rKqgjEfjcaGbEbM1VVi1Zj1Et6f12e9gDijXIyg/kOKkR0i7O2qg4FITSniwDtWDGJ12oNZt5czCbXJf0wdjRtO/0XevJarxGf0IqAZLPRaev+LdNHrMaG3Hdt7WHd1Ks1mDwsnWIEVctaLV8yOh1vpyqjYL1dWLnlKIRh+ka0I9yiWxhnYEw8YJUmMbi0qfLqhXiJ7FmebHrQT+wJglsH3VktllL3N9oIWMafrqw/mha1IkGGcL+9MLH50Fh9cJDalYIBVWDYJB2M19ASK+rNaQHij5ciMCxJB+s1NCeooTqlxrGan6lFAypS4l1WnUoFXqMVPabITCdWMBV6hhUD3lZLy3EiVj1ypJofYx1QEApa4zrgtgLRgKdUjqKgl0bbiJe0rgnCdZI1i8TbjRZJ0W31jM
sFr8Q1RfhczjcgYf5zRylHKNGelaFmcfoo1QynjrLDfb2t0ttcgAi9r/5uxZ5U1Vf8kzUT0vC0oWUQHHqS3hIac9ksD9/zdqFTWPLYKAFMCSaRW+wOcRIYd3hfksbwxHew5NapTUQmVQDt+QG3Gj27Muv/mSEkpZMFonXF7PJZPc+UAbFtTdud00vKtvxQklSuvSgqjM3/sf84NvNT4i73vQCPx0UYDvYpcoUrjkSuPLGCsPxukiYd+jIzdzTrdlDMb1xBi5D/21NRUDnhpAIyomMFXO1wej3DwTRivNGUE1ahXuvUuSXlBLKY+TgNrGwjdSNMlwJ5AlLW8NOLL0UPUQ6c5SQdfr0lQzaB2UK34j7qnfrVh2L69MVHVaENz31Rw9pioCd3yM5HDPGV7il7mlxCNwyOqjSrPImKpdJoWq1CFJv0YlKZ+qI+C8S7SrVlFQVJsphnXkcdY41UQA+9hO9Mu0kosUwXb54poOvYvMyx8JWRxiUFP20V/3/XcmkIDwxT+RM
1Yd5ArVWPxLdOkRYTRbIDXy+SE+1IGhctdPjMNVnvRiDhlZfKDyWDlQDKrwSlyUiO26oteUT4vEiV3lZaglqnk3MaZ+OKimgWuOhOmC46V1j/vToAm2RhcX3ZdqzGPV6gRSTODWlB1/ZgjbMV5z62ZKG+IgHKXO2ZhyA7k9QGrZDEQLqo4hqlTHySiJZMXeAkqRLjmY8VmTSFsMmwfPqSJz6OZjiFds1K3oBKUnpTiu08VCVhURAc9G9dtkUAeptSDqlfs++cYnM4p002PpL+WbnxiE0g2PZ395eurlTlN7727q5uOuyrIDRlsh2boIi9ikebB+rlT+/AUsCcQJFgFRphVFsANR2iJDNQ9DtxXjPo3/47yY65rkgfVuFXnVI0k1qFaSHum94UcKmHpvw3spchn7tTDDy0kZtQ2TCkHzk0rbwYhpcfrJ0yuz/svFCuheyHM8nAS8bt6hl00hHgQaVNrpHwMxE4w0xWqd7Ku30F4++KKLDWJXiijWevtWtRY/WLxj5M
1bnM7JPA169Vr4L0t7yrqu+MurjqmCvCUL86InYhnI5HZfgNEdVbeq1pvlIEXNt2+QEBHsgORcLyxPZMEVpn2l4Xez/NghhCf7krem8OGARzNl6NX/GJwEhB0VmNeMkqbb5w6PueGkdIK4LzEvXcuY+sKKSrlKlZqV9Rxh9sxYtDYqunZENg4hFM3ZDhcqrzgO2NZqrfcDWlD2agVICKQp1BVunX1dCQLhl9HsMXnz9I0BXCUf4zN5v0p/OxB3pQdnZnHrGH41wHxsoJj4oSqXox7Yglur7t9P9ROd+NvhPrOTH5diy1Q/U1McVGPgP9PfFQCCvgcljBKKrlbpWzoYG7SKHG8YHqkOBTpXaVvsNTbqljlcNt4Ra8VUlpTZMqAUiM8+FwsEB6W+Ji4gIidV5FOsQGqf25tv4+JL59iT7+ojooXd+YwrUhVoGwwdMrvltm6g486gEtyscs2vMFR+xkZLfCiDnnDpkOHTaePqA4cAp4D9PLVIL4IxiBgjF/kymv1gYAM
FSRzsWQzgFxqMj8WMVQaZlsc15MTFRBtGJLWSyzwyslUbFn3hbajFKz/pU1dHFvKq8+SO3pofPn1mcsCloFMH9nAWoW7MeatVaJWPdHlul8zGq/VaiY1Sg/QIGePun2+mTYRM6mHGDQEmcBKF8806iNloo8W5dEQ5SZgoXZQg+a7d0Lypc3t5StyvEw8c/CMBqjOESZU6gMUPL0IRS93MbET9A4uYQEFmRkGfMAN/qc87Dz95xtnP6YgEAdJE4oarQ+xRIuKUhl0FmkWB3WEu48uJTB/ICNm4MFHM+TjsGyl51ddjb7OOw8Kbv/5sBNoOrUsTieLMi9R/nK17TxpVuvuyIwnu9jJFKGecuVSfnw6hBlj2JQDSA+vzC9ALLspUd6rwhp8+uytfU2rLU5fk4XVp0Q0JaF8HIW0thnzYDitnuayclVx5iLHgIqQEuZh3wXpPsZiAoZMVqTamCu+nbqxa5ETsx5wfFI2yjdv0ahKyebsAZYANSSdokrNSHpcsDMptEGdM
v/aPUB7c/ny/N0nds8HUn7aJ5vdkrmZHRF4yRPhA8yPZgjoDD6DwWPacrqiX0jTgItNozINRoXmsnBtMZhkHk2uBpIErpQp6PuI583oNuOZ06TQ6ZQQxeXs4FdlfjKLkQQx/K8LU2mIdwExI4cHovMqNR7OHodTxTOFHo/HyW0FIDAesdZO4tlCQLlnaV/vihWuA0v3GPbcffTo7p6HKKnJWWKUutwcTBKp1ChxNrpIu+4bnS9K1jg6rpE4jTk5DZrchP3KDe3RW/2soixSS1w/bVRZ8aTWR6JfxFD0hjYVkmGbDVmGzJ1jj4GdXx/kG3IH8uW/DAdeAhc+PdgxkGv4b6fc8PKAAYB9i1caHmzfqWyDHDhD1+GgfurWL3n+OcM5QPRN3o0veDe12o23EK/8KP30v1uxeGaVlHzjYZG2APmRh0/HWRwGAg8rB5GR2z3QioOJL1uDFaMMyLriir6DXmINrfQlahG4qtyJdc4qC2XdWONi/cE+tFvfs3s3lDZvrjNWuM
HG56/euLpKnnPpXVzDI0Z+I646acOLTPKKn3gcKBZFV0JQRbvOIIQoXLrPBG10cATO6ubKg0IVwsV1IjQw5ugDYZCrvXCCMcKELAWzPuoXZUr5IZF55qvIW8dw4ycl7patFMjQG1aDsRbNJInFriqkXMSGid2lO91u59J+SxlnkWEU+GcQQeI2+8AnCNOQEMyOoLw1BQF/EhGh551o0dAoYn4xglN2UBtnbOOVBpSEoUfiEoMEmV7YKsp7SKUivoMaFXWUjLRoUCR7ZjalyJWXQKvhS5EPWdI0d/P6azDRw8JWG5IzQT3+e06MHB0eH09sn1zdHG8VSyT97cU17E5P2/D42nle47Vj9woY9OpxaI8jZtj0uzhqFi4y8Ya/KHd8eHx8RiQ+N69xkp0BNb981JcQfgV2Pi4uPCwulasLjP7jnppU3I8QcH0+6SkGYByjWMV324UNTavLbX5cPRgcp4Ra0PNISQSjEcas/If6Fp3zxU1Nsszk6Ji5hSxA7KCjs6+joEM
oWbsikrHXAwRw/ulsSM2UjCcgC3/Ei/pXPnLvOzSswNHmlpHg1mwI1UYPZGWhriZknkUr8MzkYjAWVMv61ciMVO8mAwWOD4ixuSG5OhxcX3BlvGvudT6eOKcJksXKFw+7XI5POk02skU5IdMJdDWFgLKEcfuOy4IbkBVGCBP2ibX1FUSZQPaNtcf9p5wJNQFk87FF1Xalm0TymJl947FnRsBS7XHjazs/hG2IfwDzcvFgMjOBRFpGPe6fmV9W/X3IUFOHO1iIk1hmJlVN1DWGhkfr977vzBiUpIGeyh0tYlDGvEoQW1Zs7iknBZyTmGTkRB4f2xKEo/BYVdd6zMkXsCjd4j/28v9ekWE5kEzrSV6lCdqksurph/Xz/Wr0U500o/kcimnq/BF4WbnQVCyUqRaDNTKHDeDOxK9NNLRDq5SCepqmP7MTYx/Nh1Vc5CnVyoc9b7JfJKJn092UWMeYwitqem3pufzs+3E9vx89PdfAJyJgWTvjlKgRKwKGgRT2qgY/+7HM
JoGRWx3XwlNPzD++BadidkgDZr7vLNLWA07XPdk8uhiLnFOAF23Ce7ljUeB4IK/BBrx1fmJ1iXkRJwetzIcddS9ya7V9Vh4Y07wMgHB6R4UDWMc73ZF00f/nUNj/57FO9fxBnEm+68YoLPzsbHxzA0qCe1zcjGoH/LUq/mmLVz2FLxxfPHUerEQ6QvWiHLtGjwiV7a9iW8g5/ciF/h2jdHKIQhMMBF+POIAqgh36FDRLQvWc1uzyj8K+GzlakL+lmIHvpVoy22Es3I4rHIWO4dN/HD7l3+yBGBmB4uVx2K1s23TDckskXcmlMmuYLEq2Exopsg7mWVIt2W3s9hxLFYHE8wSNP95BkB2DpudzeLksOCN3ERb8C1WSsr885j7aMw9DPotBv1uLWehcXyh+VULNC6CfEe6HudKE5GvyPtG9DA7lsvfuQ8IfZwnSUb9JA+NBMJYdls0YgSP5FMU8hRkP3Ff/72IzWrQsW7fdd60zbRvWPK+cvCG2n2ZXnGLnxjGhdqEAM
gnHRhw0vrH3fSyKUk+p1GiWSGUW2fKNETKZs1niYpQKyEZZzMBf/nFizYGjtBiROvPIEc/YQ2Uu7PsYtnNgEE5J1unVTiy7+2xJtjW28lBADpBQY1yo0Ga0LK1VyetTjw3r0xvlamNdDaC8bBcxQo9mRjOXMRuPSh3mU01kE6WV4otRqzd+AvhKr/7m0PAEwor17gwKkgoOmXgurkb+QYGLIbDqcHxwvIpfJHBgscUCgZjNcgAUm/0RswjMxaiooE7/2KH7XvDzCPS5651TngfezUFeQGAV/eii/oDYXoUPfBaBmr3RObX8qx/iLgIeRHl/nsPu1aeHY0DdKZS/zinghafmw8v7ovvew89LOJewIRuMmIR/a13vvLJhR7bBuY5kpZWCEIcR8KrIPaKXiIi3yw3pzoof+B7/Yu9y78AuRaYWWwy1k7ayUSasyi/YLcjpFjZldH6KvUFuAKbIwC1ZmoENzMAsmxKdpc4Z+MVL9jwQbHETZv1SVYFPlaEGz/VlM1R5pM
rTjSN04bDcJ15HqrrrhmIVduuwsD5ziKg9LGzYjY3Hp2FtYp3UncaTBhbq4dqvKPb2cCw2S+A6eqdG/Y1VMgG2zeHqktmNEJsS0J3s5oxefx5SvB1Oe5uGRVo4BzB/8c0YDaq/h00dOD3ulPd98AX5h83Mg5RqCZuU7KaBHsyUqZ+EZ2IS97X4PYWxBbafGmrDUJzNX1R5CT5V/5M7VzMX7ppa/TsoP6/tNbtWbupppKW0xyrjiqwj6pT5qTLPYl13YLA8Kco8ZPc6Dy9LtX+lhOLiP64KYuNO1NjkqGw958Qe0zb4lZ/Sz+wM2YjGTWFgZ0Iz1G9O/nuj142oL66x0Yqn290xUS0tgxYS9/WTdIY+a2Jt7gho9i/vSwL+fvKk3Susn/HZfhymVC32vnbjmfPAQda9HosQgDYY6wjAOeJKctBuEuIp1BcvBbti1EylwEhYS4rND1R0vXJwLKS9+7LthtMdDzSY/I18qZC2575dkmx+r1zln+Qx5K0qJIfKsrbzxwM
nYHCxSau9omSDI0o+o8cCDytMJm64vIWyUn5y3/r+eH9t98gpRiW4UmkGlU1P3UVZcwASYnJ41H0s8TrVtO/+bviMWGXYuK67fti9qqve3WohUhkBsPnR3edzrhVVmfoiEoM/nAhKJV4Wn+zrOSeJGK1aT9e3kv9n6dNxTTIdDDT8VefNe4a+bvun2KM+rliCH6hrdr3momIjSm51PPrz3vtevd2joNbSSS02hMIgNrxcBwO27UljY0iPbEPrGDYRFwEAS23LAivy8YjsKivdw0m9RxChKc4I5EvTuHOQaFbYRTJhYBKsj0dX16+pPiM8XUpq/tTY0TAg4tBB4NmWNnV2L4cbU08bmfW9TWhYI/erbskITLKpLee8F2A7vU4IfLwVRWawsaHurx4pa5NobiSQYZRQcP2pZ8mu+xapjEy9LO1etaSflBfhe3GRedI5hIz0+vwWCZVh0Ff+La1QwGDaEuivjRqF6OIEDh8qunUxBQpRKDGzv4kiWs80CjTmIRmWJlgM
a1NgTCeiM7+aNezMPOUfIUAV4FuZfb1kdyIO54rNMAp07mfLzJ63Xoyn2XW9aLKCnSlJKAl8yqqNjNTcuvyQ6f2uaTS4uIesDLtWFyDIpN7piHUoUR/Qu+sKLNKrG2Kn9r5kUytUzqfPJgj2A/wwOAyFFNUU6O8oB+e0NySYzv++7PIut/6h1ur1guAkAhS3p70J8ULsUS7NdO6insr82SqxenO8ayXmWW/kfYTrTxeuYKhNCeGTN4iWnlD8tUj2laN9nbl+SxeQsseedPF0UkhZXLSwaSFMqkQOsQZQkBsBfuCTGItAUfnASQbsieIAlx/ab2NbTzZaAbZUCbAJ0FPiuGuMHckFcRQq4o9zBRykPAlOJdS6NkSqEaDpSZbv2AqKQhHES4gcYCs2oHo/ykj192GQBAQRHDi+Od7f9IMID7/fiw66y6MGQ7BO4C5+kjQZLUnlgJJk4OdokWmTfvIArMxUVdKhMO1CviFuyAwGAyHIFQCBGn70caxgFXn7fXe6c9g0M
DIYFwyNdb8Bdv2A8lxzWeGvMAQGZOcXNE8ASzuRZJovHAqGR2Uh5FAWGBxRTAJz4MngaVESHMYLeR9baA53y3NrDxRUxEAgYDgWRn0PAZVxtRB5iygWxnOHCCHc6J+6Lcs+pM0JDLacPx89IDzky31Js73NhK5WwNy0KFjACiLuQO28gpygkFs+Yfq4QXcUcnwadq3WzQqBoZx8MHC9Hg0ji+FOICocAt1S8jGx6zVT675iNxSwkgm+LeQ5Ohu1KgxD6BrO++XsLFTfEEmT3J4h6UZHR776mWROsNVfZGP0VX2PkcqE11OlUlk4V5qm2uusVTkbnO3n/hApjH5uA4MkdGJUvsNf/5gFCHQ9Ar8Xi92LR69Bk8r+UdK0Almc1LlTJqBpF253usI33G2CMjAvUfCgMxvYUN/e/dX2kmCJi9Hnkq/Rx0Wa72Q/MNyTCC3aXb6/Hke3ZaQXT5CuKGB8jX0QB434KWxqoqMuI6krVrTY9U6PCph/vvJmvr7IEIyc3monRM
53vpSAvIm137/j+E4EmP9hhvx9YDk5P6To5sdYp7NzBqmmPid+29PA068c3HQF+u/drpNIlXLVmntGDavJYMy9M5VI58ute2nfCe5qHO/rFC7S7B+094buMXoXPLDa4K6dhhLaBVsNwWuz0vqicrp82LP2wVBM6P9QAfwD3X8e+PetnlotDb4rF02Eima/51W02mTNuzzlsb3+YwxnzsfZx+Vwub4zm8Xk8YCFyG4gnZ3MVrgBxwhx+iu4gNeEz7aV0KtqHRJdxO1nxaJzlEnAZNysEZSYAFsAj5TKfI3P4GMAzznQ8cQkxRh5fyHyulIt4InsTFwCXIj4hxAOeIyBdlr8/rLs7bH9+vsMCL03l459qgYut2zHbX2I2YtxBk5rJG5+NN2XB0XBj9kbPohCH19sBwwucxvhPJs3I1dDS8wLzngc+Tw1MNVa66dGKU/GLRH0KO9iWOCyiyNEqt8hXmVMS/VNuFAVGVgiH0bRX7VM2SNAeVMe174JHm71Ok6VU7+uQdM
/VSj9plcz9qQyQX691dwOYwQx7QPmrw5ET46kimwGvw0/RNnrnAoRcplpRL9w1nrt+/ftnA9LmYktIiKc3QsbrzZ2BXTVfRg82Fas7MTEVR6JKzPtVEz6Zh1HWNd8VmUbSW6pggC+xzfD6sXandWKjVaGODY80aM2DTZUSmxbh1w6P1MLOk0qKf4x2ucamAhwWiO0pHU3HdOtaAfuDp8FTAFFr0LXDKQjqpO3k0knwzf6rf23epXVh5ucVeos0R1m7NTbLGp1UMRB08X+qRUeJ5UXpnhM7YbojbSKvdAaZ26+LUkf8d9ZzqmFrJ5TkWt8ZY1QExEVoNPdYHqJUGK0CKbHqsiyjPbK5OTWmuyqzQRTwC3lldUrzocqbERRMqqFvBSbRPr10fLJZp0l0W/VVaclX/VV+13tpoBcIzWbGYHFIONYFyf8WbCv29sZqkZZZ+hSlljaoxNOr3EFexsoy+MWJDjG0OI9cmDqd3/LbAwXHBN0cHtXiBYgvoP3GnHkYrY8xjRM
dh+7j6aE1DpFoQWSoxSZ8eg69SvDkESZ4cgqBm/SFcS1vA4jFRIK7UBvrwPl2PJPigkadgNUk1V+hDwU2RCOwGvF0WgwGfa6YQIImkIJ9i2CXIbNUDG/Y/qZ/QfKXBCi+bejznq7QNIEBKY46tT6e6sYOk40ezYiRHsx/WbpjYsN6LgKQJVBtZ28F8usf+/VVFKO641r+VlEsqxvJxioWeK0pQBrjHRkQnq0OcQlxLWXFy8HXPFrefLm/ZuIuG1yJ5RuzQSHr7C5g+o8sFDMobk1QiRg3j7FZBapNLw4NoKkP3Qw48hESDI2KqSXSy70SRVYzdX7TsbtZU4DLN5hF2PuDBKqaQI9XYaoU0KVEvnImHacBEEClYneBwOqdtFWVxJuVO0GOT8iTiN6rPSNEBCAwPM9la7yhgmdpTc6sXYiYrwsLgGsWkO0a7cp1rJhVN1fG0Zdz4okRmArN+ozoEg2uTIvmvBtNjNTUdgyDuWpsyihCyojQirACGfpT2AUxbDDdM8tM
R00tnHXdvgPjxsIEql4hNmjRuFIB1mEsFDb6emAyrSptBz700/jG7OpEARYsVkJRcMUxAJObjzYK1CtXmm/w3WLRutrJCdwCkjzlffWUJi4GLsC6YKHz9WhkfGRkS72KYp0URiN0rbahyFhIsSX7Ki8jvb/zqnpNRk4VJN72QPbN7b3XUEwOOWOcwh6HQjbN8GOs49mBa54wXH8QM3JEShsTyC7p7RqKd9KA6ejk+Dr0bBcKKINCidO7Akh+GAJqG0w1HM4FsLt9s3Ai1SbFETUVyT+B2QRNWeEG4GDViAF6eseZJx7jsFi6hj4kE+f/mSWbf+TQJTW21EWrvy8LtJiwrCzSfSH+wt71/9A6lev9pvYmrQVAocxVcACW0mWbGzMhuLJnYw9suVcB5atFmqEaQ72/uFBLvYmP++I6W/BKHHpDzjyRx9V7K3z1is4Ue9FrldaJGQ8D8t0D/QIcnNjV7pvKNro8WBBMvpWMTNRtU1OjlYVZ+xN9Lobwe7cbmvrnoHCZM
bw7l1AvMiMXYMkTE3EWk23BSbEdK/Di7SyGzLg2zt1Xczav9qrE0cBnZtWhndMc4778h0C3Hjb5mKgYT8b7YgV3pZY8cFmsF5ie3PatVt+3t18fM16Y++uRWeztPu7u3MAvz7zj4fE5eA8llpJJjqVcpMSRMimxlKsUahFVtIBSRBECZW7oanBtEhBGKadcdGWZ5HEKOX+6iFrkXZTbPV6B7s0yeTi46gB8j0nZElhXF7jFY4eBl4ni32zA/wW7QaEWKOp1zH0cMgoDP6nTLWmAN3qVOPjtxIMgch3Yy2QNguNhQih8x/2Y1QGlC7S94CgM3aus1ItG/vpbhlaFgUMzoPB1vPbob2hMLQRP6VgX9yhRtAOGxkID//l4hAKtIOKm7CorQ9H4+WiU0ODFNnlnx+95z+bYCjbX26AFaPJMuHrzATbGinGcW7MDjfCHu12cWuf9dKi9pwWN6Yj5i4CnJxIwrcs/NJFRb1BIIQqsR4H5UPgBJKoGA4vQqhdiUQjYIAT0BM
I2G2yZjCKzKaCEKXQQQEQ1osBJcjCQxwGIItAZOITvJl0PAxC2h3sm782I1A6WlA5oLvXAk9gEMmg6Vpyl4C2EIOCIaiakqpcEL4IgqpcoOBSO7g9G7HJ8iUxHIWBgYydWiERY1huwAREn88pzCTdJ0T39WmnuyYV7MclmmLDNmuTVUyXfD3zNphJmyH97wWWtD9syw7xIW0d1iZFaOgUm4CfT8KMiq9pdIGjiM70tNPgpqfJ/SNShcqBAHsxznRPp/bFHLREEiPjMmwwe4IX2DIpSP7UEeDi3455sJ8RaJe5U/xoi/U2+CFi9+gLJqC82eh3E0WtT4jQuwR09U40lbyQ71gm06g8xAj/HzkudGBYd9+UR0SeCEpHuj8cxn4adibFRk43x9QLlZ7d+q010si20KqfdaiJgA2JFw3TAe10ZCgOFExWrBnAOlrelItPNwTivHdObOFwbBD40i1mzfa8sZPCBL9oioCSYQFhSSh5yjVLle81RZBl8wFLZ+a5UgSL38RM
7kSCdMOtTBpGzcbkBDFBBGMNV8KFggvNkAjdW5wKO80gfSHAoKI7lyE58FU9zaTT/v6bMBgjkHhVRAQFEsyJfV44AiUmkIwkfoNj3w3ZqcR+8BxKWh8YnsHE4tXD05OfBMT225NZMLgN4jE3WAsEoLPsQeCRpDYta7qLT9zdJXAXawkDpJoo6Guh4iU0RDXURppkJhLKsbjidhqLBGP50ks0VKCjlgstyiIOoI09LjUbBESA5OlhECi0AK+Q+pZ17hjb/WOdT0kIAIvi+Df40fIZI7da7NlqCOlPOdu58wTzXOa7bNczVKp2dWVsG/sOv9pGCD5EX9OfKrgk6psMDLv7ZODFwvWYSEIMAeBoKFyWua2sXBM1mLjkW1xa37a05vo/CxgCEXEh+NhSKonGnya8ZX3usBHF5Cl+K7zwUBhKIoHBp+K46eJerk2iVSszrfbZmzAo1amIDFSKrLLURQ26y8ahp43HrfGxMHQy2k+3seG/ibhLHiYE8QBDcMkRbkteQsiTM
3I5gzrQxSmedlkEDOoApTBgeEvhKqohg0DtYFIWjhA5BLgjgUMcmUdl9FFxzaayufiBATzyOwq9KoYrQ8O/vjuHQD2nzseoMWDHB02b8kVZm0oeOG607YQ2khojmmCbz7ITemBNmkYQcOghGXkISeSo0ICBBYaAdsD870xFf8AoOcTUTCG/X3kbOY7YjhxD3kYcRm5HTJ4TA2k3K/clsIDUUx2n2OxE9mSnJbLkQZdfp6mZ+uU7JvBq7LmNHEdu00P8tCY34Og/2FCv1whhoHCUDxilVlR4svisBSw3VpFdkygSVR2j022kcSwfrAh9HR5wK8BMpzt0irvoXQHx9Df0126MrYwhBf02feBByEQIsKeOi9MS2N7JlAtUCLwoZOokBdIBarI3G6/FcY99GSNEE2KJUQSfrCfGEgIz/wshGPaj4Ic6wsF/JrmTKbdsbJFHUKiLSPQFTbGSzHouGafDwDaHaKRtaFKjmEBA30S5DN9DEy+jsb4n8EyuluH0lUZ94LcchM
cOCQCDhPttRRAfiELzrPBSLW9qmIxIRXQgdfACB6EeGZRCIJEKGwiYHkMc4SkuhgWi27gHC+YP2juZ/hUjAYefeXkWisN329EZe6yYJWAp/HBF3zxPPx9vi3LjdKGbJmatdcxEYW0TQ9/EIPGDZsHiJXtJ3cP3o2gSGtoX77UfFtNwidEN4FhdPIQ4jkZOIK6hxJIV6uRAxGaDDArnmgJGXC+oCwUYWEo0DzvXpGb1R3mAc09MZPY7Gv6HGkM3ppg2IMXjLNm2Itq2XVVNbgRhHFQO8FEL5RukiOjyR+tkCVEWblYFSgUmK5tCRKEcUki4Zy3WhKH7uUIkuCJrawBDmEE46BUqVSr0z3yRtl47481Jw0wnX8Omh2UoIRJkdSuevEWIlOvmyCUjBz9oXW9XsFVfNcdWo6n2z0I3CLYeqNnbs1374qA3WW5eDNx/Ibaref+/TxoeWtFx0e5KRQLQHVB1gMLy/4+3EKX719nE8oUtUqe9FYfehEbg8go2YxCLd2zMIhM
oCYfL4dM8uOGWSHkK84OECyo68lk+fi0YkY/FiXLhdLGt27qn3tIqPf47nhRinQRrNGWIdWgc/ucYOa0lLNYFz8sxgv2IsBbA3Ex+3ps7kvz4zgMK3tG7FUhT6QjMiIq7h1O6/1FMbCrKpiWmy4W47/+j91zxGf9//BEc44lbEY7z8IY9wpb+ybqCuLe8ujU/ljuT+e9ID53A54/ekpJ+lewEDPAd8xZFE7YKTMKUli/i56LrVDBL4A3NVEO87PgPzka8hSgtz0D8/q3Mf9eDAA/vBh5PbQHICiYMJ9BEk0mN6Hnns4D73g10XkwY+b0j2sMHWyv7mwWau4NI9mwKikKuKYiw+pYBAVkPMfhlB+OxcmjQGBp8EmP5u5jSCkSBSX94CHRG5SDOm+AUX3eH7CKnpdTM7vkI5bcSsgzJ29dnH94kITq5VVMqabUdt04OMvPkQFILzzJPIUoKQcqcLHrnONOTNS3mqw6Ndr8LDBpRHk0F47RKGpV5+OM7Aew76vwycoGM
GjYcEsNJ/RBIUK2IDGmyM27+Fmq8Flo4yrMruNRkQhyl/31HCeRhl7YUav0JIC0m9WH9EhNTOVlIJG3wIzzALsOAXa8A4kwbkwlqAYkRTpX19m3RMWGAovLBDQUWRE7NHqXYIlTSwDOzdVeIhA3eQ7ChQnp4dIXDr8P/TjzExAE8/A5Ru1Uoruy3jL/o1M9LFxtAwJ23lLldvlSvYYS3Dnu/EWiMRcfkngKVNp6lwIvFm0r6DhLYMuJAlYfJKFdDwKTnyZOctKO4tDoXZwlTh0GGMQ6lvVLJCHW4TmEJubyElITfQ5op3QvD6XQiHmw+xAX0z8B0I/puohSmvkJeFLtrpoQFUI3oxzWTR0sLWJEKoh1Uzfl0ji+neQC4A4pD4y3WkJDjIZAnZ/PHbc1tza2q1ubvFk1OReJAJVP3/I5TKrxwDA79hcVa/Q2MDAeCI7eGQUoB3LVjPBXRtZKupLZKf2qYjyQw4Ce64MMABHgB5vhE8yBgaH4OagABX3AEWUpJIKs+M
ChfjTnK1MkS/4ZaMiDTpNicAj2iynqwSNwWNtBzbCpCMREUPHbimpcHVlE9J5OyGczDlUKOwU1b2w6oA6n+KqjCn0et2Ep0THa0YnXFLyiGfFi4WLF/iRp9UMydH1rgDBTxYcBr9EzRfvRLse7Sw+ym9EChWjXMqwiFlXmCCcgEx3G7az5crZ9eAjy9e/sZXMOLHAai1xWI7NY1+IU+yDoa9giAd3EZvP7hPu4LVK2oEOlrFEXwCL8Tenfa+s2lnb0hNoycgsF9dHr8RICv3p1G4gCdS+Pv4E6R+ZvOUuLmhDGUUxK/MzZKdvNr6S+BRieITNIMiRl6Wma0URWMsigl0227iqlOUDPF52nkYDvbt2VC/g2Bzl6cKyAgLCKH0vID4ykfOZtkk8AE+SWyTh0ldvnFMgv0hYJ5JlGy45DxKrbYFTWbXKbRbyHre8uq/K/JyNOMI0eRthLIrWs3Hjg7Wc5Qp5YCnI1XzrsEszsLpj0BxYjcb3HOjsmqHgD9cyBI0Gm7XM
Ws08pd0a4f4JM4tukcBmpa4LaQJz3mL8jAGzA8MbIWUQ2Fzic44NPjlbhFwKfNQpbA9S2n5HubAL2VwHCBpkWRMlxWPKC91hbzemWbAZQMuzJvX+GKIJOStroEa4OD+gZMc3V5eo1dk8xjZGA/zzc3FAGL53g/ceQUYKQB7pJqYSpRBQuxdewQE4sHeD9ePNlwfXiw9e6H/YiEVuheXYiYVj4yhkM6LyQN/9qHsy8Sp6DG8nAV8yYOp8E7uxROtAFTsoKkcGV5VZWdJpWqJo19Q+zUXaaIGU54K+LkaUWEV4o2zH+nGQfAJC0WdZk7QLPwY9sSF8TuEOEIyV7JuEtuLfggdaOgwSxaXcBlGvWW8unq1958uyTSLgdHl0BXJxLth6nkMuWbjEol7yet8fyV5chXpRF+pfhS6f1k9To+SYifXJcXj0Hb///5VAOOnwOAiDbP1TWh/Ghj3nQw8aciIPSmZWmPmcHaKC+aqhlfbpseR0scNYTu/8kqwG/TfDjllDFGm4M
0ykc3Ktp054uJWR1SdWwQyUwyjZOcfz0YGKtiEj3Mrq6Vm2UKqKYrmtR8zrkLACNmLuTSuBlVNf6qq7oXaVUykjh8qBcVxxSXpDpYRIXb+DI55xfnOeppEkFF4QU8xOWlELJhxHpAjuF5HH8ji0jYXT+GiM47Qbs2OPHUruRYNmOs21E5tGVzWPd6Xmx6k7gVvitke0XAJCCEHv6BnczWj9LqWNjOzBpX61QXu+3zPkeabuXXTi5vL1CkgSz3L1ASxuzWT7qNrP/HX8u5lDfv842+tlW4NqMVNq9/JX40K7hFJD0zzoH2iGDJRPzmqXj88DmaCPdjMnBJ2yDbrrwXnmCcLMZJEi8y4lkQqZe6CQUYH+0Gg+/Oa0HKPXyLB5exi+PMqDge88moevzuHxxk0jZG7ycqwCUg7X26XGz5B/3h9CP9e9GpQfpP4f9ZTAH3/989+XrJyajrmVtQ0cPmNRYY4FtrCNHRxDQkaNgiUaPEciU6g2tjQ6g2nHYttzuDy+QCgSOM
zg6SZylLq4yucJNqXL38PTy9vH1858ToM7m8oViqVyp1uqNZqvd6fb6g+FoPJnO5ovlar3BhDIu5FZ5fhBG2lgXJ2lG7n6nkbpevmPR/gUth2M4cZyuxjNq4wWJx5mukY6jbpxvv3TP0LsuuQvtya0KHvvlUMAPEd1QytsD07TNb2poSsz1r4rTOEu1sUjLqEKPPTt06NypNxDlGZcEM0Hyd+mY5j9Ly7+ZDx3G2TDQrkOnLn1161Ebp6mI+4bm7ASI9AkZQItWNbGodl3qLis+hDR20EwgmFpz1TSbqWjxuMHECNqUmwMmK5xAq7EC2mUczzPhhFspTFin8z/W3zGT8eI1yMd1WunQv5e9x123IAyahxOHLnAYELthn/SmYMpidAR9z7VYNpwnFjI5NJWy1XCDIZIWxVHdHDgmxyNDkyYrKjYXlcuMus2AwGMW9ovhVwZHs70lAAA=) format('woff');
  font-weight: normal;
    text-align: center;
    overflow: hidden;
    background: #eaeaea;
    align-items: center;
    justify-content: center;
  body.mobile #text-video {
    font-family: 'Noto Mathcastles Remix', monospace;
    pointer-events: none;
    justify-content: center;
    align-items: center;
    -webkit-transform: scaleX(-1);
    background: #222222;
    font-size: 15px;
    justify-content: center;
    transform: scaleX(-1);
    -webkit-transform: scaleX(-1);
    cursor: pointer;
    justify-content: center;
    pointer-events: none;
    background: #fff;
    border: 1px solid #111;
    padding: 3px 10px;
 font-family: monospace;
    font-weight: 700;
    cursor: pointer;
    outline: inherit;
    border-radius: 3px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-family: monospace;
    text-align: center;
    margin-top: 20px;
    margin-bottom: 4px;
    background: #222;
    border-radius: 20px;
dow: 0 0 16px 0 rgba(0, 0, 0, 0.5);
    margin-bottom: 16px;
    margin-bottom: 0;
    font-size: 13px;
  <div id="wrapper">
      <video id="video">Portal is closed.</video>
      <canvas id="canvas-video"></canvas>
    <div id="frame">
      <div id="text-video"></div>
      <div id="header">
 You are the art in Chainspace.app
    <button id="stop">Wave</button>
    function run() {
      function isMobileDevice() {
        return (typeof window.orientation !== "undefined") || (navigator.userAgent.indexOf('IEMobile') !== -1);
      const video = document.getElementById('video')
      video.setAttribute('autoplay', '');
      video.setAttribute('muted', '');
      video.setAttribute('playsinline', '')
      const textVideo = document.getElementById('text-video')
      const canvas = document.getElementById('canvas-video')
      const ctx = canvas.getContext('2d',M
 { willReadFrequently: true });
      let cyclerEnabled = false;
      let cycler = 0;
      let isMobile = isMobileDevice();
      const chars = [..."
      const colors = ["#2bc292", "#fd7772", "#6e7de2", "#2bc292", "#6e7de2", "#00ff00", "#6e7de2", "#ffffff", "#ffffff", "#6e7de2", ];
      let running = true;
      function setCanvasSize() {
        w = Math.min(window.innerWidth, 450);
h.min(window.innerHeight, isMobileDevice() ? 600 : 450);
        height = Math.floor(h / 10);
        width = Math.floor(w / 6.9);
      let resizeTimeout;
      window.onresize = function () {
        clearTimeout(resizeTimeout);
        resizeTimeout = setTimeout(setCanvasSize, 100);
      const init = () => {
        setCanvasSize();
        document.body.classList.add(isMobile ? 'mobile' : null)
        navigator.mediaDevices.getUserMedia({ video: true, audio: false })
          .then(functiM
            video.srcObject = stream;
            video.play();
          .catch(function (err) {
            running = false;
      const render = (ctx) => {
        if (width && height) {
          canvas.width = width;
          canvas.height = height;
          ctx.drawImage(video, 0, 0, width, height);
      const getPixelsGreyScale = (ctx) => {
        const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
        const data M
        const res = new Array(height).fill(0).map(() => []);
        for (let i = 0, c = 0; i < data.length; i += 4) {
          const avg = (data[i] + data[i + 1] + data[i + 2]) / 3;
          let curr = res[row]
          curr.push(avg)
          if (c < width) {
          if (c === width) {
            row += 1
        if (isMobile) {
          return res.map(row => row.slice(row.length / 4, row.length - rM
      const getCharByScale = (scale) => {
        const val = Math.floor((scale + cycler) / 255 * (chars.length));
        return chars[val % chars.length];
      const getColorByScale = (scale) => {
        const val = Math.floor((scale + cycler) / 255 * (colors.length));
        return colors[val % colors.length];
      const renderText = (node, textDarkScale) => {
        let gap = isMobileDevice() ? 15 : 10;
        const gridElem = docM
ument.createElement('div');
        gridElem.className = 'grid';
        gridElem.style.gridTemplateColumns = `repeat(${textDarkScale[0].length}, ${gap}px)`;
        gridElem.style.gridTemplateRows = `repeat(${textDarkScale.length}, ${gap}px)`;
        for (let i = 0; i < textDarkScale.length; i++) {
          for (let k = 0; k < textDarkScale[i].length; k++) {
            const textElem = document.createElement('p');
            textElem.style.color = getColorByScale(textDarkScale[i][k]);
            textElem.innM
erHTML = getCharByScale(textDarkScale[i][k]);
            gridElem.appendChild(textElem);
        node.textContent = "";
        node.appendChild(gridElem);
      const frame = () => requestAnimationFrame(() => {
        const chars = getPixelsGreyScale(ctx)
        renderText(textVideo, chars)
        if (running) {
        if (cyclerEnabled) {
      document.getElMr
ementById('stop').addEventListener('click', (e) => {
        running = !running
        if (running) {
      document.getElementById('text-video').onclick = () => {
        cyclerEnabled = !cyclerEnabled;
    window.addEventListener('DOMContentLoaded', () => {
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
$ &%# #"(-90(*6+"#2D26;=@@@&0FKE>J9?@=
=)#)==================================================
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
((((((((((((((((((((((((((((((((((((((((((((((((((
text/html;charset=utf-8
 <title>Pings by BlockMachine</title>
 <meta http-equiv="Content-Security-Policy"
       content="default-src 'self';
          script-src 'self'
          'sha256-0OQY+oY8VZn1HwMBj1DoZwU0d8G/ZarcCQ9YtwIhIW4='
          'sha256-C9Pc74x5BP660fRg4HJ6AmFM9IpoprZO7TSDFKmjYzw='
          style-src 'sha256-Sh//NQYMlQLF5kyAhsCUatWdECWNo3+cBafUe9XCfpE='">
 <meta charset="utf-8"/>
 let lineThickness = 1
 let wiggleSpeedIdx = 0
 let wiggleStrengthIdx = 0
 let shapeSizesDensity = 4
 let paletteIndex = 0
 let lineColorIdx = 0;
 let shapeColorIdx = 0;
 let shadowColorIdx = 0;
 let emitColorIdx = 0;
 let openShape = false;
 let hasTexture = false;
 urlParams = new URLSearchParams(window.location.search);
 tokenParamsEnc = urlParams.get('tp')
f (tokenParamsEnc == null) {
  if (tokenParamsEnc.startsWith("enc:")) {
   tokenParamsStr = atob(urlUnfriendly(tokenParamsEnc))
   tokenParamsStr = tokenParamsEnc;
  parseInputString(tokenParamsStr);
 function parseInputString(tokenParamsStr) {
  console.log("tokenParamsStr", tokenParamsStr);
  input = JSON.parse(tokenParamsStr)
  tokenId = input[i++]
  numX = input[i++];
  numY = input[i++];
  paletteIndex = input[i++];
  hasTexture = input[i++];
enShape = input[i++];
  lineColorIdx = input[i++];
  paintIdx = input[i++];
  shapeColorIdx = input[i++];
  emitColorIdx = input[i++];
  shadowColorIdx = input[i++];
  shapeSizesDensity = input[i++];
  lineThickness = input[i++];
  emitRate = input[i++];
  wiggleSpeedIdx = input[i++];
  wiggleStrengthIdx = input[i++];
  console.log('tokenId', tokenId)
  console.log('numX', numX)
  console.log('numY', numY)
  console.log('paletteIndex', paletteIndex)
  console.log('hasTexture', hasTexture)
  console.log('openShapeM
  console.log('lineColorIdx', lineColorIdx)
  console.log('paintIdx', paintIdx)
  console.log('shapeColorIdx', shapeColorIdx)
  console.log('emitColorIdx', emitColorIdx)
  console.log('shadowColorIdx', shadowColorIdx)
  console.log('shapeSizesDensity', shapeSizesDensity)
  console.log('lineThickness', lineThickness)
  console.log('emitRate', emitRate)
  console.log('wiggleSpeedIdx', wiggleSpeedIdx)
  console.log('wiggleStrengthIdx', wiggleStrengthIdx)
 function urlUnfriendly(str) {
'===').slice(0, str.length + (4 - (str.length % 4)) % 4);
  return str.replace(/-/g, '+').replace(/_/g, '/');
  "ff4b3e-36213e-c45baa-32936f-f7b801",
  "264653-2a9d8f-e9c46a-f4a261-e76f51",
  "ff0a54-ff477e-ff5c8a-ff7096-ff85a1-ff99ac-fbb1bd-f9bec7-f7cad0-fae0e4",
  "d8e2dc-ffe5d9-ffcad4-f4acb7-9d8189",
  "2ebed9-795ec1-26e3e3-e83de1-f5f84b",
  "433158-8988a0-e8d9be-a87775-6ba2c9-e2dcde",
  "6C4A35-6d1f09-a05d32-cfa57b-f6e9d6",
  "8d2a00-b55219-be6731-76704c-545e46-1f2d16",
-90f505-01f5bb-037df4-af31f5-F50561",
  "2d00f7-6a00f4-8900f2-a100f2-b100e8-bc00dd-d100d1-db00b6-e500a4-f20089",
  "e574bc-ea84c9-ef94d5-f9b4ed-eabaf6-dabfff-c4c7ff-adcfff-96d7ff-7fdeff",
  "ff99c8-fcf6bd-d0f4de-a9def9-e4c1f9",
  "001427-708d81-f4d58d-bf0603-8d0801",
  "d6d6d6-ffee32-F5C800-202020-333533",
  "03b5aa-037971-023436-00bfb3-049a8f",
  "f9f0a1-d8d085-718f8d-5ecbdf-90e7f8-c8f2fe",
  "c6a477-eed7a3-f7ead7-d3e7ee-abd1dc-7097a8",
  "c8823c-1d181d-bb5f36-769ea0",
 const refreshRate = 60;
 const maxShape = 8;
 const chargeSpeed = 0.05;
 let started = false;
 let speeds = [1, 30];
 let displaySpeed = speeds[speedIdx];
 let seeds = tokenId;
 let bgCurvePoints = []
 let pressurePoints = [];
 let wiggleSpeeds = [0.1, 0.05, 0.01]
 let wiggleStrengths = [0, 5, 10, 20]
 function Q5(e){return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100;n.height=100;n.canvas.width=n.width;n.canvas.height=n.height;"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",function(){document.body.appendChild(n.canvas)}));m();n.MAGIC=161533525;n.RGB=0;n.HM
SV=1;n.HSB=1;n.CHORD=0;n.PIE=1;n.OPEN=2;n.RADIUS=1;n.CORNER=2;n.CORNERS=3;n.ROUND="round";n.SQUARE="butt";n.PROJECT="square";n.MITER="miter";n.BEVEL="bevel";n.CLOSE=1;n.BLEND="source-over";n.REMOVE="destination-out";n.ADD="lighter";n.DARKEST="darken";n.LIGHTEST="lighten";n.DIFFERENCE="difference";n.SUBTRACT="subtract";n.EXCLUSION="exclusion";n.MULTIPLY="multiply";n.SCREEN="screen";n.REPLACE="copy";n.OVERLAY="overlay";n.HARD_LIGHT="hard-light";n.SOFT_LIGHT="soft-light";n.DODGE="color-dodge";n.BURN="color-burn";n.NORM
MAL="normal";n.ITALIC="italic";n.BOLD="bold";n.BOLDITALIC="italic bold";n.CENTER="center";n.LEFT="left";n.RIGHT="right";n.TOP="top";n.BOTTOM="bottom";n.BASELINE="alphabetic";n.LANDSCAPE="landscape";n.PORTRAIT="portrait";n.ALT=18;n.BACKSPACE=8;n.CONTROL=17;n.DELETE=46;n.DOWN_ARROW=40;n.ENTER=13;n.ESCAPE=27;n.LEFT_ARROW=37;n.OPTION=18;n.RETURN=13;n.RIGHT_ARROW=39;n.SHIFT=16;n.TAB=9;n.UP_ARROW=38;n.HALF_PI=Math.PI/2;n.PI=Math.PI;n.QUARTER_PI=Math.PI/4;n.TAU=2*Math.PI;n.TWO_PI=2*Math.PI;n.THRESHOLD=1;n.GRAY=2;n.OPAQUE=M
3;n.INVERT=4;n.POSTERIZE=5;n.DILATE=6;n.ERODE=7;n.BLUR=8;n.ARROW="default";n.CROSS="crosshair";n.HAND="pointer";n.MOVE="move";n.TEXT="text";n.VIDEO={video:!0,audio:!1};n.AUDIO={video:!1,audio:!0};n.SHR3=1;n.LCG=2;n.HARDWARE_FILTERS=!0;n.hint=function(e,t){n[e]=t};n.frameCount=0;n.mouseX=0;n.mouseY=0;n.pmouseX=0;n.pmouseY=0;n.mouseButton=null;n.keyIsPressed=!1;n.mouseIsPressed=!1;n.key=null;n.keyCode=null;n.pixels=null;n.accelerationX=0;n.accelerationY=0;n.accelerationZ=0;n.rotationX=0;n.rotationY=0;n.rotationZ=0;n.M
relRotationX=0;n.relRotationY=0;n.relRotationZ=0;n.pAccelerationX=0;n.pAccelerationY=0;n.pAccelerationZ=0;n.pRotationX=0;n.pRotationY=0;n.pRotationZ=0;n.pRelRotationX=0;n.pRelRotationY=0;n.pRelRotationZ=0;n.touches=[];n._colorMode=n.RGB;n._noStroke=!1;n._noFill=!1;n._ellipseMode=n.CENTER;n._rectMode=n.CORNER;n._curveDetail=20;n._curveAlpha=0;n._noLoop=!1;n._textFont="sans-serif";n._textSize=12;n._textLeading=12;n._textStyle="normal";n._pixelDensity=1;n._frameRate=null;n._tint=null;let a=null;let r=!0;let i=[];let lM
=null;let u=0;let s={};let c=0;let h=null;let f=null;let d=null;Object.defineProperty(n,"deviceOrientation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}});Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}});Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}});Object.defineProperty(n,"drawingContext",{get:function(){return o}});n.createCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t,m()};n.resM
izeCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t};n.createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o};n.pixelDensity=function(e){return null==e?n._pixelDensity:(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),m(),n._pixelDensity)};n.map=function(e,t,n,o,a,r){let i=o+1*(e-t)/M
(n-t)*(a-o);return r?o<a?Math.min(Math.max(i,o),a):Math.min(Math.max(i,a),o):i};n.lerp=function(e,t,n){return e*(1-n)+t*n};n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)};n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])};n.norm=function(e,t,o){return n.map(e,t,o,0,1)};n.sq=function(e){return e*e};n.fract=function(e){return e-Math.floor(e)};n.degrees=funcM
tion(e){return 180*e/Math.PI};n.radians=function(e){return e*Math.PI/180};n.abs=Math.abs;n.ceil=Math.ceil;n.exp=Math.exp;n.floor=Math.floor;n.log=Math.log;n.mag=Math.hypot;n.max=Math.max;n.min=Math.min;n.round=Math.round;n.sqrt=Math.sqrt;n.sin=Math.sin;n.cos=Math.cos;n.tan=Math.tan;n.asin=Math.asin;n.acos=Math.acos;n.atan=Math.atan;n.atan2=Math.atan2;n.Vector=function(e,t,o){let a=this;a.x=e||0,a.y=t||0,a.z=o||0;let r=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n||0}:{x:e,y:e,z:e}}function uM
(){null==i&&(i=a.x*a.x+a.y*a.y+a.z*a.z,r=Math.sqrt(i))}function s(){i=null,r=null}a.set=function(e,t,n){a.x=e||0,a.y=t||0,a.z=n||0},a.copy=function(){return new n.Vector(a.x,a.y,a.z)},a.add=function(){let e=l.apply(null,arguments);return a.x+=e.x,a.y+=e.y,a.z+=e.z,s(),a},a.rem=function(){let e=l.apply(null,arguments);return a.x%=e.x,a.y%=e.y,a.z%=e.z,s(),a},a.sub=function(){let e=l.apply(null,arguments);return a.x-=e.x,a.y-=e.y,a.z-=e.z,s(),a},a.mult=function(){let e=l.apply(null,arguments);return a.x*=e.x,a.y*=e.yM
,a.z*=e.z,s(),a},a.div=function(){let e=l.apply(null,arguments);return a.x/=e.x,a.y/=e.y,a.z/=e.z,s(),a},a.mag=function(){return u(),r},a.magSq=function(){return u(),i},a.dot=function(){let e=l.apply(null,arguments);return a.x*e.x+a.y*e.y+a.z*e.z},a.dist=function(){let e=l.apply(null,arguments),t=a.x-e.x,n=a.y-e.y,o=a.z-e.z;return Math.sqrt(t*t+n*n+o*o)},a.cross=function(){let e=l.apply(null,arguments),t=a.y*e.z-a.z*e.y,n=a.z*e.x-a.x*e.z,o=a.x*e.y-a.y*e.x;return a.x=t,a.y=n,a.z=o,s(),a},a.normalize=function(){u();lM
et e=r;return a.x/=e,a.y/=e,a.z/=e,r=1,i=1,a},a.limit=function(e){u();let t=r;if(t>e){let n=e/t;a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e}return a},a.setMag=function(e){u();let t=r,n=e/t;return a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e,a},a.heading=function(){return Math.atan2(a.y,a.x)},a.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=a.x*t-a.y*n,r=a.x*n+a.y*t;return a.x=o,a.y=r,a},a.angleBetween=function(){let e=l.apply(null,arguments);const t=a.dot(e)/(a.mag()*e.mag());let n;return n=Math.acos(Math.min(1,Math.max(-1,t))),n*=MathM
.sign(a.cross(e).z||1)},a.lerp=function(e,t){return a.x=a.x*(1-t)+e.x*t,a.y=a.y*(1-t)+e.y*t,a.z=a.z*(1-t)+e.z*t,s(),a},a.reflect=function(e){return e.normalize(),a.sub(e.mult(2*a.dot(e)))},a.array=function(){return[a.x,a.y,a.z]},a.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-a.x)<t&&Math.abs(e.y-a.y)<t&&Math.abs(e.z-a.z)<t},a.fromAngle=function(e,t){return null==t&&(t=1),r=t,i=t*t,a.x=t*Math.cos(e),a.y=t*Math.sin(e),a.z=0,a},a.fromAngles=function(e,t,n){null==n&&(n=1),r=n,i=n*n;M
const o=Math.cos(t),l=Math.sin(t),u=Math.cos(e),s=Math.sin(e);return a.x=n*s*l,a.y=-n*u,a.z=n*s*o,a},a.random2D=function(){return r=1,i=1,a.fromAngle(Math.random()*Math.PI*2)},a.random3D=function(){return r=1,i=1,a.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},a.toString=function(){return`[${a.x}, ${a.y}, ${a.z}]`}};n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)};n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)};n.Vector.sub=function(e,t){return new n.VM
ector(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):new n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)};n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)};n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)};n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-o)+t.x*o,e.y=e.y*(1-o)+t.y*o,M
e.z=e.z*(1-o)+t.z*o)};n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAngles","random2D","random3D"])n.Vector[e]=function(t,o,a){return(new n.Vector)[e](t,o,a)};n.createVector=function(e,t,o){return new n.Vector(e,t,o)};n.curvePoint=function(e,t,n,o,a){const r=a*a*a,i=a*a,l=-.5*r+i-.5*a,u=1.5*r-2.5*i+1,s=-1.5*r+2*i+.5*a,c=.5*r-.5*i;return e*l+t*u+n*s+o*c};n.bezierPoint=function(e,t,n,o,a){const r=1-a;return Math.pow(r,3)*e+3*Math.pow(r,2)*a*t+3*r*Math.pow(a,2)*n+Math.pow(a,3)*o};M
n.curveTangent=function(e,t,n,o,a){const r=a*a,i=-3*r/2+2*a-.5,l=9*r/2-5*a,u=-9*r/2+4*a+.5,s=3*r/2-a;return e*i+t*l+n*u+o*s};n.bezierTangent=function(e,t,n,o,a){const r=1-a;return 3*o*Math.pow(a,2)-3*n*Math.pow(a,2)+6*n*r*a-6*t*r*a+3*t*Math.pow(r,2)-3*e*Math.pow(r,2)};function p(e,t,n){let o,a,r,i,l,u,s,c,h;if(0==t)return[255*(o=n),255*(a=n),255*(r=n)];switch((i=e)>360&&(i=0),s=n*(1-t),c=n*(1-t*(u=(i/=60)-(l=~~i))),h=n*(1-t*(1-u)),l){case 0:o=n,a=h,r=s;break;case 1:o=c,a=n,r=s;break;case 2:o=s,a=n,r=h;break;case 3:M
o=s,a=c,r=n;break;case 4:o=h,a=s,r=n;break;default:o=n,a=s,r=c}return[255*o,255*a,255*r]}n.Color=function(e,t,n,o){let a=this;a.MAGIC=786698,a._r=e,a._g=t,a._b=n,a._a=o,a._h=0,a._s=0,a._v=0,a._hsvInferred=!1,a.setRed=function(e){a._r=e,a._hsvInferred=!1},a.setGreen=function(e){a._g=e,a._hsvInferred=!1},a.setBlue=function(e){a._b=e,a._hsvInferred=!1},a.setAlpha=function(e){a._a=e/255,a._hsvInferred=!1},a._inferHSV=function(){a._hsvInferred||([a._h,a._s,a._v]=function(e,t,n){let o,a,r,i,l;if(o=e<t?e<n?e:n:t<n?t:n,0==M
(l=100*(a=e>t?e>n?e:n:t>n?t:n)/255))return[r=0,i=0,l];if(0==(i=100*(a-o)/a))return[r=0,i,l];r=a==e?0+60*(t-n)/(a-o):a==t?120+60*(n-e)/(a-o):240+60*(e-t)/(a-o);return[r,i,l]}(a._r,a._g,a._b),a._hsvInferred=!0)},a.toString=function(){return`rgba(${Math.round(a._r)},${Math.round(a._g)},${Math.round(a._b)},${~~(1e3*a._a)/1e3})`}};n.colorMode=function(e){n._colorMode=e};n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGIC)return arguments[0];if(n._colorMode==n.RGB){if(1==arguments.length)return new n.CoM
lor(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);if(3==arguments.length)returM
n new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null};n.red=function(e){return e._r};n.green=function(e){return e._g};n.blue=function(e){return e._b};n.alpha=function(e){return 255*e._a};n.hue=function(e){return e._inferHSV(),e._h};n.saturation=function(e){return e._inferHSV(),e._s};n.brightness=function(e){return e._inferHSV(),e._v};n.lightness=function(e){return 100*(.2126*e._rM
+.7152*e._g+.0722*e._b)/255};n.lerpColor=function(e,t,o){return n._colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var a=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.map(o,0,1,e,t-360)]];return a.sort((e,t)=>e[0]-t[0]),(a[0][1]+720)%360}(e._h,t._h,o),0,360),n.consM
train(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))};function m(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}n.strokeWeight=function(e){n._noStroke=!1,o.lineWidth=e};n.stroke=function(){if(n._noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noStroke=!0:o.strokeStyle=e};n.noStroke=function(){n._noStroke=!0};n.fill=function(){if(n._noFill=!1,"stM
ring"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noFill=!0:o.fillStyle=e};n.noFill=function(){n._noFill=!0};n.blendMode=function(e){o.globalCompositeOperation=e};n.strokeCap=function(e){o.lineCap=e};n.strokeJoin=function(e){o.lineJoin=e};n.ellipseMode=function(e){n._ellipseMode=e};n.rectMode=function(e){n._rectMode=e};n.curveDetail=function(e){n._curveDetail=e};n.curveAlpha=function(e){n._curveAlpha=e};n.curveTightness=function(e){console.warn("curveTigM
htness() sets the 'alpha' parameter of Catmull-Rom curve, and is NOT identical to p5.js counterpart. As this might change in the future, please call curveAlpha() directly."),n._curveAlpha=e};n.clear=function(){o.clearRect(0,0,n.width,n.height)};n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),"string"==typeof arguments[0]?o.fillStyle=arguments[0]:o.fillStyle=n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.heM
ight),o.restore()};n.line=function(e,t,a,r){n._noStroke||(o.beginPath(),o.moveTo(e,t),o.lineTo(a,r),o.stroke())};function g(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function v(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;let c=g(i),h=g(l);o.beginPath();for(let i=0;i<s+1;i++){let l=i/s,u=n.lerp(c,h,l),f=Math.cos(u)*a/2,d=Math.sin(u)*r/2;o[i?"lineTo":"moveTo"](e+f,t+d)}u==n.CHORD?o.closePath():u==n.PIE&&(o.lineTo(e,t),o.closePath()),n._noFill||o.fill(),n._noSM
troke||o.stroke()}n.arc=function(e,t,o,a,r,i,l,u){if(r==i)return n.ellipse(e,t,o,a);null==u&&(u=25),null==l&&(l=n.PIE),n._ellipseMode==n.CENTER?v(e,t,o,a,r,i,l,u):n._ellipseMode==n.RADIUS?v(e,t,2*o,2*a,r,i,l,u):n._ellipseMode==n.CORNER?v(e+o/2,t+a/2,o,a,r,i,l,u):n._ellipseMode==n.CORNERS&&v((e+o)/2,(t+a)/2,o-e,a-t,r,i,l,u)};function M(e,t,a,r){n._noFill&&n._noStroke||(o.beginPath(),o.ellipse(e,t,a/2,r/2,0,0,2*Math.PI),n._noFill||o.fill(),n._noStroke||o.stroke())}n.ellipse=function(e,t,o,a){null==a&&(a=o),n._ellipseM
Mode==n.CENTER?M(e,t,o,a):n._ellipseMode==n.RADIUS?M(e,t,2*o,2*a):n._ellipseMode==n.CORNER?M(e+o/2,t+a/2,o,a):n._ellipseMode==n.CORNERS&&M((e+o)/2,(t+a)/2,o-e,a-t)};n.circle=function(e,t,o){return n.ellipse(e,t,o,o)};n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()};function _(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;if(null==i)return function(e,t,a,r){n._noFill||o.fillRect(e,t,a,r);n._noStroke||o.strokeRect(e,t,a,r)}(e,t,a,r);if(null==l)return _(e,t,a,r,M
i,i,i,i);const c=Math.min(Math.abs(r),Math.abs(a))/2;i=Math.min(c,i),l=Math.min(c,l),s=Math.min(c,s),u=Math.min(c,u),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+a,t,e+a,t+r,l),o.arcTo(e+a,t+r,e,t+r,u),o.arcTo(e,t+r,e,t,s),o.arcTo(e,t,e+a,t,i),o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke()}n.rect=function(e,t,o,a,r,i,l,u){n._rectMode==n.CENTER?_(e-o/2,t-a/2,o,a,r,i,l,u):n._rectMode==n.RADIUS?_(e-o,t-a,2*o,2*a,r,i,l,u):n._rectMode==n.CORNER?_(e,t,o,a,r,i,l,u):n._rectMode==n.CORNERS&&_(e,t,o-e,a-t,r,i,l,u)};n.sM
quare=function(e,t,o,a,r,i,l){return n.rect(e,t,o,o,a,r,i,l)};function x(){i=[]}n.beginShape=function(){x(),o.beginPath(),r=!0};n.beginContour=function(){o.closePath(),x(),r=!0};n.endContour=function(){x(),r=!0};n.vertex=function(e,t){x(),r?o.moveTo(e,t):o.lineTo(e,t),r=!1};n.bezierVertex=function(e,t,n,a,r,i){x(),o.bezierCurveTo(e,t,n,a,r,i)};n.quadraticVertex=function(e,t,n,a){x(),o.quadraticCurveTo(e,t,n,a)};n.bezier=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.bezierVertex(o,a,r,i,l,u),n.endShape()}M
;n.triangle=function(e,t,o,a,r,i){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.endShape(n.CLOSE)};n.quad=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.vertex(l,u),n.endShape(n.CLOSE)};n.endShape=function(e){x(),e&&o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke(),n._noFill&&n._noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())};n.curveVertex=function(e,t){if(i.push([e,t]),i.length<4)return;let a=i[i.length-4],l=i[i.length-3],u=i[i.length-2],s=i[M
i.length-1],c=function(e,t,n,o,a,r,i,l,u,s){function c(e,t,n,o,a,r){let i=Math.pow(o-t,2)+Math.pow(a-n,2),l=Math.pow(i,.5*r);return l+e}let h=[],f=c(0,e,t,n,o,s),d=c(f,n,o,a,r,s),p=c(d,a,r,i,l,s);for(let s=0;s<u;s++){let c=f+s/(u-1)*(d-f),m=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<m.length;e+=2)isNaN(m[e])&&(m[e]=1,m[e+1]=0),isFinite(m[e])||(m[e]>0?(m[e]=1,m[e+1]=0):(m[e]=0,m[e+1]=1));let g=e*m[0]+n*m[1],v=t*m[0]+o*m[1],MM
=n*m[2]+a*m[3],_=o*m[2]+r*m[3],x=a*m[4]+i*m[5],y=r*m[4]+l*m[5],w=g*m[6]+M*m[7],R=v*m[6]+_*m[7],I=M*m[8]+x*m[9],E=_*m[8]+y*m[9],S=w*m[2]+I*m[3],C=R*m[2]+E*m[3];h.push([S,C])}return h}(...a,...l,...u,...s,n._curveDetail,n._curveAlpha);for(let e=0;e<c.length;e++)r?o.moveTo(...c[e]):o.lineTo(...c[e]),r=!1};n.curve=function(e,t,o,a,r,i,l,u){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,a),n.curveVertex(r,i),n.curveVertex(l,u),n.endShape()};n.translate=function(e,t){o.translate(e,t)};n.rotate=function(e){o.rotate(e)}M
;n.scale=function(e,t){null==t&&(t=e),o.scale(e,t)};n.applyMatrix=function(e,t,n,a,r,i){o.transform(e,t,n,a,r,i)};n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)};n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)};n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)};n.pushMatrix=n.push=function(){o.save()};n.popMatrix=n.pop=function(){o.restore()};n.image=function(e,t,a,r,i,l,u,s,c){let h=e.MAGIC==n.MAGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;letM
 t=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(!function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d"));null==e&&(e=o.canvas.width,t=o.canvas.height);f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tinted(n._tint)),r?l?(s||(s=h.width),c||(c=h.height),o.drawImage(h,l,u,s,c,M
t,a,r,i),void d()):(o.drawImage(h,t,a,r,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,a,e.width,e.height):o.drawImage(h,t,a,e.videoWidth,e.videoHeight),void d())};n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data};n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)};n.loadImage=function(e,t){u++;let o=n.createGraphics(100,100),a=o.canvas.getContext("2d"),r=new Image;return r.src=e,r.crossOrigin="Anonymous",r.onload=function(){a.canvas.width=r.width,a.canvas.M
height=r.height,o.width=r.width,o.height=r.height,a.drawImage(r,0,0),u--,t&&t(o)},o};let y={};y[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}};y[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}};y[n.OPAQUE]=function(e){for(let t=0;t<e.length;t+=4)e[t+3]=255};y[n.INVERT]=function(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],eM
[t+2]=255-e[t+2]};y[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n};y[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.max(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.ERODE]=function(e){R(),d.seM
t(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.min(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let a=2*t+1;let r=function(e){let n=new Float32Array(e),o=.3*t+.8,a=o*o*2;for(let t=0;t<e;t++){let r=t-e/2,i=Math.exp(-r*r/a)/(2.5066282746*o);n[t]=i}M
return n}(a),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,u=0,s=0,c=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(o-t+e,0),i-1),h=4*(n*i+a);l+=d[h]*r[e],u+=d[h+1]*r[e],s+=d[h+2]*r[e],c+=d[h+3]*r[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=u,e[h+2]=s,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let u=0,s=0,c=0,h=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(n-t+e,0),l-1),f=4*(a*i+o);u+=d[f]*r[e],s+=d[f+1]*r[e],c+=d[f+2]*r[e],h+=d[f+3]*r[e]}let f=4*(n*i+o);e[f]=u,e[f+1]M
=s,e[f+2]=c,e[f+3]=h}};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClampedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvM
as,0,0),o.restore()}n.filter=function(e,t){let a=n.HARDWARE_FILTERS&&null!=o.filter;if(a)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5);let e=Math.floor(.5/t*100);I(`saturate(0%) brightness(${e}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(h.canvas,0,0),o.restore();else if(e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(M
t*n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}};n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()};n.gM
et=function(e,t,a,r){if(null!=e&&null==a){let a=o.getImageData(e,t,1,1).data;return new n.Color(a[0],a[1],a[2],a[3]/255)}e=e||0,t=t||0,a=a||n.width,r=r||n.height;let i=n.createGraphics(a,r);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,a*n._pixelDensity,r*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i};n.set=function(e,t,a){if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.image(a,e,t),void(n._tint=o)}let r=4*(t*n._pixelDensity*o.canvas.widtM
h+e*n._pixelDensity);n.pixels[r]=a._r,n.pixels[r+1]=a._g,n.pixels[r+2]=a._b,n.pixels[r+3]=255*a._a};n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransform();let a=o.globalCompositeOperation;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.M
globalCompositeOperation=a,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()};n.tint=function(){n._tint=n.color(...Array.from(arguments))};n.noTint=function(){n._tint=null};n.mask=function(e){o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositeOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalComposiM
teOperation=t,o.restore()};n.clearTemporaryBuffers=function(){h=null,f=null,d=null};n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t},!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)};n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.save(t,o);let n=t.split(".");return e.save(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);letM
 a=e.split(".");return n.save(a.slice(0,-1).join("."),a[a.length-1])};n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),a=`@font-face {\n        font-family: '${o}';\n        src: url('${e}');\n      }`;const r=document.createElement("style");return r.textContent=a,document.head.append(r),o};n.textFont=function(e){n._textFont=e};n.textSize=function(e){n._textSize=e,n._textLeading=e};n.textLeading=function(e){n._textLeading=e};n.textStyle=function(e){n._textStyle=e};n.textAligM
n=function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)};n.text=function(e,t,a,r){if(!e)return;if(e=e.toString(),n._noFill&&n._noStroke)return;o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._noFill||o.fillText(i[e],t,a,r),n._noStroke||o.strokeText(i[e],t,a,r),a+=n._textLeading};n.textWidth=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).width};n.textAscent=function(e){return o.font=`${n._textStylM
e} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent};n.textDescent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent};var E=4;var S=.5;var C=function(e){return.5*(1-Math.cos(e*Math.PI))};var A;n.noise=function(e,t,n){if(t=t||0,n=n||0,null==A){A=new Array(4096);for(var o=0;o<4096;o++)A[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var a,r,i,l,u,s=Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-s,d=t-c,p=n-h,m=0,M
g=.5,v=0;v<E;v++){var M=s+(c<<4)+(h<<8);a=C(f),r=C(d),i=A[4095&M],i+=a*(A[M+1&4095]-i),l=A[M+16&4095],l+=a*(A[M+16+1&4095]-l),i+=r*(l-i),l=A[4095&(M+=256)],l+=a*(A[M+1&4095]-l),u=A[M+16&4095],u+=a*(A[M+16+1&4095]-u),l+=r*(u-l),i+=C(p)*(l-i),m+=i*g,g*=S,s<<=1,c<<=1,h<<=1,(f*=2)>=1&&(s++,f--),(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return m};n.noiseDetail=function(e,t){e>0&&(E=e),t>0&&(S=t)};const T=function(){let e,t,n=4294967295;return{setSeed(o){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<M
17,e^=e>>13,((e^=e<<5)>>>0)/n)}};let D=T();D.setSeed();n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;A||(A=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,A[n]=(t>>>0)/4294967295};n.randomSeed=function(e){D.setSeed(e)};n.random=function(e,t){return"number"==typeof e?null!=t?D.rand()*(t-e)+e:D.rand()*e:e[~~(e.length*D.rand())]};n.randomGenerator=function(e){e==n.LCG?D=function(){const e=4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>tM
,rand:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(D=T()),D.setSeed()};var P=new function(){var e,t,n,o=new Array(128),a=new Array(256),r=new Array(128),i=new Array(128),l=new Array(256),u=new Array(256),s=function(){return 4294967296*D.rand()-2147483648},c=function(){return.5+2.328306e-10*(s()<<0)},h=function(){for(var t,a,l,u,h=3.44262;;){if(t=n*r[e],0==e){do{l=c(),u=c(),t=.2904764*-Math.log(l),a=-Math.log(u)}while(a+a<t*t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=s(),e=M
127&n,Math.abs(n)<o[e])return n*r[e]}},f=function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],u[e]+c()*(u[e-1]-u[e])<Math.exp(-n))return n;if((t=s())<a[e=255&t])return t*l[e]}};this.SHR3=s,this.UNI=c,this.RNOR=function(){return n=s(),e=127&n,Math.abs(n)<o[e]?n*r[e]:h()},this.REXP=function(){return(t=s()>>>0)<o[e=255&t]?t*l[e]:f()},this.zigset=function(){var e,t,n=2147483648,s=4294967296,c=3.442619855899,h=c,f=.00991256303526217,d=7.697117470131487,p=d,m=.003949659822581572;for(e=f/Math.exp(-.5*cM
*c),o[0]=Math.floor(c/e*n),o[1]=0,r[0]=e/n,r[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),r[t]=c/n;for(e=m/Math.exp(-d),a[0]=Math.floor(d/e*s),a[1]=0,l[0]=e/s,l[255]=d/s,u[0]=1,u[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(m/d+Math.exp(-d)),a[t+1]=Math.floor(d/p*s),p=d,u[t]=Math.exp(-d),l[t]=d/s}};P.hasInit=!1;n.randomGaussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e};n.randoM
mExponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()};n.print=console.log;n.cursor=function(e,t,o){let a="";e.includes(".")&&(e=`url("${e}")`,a=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+a};n.noCursor=function(){n.canvas.style.cursor="none"};n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUserMedia(e).then(function(e){t.srcObject=e}),t.style.position="absolute",t.style.opacitM
y=1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let b=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of b){let t="_"+e+"Fn";n[t]=function(){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(a=null==n._frameRate?requestAnimationFrame(z):setTimeout(z,1e3/n._frameRate)),x(),r=!0,o.save(),n._drawFn(),o.restore(),n.M
frameCount++}n.noLoop=function(){n._noLoop=!0,a=null};n.loop=function(){n._noLoop=!1,null==a&&z()};n.redraw=function(){z()};n.frameRate=function(e){n._frameRate=e};setTimeout(function(){n._preloadFn(),c=window.performance.now(),function e(){if(u>0)return setTimeout(e,10);n._setupFn();z()}()},1);n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraggedFn(e):n._mouseMovedFn(e)};n.canvas.onmousedown=function(e){n.pmouseX=n.mouseX,n.pmoM
useY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)};n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)};n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickedFn(e),n.mouseIsPressed=!1};window.addEventListener("keydown",function(e){n.keyIsPresseM
d=!0,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)});window.addEventListener("keyup",function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!1,n._keyReleasedFn(e)});n.keyIsDown=function(e){return!!s[e]};function O(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,a=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,y:(e.clientY-t.top)/a,id:e.identifier}}function k(){return n._touchStarted.isPlaceHoldeM
r&&n._touchMoved.isPlaceHolder&&n._touchEnded.isPlaceHolder}n.canvas.ontouchstart=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()};n.canvas.ontouchmove=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButM
ton=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()};n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()};n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DeviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestM
Permission);n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(e=>{"granted"==e&&(n.hasSensorPermission=!0)}).catch(alert)}).catch(alert)};window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pRelRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZM
,n.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ};window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,!e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*M
t[1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13],e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]*t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[M
15],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]*t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(M
e),0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}};n.year=function(){return(new Date).getFullYear()};n.day=function(){return(new Date).getDay()};n.hour=function(){return(new Date).getHours()};n.minute=function(){return(new Date).getMinutes()};n.second=function(){return(new Date).getSeconds()};n.millis=function(){return window.performance.now()-c}}(e)}
  _lastFrameTime = window.performance.now();
  palette = getColorsFromUrl(colorUrls[paletteIndex]);
  setWindowParams();
  createCanvas(w, h);
  frameRate(refreshRate);
  ellipseMode(RADIUS)
  strokeJoin(BEVEL);
   generateTestData();
 function createBackground() {
  backgBuff = createGraphics(w, h)
  drawBackground(backgBuff)
   drawNoise(backgBuff)
ction keyPressed() {
  if (keyCode === 32) {
    generateTestData();
  } else if (keyCode === 70) {
   let fs = fullscreen();
  } else if (keyCode === 82) {
 let firstRun = true;
  delta = speeds[speedIdx] - displaySpeed;
  displaySpeed = displaySpeed + delta * 0.05;
  t = (t + (deltaTime * displaySpeed) / refreshRate) % 129600;
  t2 = (t2 + (deltaTM
ime * displaySpeed) / refreshRate) % 129600;
  for (const pressurePointsx of pressurePoints) {
   for (const pp of pressurePointsx) {
  image(backgBuff, 0, 0, w, h)
  translate(w / numX / 2, h / numY / 2)
  drawingContext.shadowColor = shadowColor;
  drawingContext.shadowOffsetX = 5;
  drawingContext.shadowOffsetY = -5;
  drawingContext.shadowBlur = 10;
  for (let i = 0; i < pressurePoints.length; i++) {
   drawWaterLine(lineColorIdx, pressurePoints[i]);
  for (let i = 0; i < prM
essurePoints[0].length; i++) {
   drawWaterLine(lineColorIdx, pressurePoints.map(line => line[i]));
  for (const spot of spots) {
  for (const pressurePointsx of pressurePoints) {
   for (const pp of pressurePointsx) {
    pp.shouldEmit();
  constructor(x, y, size, shape) {
   this.size = size;
   this.shape = shape;
is.shape2 = this.shape;
   this.seed = seeds++;
   this.phase = random(1);
   let step = this.seed + this.phase;
   let nx = (noise(this.seed, (t + this.phase) * wiggleSpeed + step * 1, 0) - 0.45)
   let ny = (noise(this.seed, (t + this.phase) * wiggleSpeed + step * 2, 1) - 0.45)
   this.dx = this.x + nx * vigour;
   this.dy = this.y + ny * vigour;
   this.shape += (this.shape2 - this.shape) * 0.5
   if (this.charge > 0) {
   if (this.shape2 > 0 && random(1) < emitRate / 10 / refreshRate) {
   this.charge += 0.1
   if (this.charge > 1) {
    this.charge = 0;
   let direction = int(random(4));
   switch (direction) {
     next = this.top
     if (next != null) {
      nextNext = next.top
      previous = this.bottom
     next = this.bottom
      nextNext = next.bottom
      previous = this.top
     next = this.left
     if (next != null) {
      nextNext = next.left
      previous = this.right
     next = this.right
     if (next != null) {
      nextNext = next.right
      previous = this.left
   if (next != null) {
    spots.add(new Spot(previous, this, next, nextNext, this.size))
   translate(this.dx, this.dy)
   scale(3 + this.charge)
   strokeWeight(0.5)
   if (this.shape < 0.01) {
   } else if (this.shape < 1.01) {
    strokeWeight(0.5 * (this.shape))
    stroke(shapeColor)
    line(0, 0, 0, 0,)
   } else if (this.shape <= 2.01) {
    let l = (this.shape - 1)
    stroke(shapeColor)
    line(-l / 2, 0, l / 2, 0)
    if (openShape) {
     stroke(shapeColor)
     fill(shapeColor)
    vertex(cos(a), sin(a))
    for (let i = 0; i < this.shape; i++) {
     a = TWO_PI * i / this.shape;
     vertex(cos(a), sin(a))
    endShape(CLOSE);
  constructor(pp0, pp1, pp2, pp3, size) {
   this.pp0 = (pp0 != null) ? pp0 : pp1
   this.pp3 = (pp3 != null) ? pp3 : pp2
   if (this.t > 1) {
    spots.delete(this)
    this.pp2.receive()
   let x = curvePoint(this.pp0.dx, this.pp1.dx, this.pp2.dx, this.pp3.dx, this.t)
   let y = curvePoint(this.pp0.dy, this.pp1.dy, this.pp2.dy, this.pp3.dy, this.t)
   circle(x, y, this.size)
 function drawNoise(b) {
  let dotScale = min(w, h) /500
  b.drawingContext.shadowColor = shadowColor;
  b.drawingContext.shadowOffsetX = dotScalM
  b.drawingContext.shadowOffsetY = -dotScale *1.6;
  // let dotScale = min(w, h) /500
  for (let i = 0; i < nx; i += 7) {
   for (let j = 0; j < ny; j += 7) {
    let n = noise(i,j)
     b.circle(i/nx * w, j/ny * h, dotScale)
 function drawBackground(b) {
  gradient = drawingContext.createLinearGradient(0, h, w, 0);
  gradient.addColorStop(0, restOfColors[0]);
ColorStop(1, paint);
  b.drawingContext.fillStyle = gradient;
  let col = color(paint._r, paint._g, paint._b);
  gradient = drawingContext.createLinearGradient(0, h, w, 0);
  gradient.addColorStop(0, col);
  gradient.addColorStop(1, restOfColors[0]);
  b.drawingContext.fillStyle = gradient;
  for (const p of bgCurvePoints) {
   b.curveVertex(p[0], p[1])
 function drawWaterLine(index, pressurePoints) {
  let colorIdx = (index + 1) % restOfColors.length;
  theColor1 = new color(restOfColors[colorIdx])
  theColor = new color(restOfColors[(colorIdx + 1) % restOfColors.length])
  strokeWeight(lineThickness)
  stroke(restOfColors[colorIdx])
  let last = pressurePoints.length - 1
  curveVertex(pressurePoints[0].x, pressurePoints[0].y)
  for (const pp of pressurePoints) {
   curveVertex(pp.dx, M
  curveVertex(pressurePoints[last].x, pressurePoints[last].y)
 function initiateData() {
  let chosenPaint = paintIdx % palette.length;
  paint = palette[chosenPaint];
  restOfColors = [...palette]
  restOfColors.splice(chosenPaint, 1);
  lineColor = restOfColors[lineColorIdx % restOfColors.length];
  shapeColor = restOfColors[shapeColorIdx % restOfColors.length];
  shadowColor = restOfColors[shadowColorIdx % restOfColors.length];
  emitColor = restOfColors[emitColorIdx M
% restOfColors.length];
  wiggleStrength = wiggleStrengths[wiggleStrengthIdx];
  vigour = wiggleStrength * 10 / min(numX, numY)
  vigour = wiggleStrength * (11 - max(numX, numY))
  wiggleSpeed = wiggleSpeeds[wiggleSpeedIdx]
 function recalcData() {
  noiseSeed(tokenId)
  noiseDetail(1, 0.5)
  randomSeed(tokenId)
  recalcBackgroundWave()
  createBackground()
  recalcPressurePoints()
 function recalcBackgroundWave() {
  bgCurvePoints = []
  bgCurvePoints.push([-w, -h])
  bgCurvePoints.push([-w, h])
  bgCurvePoints.push([w * (0 + random(-v, v)), h * (1 + random(-v, v))])
  bgCurvePoints.push([w * (0.5 + random(-v, v)), h * (0.5 + random(-v, v))])
  bgCurvePoints.push([w * (1 + random(-v, v)), h * (0 + random(-v, v))])
  bgCurvePoints.push([w, -h])
  bgCurvePoints.push([-w, -h])
 function recalcPressurePoints() {
  windowScale = min(w, h)
  let nodeScale = nodeSize * windowScale * 0.001
  pressurePoints = []
  let edgeX = 1 / numX * 0.5;
  for (let i = 0; i < numX; i++) {
   pressurePoints[i] = [];
   for (let j = 0; j < numY; j++) {
    pp = new PP((edgeX + float(i) / numX * w), (edgeY + float(j) / numY * h),
     nodeScale, 1 + int(random(shapeSizesDensity)));
    pressurePoints[i][j] = pp;
     pp.left = null;
     pp.left = pressurePoints[i][j - 1];
     pressurePoints[i][j - 1].right = pp;
    if (j === numX) {
     pp.right = null;
     pp.top = pressurePoints[i - 1][j];
     pressurePoints[i - 1][j].bottom = pp;
    if (i === numY) {
     pp.bottom = null;
 function setWindowParams() {
  windowScale = min(w, h)
 function windowResized() {
  resizeCanvas(windowWidth, windowHeight);
  setWindowParams();
  strokeJoin(BEVEL);
 function getColorsFromUrl(url) {
  let colStrs = url.split("-");
  for (colStr of colStrs) {M
    parseInt(colStr.substring(0, 2), 16),
    parseInt(colStr.substring(2, 4), 16),
    parseInt(colStr.substring(4, 6), 16)))
 function randomGeneration() {
  paletteIndex = int(random(colorUrls.length))
  palette = getColorsFromUrl(colorUrls[paletteIndex]);
  console.log("colorindex: ", paletteIndex)
  paintIdx = int(random(palette.length))
  lineColorIdx = int(random(palette.length))
  shapeColorIdx = int(random(palM
  numX = 1 + int(random(7))
  numY = 1 + int(random(7))
  lineThickness = 1 + random(5)
  wiggleStrength = 10 + int(random(40))
  wiggleStrengthIdx = int(random(wiggleStrengths.length))
  wiggleSpeedIdx = int(random(wiggleSpeeds.length))
  shapeSizesDensity = 1 + int(random(7))
  emitRate = 1 + int(random(10))
  openShape = random(2) < 1
  hasTexture = random(2) < 1
  tokenId = int(random(2000))
 function common() {
 function generateTestData() {
  randomGeneration()
 function float(s) {
  return parseFloat(s)
 let lastFrameTime = 0
 function setDelta() {
  var now = window.performance.now();
  deltaTime = now - _lastFrameTime;
  _lastFrameTime = now;
 function fullscreen(val) {
  if (typeof val === 'undefined') {
   return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;
hFullscreen(document.documentElement);
    exitFullscreen();
 function launchFullscreen(element) {
  var enabled = document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled;
   throw new Error('Fullscreen not enabled in this browser.');
  if (element.requestFullscreen) {
   element.requestFullscreen();
  } else if (element.mozRequestFullScreen) {
   element.mozRequestFullScreen();
  } else if (element.webkitRequestFullscreen) {
   element.webkitRequestFullscreen();
  } else if (element.msRequestFullscreen) {
   element.msRequestFullscreen();
 function exitFullscreen() {
  if (document.exitFullscreen) {
   document.exitFullscreen();
  } else if (document.mozCancelFullScreen) {
   document.mozCancelFullScreen();
  } else if (document.webkitExitFullscreen) {
   document.webkitExitFullscreen();
  } else if (document.msExitFullscreen) {
   document.msExitFullscreen();
ms.get('mr') === null) {
  window.onresize = windowResized;
  console.log("no autoresize")
 nC = urlParams.get('nc')
text/plain;charset=utf-8
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
((((((((((((((((((((((((((((((((((((((((((((((((((
(#!#-+(0<dA<77<{X]Id
text/plain;charset=utf-8
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEveM
nt#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:b6412b1c-50fe-4b1d-a637-c689de7c14e5" xmpMM:InstanceID="xmp.iid:37f18919-7f6f-4d72-8d10-c363a81890c7" xmpMM:OriginalDocumentID="xmp.did:095e45d9-7ca3-4980-8247-bf5086b2deef" dc:Format="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamp="1676301745587035" GIMP:Version="2.10.32" tiff:Orientation="1" xM
mp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T10:22:14-05:00" xmp:ModifyDate="2023:02:13T10:22:14-05:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:890089f1-904d-46fa-9862-5cd7b3913b9d" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T10:22:25"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta>                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                 <?xpacket end="w"?>h!
<svg viewBox="0 0 261 261" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M.002 0h261v261h-261z"/><path d="m97.283 1018.59-7.561 3.71v-27.877l7.561-3.71v27.877zm10.265-5.04-7.561 3.71v-27.877l7.556-3.71h.005v27.877zm2.704-1.33v-27.877l7.561-3.71v27.877l-7.561 3.71z" style="fill:#fff" transform="matrix(2.56324 0 0 2.56324 -98.143 -2436.501)"/><path d="M87.086 1014.8v7.5l-28.056-13.77v-7.5l28.056 13.77zm0-10.19v7.5M
L59.03 998.34v-7.5l28.056 13.77zm0-10.19v7.51L59.03 988.16v-7.51l28.056 13.77z" style="fill:#ff9500" transform="matrix(2.56324 0 0 2.56324 -98.143 -2436.545)"/><g><path d="m28158.4 8665.5-.4-.88h-.4v.89h-.8v-2.43h1.1c.3 0 .6.03.8.09.1.06.3.15.4.27.1.11.1.24.1.4 0 .14 0 .26-.1.38s-.2.21-.4.28l.6 1.01-.9-.01zm-.8-1.4h.4c.1 0 .2-.02.3-.06.1-.03.1-.09.1-.17 0-.06 0-.12-.1-.16-.1-.04-.2-.06-.4-.06h-.3v.45zm.3 2.73c-.4 0-.8-.06-1.1-.19-.4-.13-.7-.31-.9-.55-.3-.23-.5-.49-.6-.79a1.7 1.7 0 0 1 0-1.93c.1-.31.3-.57.6-.8.3-.23M
.6-.41.9-.54.4-.13.7-.19 1.1-.19.4 0 .8.06 1.1.19.4.13.7.31 1 .54.2.23.4.49.6.8.1.3.2.63.2.97 0 .27 0 .54-.1.79s-.3.48-.4.68c-.2.21-.4.39-.7.54-.2.15-.5.27-.8.36-.3.08-.6.12-.9.12zm.1-.62c.3 0 .6-.05.8-.15.3-.1.5-.23.7-.4.2-.18.3-.38.4-.61.2-.22.2-.46.2-.72 0-.26-.1-.5-.2-.73-.1-.22-.2-.42-.4-.59-.2-.18-.5-.31-.7-.42-.3-.1-.6-.15-.8-.15-.3 0-.6.05-.9.15-.2.1-.5.23-.7.41-.2.17-.3.37-.4.6-.2.23-.2.47-.2.74 0 .26 0 .5.2.72.1.22.2.42.4.6.2.17.5.3.7.4.3.1.6.15.9.15z" style="fill:#ff9500;fill-rule:nonzero" transform="mat:rix(3.00518 0 0 3.52943 -84424.54 -30405.328)"/></g></svg>h!
viTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriM
ginalDocumentID="FE0EDD589F0E469439AC48061617C8F2" xmpMM:DocumentID="xmp.did:5619A779AB5211EDAE6CEBC5DA51176A" xmpMM:InstanceID="xmp.iid:5619A778AB5211EDAE6CEBC5DA51176A" xmp:CreatorTool="Adobe Photoshop 2023 Windows"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:d2cbe29b-1d23-fc46-afbb-379fe74f2978" stRef:documentID="adobe:docid:photoshop:4c7406d7-b1cb-be46-865b-50f6952537ec"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
text/plain;charset=utf-8
JESUS CHRIST IS KING. h!
0http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.b0f8be90, 2021/12/15-21:25:15        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotoshM
op 23.2 (Macintosh)" xmpMM:InstanceID="xmp.iid:E78D9FFDA36B11EDA68EE77D65300542" xmpMM:DocumentID="xmp.did:E78D9FFEA36B11EDA68EE77D65300542"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:E78D9FFBA36B11EDA68EE77D65300542" stRef:documentID="xmp.did:E78D9FFCA36B11EDA68EE77D65300542"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
''.030.'>>AA>>AAAAAAAAAAAAAAA
!1!!$!!1>-''''->8;333;8AA>>AAAAAAAAAAAAAAAAA
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
zTXtRaw profile type exif
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
2023-01-24T18:50:08+00:00g
2023-01-24T18:50:08+00:00
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
c/Foundry USA Pool #dropgold/
6j4ion:1.QmaJAGVH95vhdLwEcPspaUT1bt6d3JXnd4ciiSpjx6mKtjI
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
IjGREFUND:8FE2A0AA8D1743571F363B0C82C1C35E2EAAC9D96A317FB69E1DF839BF150CAB
c/Foundry USA Pool #dropgold/
"""""""""g9UUUUUUUUUUUFSWP)p
Bj@=:BNB.BNB:bnb1y9nckywfvqtthejzhakd9a9lez83hn92kmj0hw:11240597::0
FjDOUT:B5ED28DC3273FAFE38C67B78FB1BB3BA59C1F954D6E7A1AAB34DB41B6B5A832B
FjDOUT:804A59ADAE0353B5183637BE89D205CEBBD180A6AECEDC41F8CE07A61BFA289C
FjDOUT:E01C76D0F9EC216AE21BF97517A6599A51155B1B9267D0790E3D39661A5B329D
FjDOUT:992925939B23371FA34139EC640B91ECACA73C01A9D63B467812F43B2DF1DB8D
FjDOUT:D27C960E5F595D08E66809D4648C9B46347475813CEF569EF0A70539EF0B5823
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
SUB 100K RESERVATIONh!
/ViaBTC/Mined by 10krsk3/,
KjISWAPTX:0xada94013bd0cb56f2c41af5fbd1fd393114d2bffcb05f0a86baa8399a4bd6bb4
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8">
<!--puzzlords.com s1p0051/4096 3,2,3,3,0 ~0.9387840370181948-->
<style type="text/css">
polyline{stroke:#000;stroke-width:0.15}
<rect fill="#767C89" width="100%" height="100%"/>
<polyline fill="#F2F652" points="0,8 7,5 7,5 0,0 "/>
<polyline fill="#F652A0" points="8,0 7,1 6,3 8,8 "/>
<polyline fill="#F2F652" points="8,8 6,7 6,7 0,8 "/>
<polyline fill="#F2F652" points="0,0 6,4 6,4 8,0 "/>
IjGREFUND:2D277BD54B62D77FDEC74F62D8F59D2682FB27910A7F7798289C2122DEE5AC9B
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
{"attributes":[{"trait_type":"Mouth","value":"Small Grin"},{"trait_type":"Earring","value":"Diamond Stud"},{"trait_type":"Fur","value":"Cheetah"},{"trait_type":"Background","value":"Orange"},{"trait_type":"Eyes","value":"3d"},{"trait_type":"Clothes","value":"Tanktop"}],"external_url":"https://baycbitcoin.com/index/bayc/14"}
 .)10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQRO
&O5-5OOOOOOOOOOOOOOOOOOOOOOM
OOOOOOOOOOOOOOOOOOOOOOOOOOOO
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
Blender:RenderTime:00:00.43
!22222222222222222222222222222222222222222222222222
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
Blender:RenderTime:00:00.38
!22222222222222222222222222222222222222222222222222
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
text/plain;charset=utf-8
text/plain;charset=utf-8
FjDOUT:CF5B88CAF232CD33123F89BDC90F95AD2A2973D0E2750BAEAC68952A2EFE6A70
FjDOUT:7208E247D74C23D9E349A54543E2BCC87300A07A9424275DF57FF8CF10183092
FjDOUT:C2C830100B819E0EF32BEBFCD3ECBBEB9451EC2CA06CABAFC210314263616162
FjDOUT:C55062A6431FEAAA0A97BE0344C1567A45253A139958F2EAD6CB41388361F1D4
Bj@=:ETH.ETH:0x565988A979AE28737Cc09A3E7D03dA4eF4e6F465:17985045::0
Bj@=:BNB.BNB:bnb130vsy039tky9amxd7k2cyh5jzfwtz6vqugjzwd:13503955::0
((((((((((((((((((((((((((((((((((((((((((((((((((
Blender:RenderTime:00:00.45
!22222222222222222222222222222222222222222222222222
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
	!http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about=""/> </rdf:RDF> </x:xmpmeta>                                                                      M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                   <?xpacket end="w"?>
Copyright Apple Inc., 2022
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
qhttp://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="BD3M
73801FDABE94B1AB7E884FB661376" xmpMM:DocumentID="xmp.did:6D104A38ABC511ED8C44954F80EE1779" xmpMM:InstanceID="xmp.iid:6D104A37ABC511ED8C44954F80EE1779" xmp:CreatorTool="Adobe Photoshop 2022 Windows"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:367462bd-0f53-e24b-be9d-d147ef5e8461" stRef:documentID="xmp.did:367462bd-0f53-e24b-be9d-d147ef5e8461"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFM
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
c/Foundry USA Pool #dropgold/
FjDOUT:E8BFA282D06D0364DC75B13EFB13B6FED99D2860CFE92D18C3D2F43B51BA83F3
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
qhttp://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="E46M
3AFFF1C19D4515BAEA2448A5A73CB" xmpMM:DocumentID="xmp.did:75729E26ABC511ED9910C917B72B9666" xmpMM:InstanceID="xmp.iid:75729E25ABC511ED9910C917B72B9666" xmp:CreatorTool="Adobe Photoshop 2022 Windows"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:20b2a8c3-6f69-7a49-88ff-587a8977dbc2" stRef:documentID="xmp.did:20b2a8c3-6f69-7a49-88ff-587a8977dbc2"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFM
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GM
IMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:e870133b-e55f-4e98-bd62-ee474124a8a5" xmpMM:InstanceID="xmp.iid:8184a96b-692c-45f5-84f6-a3b30faef0e0" xmpMM:OriginalDocumentID="xmp.did:2c82fa5d-2a15-4486-8cd4-901eada7301b" dc:Format="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamp="1676316617548145" GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13TM
14:30:00-05:00" xmp:ModifyDate="2023:02:13T14:30:00-05:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:69f2f4e0-a321-49b3-909c-e9a577fe0fe3" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T14:28:46"/> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:e8b26a9d-f2ad-4bb7-b6cb-9b1a04ee3cb6" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T14:30:17"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> M
</x:xmpmeta>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     <?xpacket end="w"?>h!
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
$6"(""("60:/,/:0VD<<DVdTOTdylly
$6"(""("60:/,/:0VD<<DVdTOTdylly
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
1,5+(+5,N=77=NZLHLZnbbn
1,5+(+5,N=77=NZLHLZnbbn
Aj?=:BNB.BNB:bnb1m070cfs2pfr0xmgl0rfw5dn8fa7pw023ese4jq:7377332::0
CjA=:BNB.BNB:bnb1c3pjhnuan6y3m8zc82crluuja5y5gmatqru867:101138215::0
Blender:RenderTime:00:00.36
!22222222222222222222222222222222222222222222222222
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
Blender:RenderTime:00:00.38
!22222222222222222222222222222222222222222222222222
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
&#  #&:*-*-*:X7@77@7XN_MHM_N
&#  #&:*-*-*:X7@77@7XN_MHM_N
FjDOUT:45B123BCDC5EF91EB88A06E0F83D4F3756F6274F45D8FF95C446B0085F5F7907
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/html;charset=utf-8
      display: block;
    <meta charset="utf-8" />
    let seed=window.location.href.split('/').find(t=>t.includes('i0'));
    if (seed == null) {
      seed = new URLSearchParams(window.location.search).get("seed");
      let pattern = "seed=";
      for(let i = 0; i < seed.length - pattern.length; M
        if (seed.substring(i, i + pattern.length) == pattern) {
          seed = seed.substring(i + pattern.length);
    function cyrb128($) {
      let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
      for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
      return _ = Math.imul(i ^ _ >>> 18,M
 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
    function sfc32($, _, u, i) {
      return function () {
        u >>>= 0, i >>>= 0;
        var l = ($ >>>= 0) + (_ >>>= 0) | 0;
        return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
 sfc32(...cyrb128(seed));
    let p5seed = Math.floor(mathRand() * Number.MAX_SAFE_INTEGER);
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).chroma=e()}(this,function(){"use strict";for(var r=function(r,e,t){return void 0===e&&(e=0),void 0===t&&(t=1),r<e?e:r>t?t:r},e=r,t={},n=0,a=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];n<a.length;nM
+=1){var f=a[n];t["[object "+f+"]"]=f.toLowerCase()}var o=function(r){return t[Object.prototype.toString.call(r)]||"object"},c=o,u=o,i=Math.PI,l={clip_rgb:function(r){r._clipped=!1,r._unclipped=r.slice(0);for(var t=0;t<=3;t++)t<3?((r[t]<0||r[t]>255)&&(r._clipped=!0),r[t]=e(r[t],0,255)):3===t&&(r[t]=e(r[t],0,1));return r},limit:r,type:o,unpack:function(r,e){return void 0===e&&(e=null),r.length>=3?Array.prototype.slice.call(r):"object"==c(r[0])&&e?e.split("").filter(function(e){return void 0!==r[0][e]}).map(function(M
e){return r[0][e]}):r[0]},last:function(r){if(r.length<2)return null;var e=r.length-1;return"string"==u(r[e])?r[e].toLowerCase():null},PI:i,TWOPI:2*i,PITHIRD:i/3,DEG2RAD:i/180,RAD2DEG:180/i},d={format:{},autodetect:[]},h=l.last,b=l.clip_rgb,s=l.type,p=d,g=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if("object"===s(r[0])&&r[0].constructor&&r[0].constructor===this.constructor)return r[0];var t=h(r),n=!1;if(!t){n=!0,p.sorted||(p.autodetect=p.autodetect.sort(function(r,e){return e.p-r.p}),p.sortedM
=!0);for(var a=0,f=p.autodetect;a<f.length;a+=1){var o=f[a];if(t=o.test.apply(o,r))break}}if(!p.format[t])throw new Error("unknown format: "+r);var c=p.format[t].apply(null,n?r:r.slice(0,-1));this._rgb=b(c),3===this._rgb.length&&this._rgb.push(1)};g.prototype.toString=function(){return"function"==s(this.hex)?this.hex():"["+this._rgb.join(",")+"]"};var v=g,y=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(y.Color,[null].concat(r)))};y.Color=v,y.version="2.4.M
2";var m=y,k=l.unpack,w=Math.max,M=l.unpack,_=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=M(r,"cmyk"))[0],n=r[1],a=r[2],f=r[3],o=r.length>4?r[4]:1;return 1===f?[0,0,0,o]:[t>=1?0:255*(1-t)*(1-f),n>=1?0:255*(1-n)*(1-f),a>=1?0:255*(1-a)*(1-f),o]},N=m,F=v,x=d,P=l.unpack,R=l.type,G=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=k(r,"rgb"),n=t[0],a=t[1],f=t[2],o=1-w(n/=255,w(a/=255,f/=255)),c=o<1?1/(1-o):0;return[(1-n-o)*c,(1-a-o)*c,(1-f-o)*c,o]};F.prototype.cmyk=fuM
nction(){return G(this._rgb)},N.cmyk=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(F,[null].concat(r,["cmyk"])))},x.format.cmyk=_,x.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=P(r,"cmyk"),"array"===R(r)&&4===r.length)return"cmyk"}});var j=l.unpack,E=l.last,O=function(r){return Math.round(100*r)/100},q=l.unpack,B=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=q(r,"rgba"))[0],nM
=r[1],a=r[2];t/=255,n/=255,a/=255;var f,o,c=Math.min(t,n,a),u=Math.max(t,n,a),i=(u+c)/2;return u===c?(f=0,o=Number.NaN):f=i<.5?(u-c)/(u+c):(u-c)/(2-u-c),t==u?o=(n-a)/(u-c):n==u?o=2+(a-t)/(u-c):a==u&&(o=4+(t-n)/(u-c)),(o*=60)<0&&(o+=360),r.length>3&&void 0!==r[3]?[o,f,i,r[3]]:[o,f,i]},I=l.unpack,A=l.last,D=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=j(r,"hsla"),n=E(r)||"lsa";return t[0]=O(t[0]||0),t[1]=O(100*t[1])+"%",t[2]=O(100*t[2])+"%","hsla"===n||t.length>3&&t[3]<1?(t[3]=t.length>3?t[M
3]:1,n="hsla"):t.length=3,n+"("+t.join(",")+")"},C=B,Y=Math.round,S=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=I(r,"rgba"),n=A(r)||"rgb";return"hsl"==n.substr(0,3)?D(C(t),n):(t[0]=Y(t[0]),t[1]=Y(t[1]),t[2]=Y(t[2]),("rgba"===n||t.length>3&&t[3]<1)&&(t[3]=t.length>3?t[3]:1,n="rgba"),n+"("+t.slice(0,"rgb"===n?3:4).join(",")+")")},L=l.unpack,$=Math.round,T=function(){for(var r,e=[],t=arguments.length;t--;)e[t]=arguments[t];var n,a,f,o=(e=L(e,"hsl"))[0],c=e[1],u=e[2];if(0===c)n=a=f=255*u;elsM
e{var i=[0,0,0],l=[0,0,0],d=u<.5?u*(1+c):u+c-u*c,h=2*u-d,b=o/360;i[0]=b+1/3,i[1]=b,i[2]=b-1/3;for(var s=0;s<3;s++)i[s]<0&&(i[s]+=1),i[s]>1&&(i[s]-=1),6*i[s]<1?l[s]=h+6*(d-h)*i[s]:2*i[s]<1?l[s]=d:3*i[s]<2?l[s]=h+(d-h)*(2/3-i[s])*6:l[s]=h;n=(r=[$(255*l[0]),$(255*l[1]),$(255*l[2])])[0],a=r[1],f=r[2]}return e.length>3?[n,a,f,e[3]]:[n,a,f,1]},K=T,W=d,X=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,Z=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,H=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\M
d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,z=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,U=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,V=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,J=Math.round,Q=function(r){var e;if(r=r.toLowerCase().trim(),W.format.named)try{return W.format.named(r)}catch(r){}if(e=r.match(X)){for(var t=e.slice(1,4),n=0;n<3;n++)t[n]=+t[n];returnM
 t[3]=1,t}if(e=r.match(Z)){for(var a=e.slice(1,5),f=0;f<4;f++)a[f]=+a[f];return a}if(e=r.match(H)){for(var o=e.slice(1,4),c=0;c<3;c++)o[c]=J(2.55*o[c]);return o[3]=1,o}if(e=r.match(z)){for(var u=e.slice(1,5),i=0;i<3;i++)u[i]=J(2.55*u[i]);return u[3]=+u[3],u}if(e=r.match(U)){var l=e.slice(1,4);l[1]*=.01,l[2]*=.01;var d=K(l);return d[3]=1,d}if(e=r.match(V)){var h=e.slice(1,4);h[1]*=.01,h[2]*=.01;var b=K(h);return b[3]=+e[4],b}};Q.test=function(r){return X.test(r)||Z.test(r)||H.test(r)||z.test(r)||U.test(r)||V.test(r)M
};var rr=m,er=v,tr=d,nr=l.type,ar=S,fr=Q;er.prototype.css=function(r){return ar(this._rgb,r)},rr.css=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(er,[null].concat(r,["css"])))},tr.format.css=fr,tr.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===nr(r)&&fr.test(r))return"css"}});var or=v,cr=m,ur=l.unpack;d.format.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e]M
;var t=ur(r,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t},cr.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(or,[null].concat(r,["gl"])))},or.prototype.gl=function(){var r=this._rgb;return[r[0]/255,r[1]/255,r[2]/255,r[3]]};var ir=l.unpack,lr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=ir(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Math.min(a,f,o),u=Math.max(a,f,o),i=u-c,l=100*i/255,d=c/(255-i)*100;return 0===i?t=Number.NaN:(a===u&&(t=M
(f-o)/i),f===u&&(t=2+(o-a)/i),o===u&&(t=4+(a-f)/i),(t*=60)<0&&(t+=360)),[t,l,d]},dr=l.unpack,hr=Math.floor,br=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=dr(o,"hcg"))[0],h=o[1],b=o[2];b*=255;var s=255*h;if(0===h)u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=hr(d/=60),g=d-p,v=b*(1-h),y=v+s*(1-g),m=v+s*g,k=v+s;switch(p){case 0:u=(r=[k,m,v])[0],i=r[1],l=r[2];break;case 1:u=(e=[y,k,v])[0],i=e[1],l=e[2];break;case 2:u=(t=[v,k,m])[0],i=t[1],l=t[2];break;cM
ase 3:u=(n=[v,y,k])[0],i=n[1],l=n[2];break;case 4:u=(a=[m,v,k])[0],i=a[1],l=a[2];break;case 5:u=(f=[k,v,y])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},sr=l.unpack,pr=l.type,gr=m,vr=v,yr=d,mr=lr;vr.prototype.hcg=function(){return mr(this._rgb)},gr.hcg=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(vr,[null].concat(r,["hcg"])))},yr.format.hcg=br,yr.autodetect.push({p:1,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=sr(r,"M
hcg"),"array"===pr(r)&&3===r.length)return"hcg"}});var kr=l.unpack,wr=l.last,Mr=Math.round,_r=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=kr(r,"rgba"),n=t[0],a=t[1],f=t[2],o=t[3],c=wr(r)||"auto";void 0===o&&(o=1),"auto"===c&&(c=o<1?"rgba":"rgb");var u="000000"+((n=Mr(n))<<16|(a=Mr(a))<<8|(f=Mr(f))).toString(16);u=u.substr(u.length-6);var i="0"+Mr(255*o).toString(16);switch(i=i.substr(i.length-2),c.toLowerCase()){case"rgba":return"#"+u+i;case"argb":return"#"+i+u;default:return"#"+u}},Nr=/M
^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Fr=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,xr=function(r){if(r.match(Nr)){4!==r.length&&7!==r.length||(r=r.substr(1)),3===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]);var e=parseInt(r,16);return[e>>16,e>>8&255,255&e,1]}if(r.match(Fr)){5!==r.length&&9!==r.length||(r=r.substr(1)),4===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);var t=parseInt(r,16);return[t>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100]}throw new Error("unknown hex coM
lor: "+r)},Pr=m,Rr=v,Gr=l.type,jr=d,Er=_r;Rr.prototype.hex=function(r){return Er(this._rgb,r)},Pr.hex=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Rr,[null].concat(r,["hex"])))},jr.format.hex=xr,jr.autodetect.push({p:4,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===Gr(r)&&[3,4,5,6,7,8,9].indexOf(r.length)>=0)return"hex"}});var Or=l.unpack,qr=l.TWOPI,Br=Math.min,Ir=Math.sqrt,Ar=Math.acos,Dr=functionM
(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=Or(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Br(a/=255,f/=255,o/=255),u=(a+f+o)/3,i=u>0?1-c/u:0;return 0===i?t=NaN:(t=(a-f+(a-o))/2,t/=Ir((a-f)*(a-f)+(a-o)*(f-o)),t=Ar(t),o>f&&(t=qr-t),t/=qr),[360*t,i,u]},Cr=l.unpack,Yr=l.limit,Sr=l.TWOPI,Lr=l.PITHIRD,$r=Math.cos,Tr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Cr(r,"hsi"))[0],o=r[1],c=r[2];return isNaN(f)&&(f=0),isNaN(o)&&(o=0),f>360&&(f-=360),f<0&&(f+=360),(f/=360)<1/3?n=1-M
((a=(1-o)/3)+(t=(1+o*$r(Sr*f)/$r(Lr-Sr*f))/3)):f<2/3?a=1-((t=(1-o)/3)+(n=(1+o*$r(Sr*(f-=1/3))/$r(Lr-Sr*f))/3)):t=1-((n=(1-o)/3)+(a=(1+o*$r(Sr*(f-=2/3))/$r(Lr-Sr*f))/3)),[255*(t=Yr(c*t*3)),255*(n=Yr(c*n*3)),255*(a=Yr(c*a*3)),r.length>3?r[3]:1]},Kr=l.unpack,Wr=l.type,Xr=m,Zr=v,Hr=d,zr=Dr;Zr.prototype.hsi=function(){return zr(this._rgb)},Xr.hsi=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Zr,[null].concat(r,["hsi"])))},Hr.format.hsi=Tr,Hr.autodetect.push({pM
:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Kr(r,"hsi"),"array"===Wr(r)&&3===r.length)return"hsi"}});var Ur=l.unpack,Vr=l.type,Jr=m,Qr=v,re=d,ee=B;Qr.prototype.hsl=function(){return ee(this._rgb)},Jr.hsl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Qr,[null].concat(r,["hsl"])))},re.format.hsl=T,re.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ur(r,"hsl"),"array"===Vr(r)M
&&3===r.length)return"hsl"}});var te=l.unpack,ne=Math.min,ae=Math.max,fe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=te(r,"rgb"))[0],o=r[1],c=r[2],u=ne(f,o,c),i=ae(f,o,c),l=i-u;return a=i/255,0===i?(t=Number.NaN,n=0):(n=l/i,f===i&&(t=(o-c)/l),o===i&&(t=2+(c-f)/l),c===i&&(t=4+(f-o)/l),(t*=60)<0&&(t+=360)),[t,n,a]},oe=l.unpack,ce=Math.floor,ue=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=oe(o,"hsv"))[0],h=o[1],b=o[2];if(b*=255,0===h)M
u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var s=ce(d/=60),p=d-s,g=b*(1-h),v=b*(1-h*p),y=b*(1-h*(1-p));switch(s){case 0:u=(r=[b,y,g])[0],i=r[1],l=r[2];break;case 1:u=(e=[v,b,g])[0],i=e[1],l=e[2];break;case 2:u=(t=[g,b,y])[0],i=t[1],l=t[2];break;case 3:u=(n=[g,v,b])[0],i=n[1],l=n[2];break;case 4:u=(a=[y,g,b])[0],i=a[1],l=a[2];break;case 5:u=(f=[b,g,v])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},ie=l.unpack,le=l.type,de=m,he=v,be=d,se=fe;he.prototype.hsv=function(){return se(this._rgb)},de.hsv=M
function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(he,[null].concat(r,["hsv"])))},be.format.hsv=ue,be.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=ie(r,"hsv"),"array"===le(r)&&3===r.length)return"hsv"}});var pe={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ge=pe,ve=l.unpack,ye=Math.pow,me=function(r){return(r/=255)<=.04045?r/12.92:ye((r+.055)/1.055,2.4)},ke=function(M
r){return r>ge.t3?ye(r,1/3):r/ge.t2+ge.t0},we=function(r,e,t){return r=me(r),e=me(e),t=me(t),[ke((.4124564*r+.3575761*e+.1804375*t)/ge.Xn),ke((.2126729*r+.7151522*e+.072175*t)/ge.Yn),ke((.0193339*r+.119192*e+.9503041*t)/ge.Zn)]},Me=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=ve(r,"rgb"),n=t[0],a=t[1],f=t[2],o=we(n,a,f),c=o[0],u=o[1],i=116*u-16;return[i<0?0:i,500*(c-u),200*(u-o[2])]},_e=pe,Ne=l.unpack,Fe=Math.pow,xe=function(r){return 255*(r<=.00304?12.92*r:1.055*Fe(r,1/2.4)-.055)},Pe=funM
ction(r){return r>_e.t1?r*r*r:_e.t2*(r-_e.t0)},Re=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Ne(r,"lab"))[0],o=r[1],c=r[2];return n=(f+16)/116,t=isNaN(o)?n:n+o/500,a=isNaN(c)?n:n-c/200,n=_e.Yn*Pe(n),t=_e.Xn*Pe(t),a=_e.Zn*Pe(a),[xe(3.2404542*t-1.5371385*n-.4985314*a),xe(-.969266*t+1.8760108*n+.041556*a),xe(.0556434*t-.2040259*n+1.0572252*a),r.length>3?r[3]:1]},Ge=l.unpack,je=l.type,Ee=m,Oe=v,qe=d,Be=Me;Oe.prototype.lab=function(){return Be(this._rgb)},Ee.lab=function(){for(var rM
=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Oe,[null].concat(r,["lab"])))},qe.format.lab=Re,qe.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ge(r,"lab"),"array"===je(r)&&3===r.length)return"lab"}});var Ie=l.unpack,Ae=l.RAD2DEG,De=Math.sqrt,Ce=Math.atan2,Ye=Math.round,Se=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ie(r,"lab"),n=t[0],a=t[1],f=t[2],o=De(a*a+f*f),c=(Ce(f,a)*Ae+360)%360;return 0===YeM
(1e4*o)&&(c=Number.NaN),[n,o,c]},Le=l.unpack,$e=Me,Te=Se,Ke=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Le(r,"rgb"),n=t[0],a=t[1],f=t[2],o=$e(n,a,f),c=o[0],u=o[1],i=o[2];return Te(c,u,i)},We=l.unpack,Xe=l.DEG2RAD,Ze=Math.sin,He=Math.cos,ze=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=We(r,"lch"),n=t[0],a=t[1],f=t[2];return isNaN(f)&&(f=0),[n,He(f*=Xe)*a,Ze(f)*a]},Ue=l.unpack,Ve=ze,Je=Re,Qe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=M
(r=Ue(r,"lch"))[0],n=r[1],a=r[2],f=Ve(t,n,a),o=f[0],c=f[1],u=f[2],i=Je(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},rt=l.unpack,et=Qe,tt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rt(r,"hcl").reverse();return et.apply(void 0,t)},nt=l.unpack,at=l.type,ft=m,ot=v,ct=d,ut=Ke;ot.prototype.lch=function(){return ut(this._rgb)},ot.prototype.hcl=function(){return ut(this._rgb).reverse()},ft.lch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.biM
nd.apply(ot,[null].concat(r,["lch"])))},ft.hcl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ot,[null].concat(r,["hcl"])))},ct.format.lch=Qe,ct.format.hcl=tt,["lch","hcl"].forEach(function(r){return ct.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=nt(e,r),"array"===at(e)&&3===e.length)return r}})});var it=d,lt=l.type,dt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:M
"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",daM
rkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#M
adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#M
778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhiteM
:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a4M
60",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},ht=xr,bt=_r;v.prototype.name=function(){for(var r=bt(this._rgb,"rgb"),e=0,t=Object.keys(dt);e<t.length;e+=1){var n=M
t[e];if(dt[n]===r)return n.toLowerCase()}return r},it.format.named=function(r){if(r=r.toLowerCase(),dt[r])return ht(dt[r]);throw new Error("unknown color name: "+r)},it.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===lt(r)&&dt[r.toLowerCase()])return"named"}});var st=l.unpack,pt=l.type,gt=function(r){if("number"==pt(r)&&r>=0&&r<=16777215)return[r>>16,r>>8&255,255&r,1];throw new Error("unknown num color: "+r)},vt=m,yt=v,mt=d,kt=l.type,wt=fuM
nction(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=st(r,"rgb");return(t[0]<<16)+(t[1]<<8)+t[2]};yt.prototype.num=function(){return wt(this._rgb)},vt.num=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(yt,[null].concat(r,["num"])))},mt.format.num=gt,mt.autodetect.push({p:5,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(1===r.length&&"number"===kt(r[0])&&r[0]>=0&&r[0]<=16777215)return"num"}});var Mt=m,_t=v,Nt=d,FtM
=l.unpack,xt=l.type,Pt=Math.round;_t.prototype.rgb=function(r){return void 0===r&&(r=!0),!1===r?this._rgb.slice(0,3):this._rgb.slice(0,3).map(Pt)},_t.prototype.rgba=function(r){return void 0===r&&(r=!0),this._rgb.slice(0,4).map(function(e,t){return t<3?!1===r?e:Pt(e):e})},Mt.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(_t,[null].concat(r,["rgb"])))},Nt.format.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ft(r,"rgba");retM
urn void 0===t[3]&&(t[3]=1),t},Nt.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ft(r,"rgba"),"array"===xt(r)&&(3===r.length||4===r.length&&"number"==xt(r[3])&&r[3]>=0&&r[3]<=1))return"rgb"}});var Rt=Math.log,Gt=function(r){var e,t,n,a=r/100;return a<66?(e=255,t=a<6?0:-155.25485562709179-.44596950469579133*(t=a-2)+104.49216199393888*Rt(t),n=a<20?0:.8274096064007395*(n=a-10)-254.76935184120902+115.67994401066147*Rt(n)):(e=351.97690566805693+.114206453784165*(e=a-55)-M
40.25366309332127*Rt(e),t=325.4494125711974+.07943456536662342*(t=a-50)-28.0852963507957*Rt(t),n=255),[e,t,n,1]},jt=Gt,Et=l.unpack,Ot=Math.round,qt=m,Bt=v,It=d,At=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];for(var t,n=Et(r,"rgb"),a=n[0],f=n[2],o=1e3,c=4e4;c-o>.4;){var u=jt(t=.5*(c+o));u[2]/u[0]>=f/a?c=t:o=t}return Ot(t)};Bt.prototype.temp=Bt.prototype.kelvin=Bt.prototype.temperature=function(){return At(this._rgb)},qt.temp=qt.kelvin=qt.temperature=function(){for(var r=[],e=arguments.length;e-M
-;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Bt,[null].concat(r,["temp"])))},It.format.temp=It.format.kelvin=It.format.temperature=Gt;var Dt=l.unpack,Ct=Math.cbrt,Yt=Math.pow,St=Math.sign,Lt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Dt(r,"rgb"),n=t[0],a=t[1],f=t[2],o=[$t(n/255),$t(a/255),$t(f/255)],c=o[0],u=o[1],i=o[2],l=Ct(.4122214708*c+.5363325363*u+.0514459929*i),d=Ct(.2119034982*c+.6806995451*u+.1073969566*i),h=Ct(.0883024619*c+.2817188376*u+.6299787005*i);return[.M
2104542553*l+.793617785*d-.0040720468*h,1.9779984951*l-2.428592205*d+.4505937099*h,.0259040371*l+.7827717662*d-.808675766*h]};function $t(r){var e=Math.abs(r);return e<.04045?r/12.92:(St(r)||1)*Yt((e+.055)/1.055,2.4)}var Tt=l.unpack,Kt=Math.pow,Wt=Math.sign,Xt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=Tt(r,"lab"))[0],n=r[1],a=r[2],f=Kt(t+.3963377774*n+.2158037573*a,3),o=Kt(t-.1055613458*n-.0638541728*a,3),c=Kt(t-.0894841775*n-1.291485548*a,3);return[255*Zt(4.0767416621*f-3.307711591M
3*o+.2309699292*c),255*Zt(-1.2684380046*f+2.6097574011*o-.3413193965*c),255*Zt(-.0041960863*f-.7034186147*o+1.707614701*c),r.length>3?r[3]:1]};function Zt(r){var e=Math.abs(r);return e>.0031308?(Wt(r)||1)*(1.055*Kt(e,1/2.4)-.055):12.92*r}var Ht=l.unpack,zt=l.type,Ut=m,Vt=v,Jt=d,Qt=Lt;Vt.prototype.oklab=function(){return Qt(this._rgb)},Ut.oklab=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Vt,[null].concat(r,["oklab"])))},Jt.format.oklab=Xt,Jt.autodetect.pM
ush({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ht(r,"oklab"),"array"===zt(r)&&3===r.length)return"oklab"}});var rn=l.unpack,en=Lt,tn=Se,nn=l.unpack,an=ze,fn=Xt,on=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=nn(r,"lch"))[0],n=r[1],a=r[2],f=an(t,n,a),o=f[0],c=f[1],u=f[2],i=fn(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},cn=l.unpack,un=l.type,ln=m,dn=v,hn=d,bn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rn(r,"rgb"),n=tM
[0],a=t[1],f=t[2],o=en(n,a,f),c=o[0],u=o[1],i=o[2];return tn(c,u,i)};dn.prototype.oklch=function(){return bn(this._rgb)},ln.oklch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(dn,[null].concat(r,["oklch"])))},hn.format.oklch=on,hn.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=cn(r,"oklch"),"array"===un(r)&&3===r.length)return"oklch"}});var sn=v,pn=l.type;sn.prototype.alpha=function(r,e){return void 0===e&M
&(e=!1),void 0!==r&&"number"===pn(r)?e?(this._rgb[3]=r,this):new sn([this._rgb[0],this._rgb[1],this._rgb[2],r],"rgb"):this._rgb[3]},v.prototype.clipped=function(){return this._rgb._clipped||!1};var gn=v,vn=pe;gn.prototype.darken=function(r){void 0===r&&(r=1);var e=this.lab();return e[0]-=vn.Kn*r,new gn(e,"lab").alpha(this.alpha(),!0)},gn.prototype.brighten=function(r){return void 0===r&&(r=1),this.darken(-r)},gn.prototype.darker=gn.prototype.darken,gn.prototype.brighter=gn.prototype.brighten,v.prototype.get=functioM
n(r){var e=r.split("."),t=e[0],n=e[1],a=this[t]();if(n){var f=t.indexOf(n)-("ok"===t.substr(0,2)?2:0);if(f>-1)return a[f];throw new Error("unknown channel "+n+" in mode "+t)}return a};var yn=v,mn=l.type,kn=Math.pow;yn.prototype.luminance=function(r){if(void 0!==r&&"number"===mn(r)){if(0===r)return new yn([0,0,0,this._rgb[3]],"rgb");if(1===r)return new yn([255,255,255,this._rgb[3]],"rgb");var e=this.luminance(),t=20,n=function(e,a){var f=e.interpolate(a,.5,"rgb"),o=f.luminance();return Math.abs(r-o)<1e-7||!t--?f:o>rM
?n(e,f):n(f,a)},a=(e>r?n(new yn([0,0,0]),this):n(this,new yn([255,255,255]))).rgb();return new yn(a.concat([this._rgb[3]]))}return wn.apply(void 0,this._rgb.slice(0,3))};var wn=function(r,e,t){return.2126*(r=Mn(r))+.7152*(e=Mn(e))+.0722*(t=Mn(t))},Mn=function(r){return(r/=255)<=.03928?r/12.92:kn((r+.055)/1.055,2.4)},_n={},Nn=v,Fn=l.type,xn=_n,Pn=v,Rn=function(r,e,t){void 0===t&&(t=.5);for(var n=[],a=arguments.length-3;a-- >0;)n[a]=arguments[a+3];var f=n[0]||"lrgb";if(xn[f]||n.length||(f=Object.keys(xn)[0]),!xn[f])tM
hrow new Error("interpolation mode "+f+" is not defined");return"object"!==Fn(r)&&(r=new Nn(r)),"object"!==Fn(e)&&(e=new Nn(e)),xn[f](r,e,t).alpha(r.alpha()+t*(e.alpha()-r.alpha()))};Pn.prototype.mix=Pn.prototype.interpolate=function(r,e){void 0===e&&(e=.5);for(var t=[],n=arguments.length-2;n-- >0;)t[n]=arguments[n+2];return Rn.apply(void 0,[this,r,e].concat(t))};var Gn=v;Gn.prototype.premultiply=function(r){void 0===r&&(r=!1);var e=this._rgb,t=e[3];return r?(this._rgb=[e[0]*t,e[1]*t,e[2]*t,t],this):new Gn([e[0]*t,M
e[1]*t,e[2]*t,t],"rgb")};var jn=v,En=pe;jn.prototype.saturate=function(r){void 0===r&&(r=1);var e=this.lch();return e[1]+=En.Kn*r,e[1]<0&&(e[1]=0),new jn(e,"lch").alpha(this.alpha(),!0)},jn.prototype.desaturate=function(r){return void 0===r&&(r=1),this.saturate(-r)};var On=v,qn=l.type;On.prototype.set=function(r,e,t){void 0===t&&(t=!1);var n=r.split("."),a=n[0],f=n[1],o=this[a]();if(f){var c=a.indexOf(f)-("ok"===a.substr(0,2)?2:0);if(c>-1){if("string"==qn(e))switch(e.charAt(0)){case"+":case"-":o[c]+=+e;break;case"*M
":o[c]*=+e.substr(1);break;case"/":o[c]/=+e.substr(1);break;default:o[c]=+e}else{if("number"!==qn(e))throw new Error("unsupported value for Color.set");o[c]=e}var u=new On(o,a);return t?(this._rgb=u._rgb,this):u}throw new Error("unknown channel "+f+" in mode "+a)}return o};var Bn=v;_n.rgb=function(r,e,t){var n=r._rgb,a=e._rgb;return new Bn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"rgb")};var In=v,An=Math.sqrt,Dn=Math.pow;_n.lrgb=function(r,e,t){var n=r._rgb,a=n[0],f=n[1],o=n[2],c=e._rgb,u=c[0],i=c[1M
],l=c[2];return new In(An(Dn(a,2)*(1-t)+Dn(u,2)*t),An(Dn(f,2)*(1-t)+Dn(i,2)*t),An(Dn(o,2)*(1-t)+Dn(l,2)*t),"rgb")};var Cn=v;_n.lab=function(r,e,t){var n=r.lab(),a=e.lab();return new Cn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"lab")};var Yn=v,Sn=function(r,e,t,n){var a,f,o,c,u,i,l,d,h,b,s,p,g;return"hsl"===n?(o=r.hsl(),c=e.hsl()):"hsv"===n?(o=r.hsv(),c=e.hsv()):"hcg"===n?(o=r.hcg(),c=e.hcg()):"hsi"===n?(o=r.hsi(),c=e.hsi()):"lch"===n||"hcl"===n?(n="hcl",o=r.hcl(),c=e.hcl()):"oklch"===n&&(o=r.oklch()M
.reverse(),c=e.oklch().reverse()),"h"!==n.substr(0,1)&&"oklch"!==n||(u=(a=o)[0],l=a[1],h=a[2],i=(f=c)[0],d=f[1],b=f[2]),isNaN(u)||isNaN(i)?isNaN(u)?isNaN(i)?p=Number.NaN:(p=i,1!=h&&0!=h||"hsv"==n||(s=d)):(p=u,1!=b&&0!=b||"hsv"==n||(s=l)):p=u+t*(i>u&&i-u>180?i-(u+360):i<u&&u-i>180?i+360-u:i-u),void 0===s&&(s=l+t*(d-l)),g=h+t*(b-h),new Yn("oklch"===n?[g,s,p]:[p,s,g],n)},Ln=Sn,$n=function(r,e,t){return Ln(r,e,t,"lch")};_n.lch=$n,_n.hcl=$n;var Tn=v;_n.num=function(r,e,t){var n=r.num(),a=e.num();return new Tn(n+t*(a-n),M
"num")};var Kn=Sn;_n.hcg=function(r,e,t){return Kn(r,e,t,"hcg")};var Wn=Sn;_n.hsi=function(r,e,t){return Wn(r,e,t,"hsi")};var Xn=Sn;_n.hsl=function(r,e,t){return Xn(r,e,t,"hsl")};var Zn=Sn;_n.hsv=function(r,e,t){return Zn(r,e,t,"hsv")};var Hn=v;_n.oklab=function(r,e,t){var n=r.oklab(),a=e.oklab();return new Hn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"oklab")};var zn=Sn;_n.oklch=function(r,e,t){return zn(r,e,t,"oklch")};Math.pow,Math.sqrt,Math.PI,Math.cos,Math.sin,Math.atan2,Math.pow;var Un=m,Vn=funM
ction(r,e,t){if(!Vn[t])throw new Error("unknown blend mode "+t);return Vn[t](r,e)},Jn=function(r){return function(e,t){var n=Un(t).rgb(),a=Un(e).rgb();return Un.rgb(r(n,a))}},Qn=function(r){return function(e,t){var n=[];return n[0]=r(e[0],t[0]),n[1]=r(e[1],t[1]),n[2]=r(e[2],t[2]),n}};Vn.normal=Jn(Qn(function(r){return r})),Vn.multiply=Jn(Qn(function(r,e){return r*e/255})),Vn.screen=Jn(Qn(function(r,e){return 255*(1-(1-r/255)*(1-e/255))})),Vn.overlay=Jn(Qn(function(r,e){return e<128?2*r*e/255:255*(1-2*(1-r/255)*(1-eM
/255))})),Vn.darken=Jn(Qn(function(r,e){return r>e?e:r})),Vn.lighten=Jn(Qn(function(r,e){return r>e?r:e})),Vn.dodge=Jn(Qn(function(r,e){return 255===r?255:(r=e/255*255/(1-r/255))>255?255:r})),Vn.burn=Jn(Qn(function(r,e){return 255*(1-(1-e/255)/(r/255))}));Math.pow,Math.sin,Math.cos,Math.floor,Math.random,Math.log,Math.pow,Math.floor,Math.abs,Math.sqrt,Math.pow,Math.min,Math.max,Math.atan2,Math.abs,Math.cos,Math.sin,Math.exp,Math.PI;for(var ra={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d730M
1f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:M
["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeM
b","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6M
","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#M
fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#M
01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999M
999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","M
#fddaec","#f2f2f2"]},ea=0,ta=Object.keys(ra);ea<ta.length;ea+=1){var na=ta[ea];ra[na.toLowerCase()]=ra[na]}return m});
function Q5(e){return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100;n.height=100;n.canvas.width=n.width;n.canvas.height=n.height;"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",function(){document.body.appendChild(n.canvas)}));m();n.MAGIC=161533525;n.RGB=0;n.HSVM
=1;n.HSB=1;n.CHORD=0;n.PIE=1;n.OPEN=2;n.RADIUS=1;n.CORNER=2;n.CORNERS=3;n.ROUND="round";n.SQUARE="butt";n.PROJECT="square";n.MITER="miter";n.BEVEL="bevel";n.CLOSE=1;n.BLEND="source-over";n.REMOVE="destination-out";n.ADD="lighter";n.DARKEST="darken";n.LIGHTEST="lighten";n.DIFFERENCE="difference";n.SUBTRACT="subtract";n.EXCLUSION="exclusion";n.MULTIPLY="multiply";n.SCREEN="screen";n.REPLACE="copy";n.OVERLAY="overlay";n.HARD_LIGHT="hard-light";n.SOFT_LIGHT="soft-light";n.DODGE="color-dodge";n.BURN="color-burn";n.NORMAM
L="normal";n.ITALIC="italic";n.BOLD="bold";n.BOLDITALIC="italic bold";n.CENTER="center";n.LEFT="left";n.RIGHT="right";n.TOP="top";n.BOTTOM="bottom";n.BASELINE="alphabetic";n.LANDSCAPE="landscape";n.PORTRAIT="portrait";n.ALT=18;n.BACKSPACE=8;n.CONTROL=17;n.DELETE=46;n.DOWN_ARROW=40;n.ENTER=13;n.ESCAPE=27;n.LEFT_ARROW=37;n.OPTION=18;n.RETURN=13;n.RIGHT_ARROW=39;n.SHIFT=16;n.TAB=9;n.UP_ARROW=38;n.HALF_PI=Math.PI/2;n.PI=Math.PI;n.QUARTER_PI=Math.PI/4;n.TAU=2*Math.PI;n.TWO_PI=2*Math.PI;n.THRESHOLD=1;n.GRAY=2;n.OPAQUE=3;M
n.INVERT=4;n.POSTERIZE=5;n.DILATE=6;n.ERODE=7;n.BLUR=8;n.ARROW="default";n.CROSS="crosshair";n.HAND="pointer";n.MOVE="move";n.TEXT="text";n.VIDEO={video:!0,audio:!1};n.AUDIO={video:!1,audio:!0};n.SHR3=1;n.LCG=2;n.HARDWARE_FILTERS=!0;n.hint=function(e,t){n[e]=t};n.frameCount=0;n.mouseX=0;n.mouseY=0;n.pmouseX=0;n.pmouseY=0;n.mouseButton=null;n.keyIsPressed=!1;n.mouseIsPressed=!1;n.key=null;n.keyCode=null;n.pixels=null;n.accelerationX=0;n.accelerationY=0;n.accelerationZ=0;n.rotationX=0;n.rotationY=0;n.rotationZ=0;n.reM
lRotationX=0;n.relRotationY=0;n.relRotationZ=0;n.pAccelerationX=0;n.pAccelerationY=0;n.pAccelerationZ=0;n.pRotationX=0;n.pRotationY=0;n.pRotationZ=0;n.pRelRotationX=0;n.pRelRotationY=0;n.pRelRotationZ=0;n.touches=[];n._colorMode=n.RGB;n._noStroke=!1;n._noFill=!1;n._ellipseMode=n.CENTER;n._rectMode=n.CORNER;n._curveDetail=20;n._curveAlpha=0;n._noLoop=!1;n._textFont="sans-serif";n._textSize=12;n._textLeading=12;n._textStyle="normal";n._pixelDensity=1;n._frameRate=null;n._tint=null;let a=null;let r=!0;let i=[];let l=nM
ull;let u=0;let s={};let c=0;let h=null;let f=null;let d=null;Object.defineProperty(n,"deviceOrientation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}});Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}});Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}});Object.defineProperty(n,"drawingContext",{get:function(){return o}});n.createCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t,m()};n.resizM
eCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t};n.createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o};n.pixelDensity=function(e){return null==e?n._pixelDensity:(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),m(),n._pixelDensity)};n.map=function(e,t,n,o,a,r){let i=o+1*(e-t)/(nM
-t)*(a-o);return r?o<a?Math.min(Math.max(i,o),a):Math.min(Math.max(i,a),o):i};n.lerp=function(e,t,n){return e*(1-n)+t*n};n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)};n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])};n.norm=function(e,t,o){return n.map(e,t,o,0,1)};n.sq=function(e){return e*e};n.fract=function(e){return e-Math.floor(e)};n.degrees=functiM
on(e){return 180*e/Math.PI};n.radians=function(e){return e*Math.PI/180};n.abs=Math.abs;n.ceil=Math.ceil;n.exp=Math.exp;n.floor=Math.floor;n.log=Math.log;n.mag=Math.hypot;n.max=Math.max;n.min=Math.min;n.round=Math.round;n.sqrt=Math.sqrt;n.sin=Math.sin;n.cos=Math.cos;n.tan=Math.tan;n.asin=Math.asin;n.acos=Math.acos;n.atan=Math.atan;n.atan2=Math.atan2;n.Vector=function(e,t,o){let a=this;a.x=e||0,a.y=t||0,a.z=o||0;let r=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n||0}:{x:e,y:e,z:e}}function u()M
{null==i&&(i=a.x*a.x+a.y*a.y+a.z*a.z,r=Math.sqrt(i))}function s(){i=null,r=null}a.set=function(e,t,n){a.x=e||0,a.y=t||0,a.z=n||0},a.copy=function(){return new n.Vector(a.x,a.y,a.z)},a.add=function(){let e=l.apply(null,arguments);return a.x+=e.x,a.y+=e.y,a.z+=e.z,s(),a},a.rem=function(){let e=l.apply(null,arguments);return a.x%=e.x,a.y%=e.y,a.z%=e.z,s(),a},a.sub=function(){let e=l.apply(null,arguments);return a.x-=e.x,a.y-=e.y,a.z-=e.z,s(),a},a.mult=function(){let e=l.apply(null,arguments);return a.x*=e.x,a.y*=e.y,aM
.z*=e.z,s(),a},a.div=function(){let e=l.apply(null,arguments);return a.x/=e.x,a.y/=e.y,a.z/=e.z,s(),a},a.mag=function(){return u(),r},a.magSq=function(){return u(),i},a.dot=function(){let e=l.apply(null,arguments);return a.x*e.x+a.y*e.y+a.z*e.z},a.dist=function(){let e=l.apply(null,arguments),t=a.x-e.x,n=a.y-e.y,o=a.z-e.z;return Math.sqrt(t*t+n*n+o*o)},a.cross=function(){let e=l.apply(null,arguments),t=a.y*e.z-a.z*e.y,n=a.z*e.x-a.x*e.z,o=a.x*e.y-a.y*e.x;return a.x=t,a.y=n,a.z=o,s(),a},a.normalize=function(){u();letM
 e=r;return a.x/=e,a.y/=e,a.z/=e,r=1,i=1,a},a.limit=function(e){u();let t=r;if(t>e){let n=e/t;a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e}return a},a.setMag=function(e){u();let t=r,n=e/t;return a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e,a},a.heading=function(){return Math.atan2(a.y,a.x)},a.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=a.x*t-a.y*n,r=a.x*n+a.y*t;return a.x=o,a.y=r,a},a.angleBetween=function(){let e=l.apply(null,arguments);const t=a.dot(e)/(a.mag()*e.mag());let n;return n=Math.acos(Math.min(1,Math.max(-1,t))),n*=Math.sM
ign(a.cross(e).z||1)},a.lerp=function(e,t){return a.x=a.x*(1-t)+e.x*t,a.y=a.y*(1-t)+e.y*t,a.z=a.z*(1-t)+e.z*t,s(),a},a.reflect=function(e){return e.normalize(),a.sub(e.mult(2*a.dot(e)))},a.array=function(){return[a.x,a.y,a.z]},a.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-a.x)<t&&Math.abs(e.y-a.y)<t&&Math.abs(e.z-a.z)<t},a.fromAngle=function(e,t){return null==t&&(t=1),r=t,i=t*t,a.x=t*Math.cos(e),a.y=t*Math.sin(e),a.z=0,a},a.fromAngles=function(e,t,n){null==n&&(n=1),r=n,i=n*n;coM
nst o=Math.cos(t),l=Math.sin(t),u=Math.cos(e),s=Math.sin(e);return a.x=n*s*l,a.y=-n*u,a.z=n*s*o,a},a.random2D=function(){return r=1,i=1,a.fromAngle(Math.random()*Math.PI*2)},a.random3D=function(){return r=1,i=1,a.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},a.toString=function(){return`[${a.x}, ${a.y}, ${a.z}]`}};n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)};n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)};n.Vector.sub=function(e,t){return new n.VecM
tor(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):new n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)};n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)};n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)};n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-o)+t.x*o,e.y=e.y*(1-o)+t.y*o,e.M
z=e.z*(1-o)+t.z*o)};n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAngles","random2D","random3D"])n.Vector[e]=function(t,o,a){return(new n.Vector)[e](t,o,a)};n.createVector=function(e,t,o){return new n.Vector(e,t,o)};n.curvePoint=function(e,t,n,o,a){const r=a*a*a,i=a*a,l=-.5*r+i-.5*a,u=1.5*r-2.5*i+1,s=-1.5*r+2*i+.5*a,c=.5*r-.5*i;return e*l+t*u+n*s+o*c};n.bezierPoint=function(e,t,n,o,a){const r=1-a;return Math.pow(r,3)*e+3*Math.pow(r,2)*a*t+3*r*Math.pow(a,2)*n+Math.pow(a,3)*o};n.M
curveTangent=function(e,t,n,o,a){const r=a*a,i=-3*r/2+2*a-.5,l=9*r/2-5*a,u=-9*r/2+4*a+.5,s=3*r/2-a;return e*i+t*l+n*u+o*s};n.bezierTangent=function(e,t,n,o,a){const r=1-a;return 3*o*Math.pow(a,2)-3*n*Math.pow(a,2)+6*n*r*a-6*t*r*a+3*t*Math.pow(r,2)-3*e*Math.pow(r,2)};function p(e,t,n){let o,a,r,i,l,u,s,c,h;if(0==t)return[255*(o=n),255*(a=n),255*(r=n)];switch((i=e)>360&&(i=0),s=n*(1-t),c=n*(1-t*(u=(i/=60)-(l=~~i))),h=n*(1-t*(1-u)),l){case 0:o=n,a=h,r=s;break;case 1:o=c,a=n,r=s;break;case 2:o=s,a=n,r=h;break;case 3:o=M
s,a=c,r=n;break;case 4:o=h,a=s,r=n;break;default:o=n,a=s,r=c}return[255*o,255*a,255*r]}n.Color=function(e,t,n,o){let a=this;a.MAGIC=786698,a._r=e,a._g=t,a._b=n,a._a=o,a._h=0,a._s=0,a._v=0,a._hsvInferred=!1,a.setRed=function(e){a._r=e,a._hsvInferred=!1},a.setGreen=function(e){a._g=e,a._hsvInferred=!1},a.setBlue=function(e){a._b=e,a._hsvInferred=!1},a.setAlpha=function(e){a._a=e/255,a._hsvInferred=!1},a._inferHSV=function(){a._hsvInferred||([a._h,a._s,a._v]=function(e,t,n){let o,a,r,i,l;if(o=e<t?e<n?e:n:t<n?t:n,0==(lM
=100*(a=e>t?e>n?e:n:t>n?t:n)/255))return[r=0,i=0,l];if(0==(i=100*(a-o)/a))return[r=0,i,l];r=a==e?0+60*(t-n)/(a-o):a==t?120+60*(n-e)/(a-o):240+60*(e-t)/(a-o);return[r,i,l]}(a._r,a._g,a._b),a._hsvInferred=!0)},a.toString=function(){return`rgba(${Math.round(a._r)},${Math.round(a._g)},${Math.round(a._b)},${~~(1e3*a._a)/1e3})`}};n.colorMode=function(e){n._colorMode=e};n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGIC)return arguments[0];if(n._colorMode==n.RGB){if(1==arguments.length)return new n.ColoM
r(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);if(3==arguments.length)return M
new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null};n.red=function(e){return e._r};n.green=function(e){return e._g};n.blue=function(e){return e._b};n.alpha=function(e){return 255*e._a};n.hue=function(e){return e._inferHSV(),e._h};n.saturation=function(e){return e._inferHSV(),e._s};n.brightness=function(e){return e._inferHSV(),e._v};n.lightness=function(e){return 100*(.2126*e._r+.M
7152*e._g+.0722*e._b)/255};n.lerpColor=function(e,t,o){return n._colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var a=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.map(o,0,1,e,t-360)]];return a.sort((e,t)=>e[0]-t[0]),(a[0][1]+720)%360}(e._h,t._h,o),0,360),n.constrM
ain(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))};function m(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}n.strokeWeight=function(e){n._noStroke=!1,o.lineWidth=e};n.stroke=function(){if(n._noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noStroke=!0:o.strokeStyle=e};n.noStroke=function(){n._noStroke=!0};n.fill=function(){if(n._noFill=!1,"striM
ng"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noFill=!0:o.fillStyle=e};n.noFill=function(){n._noFill=!0};n.blendMode=function(e){o.globalCompositeOperation=e};n.strokeCap=function(e){o.lineCap=e};n.strokeJoin=function(e){o.lineJoin=e};n.ellipseMode=function(e){n._ellipseMode=e};n.rectMode=function(e){n._rectMode=e};n.curveDetail=function(e){n._curveDetail=e};n.curveAlpha=function(e){n._curveAlpha=e};n.curveTightness=function(e){console.warn("curveTightM
ness() sets the 'alpha' parameter of Catmull-Rom curve, and is NOT identical to p5.js counterpart. As this might change in the future, please call curveAlpha() directly."),n._curveAlpha=e};n.clear=function(){o.clearRect(0,0,n.width,n.height)};n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),"string"==typeof arguments[0]?o.fillStyle=arguments[0]:o.fillStyle=n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.heigM
ht),o.restore()};n.line=function(e,t,a,r){n._noStroke||(o.beginPath(),o.moveTo(e,t),o.lineTo(a,r),o.stroke())};function g(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function v(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;let c=g(i),h=g(l);o.beginPath();for(let i=0;i<s+1;i++){let l=i/s,u=n.lerp(c,h,l),f=Math.cos(u)*a/2,d=Math.sin(u)*r/2;o[i?"lineTo":"moveTo"](e+f,t+d)}u==n.CHORD?o.closePath():u==n.PIE&&(o.lineTo(e,t),o.closePath()),n._noFill||o.fill(),n._noStrM
oke||o.stroke()}n.arc=function(e,t,o,a,r,i,l,u){if(r==i)return n.ellipse(e,t,o,a);null==u&&(u=25),null==l&&(l=n.PIE),n._ellipseMode==n.CENTER?v(e,t,o,a,r,i,l,u):n._ellipseMode==n.RADIUS?v(e,t,2*o,2*a,r,i,l,u):n._ellipseMode==n.CORNER?v(e+o/2,t+a/2,o,a,r,i,l,u):n._ellipseMode==n.CORNERS&&v((e+o)/2,(t+a)/2,o-e,a-t,r,i,l,u)};function M(e,t,a,r){n._noFill&&n._noStroke||(o.beginPath(),o.ellipse(e,t,a/2,r/2,0,0,2*Math.PI),n._noFill||o.fill(),n._noStroke||o.stroke())}n.ellipse=function(e,t,o,a){null==a&&(a=o),n._ellipseMoM
de==n.CENTER?M(e,t,o,a):n._ellipseMode==n.RADIUS?M(e,t,2*o,2*a):n._ellipseMode==n.CORNER?M(e+o/2,t+a/2,o,a):n._ellipseMode==n.CORNERS&&M((e+o)/2,(t+a)/2,o-e,a-t)};n.circle=function(e,t,o){return n.ellipse(e,t,o,o)};n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()};function _(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;if(null==i)return function(e,t,a,r){n._noFill||o.fillRect(e,t,a,r);n._noStroke||o.strokeRect(e,t,a,r)}(e,t,a,r);if(null==l)return _(e,t,a,r,i,M
i,i,i);const c=Math.min(Math.abs(r),Math.abs(a))/2;i=Math.min(c,i),l=Math.min(c,l),s=Math.min(c,s),u=Math.min(c,u),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+a,t,e+a,t+r,l),o.arcTo(e+a,t+r,e,t+r,u),o.arcTo(e,t+r,e,t,s),o.arcTo(e,t,e+a,t,i),o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke()}n.rect=function(e,t,o,a,r,i,l,u){n._rectMode==n.CENTER?_(e-o/2,t-a/2,o,a,r,i,l,u):n._rectMode==n.RADIUS?_(e-o,t-a,2*o,2*a,r,i,l,u):n._rectMode==n.CORNER?_(e,t,o,a,r,i,l,u):n._rectMode==n.CORNERS&&_(e,t,o-e,a-t,r,i,l,u)};n.squM
are=function(e,t,o,a,r,i,l){return n.rect(e,t,o,o,a,r,i,l)};function x(){i=[]}n.beginShape=function(){x(),o.beginPath(),r=!0};n.beginContour=function(){o.closePath(),x(),r=!0};n.endContour=function(){x(),r=!0};n.vertex=function(e,t){x(),r?o.moveTo(e,t):o.lineTo(e,t),r=!1};n.bezierVertex=function(e,t,n,a,r,i){x(),o.bezierCurveTo(e,t,n,a,r,i)};n.quadraticVertex=function(e,t,n,a){x(),o.quadraticCurveTo(e,t,n,a)};n.bezier=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.bezierVertex(o,a,r,i,l,u),n.endShape()};nM
.triangle=function(e,t,o,a,r,i){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.endShape(n.CLOSE)};n.quad=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.vertex(l,u),n.endShape(n.CLOSE)};n.endShape=function(e){x(),e&&o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke(),n._noFill&&n._noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())};n.curveVertex=function(e,t){if(i.push([e,t]),i.length<4)return;let a=i[i.length-4],l=i[i.length-3],u=i[i.length-2],s=i[i.M
length-1],c=function(e,t,n,o,a,r,i,l,u,s){function c(e,t,n,o,a,r){let i=Math.pow(o-t,2)+Math.pow(a-n,2),l=Math.pow(i,.5*r);return l+e}let h=[],f=c(0,e,t,n,o,s),d=c(f,n,o,a,r,s),p=c(d,a,r,i,l,s);for(let s=0;s<u;s++){let c=f+s/(u-1)*(d-f),m=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<m.length;e+=2)isNaN(m[e])&&(m[e]=1,m[e+1]=0),isFinite(m[e])||(m[e]>0?(m[e]=1,m[e+1]=0):(m[e]=0,m[e+1]=1));let g=e*m[0]+n*m[1],v=t*m[0]+o*m[1],M=nM
*m[2]+a*m[3],_=o*m[2]+r*m[3],x=a*m[4]+i*m[5],y=r*m[4]+l*m[5],w=g*m[6]+M*m[7],R=v*m[6]+_*m[7],I=M*m[8]+x*m[9],E=_*m[8]+y*m[9],S=w*m[2]+I*m[3],C=R*m[2]+E*m[3];h.push([S,C])}return h}(...a,...l,...u,...s,n._curveDetail,n._curveAlpha);for(let e=0;e<c.length;e++)r?o.moveTo(...c[e]):o.lineTo(...c[e]),r=!1};n.curve=function(e,t,o,a,r,i,l,u){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,a),n.curveVertex(r,i),n.curveVertex(l,u),n.endShape()};n.translate=function(e,t){o.translate(e,t)};n.rotate=function(e){o.rotate(e)};nM
.scale=function(e,t){null==t&&(t=e),o.scale(e,t)};n.applyMatrix=function(e,t,n,a,r,i){o.transform(e,t,n,a,r,i)};n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)};n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)};n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)};n.pushMatrix=n.push=function(){o.save()};n.popMatrix=n.pop=function(){o.restore()};n.image=function(e,t,a,r,i,l,u,s,c){let h=e.MAGIC==n.MAGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let tM
=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(!function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d"));null==e&&(e=o.canvas.width,t=o.canvas.height);f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tinted(n._tint)),r?l?(s||(s=h.width),c||(c=h.height),o.drawImage(h,l,u,s,c,t,M
a,r,i),void d()):(o.drawImage(h,t,a,r,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,a,e.width,e.height):o.drawImage(h,t,a,e.videoWidth,e.videoHeight),void d())};n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data};n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)};n.loadImage=function(e,t){u++;let o=n.createGraphics(100,100),a=o.canvas.getContext("2d"),r=new Image;return r.src=e,r.crossOrigin="Anonymous",r.onload=function(){a.canvas.width=r.width,a.canvas.heM
ight=r.height,o.width=r.width,o.height=r.height,a.drawImage(r,0,0),u--,t&&t(o)},o};let y={};y[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}};y[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}};y[n.OPAQUE]=function(e){for(let t=0;t<e.length;t+=4)e[t+3]=255};y[n.INVERT]=function(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[tM
+2]=255-e[t+2]};y[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n};y[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.max(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.ERODE]=function(e){R(),d.set(M
e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.min(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let a=2*t+1;let r=function(e){let n=new Float32Array(e),o=.3*t+.8,a=o*o*2;for(let t=0;t<e;t++){let r=t-e/2,i=Math.exp(-r*r/a)/(2.5066282746*o);n[t]=i}reM
turn n}(a),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,u=0,s=0,c=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(o-t+e,0),i-1),h=4*(n*i+a);l+=d[h]*r[e],u+=d[h+1]*r[e],s+=d[h+2]*r[e],c+=d[h+3]*r[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=u,e[h+2]=s,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let u=0,s=0,c=0,h=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(n-t+e,0),l-1),f=4*(a*i+o);u+=d[f]*r[e],s+=d[f+1]*r[e],c+=d[f+2]*r[e],h+=d[f+3]*r[e]}let f=4*(n*i+o);e[f]=u,e[f+1]=sM
,e[f+2]=c,e[f+3]=h}};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClampedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvasM
,0,0),o.restore()}n.filter=function(e,t){let a=n.HARDWARE_FILTERS&&null!=o.filter;if(a)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5);let e=Math.floor(.5/t*100);I(`saturate(0%) brightness(${e}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(h.canvas,0,0),o.restore();else if(e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(t*M
n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}};n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()};n.getM
=function(e,t,a,r){if(null!=e&&null==a){let a=o.getImageData(e,t,1,1).data;return new n.Color(a[0],a[1],a[2],a[3]/255)}e=e||0,t=t||0,a=a||n.width,r=r||n.height;let i=n.createGraphics(a,r);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,a*n._pixelDensity,r*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i};n.set=function(e,t,a){if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.image(a,e,t),void(n._tint=o)}let r=4*(t*n._pixelDensity*o.canvas.width+M
e*n._pixelDensity);n.pixels[r]=a._r,n.pixels[r+1]=a._g,n.pixels[r+2]=a._b,n.pixels[r+3]=255*a._a};n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransform();let a=o.globalCompositeOperation;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.glM
obalCompositeOperation=a,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()};n.tint=function(){n._tint=n.color(...Array.from(arguments))};n.noTint=function(){n._tint=null};n.mask=function(e){o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositeOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeM
Operation=t,o.restore()};n.clearTemporaryBuffers=function(){h=null,f=null,d=null};n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t},!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)};n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.save(t,o);let n=t.split(".");return e.save(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);let aM
=e.split(".");return n.save(a.slice(0,-1).join("."),a[a.length-1])};n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),a=`@font-face {\n        font-family: '${o}';\n        src: url('${e}');\n      }`;const r=document.createElement("style");return r.textContent=a,document.head.append(r),o};n.textFont=function(e){n._textFont=e};n.textSize=function(e){n._textSize=e,n._textLeading=e};n.textLeading=function(e){n._textLeading=e};n.textStyle=function(e){n._textStyle=e};n.textAlign=M
function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)};n.text=function(e,t,a,r){if(!e)return;if(e=e.toString(),n._noFill&&n._noStroke)return;o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._noFill||o.fillText(i[e],t,a,r),n._noStroke||o.strokeText(i[e],t,a,r),a+=n._textLeading};n.textWidth=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).width};n.textAscent=function(e){return o.font=`${n._textStyle}M
 ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent};n.textDescent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent};var E=4;var S=.5;var C=function(e){return.5*(1-Math.cos(e*Math.PI))};var A;n.noise=function(e,t,n){if(t=t||0,n=n||0,null==A){A=new Array(4096);for(var o=0;o<4096;o++)A[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var a,r,i,l,u,s=Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-s,d=t-c,p=n-h,m=0,g=M
.5,v=0;v<E;v++){var M=s+(c<<4)+(h<<8);a=C(f),r=C(d),i=A[4095&M],i+=a*(A[M+1&4095]-i),l=A[M+16&4095],l+=a*(A[M+16+1&4095]-l),i+=r*(l-i),l=A[4095&(M+=256)],l+=a*(A[M+1&4095]-l),u=A[M+16&4095],u+=a*(A[M+16+1&4095]-u),l+=r*(u-l),i+=C(p)*(l-i),m+=i*g,g*=S,s<<=1,c<<=1,h<<=1,(f*=2)>=1&&(s++,f--),(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return m};n.noiseDetail=function(e,t){e>0&&(E=e),t>0&&(S=t)};const T=function(){let e,t,n=4294967295;return{setSeed(o){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17M
,e^=e>>13,((e^=e<<5)>>>0)/n)}};let D=T();D.setSeed();n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;A||(A=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,A[n]=(t>>>0)/4294967295};n.randomSeed=function(e){D.setSeed(e)};n.random=function(e,t){return"number"==typeof e?null!=t?D.rand()*(t-e)+e:D.rand()*e:e[~~(e.length*D.rand())]};n.randomGenerator=function(e){e==n.LCG?D=function(){const e=4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>t,rM
and:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(D=T()),D.setSeed()};var P=new function(){var e,t,n,o=new Array(128),a=new Array(256),r=new Array(128),i=new Array(128),l=new Array(256),u=new Array(256),s=function(){return 4294967296*D.rand()-2147483648},c=function(){return.5+2.328306e-10*(s()<<0)},h=function(){for(var t,a,l,u,h=3.44262;;){if(t=n*r[e],0==e){do{l=c(),u=c(),t=.2904764*-Math.log(l),a=-Math.log(u)}while(a+a<t*t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=s(),e=12M
7&n,Math.abs(n)<o[e])return n*r[e]}},f=function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],u[e]+c()*(u[e-1]-u[e])<Math.exp(-n))return n;if((t=s())<a[e=255&t])return t*l[e]}};this.SHR3=s,this.UNI=c,this.RNOR=function(){return n=s(),e=127&n,Math.abs(n)<o[e]?n*r[e]:h()},this.REXP=function(){return(t=s()>>>0)<o[e=255&t]?t*l[e]:f()},this.zigset=function(){var e,t,n=2147483648,s=4294967296,c=3.442619855899,h=c,f=.00991256303526217,d=7.697117470131487,p=d,m=.003949659822581572;for(e=f/Math.exp(-.5*c*cM
),o[0]=Math.floor(c/e*n),o[1]=0,r[0]=e/n,r[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),r[t]=c/n;for(e=m/Math.exp(-d),a[0]=Math.floor(d/e*s),a[1]=0,l[0]=e/s,l[255]=d/s,u[0]=1,u[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(m/d+Math.exp(-d)),a[t+1]=Math.floor(d/p*s),p=d,u[t]=Math.exp(-d),l[t]=d/s}};P.hasInit=!1;n.randomGaussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e};n.randomEM
xponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()};n.print=console.log;n.cursor=function(e,t,o){let a="";e.includes(".")&&(e=`url("${e}")`,a=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+a};n.noCursor=function(){n.canvas.style.cursor="none"};n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUserMedia(e).then(function(e){t.srcObject=e}),t.style.position="absolute",t.style.opacity=M
1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let b=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of b){let t="_"+e+"Fn";n[t]=function(){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(a=null==n._frameRate?requestAnimationFrame(z):setTimeout(z,1e3/n._frameRate)),x(),r=!0,o.save(),n._drawFn(),o.restore(),n.frM
ameCount++}n.noLoop=function(){n._noLoop=!0,a=null};n.loop=function(){n._noLoop=!1,null==a&&z()};n.redraw=function(){z()};n.frameRate=function(e){n._frameRate=e};setTimeout(function(){n._preloadFn(),c=window.performance.now(),function e(){if(u>0)return setTimeout(e,10);n._setupFn();z()}()},1);n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraggedFn(e):n._mouseMovedFn(e)};n.canvas.onmousedown=function(e){n.pmouseX=n.mouseX,n.pmousM
eY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)};n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)};n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickedFn(e),n.mouseIsPressed=!1};window.addEventListener("keydown",function(e){n.keyIsPressed=M
!0,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)});window.addEventListener("keyup",function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!1,n._keyReleasedFn(e)});n.keyIsDown=function(e){return!!s[e]};function O(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,a=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,y:(e.clientY-t.top)/a,id:e.identifier}}function k(){return n._touchStarted.isPlaceHolder&M
&n._touchMoved.isPlaceHolder&&n._touchEnded.isPlaceHolder}n.canvas.ontouchstart=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()};n.canvas.ontouchmove=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButtoM
n=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()};n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()};n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DeviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPeM
rmission);n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(e=>{"granted"==e&&(n.hasSensorPermission=!0)}).catch(alert)}).catch(alert)};window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pRelRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,nM
.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ};window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,!e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[M
1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13],e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]*t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[15M
],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]*t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(e)M
,0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}};n.year=function(){return(new Date).getFullYear()};n.day=function(){return(new Date).getDay()};n.hour=function(){return(new Date).getHours()};n.minute=function(){return(new Date).getMinutes()};n.second=function(){return(new Date).getSeconds()};n.millis=function(){return window.performance.now()-c}}(e)}
or{static p;static SAND_COLOR_MODE=3;static getSandColorByIndex(e,t=0,i=30,s=50){e%=5;let a=[];var r,h,n;for(let e=0;e<5;e++){let t=e%5;1==Color.SAND_COLOR_MODE?a.push(o(t)):2==Color.SAND_COLOR_MODE?a.push(l(t)):3==Color.SAND_COLOR_MODE?a.push(d(t)):4==Color.SAND_COLOR_MODE?a.push(m(t)):5==Color.SAND_COLOR_MODE?a.push(p(t)):6==Color.SAND_COLOR_MODE?a.push(g(t)):7==Color.SAND_COLOR_MODE?a.push(c(t)):8==Color.SAND_COLOR_MODE?a.push(u(t)):9==Color.SAND_COLOR_MODE&&a.push(v(t))}return a[e];function o(e){return 0==e?(r=M
t+60,h=i+5,n=s+5):1==e?(r=t+30,h=i+5,n=s+9):2==e?(r=t,h=i,n=s):3==e?(r=t-30,h=i+5,n=s+9):4==e&&(r=t-60,h=i+5,n=s+5),r<0?r+=360:r>360&&(r-=360),chroma(r,h/100,n/100,"hsl")}function l(e){return r=t,0==e?(h=i,n=s+30):1==e?(h=i-30,n=s+8):2==e?(h=i,n=s):3==e?(h=i-30,n=s+30):4==e&&(h=i,n=s-20),h<10&&(h+=60),(0==e||3==e)&&n>100&&(n=s-50),chroma(r,h/100,n/100,"hsl")}function d(e){return 0==e?(r=t-120,h=i+10,n=s-30):1==e?(r=t+120,h=i-10,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t-120,h=i+10,n=s):4==e&&(r=t+120,h=i+10,n=s-30),r>360?r-M
=360:r<0&&(r+=360),h>100&&(h-=20),n>100&&(n-=30),chroma(r,h/100,n/100,"hsl")}function m(e){return 0==e?(r=t,h=i+10,n=s-30):1==e?(r=t,h=i-30,n=s+30):2==e?(r=t,h=i,n=s):3==e?(r=t-180,h=i+20,n=s-30):4==e&&(r=t-180,h=i,n=s),r<0&&(r+=360),chroma(r,h/100,n/100,"hsl")}function p(e){return 0==e?(r=t-150,h=i-10,n=s+30):1==e?(r=t-150,h=i-5,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t+150,h=i+10,n=s+30):4==e&&(r=t+150,h=i+5,n=s),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n>100&&(n-=60),chroma(r,h/100,n/100,"hsl")}function g(e){return 0==M
e?(r=t+60,h=i-5):1==e?(r=t+150,h=i-10):2==e?(r=t,h=i):3==e?(r=t-150,h=i+10):4==e&&(r=t-60,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function c(e){return 0==e?(r=t,h=i+20):1==e?(r=t+90,h=i-10):2==e?(r=t,h=i):3==e?(r=t+180,h=i+10):4==e&&(r=t-90,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function u(e){return 0==e?(r=t+30,h=i+10,n=s+20):1==e?(r=t+30,h=i+40,n=s+40):2==e?(r=t,h=i,n=s):3==e?(r=t+160,h=i+25,n=s+5):4==e&&(r=t+150,h=i+10,n=s+20),r>3M
60&&(r-=360),(0==e||4==e)&&h>100?h-=20:1==e&&h>90?h-=80:3==e&&h>60&&(h-=50),1==e&&n>100?n-=80:(0==e||4==e)&&n>100&&(n-=40),chroma(r,h/100,n/100,"hsl")}function v(e){return r=t,h=i,0==e?n=s-25:1==e?n=s+30:2==e?n=s:3==e?n=s+5:4==e&&(n=s-10),n>100&&(n-=80),chroma(r,h/100,n/100,"hsl")}}static chromaToArray=e=>[e._rgb[0],e._rgb[1],e._rgb[2],255*e._rgb[3]];static setColorMode=e=>{this.SAND_COLOR_MODE=e}}class Geometry{static slicePolyByY(e,t){let i=[];for(let s=0;s<e.length;s++){let a=e[s],r=s?e[s-1]:e.at(-1),h=a.y>=t;h!M
=r.y>=t&&i.push(Geometry.interWithY(r,a,t)),h&&i.push(a)}return i}static getAreaBelowY(e,t){return Geometry.getPolyArea(Geometry.slicePolyByY(e,t))}static getYByAreaBelow(e,t){let[i,s,a,r]=Geometry.getBoundingBox(e,"COORD"),h=s,n=r;for(let i=0;i<30;++i){let i=(h+n)/2;Geometry.getAreaBelowY(e,i)>t?h=i:n=i}return n}static interWithY(e,t,i){let s=e.copy(),a=t.copy(),r=createVector(-1e9,i),h=createVector(1e9,i);return Geometry.intersection(s,a,r,h)}static getPolyArea(e){let t=0;for(let i=0;i<e.length;i++){let s=e[i],a=M
e[(i+1)%e.length],r=createVector(s.x,s.y),h=createVector(a.x,a.y);t+=r.cross(h).z}return t=abs(t)/2,t}static getBoundingBox(e,t="SIZE"){let i=e[0].x,s=e[0].x,a=e[0].y,r=e[0].y;for(let t=0;t<e.length;t++)isNaN(e[t].y)||(a=min(a,e[t].y),r=max(r,e[t].y)),isNaN(e[t].x)||(i=min(i,e[t].x),s=max(s,e[t].x));return"SIZE"==t?[i,a,s-i,r-a]:"COORD"==t?[i,a,s,r]:[]}static intersection(e,t,i,s){let a=createVector(t.x-e.x,t.y-e.y),r=createVector(s.x-i.x,s.y-i.y),h=createVector(i.x-e.x,i.y-e.y),n=(a.copy().rotate(PI/2),r.copy().roM
tate(PI/2)),o=h.dot(n)/a.dot(n),l=a.mult(o);return createVector(e.x+l.x,e.y+l.y)}}class GraphicUtils{static applyMask(e,t){e.push(),e.noStroke(),e.blendMode(REMOVE),e.fill(255,255,255,255),e.beginShape(),e.vertex(0,0),e.vertex(0,e.height),e.vertex(e.width,e.height),e.vertex(e.width,0),e.beginContour();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endContour(),e.endShape(e.CLOSE),e.blendMode(BLEND),e.pop()}}class Hourglass{static TICK_INTERVAL=60;static ROTATE_INTERVAL=10/3;constructor(e,t){this.evolvePeriod=M
e.evolvePeriod,t.registerIterationChangeEvent(this.onIterationChange.bind(this));let i=t.getCurrentIteration();this.onIterationChange(i),this.update(new Date)}onIterationChange(e){this.flipped=e%2==1}getState(){return{top:this.top,rotation:this.rotation,flipped:this.flipped,timeSinceRotation:this.timeSinceRotation}}update(e){let t,i=0;if(traits.evolvePeriod==EvolvePeriod.HOURLY)t=3600,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.DAILY)t=86400,i+=60*e.geM
tHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.MONTHLY){let s=e.getFullYear(),a=e.getMonth()+1;t=24*new Date(s,a,0).getDate()*60*60,i+=24*(e.getDate()-1)*60*60,i+=60*e.getHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3}this.flipped?this.top=1-min(1,i/t):this.top=min(1,i/t),this.timeSinceRotation=max(0,i-Hourglass.ROTATE_INTERVAL);let s=Math.min(i,Hourglass.ROTATE_INTERVAL);this.rotation=this.flipped?PI:0,this.rotatM
ion+=s/Hourglass.ROTATE_INTERVAL*PI}}function getRandomInt(e,t){return floor(random(e,t))}function getRandomItem(e){let t=0;for(const i of e)t+=i[1];let i=random(t),s=0;for(const t of e)if(s+=t[1],i<s)return t[0];return null}function shuffle(e){for(let t=1;t<e.length;++t){let i=getRandomInt(0,t),s=e[t];e[t]=e[i],e[i]=s}}class PostProcessing{constructor(e,t,i){this.wCanvas=e,this.hCanvas=t,this.graphic=createGraphics(this.wCanvas,this.hCanvas),this.updateFilter(1)}updateFilter(e,t,i){this.graphic.fill(255,255,255,25M
5),this.graphic.blendMode(REMOVE),this.graphic.rect(0,0,this.wCanvas,this.hCanvas),this.graphic.blendMode(BLEND);let s,a=this.wCanvas/2,r=this.hCanvas/2,h=2*sqrt(a*a+r*r);s=a>r?sqrt(1-Math.pow(r/a,2)):sqrt(1-Math.pow(a/r,2));let n,o;if(1!=abs(e)){let t,i;3==abs(e)?(t=6,i=.6):10==abs(e)?(t=4,i=.5):60==abs(e)?(t=3,i=.4):3600==abs(e)&&(t=2,i=.3),o=i-.1,n=map(sin(Date.now()/1e3/t*TAU),-1,1,i-.1,i+.1)}else i?(o=1,n=1):(o=.75,n=.75);this.graphic.push(),this.graphic.ellipseMode(RADIUS),this.graphic.translate(a,r);for(let M
e=39;e>=0;e--){let t=(e+1)/40;if(1==o||map(t,o,1,0,1.2)<=0)break;let i=max(map(t,n,1,0,1.2),0),s=color(0,0,0,255*i);this.graphic.fill(s),this.graphic.noStroke(),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),e>0&&(t=e/40,this.graphic.fill(255,255,255,255),this.graphic.blendMode(REMOVE),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),this.graphic.blendMode(BLEND))}this.graphic.pop()}applyToMainCanvas(){image(this.graphic,0,0)}}class BackgroundRenderer{constructor(e,t,i,s,a,r){this.wCanvas=e.width,this.hCanvas=eM
.height,this.maxR=min(this.wCanvas,this.hCanvas)/1024,this.dx,this.yvalues,this.xvalues,this.xspacing1=[],this.thickness1=[],this.theta1=[],this.velocity1=[],this.sz1=[],this.xspacing2=[],this.thickness2=[],this.theta2=[],this.velocity2=[],this.sz2=[],this.xspacing3=[],this.thickness3=[],this.theta3=[],this.velocity3=[],this.sz3=[],this.xspacing4=[],this.thickness4=[],this.theta4=[],this.velocity4=[],this.sz4=[],this.c=[],this.num_waves=30,this._h=t,this._s=i,this._l=s,this.patternOrder=a.patternOrder,this.diagonalM
=sqrt(Math.pow(width,2)+Math.pow(height,2));let h=createVector(width,height).heading(),n=abs(PI/4-h);this.ty=this.diagonal/2*cos(n),this.waveSpeed=a.waveSpeed,this.wavePeriod=a.wavePeriod,this.waveHeight=a.waveHeight,this.evolvePeriod=a.evolvePeriod,this.evolvePeriod==EvolvePeriod.DAILY?this.num_lines=7:(this.evolvePeriod==EvolvePeriod.HOURLY||this.evolvePeriod==EvolvePeriod.MONTHLY)&&(this.num_lines=12),this.waveHeight==WaveHeight.SHORT?this.amplitude=getRandomInt(20,30):this.waveHeight==WaveHeight.MEDIUM?this.ampM
litude=getRandomInt(30,40):this.waveHeight==WaveHeight.TALL&&(this.amplitude=getRandomInt(40,50)),this.wavePeriod==WavePeriod.SHORT?this.period=getRandomInt(300,351):this.wavePeriod==WavePeriod.MEDIUM?this.period=getRandomInt(425,476):this.wavePeriod==WavePeriod.LONG&&(this.period=getRandomInt(600,651)),this.waveSpeed==WaveSpeed.SLOW?(this.min_speed=.003,this.max_speed=.005):this.waveSpeed==WaveSpeed.MEDIUM?(this.min_speed=.008,this.max_speed=.01):this.waveSpeed==WaveSpeed.FAST&&(this.min_speed=.015,this.max_speed=M
.018),this.thetaList=[0,1/4*PI,.5*PI,3/4*PI,PI],this.setupStaticWave(),this.setupDynamicWave(),r.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=r.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){randomSeed(100*e+1),shuffle(this.xspacing1),shuffle(this.thickness1),shuffle(this.theta1),shuffle(this.xspacing1),shuffle(this.velocity1),shuffle(this.xspacing2),shuffle(this.thickness2),shuffle(this.theta2),shuffle(this.xspacing2),shuffle(this.velocity2),shuffle(this.xspacing3),shM
uffle(this.thickness3),shuffle(this.theta3),shuffle(this.xspacing3),shuffle(this.velocity3),shuffle(this.xspacing4),shuffle(this.thickness4),shuffle(this.theta4),shuffle(this.xspacing4),shuffle(this.velocity4)}setupStaticWave(){for(let e=0;e<this.num_waves;e++){this.xspacing1.push(getRandomInt(5,50)),this.thickness1.push(getRandomInt(50,200)),this.theta1.push({value:random(this.thetaList)}),this.velocity1.push({value:random(this.min_speed,this.max_speed)}),this.sz1.push(random(.5,3)),this.xspacing2.push(getRandomInM
t(5,50)),this.thickness2.push(getRandomInt(50,200)),this.theta2.push({value:random(this.thetaList)}),this.velocity2.push({value:random(this.min_speed,this.max_speed)}),this.sz2.push(random(.5,3)),this.xspacing3.push(getRandomInt(5,50)),this.thickness3.push(getRandomInt(50,200)),this.theta3.push({value:random(this.thetaList)}),this.velocity3.push({value:random(this.min_speed,this.max_speed)}),this.sz3.push(random(.5,3)),this.xspacing4.push(getRandomInt(5,50)),this.thickness4.push(getRandomInt(50,200)),this.theta4.puM
sh({value:random(this.thetaList)}),this.velocity4.push({value:random(this.min_speed,this.max_speed)}),this.sz4.push(random(.5,3));let t=e%5;this.c.push(Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25))}}setupDynamicWave(){this.dynamicWave={h:random(this.hCanvas/3),xspacing:getRandomInt(5,20),thickness:getRandomInt(100,200),theta:{value:random(this.thetaList)},velocity:{value:random(this.min_speed,this.max_speed)},sz:random(1,3),num_lines:0},1==this.patternOrder[0]?this.dynamicWave.h=random(200,heM
ight-200):2==this.patternOrder[0]?this.dynamicWave.h=random(200,width-200):(3==this.patternOrder[0]||4==this.patternOrder[0])&&(this.dynamicWave.h=random(200,2*this.ty-200))}update(e){this.time=e}drawHorWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(width/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),tM
+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s];r<-2||r>height+2||e.square(a,r,n*this.maxR)}}}drawVerWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.xvalues=new Array(floor(height/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.xvalues.length;e++)this.xvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.xvalues.length;s++){let a=t+this.xvalues[s],r=s*iM
;a<-2||a>width+2||e.square(a,r,n*this.maxR)}}}drawDiaWave(e,t,i,s,a,r,h,n,o,l){let d=cos(-l),m=sin(-l);this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(this.diagonal/i));let p=this.time.getTime()/(1e3/60),g=r.value+h.value*p/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(g)*this.amplitude,g+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s],h=n*this.maxR,o=a-this.diagonal/2,l=r-this.tM
y,p=o*d+l*m+width/2,g=-o*m+l*d+height/2;p<-2||p>width+2||g<-2||g>height+2||e.square(a,r,h)}}}drawHorizontal(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawHorWave(e,t,this.xspacing1[i]*width/1024,this.thickness1[i]*height/1024,this.num_lines,this.theta1[i],this.velocity1[i],this.sz1[i],this.c[i]),t+=(height+50)/this.num_waves}drawVertical(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawVerWave(e,t,this.xspacing2[i]*height/1024,this.thickness2[i]*width/1024,this.num_lines,this.theta2[i],this.vM
elocity2[i],this.sz2[i],this.c[i]),t+=(width+50)/this.num_waves}drawLeft(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing3[i]*this.maxR,this.thickness3[i]*this.maxR,this.num_lines,this.theta3[i],this.velocity3[i],this.sz3[i],this.c[i],PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawRight(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(M
3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing4[i]*this.maxR,this.thickness4[i]*this.maxR,this.num_lines,this.theta4[i],this.velocity4[i],this.sz4[i],this.c[i],3*PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawPattern(e,t){1==t?this.drawHorizontal(e):2==t?this.drawVertical(e):3==t?this.drawLeft(e):this.drawRight(e)}draw(e,t,i,s,a){this._h=s.h,this._s=s.s,this._l=s.l,e.background(0);let r=t.getHours()>=6&&t.getHours()<18?.2:.05,h=Color.getSandColorByIndex(4,this._h,this._s,M
this._l).luminance(r).alpha(.5);if(e.background(color(...Color.chromaToArray(h))),!a)return;this.evolvePeriod==EvolvePeriod.HOURLY?this.dynamicWave.num_lines=(t.getHours()+11)%12+1:this.evolvePeriod==EvolvePeriod.DAILY?this.dynamicWave.num_lines=t.getDay()+1:this.evolvePeriod==EvolvePeriod.MONTHLY&&(this.dynamicWave.num_lines=t.getMonth()+1);for(let e=0;e<this.num_waves;e++){let t=e%5;this.c[e]=Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25)}1==i?(3==this.patternOrder[0]||4==this.patternOrder[0]M
?this.num_waves=30:this.num_waves=20,this.drawPattern(e,this.patternOrder[0])):2==i?(this.patternOrder[0]+this.patternOrder[1]==3?this.num_waves=10:this.patternOrder[0]+this.patternOrder[1]==7?this.num_waves=20:this.num_waves=15,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1])):3==i?(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2])):(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),M
this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2]),this.drawPattern(e,this.patternOrder[3]));let{h:n,xspacing:o,thickness:l,num_lines:d,theta:m,velocity:p,sz:g}=this.dynamicWave,c=Color.getSandColorByIndex(0,this._h,this._s,this._l).luminance(.5);1==this.patternOrder[0]?this.drawHorWave(e,n,o*width/1024,l*height/1024,d,m,p,g,c):2==this.patternOrder[0]?this.drawVerWave(e,n,o*height/1024,l*width/1024,d,m,p,g,c):3==this.patternOrder[0]?(e.push(),e.translate(width/2,height/2),e.rotate(PI/M
4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,PI/4),e.pop()):4==this.patternOrder[0]&&(e.push(),e.translate(width/2,height/2),e.rotate(3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,3*PI/4),e.pop())}}class GrainRenderer{static texture;static deltaX;static deltaY;static maxDelta=100;static wCanvas;static hCanvas;static setup(e,t){GrainRenderer.wCanvas=e+GrainRenderer.maxDelta,GrainRenderer.hCanvas=t+GrainRendereM
r.maxDelta,GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0),GrainRenderer.texture=createImage(GrainRenderer.wCanvas,GrainRenderer.hCanvas),GrainRenderer.texture.loadPixels();let i=GrainRenderer.texture.pixelDensity();for(let e=0;e<GrainRenderer.wCanvas;e++)for(let t=0;t<GrainRenderer.hCanvas;t++){let s=216.75,a=255,r=random(s,a),h=random(s,a),n=random(s,a);for(let s=0;s<i;s++)for(let a=0;a<i;a++){let o=4*((t*i+a)*GrainRenderer.wCanvas*i+(e*i+s));GrainRendM
erer.texture.pixels[o]=r,GrainRenderer.texture.pixels[o+1]=h,GrainRenderer.texture.pixels[o+2]=n,GrainRenderer.texture.pixels[o+3]=255}}GrainRenderer.texture.updatePixels()}static applyGrain(e,t){let i=!!t&&{atFrame:1};e.textureOverlay(GrainRenderer.texture,{mode:BURN,animate:i})}static applyGrainToMainCanvas(e){blendMode(BURN),e&&(GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0)),image(GrainRenderer.texture,GrainRenderer.deltaX,GrainRenderer.deltaY)}}conM
st HourglassSize={SMALL:"SMALL",MEDIUM:"MEDIUM",LARGE:"LARGE"};class HourglassRenderer{constructor(e,t,i){this.nLayer=10,this.wCanvas=e.width,this.hCanvas=e.height,this.hourglassSize=t.hourglassSize,this.poly=t.poly,this.evolvePeriod=t.evolvePeriod,this.xc=this.wCanvas/2,this.yc=this.hCanvas/2,this.x1=this.xc+random(100,300),this.y1=this.yc+random(100,300),this.x2=this.xc+random(100,300),this.y2=this.yc+random(100,300),this.x1m=this.wCanvas-this.x1,this.y1m=this.y1,this.maxR=min(this.wCanvas,this.hCanvas)/2,1==thisM
.poly?this.mainRadius=.1*this.maxR*4:this.mainRadius=.1*this.maxR*getRandomInt(1,6),i.registerIterationChangeEvent(this.onIterationChange.bind(this));let s=i.getCurrentIteration();this.onIterationChange(s),this.topline=this.polygon(this.xc,this.yc,this.poly,PI),this.bottomline=this.polygon(this.xc,this.yc,this.poly,0),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.excitement=.15*max(this.sandRects[0][2],this.sandRects[0][3]),this.dx=[],this.dy=[];for(let e=0;e<2M
*this.nLayer;++e)this.dx[e]=random(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement);this.curSecond=(new Date).getSeconds(),this.rotateAngle=0}onIterationChange(e){randomSeed(100*e+2),this.startAngle=this.getStartAngle(),this.radiuses=this.getRadiuses()}getIteration(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(M
e.getFullYear()-1970)+e.getMonth()),t}getStartAngle(){let e=getRandomInt(1,6);return PI/(2.5+.5*e)}getRadiuses(){let e,t;this.hourglassSize==HourglassSize.MEDIUM?(e=.45*this.maxR,t=.55*this.maxR):this.hourglassSize==HourglassSize.LARGE&&(e=.6*this.maxR,t=.7*this.maxR);let i=[];for(let s=0;s<this.poly;s++){let a;a=0==s?e:random(e,t),i.push(a)}return i}update(e,t){if(e.getSeconds()!=this.curSecond){this.curSecond=e.getSeconds(),this.secondTicked=!0,this.rotateAngle+=PI/30;for(let e=0;e<2*this.nLayer;++e)this.dx[e]=raM
ndom(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement)}else this.secondTicked=!1;this.topline=this.polygon(this.xc,this.yc,this.poly,PI+t),this.bottomline=this.polygon(this.xc,this.yc,this.poly,t),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.time=e,this.rotation=t}draw(e,t,i){let s=i.luminance(.3);e.fill(255,255,255,255),e.blendMode(REMOVE),e.rect(0,0,this.wCanvas,this.hCanvas),e.blendMode(BLEND),0==t?this.drawShadowNormal(eM
,s,this.time):1==t&&this.drawShadowCircle(e,s),e.fill(255,255,255,255),e.blendMode(REMOVE),this.drawShape(e,this.topline),this.drawShape(e,this.bottomline),e.blendMode(BLEND)}drawShadowNormal(e,t,i){let s=floor(i.getMinutes()/10),a=i.getMinutes()%10;e.push(),e.noFill(),e.strokeWeight(.005*this.maxR);for(let i=0;i<s;i++){let a=map(i,s,0,.2,.5),r=color(...Color.chromaToArray(t.alpha(a)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i],this.yc+this.dy[2*i],this.poly,PI)}for(let i=0;i<a;i++){let s=map(i,a,0,.M
2,.5),r=color(...Color.chromaToArray(t.alpha(s)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i+1],this.yc+this.dy[2*i+1],this.poly,0)}e.pop()}drawShadowCircle(e,t){e.push(),e.noStroke(),e.translate(this.xc,this.yc),e.rotate(PI+this.rotateAngle);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.fill(a),this.getAndDrawPolygon(e,0,2.5*this.mainRadius,this.poly,PI),this.getAndDrawPolygon(e,0,2.5*-this.mainRadius,this.poly,0),e.rotate(PI/3)}e.pop(),e.push(),e.noFill(),M
e.strokeWeight(2),e.translate(this.xc,this.yc),e.rotate(-this.rotateAngle+PI/30);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.stroke(a),this.getAndDrawPolygon(e,0,-this.mainRadius/2,this.poly,PI),this.getAndDrawPolygon(e,0,this.mainRadius/2,this.poly,0),e.rotate(-PI/3)}e.pop()}getAndDrawPolygon(e,t,i,s,a){let r=this.polygon(t,i,s,a);this.drawShape(e,r)}drawShape(e,t){e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endShape(e.CLOSE)}polygon(e,t,i,s){leM
t a=(PI/2-this.startAngle)/i,r=0,h=[];h.push({x:e,y:t});let n=this.startAngle+s;for(let s=0;s<i;s++){let i=this.radiuses[r];r+=1;let s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}r=this.poly,n=PI/2+a+s;for(let s=0;s<i;s++){r-=1;let i=this.radiuses[r],s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}return h=h.filter((e=>!isNaN(e.x)&&!isNaN(e.y))),h}getSandRects=()=>this.sandRects;getTopLine=()=>this.topline;getBottomLine=()=>this.bottomline;getSecondTicked=()=>this.secondTicked}const WavePeriod={SHORT:"SHORT",MEM
DIUM:"MEDIUM",LONG:"LONG"},WaveHeight={SHORT:"SHORT",MEDIUM:"MEDIUM",TALL:"TALL"},WaveSpeed={SLOW:"SLOW",MEDIUM:"MEDIUM",FAST:"FAST"};class SandRenderer{static N_CURVE_POINT=50;static DROPDOWN_TIME=3;constructor(e,t,i,s,a,r,h,n){this.wCanvas=e.width,this.hCanvas=e.height,this.hInit=t,this.baseLine=this.transformCoord(i),this.baseH=s,this.baseS=a,this.baseL=r,this.curSecond=0,this.waveHeight=h.waveHeight,this.wavePeriod=h.wavePeriod,this.waveSpeed=h.waveSpeed,this.evolvePeriod=h.evolvePeriod,this.nSandLayer=6,this.lM
ayers=this.getLayers(),this._h=this.baseH,this._s=this.baseS,this._l=this.baseL,this.prevIteration=null,n.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=n.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){null==this.prevIteration?this._h=this.getHue(this.baseH,0,e):this._h=this.getHue(this._h,this.prevIteration,e),this.prevIteration=e}getHue(e,t,i){let s=min(t,i),a=max(t,i);for(let r=s;r<a;r++){randomSeed(100*r+3);let s=random(1);if(this.evolvePeriod==EvolvePeriod.HOURLY?s=M
map(s,0,1,5,10):this.evolvePeriod==EvolvePeriod.DAILY?s=map(s,0,1,10,30):this.evolvePeriod==EvolvePeriod.MONTHLY&&(s=map(s,0,1,50,100)),i>t)for(e+=s;e>360;)e-=360;else for(e-=s;e<0;)e+=360}return e}update(e){this.time=e}getChroma(){return Color.getSandColorByIndex(0,this._h,this._s,this._l)}getBaseHSL(){return{h:this._h,s:this._s,l:this._l}}draw(e,t,i,s,a){this.nLayer=(this.time.getHours()+11)%12+1,t=this.transformCoord(t),e.background(0);let r=this.getChroma().luminance(.5).alpha(.25);e.background(color(...Color.cM
hromaToArray(r))),e.strokeWeight(1),this.layers.forEach((e=>{if(0==e.id)e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).luminance(.2).alpha(1);else{let t=map(e.id/this.nSandLayer,0,1,.5,.8);e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).alpha(t)}let s=map(i,0,1,e.baselineY,this.hInit),a=max(0,map(s,this.hInit,0,0,1)),r=Geometry.getPolyArea(t)*a;e.y=Geometry.getYByAreaBelow(t,r),e.y=map(e.y,0,this.hInit,.05*-this.hCanvas,this.hInit+.05*this.hCanvas)})),this.layers.forEach((i=>{s&&2*i.id<thisM
.nLayer&&this.drawDropdown(e,t,i,a)})),this.layers.forEach((t=>this.drawLayer(e,t)));let h=!1;this.time.getSeconds()!=this.curSecond&&(this.curSecond=this.time.getSeconds(),h=!0),GraphicUtils.applyMask(e,t)}transformCoord(e){let[t,i,s,a]=Geometry.getBoundingBox(e),r=t+s,h=i+a;return e.map((e=>{let n=map(e.x,t,r,-s/2,s/2)+this.wCanvas/2,o=map(e.y,i,h,0,a);return createVector(n,o)}))}getLayers(){let e=[];for(let t=0;t<this.nSandLayer;t++){let i,s=this.hInit/this.nSandLayer*t;this.waveSpeed==WaveSpeed.SLOW?i=random(.0M
08,.012):this.waveSpeed==WaveSpeed.MEDIUM?i=random(.016,.024):this.waveSpeed==WaveSpeed.FAST&&(i=random(.032,.048));let a,r,h=random(1e4);this.wavePeriod==WavePeriod.SHORT?a=random(2.7,3):this.wavePeriod==WavePeriod.MEDIUM?a=random(1.8,2):this.wavePeriod==WavePeriod.LONG&&(a=random(1.2,1.3)),this.waveHeight==WaveHeight.SHORT?r=this.hCanvas/30:this.waveHeight==WaveHeight.MEDIUM?r=this.hCanvas/24:this.waveHeight==WaveHeight.TALL&&(r=this.hCanvas/18);let n={mode:"DELTA_Y",deltaY:(e,t)=>map(sin(e*a*TAU+t*i+h),-1,1,-r,rM
)};e.push({id:t,baselineY:s,height:r,speed:i,seed:h,shape:n,stripe:{distance:random(.04*this.hInit,.08*this.hInit),height:random(.02*this.hInit,.04*this.hInit),stretch:random(1.2,1.5),colorTransform:e=>e.brighten(1.2)}})}return e}drawDropdown=(e,t,i,s)=>{let{c:a,shape:r}=i,h=Geometry.getBoundingBox(t)[3],n=this.time.getTime()/(1e3/60),o=createVector(this.wCanvas/2,0),l=createVector(this.wCanvas/2,h),d=[];for(let e=0;e<50;e++){let t=e/49,i=o.copy(),{x:s,y:a}=Vector.lerp(i,l,t);s+=r.deltaY(t,-n/5)*map(e,0,50,.1,1.5),M
d.push(createVector(s,a))}let m=map(s,0,SandRenderer.DROPDOWN_TIME,0,50);m=min(m,50),e.push(),e.noStroke(),e.fill(color(...Color.chromaToArray(a)));for(let t=0;t<m;t++)e.square(d[t].x,d[t].y,.004*this.hCanvas);e.pop()};drawLayer=(e,t)=>{if(2*t.id<this.nLayer){let i=this.getLayerPointline(t);this.drawWave(e,i,t),this.drawPattern(e,i,t,this.hCanvas/8,this.hCanvas/60),2*t.id+1<this.nLayer&&this.drawStripe(e,i,t)}};getLayerPointline=e=>{let{y:t,shape:i}=e,s=[],a=this.time.getTime()/(1e3/60);if("DELTA_Y"==i.mode){let e=M
createVector(0,t),r=createVector(this.wCanvas,t);for(let t=0;t<SandRenderer.N_CURVE_POINT;t++){let h=t/(SandRenderer.N_CURVE_POINT-1),n=e.copy(),{x:o,y:l}=Vector.lerp(n,r,h);l+=i.deltaY(h,a/5),s.push(createVector(o,l))}}else s=[start,end];return s};drawWave=(e,t,i)=>{let{c:s}=i;e.noStroke(),e.fill(color(...Color.chromaToArray(s))),e.beginShape(),e.vertex(0,this.hCanvas);for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.vertex(this.wCanvas,this.hCanvas),e.endShape()};drawPattern=(e,t,i,s,a)=>{e.noStroke();for(letM
 i=a;i<=s;i+=a){let a=map((i-1)/(s-1),0,1,.2,0);e.fill(0,255*a),e.beginShape();for(let s=0;s<t.length;s++)e.vertex(t[s].x,t[s].y+i);for(let s=t.length-1;s>=0;s--)e.vertex(t[s].x,t[s].y+(i-1));e.endShape()}};drawStripe=(e,t,i)=>{let{c:s,stripe:{distance:a,height:r,stretch:h,colorTransform:n}}=i;e.noStroke();let o=n(s),l=color(...Color.chromaToArray(o)),d=s.alpha();l.setAlpha(255*d),e.fill(l),e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x*h,t[i].y+a);for(let i=t.length-1;i>=0;i--)e.vertex(t[i].x*h,t[i].y+aM
+r);e.endShape()}}new Q5("global");let wCanvas,hCanvas,canvas,timeController,hourglass,layerBackground,layerSandTop,layerSandBottom,layerHourglass,renBackground,renSandTop,renSandBottom,renHourglass,renPostProcessing,traits,prevSpeed,showMode,currentTime,maxFps=60;setup=()=>{setupRandom(),setupTraits(),setupSketch()},setupRandom=()=>{let e=p5seed;randomSeed(e),noiseSeed(e)},setupTraits=()=>{let e=getRandomInt(1,10),t=getRandomItem([[HourglassSize.MEDIUM,70],[HourglassSize.LARGE,30]]),i=getRandomItem([[WaveHeight.SHM
ORT,1],[WaveHeight.MEDIUM,1],[WaveHeight.TALL,1]]),s=getRandomItem([[WavePeriod.SHORT,1],[WavePeriod.MEDIUM,1],[WavePeriod.LONG,1]]),a=getRandomItem([[WaveSpeed.SLOW,1],[WaveSpeed.MEDIUM,1],[WaveSpeed.FAST,1]]),r=getRandomItem([[EvolvePeriod.HOURLY,60],[EvolvePeriod.DAILY,35],[EvolvePeriod.MONTHLY,5]]),h=getRandomItem([[1,5],[2,20],[3,50],[4,20],[5,5]]),n=getPatternOrder(),o=getRandomItem(AngelNumber.map((e=>[e[0],1]))),l=getRandomItem(BlissLimit.map((e=>[e[0],e[2]])));traits={waveHeight:i,wavePeriod:s,waveSpeed:a,M
evolvePeriod:r,color:e,hourglassSize:t,poly:h,patternOrder:n,angelNumber:o,blissLimit:l},console.log(traits)},getPatternOrder=()=>{let e=[],t=[1,2,3,4],i=getRandomItem([[1,.6],[2,.1],[3,.15],[4,.15]]);e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);for(let s=0;s<3;s++)i=random(t),e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);return e},setupSketch=()=>{frameRate(maxFps),frameCount=0,wCanvas=windowWidth,hCanvas=windowHeight,canvas=createCanvas(wCanvas,hCanvas),showMode=0,timeControM
ller=new TimeController(traits),hourglass=new Hourglass(traits,timeController);let e=getRandomInt(0,361),t=getRandomInt(30,101),i=getRandomInt(50,101);Color.setColorMode(traits.color),layerBackground=createGraphics(wCanvas,hCanvas),renBackground=new BackgroundRenderer(layerBackground,e,t,i,traits,timeController),layerHourglass=createGraphics(wCanvas,hCanvas),renHourglass=new HourglassRenderer(layerHourglass,traits,timeController);let s=renHourglass.getSandRects(wCanvas,hCanvas),a=renHourglass.getTopLine(),r=renHourM
glass.getBottomLine(),h=createVector(s[0][2],s[0][3]).mag();layerSandTop=createGraphics(h,h),layerSandBottom=createGraphics(h,h),renSandTop=new SandRenderer(layerSandTop,s[0][3],a,e,t,i,traits,timeController),renSandBottom=new SandRenderer(layerSandBottom,s[0][3],r,e,t,i,traits,timeController),imgSandTop=createGraphics(wCanvas,hCanvas),imgSandBottom=createGraphics(wCanvas,hCanvas),renPostProcessing=new PostProcessing(wCanvas,hCanvas,traits),GrainRenderer.setup(wCanvas,hCanvas),prevSpeed=1},draw=()=>{let e=0==showMoM
de||1==showMode,t=0==showMode||2==showMode,{time:i,state:s,speed:a,paused:r,isLive:h,realDelta:n}=timeController.step();hourglass.update(i),renSandTop.update(i),renSandBottom.update(i),renBackground.update(i);let o=4==s?1:0,{top:l,rotation:d,flipped:m,timeSinceRotation:p}=hourglass.getState();renHourglass.update(i,d);let g=renSandTop.getChroma(),c=renSandTop.getBaseHSL();if(background(255),renBackground.draw(layerBackground,i,s,c,e),image(layerBackground,0,0),t){let e=renHourglass.getSandRects();renHourglass.draw(lM
ayerHourglass,o,g),renSandTop.draw(layerSandTop,renHourglass.getTopLine(),1-l,!m,p),renSandBottom.draw(layerSandBottom,renHourglass.getBottomLine(),l,m,p),image(layerSandTop,...e[0],(layerSandTop.width-e[0][2])/2,0,e[0][2],e[0][3]),image(layerSandBottom,...e[1],(layerSandBottom.width-e[1][2])/2,0,e[1][2],e[1][3]),image(layerHourglass,0,0)}let u=renHourglass.getSecondTicked();GrainRenderer.applyGrainToMainCanvas(u),renPostProcessing.updateFilter(a,r,h),prevSpeed=a,renPostProcessing.applyToMainCanvas(),currentTime=i}M
,keyPressed=()=>{"+"!=key&&"="!=key||timeController.setFasterSpeed(),"-"==key&&timeController.setSlowerSpeed(),keyCode==LEFT_ARROW&&timeController.jumpBackward(),keyCode==RIGHT_ARROW&&timeController.jumpForward(),keyCode==ESCAPE&&timeController.resumeLive()," "==key&&timeController.togglePause(),"T"!=key&&"t"!=key||(showMode=(showMode+1)%3),"S"!=key&&"s"!=key||saveCanvasAtCurrentTime()},saveCanvasAtCurrentTime=()=>{let e=60*new Date(currentTime).getTimezoneOffset()*1e3,t=new Date(currentTime-e).toISOString().slice(M
0,-1);save(t+".png")};const EvolvePeriod={HOURLY:"HOURLY",DAILY:"DAILY",MONTHLY:"MONTHLY"},AngelNumber=[["11/111/1111",["1:1","1:11","11:1","11:11"],["1/1","11/1","1/11","11/11"]],["22/222/2222",["2:2","2:22","22:2","22:22"],["2/2","22/2"]],["33/333/3333",["3:3","3:33"],["3/3"]],["44/444/4444",["4:4","4:44"],["4/4"]],["55/555/555",["5:5","5:55"],["5/5"]],["66/666/6666",["6:6"],["6/6"]],["77/777/7777",["7:7"],["7/7"]],["88/888/8888",["8:8"],["8/8"]],["99/999/9999",["9:9"],["9/9"]],["1212",["12:12"],["12/12"]],["399/M
339",["3:39"],["3/3","9/3","3/9","9/9"]],["83/8833",["8:3"],["8/3","3/8"]],["72/7722",["7:2"],["7/2","2/7"]],["633/6363",["6:3","6:33"],["6/3","3/6"]],["588",["5:8","8:58"],["8/5","5/8","8/8"]],["446/4646",["4:6","4:46"],["4/4","6/4","4/6"]],["000",[],[]],["1010",["10:10"],["10/10"]],["1017",["10:17","17:10"],["17/10"]],["1022",["10:22","22:10"],["22/10"]],["1313",["13:13"],["1/3","3/1"]],["1444",["14:44"],["4/1","1/4","4/4"]],["2020",["20:20"],["2/2"]]],BlissLimit=[["Forever",-1,3],["2",2,40],["5",5,30],["10",10,2M
0],["20",20,7]];class TimeController{constructor(e){this.speeds=[-3600,-60,-10,-3,1,3,10,60,3600],this.defaultSpeedLevel=4,this.evolvePeriod=e.evolvePeriod,this.angelNumber=e.angelNumber,this.blissLimit=e.blissLimit,this.timestamp=Date.now(),this.prevRealTimestamp=this.timestamp,this.paused=!1,this.speedLevel=this.defaultSpeedLevel;let t=new Date(this.timestamp);this.iteration=this.getIteration(t),this.prevBliss=this.getPrevBliss(t,1),this.iterationChangeHandlers=[]}getCurrentIteration=()=>this.iteration;getIteratiM
on(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(e.getFullYear()-1970)+e.getMonth()),t}registerIterationChangeEvent(e){this.iterationChangeHandlers.push(e)}unregisterIterationChangeEvent(e){this.iterationChangeHandlers=this.iterationChangeHandlers.filter((t=>t!=e))}step(){let e=Date.now(),t=e-this.prevRealTimestamp,i=this.speeds[this.speedLevel],sM
=this.paused?0:i;this.timestamp+=t*s,this.timestamp=this.limitTimestamp(this.timestamp);let a=new Date(this.timestamp),r=this.getStateFromTime(a);this.updateIteration(a),this.prevRealTimestamp=e;let h=this.timestamp==e;return{time:a,state:r,speed:i,paused:this.paused,isLive:h,realDelta:t}}updateIteration(e){let t=this.getIteration(e);t!=this.iteration&&(this.iterationChangeHandlers.forEach((e=>e(t))),this.iteration=t)}getStateFromTime(e){let t,i,s=e.getHours(),a=e.getMinutes(),r=e.getDate(),h=e.getMonth()+1;if("000M
"==this.angelNumber)i=0==s&&0==a,t=i&&1==r&&1==h;else{let e=`${s}:${a}`,n=`${h}/${r}`,o=AngelNumber.filter((e=>e[0]==this.angelNumber))[0];i=o[1].includes(e),t=o[2].includes(n)}return i&&t?4:t?3:i?2:1}limitTimestamp(e){let t=BlissLimit.filter((e=>e[0]==this.blissLimit))[0][1],i=Date.now(),s=this.getPrevBliss(new Date,t);return e>i?(e=i,this.resetSpeed()):e<s&&(e=s,this.resetSpeed()),e}getPrevBliss(e,t){if(-1==t)return 0;let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i-=6e4;let e=this.getStateFrM
omTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}getNextBliss(e,t){if(-1==t)return Date.now();let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i+=6e4;let e=this.getStateFromTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}togglePause(){this.paused=!this.paused}setFasterSpeed(){this.speedLevel=min(this.speedLevel+1,this.speeds.length-1),this.paused=!1}setSlowerSpeed(){this.speedLevel=max(this.speedLevel-1,0),this.paused=!1}jumpForward(){let e=new Date(this.timestamp);this.timestamp=this.getNextBliss(eM
,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}jumpBackward(){let e=new Date(this.timestamp);this.timestamp=this.getPrevBliss(e,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}resetSpeed(){this.speedLevel=this.defaultSpeedLevel,this.paused=!1}resumeLive(){this.timestamp=Date.now(),this.resetSpeed()}}
text/html;charset=utf-8
      display: block;
    <meta charset="utf-8" />
    let seed=window.location.href.split('/').find(t=>t.includes('i0'));
    if (seed == null) {
      seed = new URLSearchParams(window.location.search).get("seed");
      let pattern = "seed=";
      for(let i = 0; i < seed.length - pattern.length; M
        if (seed.substring(i, i + pattern.length) == pattern) {
          seed = seed.substring(i + pattern.length);
    function cyrb128($) {
      let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
      for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
      return _ = Math.imul(i ^ _ >>> 18,M
 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
    function sfc32($, _, u, i) {
      return function () {
        u >>>= 0, i >>>= 0;
        var l = ($ >>>= 0) + (_ >>>= 0) | 0;
        return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
 sfc32(...cyrb128(seed));
    let p5seed = Math.floor(mathRand() * Number.MAX_SAFE_INTEGER);
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).chroma=e()}(this,function(){"use strict";for(var r=function(r,e,t){return void 0===e&&(e=0),void 0===t&&(t=1),r<e?e:r>t?t:r},e=r,t={},n=0,a=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];n<a.length;nM
+=1){var f=a[n];t["[object "+f+"]"]=f.toLowerCase()}var o=function(r){return t[Object.prototype.toString.call(r)]||"object"},c=o,u=o,i=Math.PI,l={clip_rgb:function(r){r._clipped=!1,r._unclipped=r.slice(0);for(var t=0;t<=3;t++)t<3?((r[t]<0||r[t]>255)&&(r._clipped=!0),r[t]=e(r[t],0,255)):3===t&&(r[t]=e(r[t],0,1));return r},limit:r,type:o,unpack:function(r,e){return void 0===e&&(e=null),r.length>=3?Array.prototype.slice.call(r):"object"==c(r[0])&&e?e.split("").filter(function(e){return void 0!==r[0][e]}).map(function(M
e){return r[0][e]}):r[0]},last:function(r){if(r.length<2)return null;var e=r.length-1;return"string"==u(r[e])?r[e].toLowerCase():null},PI:i,TWOPI:2*i,PITHIRD:i/3,DEG2RAD:i/180,RAD2DEG:180/i},d={format:{},autodetect:[]},h=l.last,b=l.clip_rgb,s=l.type,p=d,g=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if("object"===s(r[0])&&r[0].constructor&&r[0].constructor===this.constructor)return r[0];var t=h(r),n=!1;if(!t){n=!0,p.sorted||(p.autodetect=p.autodetect.sort(function(r,e){return e.p-r.p}),p.sortedM
=!0);for(var a=0,f=p.autodetect;a<f.length;a+=1){var o=f[a];if(t=o.test.apply(o,r))break}}if(!p.format[t])throw new Error("unknown format: "+r);var c=p.format[t].apply(null,n?r:r.slice(0,-1));this._rgb=b(c),3===this._rgb.length&&this._rgb.push(1)};g.prototype.toString=function(){return"function"==s(this.hex)?this.hex():"["+this._rgb.join(",")+"]"};var v=g,y=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(y.Color,[null].concat(r)))};y.Color=v,y.version="2.4.M
2";var m=y,k=l.unpack,w=Math.max,M=l.unpack,_=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=M(r,"cmyk"))[0],n=r[1],a=r[2],f=r[3],o=r.length>4?r[4]:1;return 1===f?[0,0,0,o]:[t>=1?0:255*(1-t)*(1-f),n>=1?0:255*(1-n)*(1-f),a>=1?0:255*(1-a)*(1-f),o]},N=m,F=v,x=d,P=l.unpack,R=l.type,G=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=k(r,"rgb"),n=t[0],a=t[1],f=t[2],o=1-w(n/=255,w(a/=255,f/=255)),c=o<1?1/(1-o):0;return[(1-n-o)*c,(1-a-o)*c,(1-f-o)*c,o]};F.prototype.cmyk=fuM
nction(){return G(this._rgb)},N.cmyk=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(F,[null].concat(r,["cmyk"])))},x.format.cmyk=_,x.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=P(r,"cmyk"),"array"===R(r)&&4===r.length)return"cmyk"}});var j=l.unpack,E=l.last,O=function(r){return Math.round(100*r)/100},q=l.unpack,B=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=q(r,"rgba"))[0],nM
=r[1],a=r[2];t/=255,n/=255,a/=255;var f,o,c=Math.min(t,n,a),u=Math.max(t,n,a),i=(u+c)/2;return u===c?(f=0,o=Number.NaN):f=i<.5?(u-c)/(u+c):(u-c)/(2-u-c),t==u?o=(n-a)/(u-c):n==u?o=2+(a-t)/(u-c):a==u&&(o=4+(t-n)/(u-c)),(o*=60)<0&&(o+=360),r.length>3&&void 0!==r[3]?[o,f,i,r[3]]:[o,f,i]},I=l.unpack,A=l.last,D=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=j(r,"hsla"),n=E(r)||"lsa";return t[0]=O(t[0]||0),t[1]=O(100*t[1])+"%",t[2]=O(100*t[2])+"%","hsla"===n||t.length>3&&t[3]<1?(t[3]=t.length>3?t[M
3]:1,n="hsla"):t.length=3,n+"("+t.join(",")+")"},C=B,Y=Math.round,S=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=I(r,"rgba"),n=A(r)||"rgb";return"hsl"==n.substr(0,3)?D(C(t),n):(t[0]=Y(t[0]),t[1]=Y(t[1]),t[2]=Y(t[2]),("rgba"===n||t.length>3&&t[3]<1)&&(t[3]=t.length>3?t[3]:1,n="rgba"),n+"("+t.slice(0,"rgb"===n?3:4).join(",")+")")},L=l.unpack,$=Math.round,T=function(){for(var r,e=[],t=arguments.length;t--;)e[t]=arguments[t];var n,a,f,o=(e=L(e,"hsl"))[0],c=e[1],u=e[2];if(0===c)n=a=f=255*u;elsM
e{var i=[0,0,0],l=[0,0,0],d=u<.5?u*(1+c):u+c-u*c,h=2*u-d,b=o/360;i[0]=b+1/3,i[1]=b,i[2]=b-1/3;for(var s=0;s<3;s++)i[s]<0&&(i[s]+=1),i[s]>1&&(i[s]-=1),6*i[s]<1?l[s]=h+6*(d-h)*i[s]:2*i[s]<1?l[s]=d:3*i[s]<2?l[s]=h+(d-h)*(2/3-i[s])*6:l[s]=h;n=(r=[$(255*l[0]),$(255*l[1]),$(255*l[2])])[0],a=r[1],f=r[2]}return e.length>3?[n,a,f,e[3]]:[n,a,f,1]},K=T,W=d,X=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,Z=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,H=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\M
d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,z=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,U=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,V=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,J=Math.round,Q=function(r){var e;if(r=r.toLowerCase().trim(),W.format.named)try{return W.format.named(r)}catch(r){}if(e=r.match(X)){for(var t=e.slice(1,4),n=0;n<3;n++)t[n]=+t[n];returnM
 t[3]=1,t}if(e=r.match(Z)){for(var a=e.slice(1,5),f=0;f<4;f++)a[f]=+a[f];return a}if(e=r.match(H)){for(var o=e.slice(1,4),c=0;c<3;c++)o[c]=J(2.55*o[c]);return o[3]=1,o}if(e=r.match(z)){for(var u=e.slice(1,5),i=0;i<3;i++)u[i]=J(2.55*u[i]);return u[3]=+u[3],u}if(e=r.match(U)){var l=e.slice(1,4);l[1]*=.01,l[2]*=.01;var d=K(l);return d[3]=1,d}if(e=r.match(V)){var h=e.slice(1,4);h[1]*=.01,h[2]*=.01;var b=K(h);return b[3]=+e[4],b}};Q.test=function(r){return X.test(r)||Z.test(r)||H.test(r)||z.test(r)||U.test(r)||V.test(r)M
};var rr=m,er=v,tr=d,nr=l.type,ar=S,fr=Q;er.prototype.css=function(r){return ar(this._rgb,r)},rr.css=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(er,[null].concat(r,["css"])))},tr.format.css=fr,tr.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===nr(r)&&fr.test(r))return"css"}});var or=v,cr=m,ur=l.unpack;d.format.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e]M
;var t=ur(r,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t},cr.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(or,[null].concat(r,["gl"])))},or.prototype.gl=function(){var r=this._rgb;return[r[0]/255,r[1]/255,r[2]/255,r[3]]};var ir=l.unpack,lr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=ir(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Math.min(a,f,o),u=Math.max(a,f,o),i=u-c,l=100*i/255,d=c/(255-i)*100;return 0===i?t=Number.NaN:(a===u&&(t=M
(f-o)/i),f===u&&(t=2+(o-a)/i),o===u&&(t=4+(a-f)/i),(t*=60)<0&&(t+=360)),[t,l,d]},dr=l.unpack,hr=Math.floor,br=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=dr(o,"hcg"))[0],h=o[1],b=o[2];b*=255;var s=255*h;if(0===h)u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=hr(d/=60),g=d-p,v=b*(1-h),y=v+s*(1-g),m=v+s*g,k=v+s;switch(p){case 0:u=(r=[k,m,v])[0],i=r[1],l=r[2];break;case 1:u=(e=[y,k,v])[0],i=e[1],l=e[2];break;case 2:u=(t=[v,k,m])[0],i=t[1],l=t[2];break;cM
ase 3:u=(n=[v,y,k])[0],i=n[1],l=n[2];break;case 4:u=(a=[m,v,k])[0],i=a[1],l=a[2];break;case 5:u=(f=[k,v,y])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},sr=l.unpack,pr=l.type,gr=m,vr=v,yr=d,mr=lr;vr.prototype.hcg=function(){return mr(this._rgb)},gr.hcg=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(vr,[null].concat(r,["hcg"])))},yr.format.hcg=br,yr.autodetect.push({p:1,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=sr(r,"M
hcg"),"array"===pr(r)&&3===r.length)return"hcg"}});var kr=l.unpack,wr=l.last,Mr=Math.round,_r=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=kr(r,"rgba"),n=t[0],a=t[1],f=t[2],o=t[3],c=wr(r)||"auto";void 0===o&&(o=1),"auto"===c&&(c=o<1?"rgba":"rgb");var u="000000"+((n=Mr(n))<<16|(a=Mr(a))<<8|(f=Mr(f))).toString(16);u=u.substr(u.length-6);var i="0"+Mr(255*o).toString(16);switch(i=i.substr(i.length-2),c.toLowerCase()){case"rgba":return"#"+u+i;case"argb":return"#"+i+u;default:return"#"+u}},Nr=/M
^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Fr=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,xr=function(r){if(r.match(Nr)){4!==r.length&&7!==r.length||(r=r.substr(1)),3===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]);var e=parseInt(r,16);return[e>>16,e>>8&255,255&e,1]}if(r.match(Fr)){5!==r.length&&9!==r.length||(r=r.substr(1)),4===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);var t=parseInt(r,16);return[t>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100]}throw new Error("unknown hex coM
lor: "+r)},Pr=m,Rr=v,Gr=l.type,jr=d,Er=_r;Rr.prototype.hex=function(r){return Er(this._rgb,r)},Pr.hex=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Rr,[null].concat(r,["hex"])))},jr.format.hex=xr,jr.autodetect.push({p:4,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===Gr(r)&&[3,4,5,6,7,8,9].indexOf(r.length)>=0)return"hex"}});var Or=l.unpack,qr=l.TWOPI,Br=Math.min,Ir=Math.sqrt,Ar=Math.acos,Dr=functionM
(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=Or(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Br(a/=255,f/=255,o/=255),u=(a+f+o)/3,i=u>0?1-c/u:0;return 0===i?t=NaN:(t=(a-f+(a-o))/2,t/=Ir((a-f)*(a-f)+(a-o)*(f-o)),t=Ar(t),o>f&&(t=qr-t),t/=qr),[360*t,i,u]},Cr=l.unpack,Yr=l.limit,Sr=l.TWOPI,Lr=l.PITHIRD,$r=Math.cos,Tr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Cr(r,"hsi"))[0],o=r[1],c=r[2];return isNaN(f)&&(f=0),isNaN(o)&&(o=0),f>360&&(f-=360),f<0&&(f+=360),(f/=360)<1/3?n=1-M
((a=(1-o)/3)+(t=(1+o*$r(Sr*f)/$r(Lr-Sr*f))/3)):f<2/3?a=1-((t=(1-o)/3)+(n=(1+o*$r(Sr*(f-=1/3))/$r(Lr-Sr*f))/3)):t=1-((n=(1-o)/3)+(a=(1+o*$r(Sr*(f-=2/3))/$r(Lr-Sr*f))/3)),[255*(t=Yr(c*t*3)),255*(n=Yr(c*n*3)),255*(a=Yr(c*a*3)),r.length>3?r[3]:1]},Kr=l.unpack,Wr=l.type,Xr=m,Zr=v,Hr=d,zr=Dr;Zr.prototype.hsi=function(){return zr(this._rgb)},Xr.hsi=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Zr,[null].concat(r,["hsi"])))},Hr.format.hsi=Tr,Hr.autodetect.push({pM
:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Kr(r,"hsi"),"array"===Wr(r)&&3===r.length)return"hsi"}});var Ur=l.unpack,Vr=l.type,Jr=m,Qr=v,re=d,ee=B;Qr.prototype.hsl=function(){return ee(this._rgb)},Jr.hsl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Qr,[null].concat(r,["hsl"])))},re.format.hsl=T,re.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ur(r,"hsl"),"array"===Vr(r)M
&&3===r.length)return"hsl"}});var te=l.unpack,ne=Math.min,ae=Math.max,fe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=te(r,"rgb"))[0],o=r[1],c=r[2],u=ne(f,o,c),i=ae(f,o,c),l=i-u;return a=i/255,0===i?(t=Number.NaN,n=0):(n=l/i,f===i&&(t=(o-c)/l),o===i&&(t=2+(c-f)/l),c===i&&(t=4+(f-o)/l),(t*=60)<0&&(t+=360)),[t,n,a]},oe=l.unpack,ce=Math.floor,ue=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=oe(o,"hsv"))[0],h=o[1],b=o[2];if(b*=255,0===h)M
u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var s=ce(d/=60),p=d-s,g=b*(1-h),v=b*(1-h*p),y=b*(1-h*(1-p));switch(s){case 0:u=(r=[b,y,g])[0],i=r[1],l=r[2];break;case 1:u=(e=[v,b,g])[0],i=e[1],l=e[2];break;case 2:u=(t=[g,b,y])[0],i=t[1],l=t[2];break;case 3:u=(n=[g,v,b])[0],i=n[1],l=n[2];break;case 4:u=(a=[y,g,b])[0],i=a[1],l=a[2];break;case 5:u=(f=[b,g,v])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},ie=l.unpack,le=l.type,de=m,he=v,be=d,se=fe;he.prototype.hsv=function(){return se(this._rgb)},de.hsv=M
function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(he,[null].concat(r,["hsv"])))},be.format.hsv=ue,be.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=ie(r,"hsv"),"array"===le(r)&&3===r.length)return"hsv"}});var pe={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ge=pe,ve=l.unpack,ye=Math.pow,me=function(r){return(r/=255)<=.04045?r/12.92:ye((r+.055)/1.055,2.4)},ke=function(M
r){return r>ge.t3?ye(r,1/3):r/ge.t2+ge.t0},we=function(r,e,t){return r=me(r),e=me(e),t=me(t),[ke((.4124564*r+.3575761*e+.1804375*t)/ge.Xn),ke((.2126729*r+.7151522*e+.072175*t)/ge.Yn),ke((.0193339*r+.119192*e+.9503041*t)/ge.Zn)]},Me=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=ve(r,"rgb"),n=t[0],a=t[1],f=t[2],o=we(n,a,f),c=o[0],u=o[1],i=116*u-16;return[i<0?0:i,500*(c-u),200*(u-o[2])]},_e=pe,Ne=l.unpack,Fe=Math.pow,xe=function(r){return 255*(r<=.00304?12.92*r:1.055*Fe(r,1/2.4)-.055)},Pe=funM
ction(r){return r>_e.t1?r*r*r:_e.t2*(r-_e.t0)},Re=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Ne(r,"lab"))[0],o=r[1],c=r[2];return n=(f+16)/116,t=isNaN(o)?n:n+o/500,a=isNaN(c)?n:n-c/200,n=_e.Yn*Pe(n),t=_e.Xn*Pe(t),a=_e.Zn*Pe(a),[xe(3.2404542*t-1.5371385*n-.4985314*a),xe(-.969266*t+1.8760108*n+.041556*a),xe(.0556434*t-.2040259*n+1.0572252*a),r.length>3?r[3]:1]},Ge=l.unpack,je=l.type,Ee=m,Oe=v,qe=d,Be=Me;Oe.prototype.lab=function(){return Be(this._rgb)},Ee.lab=function(){for(var rM
=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Oe,[null].concat(r,["lab"])))},qe.format.lab=Re,qe.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ge(r,"lab"),"array"===je(r)&&3===r.length)return"lab"}});var Ie=l.unpack,Ae=l.RAD2DEG,De=Math.sqrt,Ce=Math.atan2,Ye=Math.round,Se=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ie(r,"lab"),n=t[0],a=t[1],f=t[2],o=De(a*a+f*f),c=(Ce(f,a)*Ae+360)%360;return 0===YeM
(1e4*o)&&(c=Number.NaN),[n,o,c]},Le=l.unpack,$e=Me,Te=Se,Ke=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Le(r,"rgb"),n=t[0],a=t[1],f=t[2],o=$e(n,a,f),c=o[0],u=o[1],i=o[2];return Te(c,u,i)},We=l.unpack,Xe=l.DEG2RAD,Ze=Math.sin,He=Math.cos,ze=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=We(r,"lch"),n=t[0],a=t[1],f=t[2];return isNaN(f)&&(f=0),[n,He(f*=Xe)*a,Ze(f)*a]},Ue=l.unpack,Ve=ze,Je=Re,Qe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=M
(r=Ue(r,"lch"))[0],n=r[1],a=r[2],f=Ve(t,n,a),o=f[0],c=f[1],u=f[2],i=Je(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},rt=l.unpack,et=Qe,tt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rt(r,"hcl").reverse();return et.apply(void 0,t)},nt=l.unpack,at=l.type,ft=m,ot=v,ct=d,ut=Ke;ot.prototype.lch=function(){return ut(this._rgb)},ot.prototype.hcl=function(){return ut(this._rgb).reverse()},ft.lch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.biM
nd.apply(ot,[null].concat(r,["lch"])))},ft.hcl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ot,[null].concat(r,["hcl"])))},ct.format.lch=Qe,ct.format.hcl=tt,["lch","hcl"].forEach(function(r){return ct.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=nt(e,r),"array"===at(e)&&3===e.length)return r}})});var it=d,lt=l.type,dt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:M
"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",daM
rkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#M
adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#M
778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhiteM
:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a4M
60",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},ht=xr,bt=_r;v.prototype.name=function(){for(var r=bt(this._rgb,"rgb"),e=0,t=Object.keys(dt);e<t.length;e+=1){var n=M
t[e];if(dt[n]===r)return n.toLowerCase()}return r},it.format.named=function(r){if(r=r.toLowerCase(),dt[r])return ht(dt[r]);throw new Error("unknown color name: "+r)},it.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===lt(r)&&dt[r.toLowerCase()])return"named"}});var st=l.unpack,pt=l.type,gt=function(r){if("number"==pt(r)&&r>=0&&r<=16777215)return[r>>16,r>>8&255,255&r,1];throw new Error("unknown num color: "+r)},vt=m,yt=v,mt=d,kt=l.type,wt=fuM
nction(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=st(r,"rgb");return(t[0]<<16)+(t[1]<<8)+t[2]};yt.prototype.num=function(){return wt(this._rgb)},vt.num=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(yt,[null].concat(r,["num"])))},mt.format.num=gt,mt.autodetect.push({p:5,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(1===r.length&&"number"===kt(r[0])&&r[0]>=0&&r[0]<=16777215)return"num"}});var Mt=m,_t=v,Nt=d,FtM
=l.unpack,xt=l.type,Pt=Math.round;_t.prototype.rgb=function(r){return void 0===r&&(r=!0),!1===r?this._rgb.slice(0,3):this._rgb.slice(0,3).map(Pt)},_t.prototype.rgba=function(r){return void 0===r&&(r=!0),this._rgb.slice(0,4).map(function(e,t){return t<3?!1===r?e:Pt(e):e})},Mt.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(_t,[null].concat(r,["rgb"])))},Nt.format.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ft(r,"rgba");retM
urn void 0===t[3]&&(t[3]=1),t},Nt.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ft(r,"rgba"),"array"===xt(r)&&(3===r.length||4===r.length&&"number"==xt(r[3])&&r[3]>=0&&r[3]<=1))return"rgb"}});var Rt=Math.log,Gt=function(r){var e,t,n,a=r/100;return a<66?(e=255,t=a<6?0:-155.25485562709179-.44596950469579133*(t=a-2)+104.49216199393888*Rt(t),n=a<20?0:.8274096064007395*(n=a-10)-254.76935184120902+115.67994401066147*Rt(n)):(e=351.97690566805693+.114206453784165*(e=a-55)-M
40.25366309332127*Rt(e),t=325.4494125711974+.07943456536662342*(t=a-50)-28.0852963507957*Rt(t),n=255),[e,t,n,1]},jt=Gt,Et=l.unpack,Ot=Math.round,qt=m,Bt=v,It=d,At=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];for(var t,n=Et(r,"rgb"),a=n[0],f=n[2],o=1e3,c=4e4;c-o>.4;){var u=jt(t=.5*(c+o));u[2]/u[0]>=f/a?c=t:o=t}return Ot(t)};Bt.prototype.temp=Bt.prototype.kelvin=Bt.prototype.temperature=function(){return At(this._rgb)},qt.temp=qt.kelvin=qt.temperature=function(){for(var r=[],e=arguments.length;e-M
-;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Bt,[null].concat(r,["temp"])))},It.format.temp=It.format.kelvin=It.format.temperature=Gt;var Dt=l.unpack,Ct=Math.cbrt,Yt=Math.pow,St=Math.sign,Lt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Dt(r,"rgb"),n=t[0],a=t[1],f=t[2],o=[$t(n/255),$t(a/255),$t(f/255)],c=o[0],u=o[1],i=o[2],l=Ct(.4122214708*c+.5363325363*u+.0514459929*i),d=Ct(.2119034982*c+.6806995451*u+.1073969566*i),h=Ct(.0883024619*c+.2817188376*u+.6299787005*i);return[.M
2104542553*l+.793617785*d-.0040720468*h,1.9779984951*l-2.428592205*d+.4505937099*h,.0259040371*l+.7827717662*d-.808675766*h]};function $t(r){var e=Math.abs(r);return e<.04045?r/12.92:(St(r)||1)*Yt((e+.055)/1.055,2.4)}var Tt=l.unpack,Kt=Math.pow,Wt=Math.sign,Xt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=Tt(r,"lab"))[0],n=r[1],a=r[2],f=Kt(t+.3963377774*n+.2158037573*a,3),o=Kt(t-.1055613458*n-.0638541728*a,3),c=Kt(t-.0894841775*n-1.291485548*a,3);return[255*Zt(4.0767416621*f-3.307711591M
3*o+.2309699292*c),255*Zt(-1.2684380046*f+2.6097574011*o-.3413193965*c),255*Zt(-.0041960863*f-.7034186147*o+1.707614701*c),r.length>3?r[3]:1]};function Zt(r){var e=Math.abs(r);return e>.0031308?(Wt(r)||1)*(1.055*Kt(e,1/2.4)-.055):12.92*r}var Ht=l.unpack,zt=l.type,Ut=m,Vt=v,Jt=d,Qt=Lt;Vt.prototype.oklab=function(){return Qt(this._rgb)},Ut.oklab=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Vt,[null].concat(r,["oklab"])))},Jt.format.oklab=Xt,Jt.autodetect.pM
ush({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ht(r,"oklab"),"array"===zt(r)&&3===r.length)return"oklab"}});var rn=l.unpack,en=Lt,tn=Se,nn=l.unpack,an=ze,fn=Xt,on=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=nn(r,"lch"))[0],n=r[1],a=r[2],f=an(t,n,a),o=f[0],c=f[1],u=f[2],i=fn(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},cn=l.unpack,un=l.type,ln=m,dn=v,hn=d,bn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rn(r,"rgb"),n=tM
[0],a=t[1],f=t[2],o=en(n,a,f),c=o[0],u=o[1],i=o[2];return tn(c,u,i)};dn.prototype.oklch=function(){return bn(this._rgb)},ln.oklch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(dn,[null].concat(r,["oklch"])))},hn.format.oklch=on,hn.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=cn(r,"oklch"),"array"===un(r)&&3===r.length)return"oklch"}});var sn=v,pn=l.type;sn.prototype.alpha=function(r,e){return void 0===e&M
&(e=!1),void 0!==r&&"number"===pn(r)?e?(this._rgb[3]=r,this):new sn([this._rgb[0],this._rgb[1],this._rgb[2],r],"rgb"):this._rgb[3]},v.prototype.clipped=function(){return this._rgb._clipped||!1};var gn=v,vn=pe;gn.prototype.darken=function(r){void 0===r&&(r=1);var e=this.lab();return e[0]-=vn.Kn*r,new gn(e,"lab").alpha(this.alpha(),!0)},gn.prototype.brighten=function(r){return void 0===r&&(r=1),this.darken(-r)},gn.prototype.darker=gn.prototype.darken,gn.prototype.brighter=gn.prototype.brighten,v.prototype.get=functioM
n(r){var e=r.split("."),t=e[0],n=e[1],a=this[t]();if(n){var f=t.indexOf(n)-("ok"===t.substr(0,2)?2:0);if(f>-1)return a[f];throw new Error("unknown channel "+n+" in mode "+t)}return a};var yn=v,mn=l.type,kn=Math.pow;yn.prototype.luminance=function(r){if(void 0!==r&&"number"===mn(r)){if(0===r)return new yn([0,0,0,this._rgb[3]],"rgb");if(1===r)return new yn([255,255,255,this._rgb[3]],"rgb");var e=this.luminance(),t=20,n=function(e,a){var f=e.interpolate(a,.5,"rgb"),o=f.luminance();return Math.abs(r-o)<1e-7||!t--?f:o>rM
?n(e,f):n(f,a)},a=(e>r?n(new yn([0,0,0]),this):n(this,new yn([255,255,255]))).rgb();return new yn(a.concat([this._rgb[3]]))}return wn.apply(void 0,this._rgb.slice(0,3))};var wn=function(r,e,t){return.2126*(r=Mn(r))+.7152*(e=Mn(e))+.0722*(t=Mn(t))},Mn=function(r){return(r/=255)<=.03928?r/12.92:kn((r+.055)/1.055,2.4)},_n={},Nn=v,Fn=l.type,xn=_n,Pn=v,Rn=function(r,e,t){void 0===t&&(t=.5);for(var n=[],a=arguments.length-3;a-- >0;)n[a]=arguments[a+3];var f=n[0]||"lrgb";if(xn[f]||n.length||(f=Object.keys(xn)[0]),!xn[f])tM
hrow new Error("interpolation mode "+f+" is not defined");return"object"!==Fn(r)&&(r=new Nn(r)),"object"!==Fn(e)&&(e=new Nn(e)),xn[f](r,e,t).alpha(r.alpha()+t*(e.alpha()-r.alpha()))};Pn.prototype.mix=Pn.prototype.interpolate=function(r,e){void 0===e&&(e=.5);for(var t=[],n=arguments.length-2;n-- >0;)t[n]=arguments[n+2];return Rn.apply(void 0,[this,r,e].concat(t))};var Gn=v;Gn.prototype.premultiply=function(r){void 0===r&&(r=!1);var e=this._rgb,t=e[3];return r?(this._rgb=[e[0]*t,e[1]*t,e[2]*t,t],this):new Gn([e[0]*t,M
e[1]*t,e[2]*t,t],"rgb")};var jn=v,En=pe;jn.prototype.saturate=function(r){void 0===r&&(r=1);var e=this.lch();return e[1]+=En.Kn*r,e[1]<0&&(e[1]=0),new jn(e,"lch").alpha(this.alpha(),!0)},jn.prototype.desaturate=function(r){return void 0===r&&(r=1),this.saturate(-r)};var On=v,qn=l.type;On.prototype.set=function(r,e,t){void 0===t&&(t=!1);var n=r.split("."),a=n[0],f=n[1],o=this[a]();if(f){var c=a.indexOf(f)-("ok"===a.substr(0,2)?2:0);if(c>-1){if("string"==qn(e))switch(e.charAt(0)){case"+":case"-":o[c]+=+e;break;case"*M
":o[c]*=+e.substr(1);break;case"/":o[c]/=+e.substr(1);break;default:o[c]=+e}else{if("number"!==qn(e))throw new Error("unsupported value for Color.set");o[c]=e}var u=new On(o,a);return t?(this._rgb=u._rgb,this):u}throw new Error("unknown channel "+f+" in mode "+a)}return o};var Bn=v;_n.rgb=function(r,e,t){var n=r._rgb,a=e._rgb;return new Bn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"rgb")};var In=v,An=Math.sqrt,Dn=Math.pow;_n.lrgb=function(r,e,t){var n=r._rgb,a=n[0],f=n[1],o=n[2],c=e._rgb,u=c[0],i=c[1M
],l=c[2];return new In(An(Dn(a,2)*(1-t)+Dn(u,2)*t),An(Dn(f,2)*(1-t)+Dn(i,2)*t),An(Dn(o,2)*(1-t)+Dn(l,2)*t),"rgb")};var Cn=v;_n.lab=function(r,e,t){var n=r.lab(),a=e.lab();return new Cn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"lab")};var Yn=v,Sn=function(r,e,t,n){var a,f,o,c,u,i,l,d,h,b,s,p,g;return"hsl"===n?(o=r.hsl(),c=e.hsl()):"hsv"===n?(o=r.hsv(),c=e.hsv()):"hcg"===n?(o=r.hcg(),c=e.hcg()):"hsi"===n?(o=r.hsi(),c=e.hsi()):"lch"===n||"hcl"===n?(n="hcl",o=r.hcl(),c=e.hcl()):"oklch"===n&&(o=r.oklch()M
.reverse(),c=e.oklch().reverse()),"h"!==n.substr(0,1)&&"oklch"!==n||(u=(a=o)[0],l=a[1],h=a[2],i=(f=c)[0],d=f[1],b=f[2]),isNaN(u)||isNaN(i)?isNaN(u)?isNaN(i)?p=Number.NaN:(p=i,1!=h&&0!=h||"hsv"==n||(s=d)):(p=u,1!=b&&0!=b||"hsv"==n||(s=l)):p=u+t*(i>u&&i-u>180?i-(u+360):i<u&&u-i>180?i+360-u:i-u),void 0===s&&(s=l+t*(d-l)),g=h+t*(b-h),new Yn("oklch"===n?[g,s,p]:[p,s,g],n)},Ln=Sn,$n=function(r,e,t){return Ln(r,e,t,"lch")};_n.lch=$n,_n.hcl=$n;var Tn=v;_n.num=function(r,e,t){var n=r.num(),a=e.num();return new Tn(n+t*(a-n),M
"num")};var Kn=Sn;_n.hcg=function(r,e,t){return Kn(r,e,t,"hcg")};var Wn=Sn;_n.hsi=function(r,e,t){return Wn(r,e,t,"hsi")};var Xn=Sn;_n.hsl=function(r,e,t){return Xn(r,e,t,"hsl")};var Zn=Sn;_n.hsv=function(r,e,t){return Zn(r,e,t,"hsv")};var Hn=v;_n.oklab=function(r,e,t){var n=r.oklab(),a=e.oklab();return new Hn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"oklab")};var zn=Sn;_n.oklch=function(r,e,t){return zn(r,e,t,"oklch")};Math.pow,Math.sqrt,Math.PI,Math.cos,Math.sin,Math.atan2,Math.pow;var Un=m,Vn=funM
ction(r,e,t){if(!Vn[t])throw new Error("unknown blend mode "+t);return Vn[t](r,e)},Jn=function(r){return function(e,t){var n=Un(t).rgb(),a=Un(e).rgb();return Un.rgb(r(n,a))}},Qn=function(r){return function(e,t){var n=[];return n[0]=r(e[0],t[0]),n[1]=r(e[1],t[1]),n[2]=r(e[2],t[2]),n}};Vn.normal=Jn(Qn(function(r){return r})),Vn.multiply=Jn(Qn(function(r,e){return r*e/255})),Vn.screen=Jn(Qn(function(r,e){return 255*(1-(1-r/255)*(1-e/255))})),Vn.overlay=Jn(Qn(function(r,e){return e<128?2*r*e/255:255*(1-2*(1-r/255)*(1-eM
/255))})),Vn.darken=Jn(Qn(function(r,e){return r>e?e:r})),Vn.lighten=Jn(Qn(function(r,e){return r>e?r:e})),Vn.dodge=Jn(Qn(function(r,e){return 255===r?255:(r=e/255*255/(1-r/255))>255?255:r})),Vn.burn=Jn(Qn(function(r,e){return 255*(1-(1-e/255)/(r/255))}));Math.pow,Math.sin,Math.cos,Math.floor,Math.random,Math.log,Math.pow,Math.floor,Math.abs,Math.sqrt,Math.pow,Math.min,Math.max,Math.atan2,Math.abs,Math.cos,Math.sin,Math.exp,Math.PI;for(var ra={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d730M
1f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:M
["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeM
b","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6M
","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#M
fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#M
01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999M
999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","M
#fddaec","#f2f2f2"]},ea=0,ta=Object.keys(ra);ea<ta.length;ea+=1){var na=ta[ea];ra[na.toLowerCase()]=ra[na]}return m});
function Q5(e){return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100;n.height=100;n.canvas.width=n.width;n.canvas.height=n.height;"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",function(){document.body.appendChild(n.canvas)}));m();n.MAGIC=161533525;n.RGB=0;n.HSVM
=1;n.HSB=1;n.CHORD=0;n.PIE=1;n.OPEN=2;n.RADIUS=1;n.CORNER=2;n.CORNERS=3;n.ROUND="round";n.SQUARE="butt";n.PROJECT="square";n.MITER="miter";n.BEVEL="bevel";n.CLOSE=1;n.BLEND="source-over";n.REMOVE="destination-out";n.ADD="lighter";n.DARKEST="darken";n.LIGHTEST="lighten";n.DIFFERENCE="difference";n.SUBTRACT="subtract";n.EXCLUSION="exclusion";n.MULTIPLY="multiply";n.SCREEN="screen";n.REPLACE="copy";n.OVERLAY="overlay";n.HARD_LIGHT="hard-light";n.SOFT_LIGHT="soft-light";n.DODGE="color-dodge";n.BURN="color-burn";n.NORMAM
L="normal";n.ITALIC="italic";n.BOLD="bold";n.BOLDITALIC="italic bold";n.CENTER="center";n.LEFT="left";n.RIGHT="right";n.TOP="top";n.BOTTOM="bottom";n.BASELINE="alphabetic";n.LANDSCAPE="landscape";n.PORTRAIT="portrait";n.ALT=18;n.BACKSPACE=8;n.CONTROL=17;n.DELETE=46;n.DOWN_ARROW=40;n.ENTER=13;n.ESCAPE=27;n.LEFT_ARROW=37;n.OPTION=18;n.RETURN=13;n.RIGHT_ARROW=39;n.SHIFT=16;n.TAB=9;n.UP_ARROW=38;n.HALF_PI=Math.PI/2;n.PI=Math.PI;n.QUARTER_PI=Math.PI/4;n.TAU=2*Math.PI;n.TWO_PI=2*Math.PI;n.THRESHOLD=1;n.GRAY=2;n.OPAQUE=3;M
n.INVERT=4;n.POSTERIZE=5;n.DILATE=6;n.ERODE=7;n.BLUR=8;n.ARROW="default";n.CROSS="crosshair";n.HAND="pointer";n.MOVE="move";n.TEXT="text";n.VIDEO={video:!0,audio:!1};n.AUDIO={video:!1,audio:!0};n.SHR3=1;n.LCG=2;n.HARDWARE_FILTERS=!0;n.hint=function(e,t){n[e]=t};n.frameCount=0;n.mouseX=0;n.mouseY=0;n.pmouseX=0;n.pmouseY=0;n.mouseButton=null;n.keyIsPressed=!1;n.mouseIsPressed=!1;n.key=null;n.keyCode=null;n.pixels=null;n.accelerationX=0;n.accelerationY=0;n.accelerationZ=0;n.rotationX=0;n.rotationY=0;n.rotationZ=0;n.reM
lRotationX=0;n.relRotationY=0;n.relRotationZ=0;n.pAccelerationX=0;n.pAccelerationY=0;n.pAccelerationZ=0;n.pRotationX=0;n.pRotationY=0;n.pRotationZ=0;n.pRelRotationX=0;n.pRelRotationY=0;n.pRelRotationZ=0;n.touches=[];n._colorMode=n.RGB;n._noStroke=!1;n._noFill=!1;n._ellipseMode=n.CENTER;n._rectMode=n.CORNER;n._curveDetail=20;n._curveAlpha=0;n._noLoop=!1;n._textFont="sans-serif";n._textSize=12;n._textLeading=12;n._textStyle="normal";n._pixelDensity=1;n._frameRate=null;n._tint=null;let a=null;let r=!0;let i=[];let l=nM
ull;let u=0;let s={};let c=0;let h=null;let f=null;let d=null;Object.defineProperty(n,"deviceOrientation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}});Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}});Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}});Object.defineProperty(n,"drawingContext",{get:function(){return o}});n.createCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t,m()};n.resizM
eCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t};n.createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o};n.pixelDensity=function(e){return null==e?n._pixelDensity:(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),m(),n._pixelDensity)};n.map=function(e,t,n,o,a,r){let i=o+1*(e-t)/(nM
-t)*(a-o);return r?o<a?Math.min(Math.max(i,o),a):Math.min(Math.max(i,a),o):i};n.lerp=function(e,t,n){return e*(1-n)+t*n};n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)};n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])};n.norm=function(e,t,o){return n.map(e,t,o,0,1)};n.sq=function(e){return e*e};n.fract=function(e){return e-Math.floor(e)};n.degrees=functiM
on(e){return 180*e/Math.PI};n.radians=function(e){return e*Math.PI/180};n.abs=Math.abs;n.ceil=Math.ceil;n.exp=Math.exp;n.floor=Math.floor;n.log=Math.log;n.mag=Math.hypot;n.max=Math.max;n.min=Math.min;n.round=Math.round;n.sqrt=Math.sqrt;n.sin=Math.sin;n.cos=Math.cos;n.tan=Math.tan;n.asin=Math.asin;n.acos=Math.acos;n.atan=Math.atan;n.atan2=Math.atan2;n.Vector=function(e,t,o){let a=this;a.x=e||0,a.y=t||0,a.z=o||0;let r=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n||0}:{x:e,y:e,z:e}}function u()M
{null==i&&(i=a.x*a.x+a.y*a.y+a.z*a.z,r=Math.sqrt(i))}function s(){i=null,r=null}a.set=function(e,t,n){a.x=e||0,a.y=t||0,a.z=n||0},a.copy=function(){return new n.Vector(a.x,a.y,a.z)},a.add=function(){let e=l.apply(null,arguments);return a.x+=e.x,a.y+=e.y,a.z+=e.z,s(),a},a.rem=function(){let e=l.apply(null,arguments);return a.x%=e.x,a.y%=e.y,a.z%=e.z,s(),a},a.sub=function(){let e=l.apply(null,arguments);return a.x-=e.x,a.y-=e.y,a.z-=e.z,s(),a},a.mult=function(){let e=l.apply(null,arguments);return a.x*=e.x,a.y*=e.y,aM
.z*=e.z,s(),a},a.div=function(){let e=l.apply(null,arguments);return a.x/=e.x,a.y/=e.y,a.z/=e.z,s(),a},a.mag=function(){return u(),r},a.magSq=function(){return u(),i},a.dot=function(){let e=l.apply(null,arguments);return a.x*e.x+a.y*e.y+a.z*e.z},a.dist=function(){let e=l.apply(null,arguments),t=a.x-e.x,n=a.y-e.y,o=a.z-e.z;return Math.sqrt(t*t+n*n+o*o)},a.cross=function(){let e=l.apply(null,arguments),t=a.y*e.z-a.z*e.y,n=a.z*e.x-a.x*e.z,o=a.x*e.y-a.y*e.x;return a.x=t,a.y=n,a.z=o,s(),a},a.normalize=function(){u();letM
 e=r;return a.x/=e,a.y/=e,a.z/=e,r=1,i=1,a},a.limit=function(e){u();let t=r;if(t>e){let n=e/t;a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e}return a},a.setMag=function(e){u();let t=r,n=e/t;return a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e,a},a.heading=function(){return Math.atan2(a.y,a.x)},a.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=a.x*t-a.y*n,r=a.x*n+a.y*t;return a.x=o,a.y=r,a},a.angleBetween=function(){let e=l.apply(null,arguments);const t=a.dot(e)/(a.mag()*e.mag());let n;return n=Math.acos(Math.min(1,Math.max(-1,t))),n*=Math.sM
ign(a.cross(e).z||1)},a.lerp=function(e,t){return a.x=a.x*(1-t)+e.x*t,a.y=a.y*(1-t)+e.y*t,a.z=a.z*(1-t)+e.z*t,s(),a},a.reflect=function(e){return e.normalize(),a.sub(e.mult(2*a.dot(e)))},a.array=function(){return[a.x,a.y,a.z]},a.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-a.x)<t&&Math.abs(e.y-a.y)<t&&Math.abs(e.z-a.z)<t},a.fromAngle=function(e,t){return null==t&&(t=1),r=t,i=t*t,a.x=t*Math.cos(e),a.y=t*Math.sin(e),a.z=0,a},a.fromAngles=function(e,t,n){null==n&&(n=1),r=n,i=n*n;coM
nst o=Math.cos(t),l=Math.sin(t),u=Math.cos(e),s=Math.sin(e);return a.x=n*s*l,a.y=-n*u,a.z=n*s*o,a},a.random2D=function(){return r=1,i=1,a.fromAngle(Math.random()*Math.PI*2)},a.random3D=function(){return r=1,i=1,a.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},a.toString=function(){return`[${a.x}, ${a.y}, ${a.z}]`}};n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)};n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)};n.Vector.sub=function(e,t){return new n.VecM
tor(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):new n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)};n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)};n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)};n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-o)+t.x*o,e.y=e.y*(1-o)+t.y*o,e.M
z=e.z*(1-o)+t.z*o)};n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAngles","random2D","random3D"])n.Vector[e]=function(t,o,a){return(new n.Vector)[e](t,o,a)};n.createVector=function(e,t,o){return new n.Vector(e,t,o)};n.curvePoint=function(e,t,n,o,a){const r=a*a*a,i=a*a,l=-.5*r+i-.5*a,u=1.5*r-2.5*i+1,s=-1.5*r+2*i+.5*a,c=.5*r-.5*i;return e*l+t*u+n*s+o*c};n.bezierPoint=function(e,t,n,o,a){const r=1-a;return Math.pow(r,3)*e+3*Math.pow(r,2)*a*t+3*r*Math.pow(a,2)*n+Math.pow(a,3)*o};n.M
curveTangent=function(e,t,n,o,a){const r=a*a,i=-3*r/2+2*a-.5,l=9*r/2-5*a,u=-9*r/2+4*a+.5,s=3*r/2-a;return e*i+t*l+n*u+o*s};n.bezierTangent=function(e,t,n,o,a){const r=1-a;return 3*o*Math.pow(a,2)-3*n*Math.pow(a,2)+6*n*r*a-6*t*r*a+3*t*Math.pow(r,2)-3*e*Math.pow(r,2)};function p(e,t,n){let o,a,r,i,l,u,s,c,h;if(0==t)return[255*(o=n),255*(a=n),255*(r=n)];switch((i=e)>360&&(i=0),s=n*(1-t),c=n*(1-t*(u=(i/=60)-(l=~~i))),h=n*(1-t*(1-u)),l){case 0:o=n,a=h,r=s;break;case 1:o=c,a=n,r=s;break;case 2:o=s,a=n,r=h;break;case 3:o=M
s,a=c,r=n;break;case 4:o=h,a=s,r=n;break;default:o=n,a=s,r=c}return[255*o,255*a,255*r]}n.Color=function(e,t,n,o){let a=this;a.MAGIC=786698,a._r=e,a._g=t,a._b=n,a._a=o,a._h=0,a._s=0,a._v=0,a._hsvInferred=!1,a.setRed=function(e){a._r=e,a._hsvInferred=!1},a.setGreen=function(e){a._g=e,a._hsvInferred=!1},a.setBlue=function(e){a._b=e,a._hsvInferred=!1},a.setAlpha=function(e){a._a=e/255,a._hsvInferred=!1},a._inferHSV=function(){a._hsvInferred||([a._h,a._s,a._v]=function(e,t,n){let o,a,r,i,l;if(o=e<t?e<n?e:n:t<n?t:n,0==(lM
=100*(a=e>t?e>n?e:n:t>n?t:n)/255))return[r=0,i=0,l];if(0==(i=100*(a-o)/a))return[r=0,i,l];r=a==e?0+60*(t-n)/(a-o):a==t?120+60*(n-e)/(a-o):240+60*(e-t)/(a-o);return[r,i,l]}(a._r,a._g,a._b),a._hsvInferred=!0)},a.toString=function(){return`rgba(${Math.round(a._r)},${Math.round(a._g)},${Math.round(a._b)},${~~(1e3*a._a)/1e3})`}};n.colorMode=function(e){n._colorMode=e};n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGIC)return arguments[0];if(n._colorMode==n.RGB){if(1==arguments.length)return new n.ColoM
r(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);if(3==arguments.length)return M
new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null};n.red=function(e){return e._r};n.green=function(e){return e._g};n.blue=function(e){return e._b};n.alpha=function(e){return 255*e._a};n.hue=function(e){return e._inferHSV(),e._h};n.saturation=function(e){return e._inferHSV(),e._s};n.brightness=function(e){return e._inferHSV(),e._v};n.lightness=function(e){return 100*(.2126*e._r+.M
7152*e._g+.0722*e._b)/255};n.lerpColor=function(e,t,o){return n._colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var a=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.map(o,0,1,e,t-360)]];return a.sort((e,t)=>e[0]-t[0]),(a[0][1]+720)%360}(e._h,t._h,o),0,360),n.constrM
ain(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))};function m(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}n.strokeWeight=function(e){n._noStroke=!1,o.lineWidth=e};n.stroke=function(){if(n._noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noStroke=!0:o.strokeStyle=e};n.noStroke=function(){n._noStroke=!0};n.fill=function(){if(n._noFill=!1,"striM
ng"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noFill=!0:o.fillStyle=e};n.noFill=function(){n._noFill=!0};n.blendMode=function(e){o.globalCompositeOperation=e};n.strokeCap=function(e){o.lineCap=e};n.strokeJoin=function(e){o.lineJoin=e};n.ellipseMode=function(e){n._ellipseMode=e};n.rectMode=function(e){n._rectMode=e};n.curveDetail=function(e){n._curveDetail=e};n.curveAlpha=function(e){n._curveAlpha=e};n.curveTightness=function(e){console.warn("curveTightM
ness() sets the 'alpha' parameter of Catmull-Rom curve, and is NOT identical to p5.js counterpart. As this might change in the future, please call curveAlpha() directly."),n._curveAlpha=e};n.clear=function(){o.clearRect(0,0,n.width,n.height)};n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),"string"==typeof arguments[0]?o.fillStyle=arguments[0]:o.fillStyle=n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.heigM
ht),o.restore()};n.line=function(e,t,a,r){n._noStroke||(o.beginPath(),o.moveTo(e,t),o.lineTo(a,r),o.stroke())};function g(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function v(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;let c=g(i),h=g(l);o.beginPath();for(let i=0;i<s+1;i++){let l=i/s,u=n.lerp(c,h,l),f=Math.cos(u)*a/2,d=Math.sin(u)*r/2;o[i?"lineTo":"moveTo"](e+f,t+d)}u==n.CHORD?o.closePath():u==n.PIE&&(o.lineTo(e,t),o.closePath()),n._noFill||o.fill(),n._noStrM
oke||o.stroke()}n.arc=function(e,t,o,a,r,i,l,u){if(r==i)return n.ellipse(e,t,o,a);null==u&&(u=25),null==l&&(l=n.PIE),n._ellipseMode==n.CENTER?v(e,t,o,a,r,i,l,u):n._ellipseMode==n.RADIUS?v(e,t,2*o,2*a,r,i,l,u):n._ellipseMode==n.CORNER?v(e+o/2,t+a/2,o,a,r,i,l,u):n._ellipseMode==n.CORNERS&&v((e+o)/2,(t+a)/2,o-e,a-t,r,i,l,u)};function M(e,t,a,r){n._noFill&&n._noStroke||(o.beginPath(),o.ellipse(e,t,a/2,r/2,0,0,2*Math.PI),n._noFill||o.fill(),n._noStroke||o.stroke())}n.ellipse=function(e,t,o,a){null==a&&(a=o),n._ellipseMoM
de==n.CENTER?M(e,t,o,a):n._ellipseMode==n.RADIUS?M(e,t,2*o,2*a):n._ellipseMode==n.CORNER?M(e+o/2,t+a/2,o,a):n._ellipseMode==n.CORNERS&&M((e+o)/2,(t+a)/2,o-e,a-t)};n.circle=function(e,t,o){return n.ellipse(e,t,o,o)};n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()};function _(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;if(null==i)return function(e,t,a,r){n._noFill||o.fillRect(e,t,a,r);n._noStroke||o.strokeRect(e,t,a,r)}(e,t,a,r);if(null==l)return _(e,t,a,r,i,M
i,i,i);const c=Math.min(Math.abs(r),Math.abs(a))/2;i=Math.min(c,i),l=Math.min(c,l),s=Math.min(c,s),u=Math.min(c,u),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+a,t,e+a,t+r,l),o.arcTo(e+a,t+r,e,t+r,u),o.arcTo(e,t+r,e,t,s),o.arcTo(e,t,e+a,t,i),o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke()}n.rect=function(e,t,o,a,r,i,l,u){n._rectMode==n.CENTER?_(e-o/2,t-a/2,o,a,r,i,l,u):n._rectMode==n.RADIUS?_(e-o,t-a,2*o,2*a,r,i,l,u):n._rectMode==n.CORNER?_(e,t,o,a,r,i,l,u):n._rectMode==n.CORNERS&&_(e,t,o-e,a-t,r,i,l,u)};n.squM
are=function(e,t,o,a,r,i,l){return n.rect(e,t,o,o,a,r,i,l)};function x(){i=[]}n.beginShape=function(){x(),o.beginPath(),r=!0};n.beginContour=function(){o.closePath(),x(),r=!0};n.endContour=function(){x(),r=!0};n.vertex=function(e,t){x(),r?o.moveTo(e,t):o.lineTo(e,t),r=!1};n.bezierVertex=function(e,t,n,a,r,i){x(),o.bezierCurveTo(e,t,n,a,r,i)};n.quadraticVertex=function(e,t,n,a){x(),o.quadraticCurveTo(e,t,n,a)};n.bezier=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.bezierVertex(o,a,r,i,l,u),n.endShape()};nM
.triangle=function(e,t,o,a,r,i){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.endShape(n.CLOSE)};n.quad=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.vertex(l,u),n.endShape(n.CLOSE)};n.endShape=function(e){x(),e&&o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke(),n._noFill&&n._noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())};n.curveVertex=function(e,t){if(i.push([e,t]),i.length<4)return;let a=i[i.length-4],l=i[i.length-3],u=i[i.length-2],s=i[i.M
length-1],c=function(e,t,n,o,a,r,i,l,u,s){function c(e,t,n,o,a,r){let i=Math.pow(o-t,2)+Math.pow(a-n,2),l=Math.pow(i,.5*r);return l+e}let h=[],f=c(0,e,t,n,o,s),d=c(f,n,o,a,r,s),p=c(d,a,r,i,l,s);for(let s=0;s<u;s++){let c=f+s/(u-1)*(d-f),m=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<m.length;e+=2)isNaN(m[e])&&(m[e]=1,m[e+1]=0),isFinite(m[e])||(m[e]>0?(m[e]=1,m[e+1]=0):(m[e]=0,m[e+1]=1));let g=e*m[0]+n*m[1],v=t*m[0]+o*m[1],M=nM
*m[2]+a*m[3],_=o*m[2]+r*m[3],x=a*m[4]+i*m[5],y=r*m[4]+l*m[5],w=g*m[6]+M*m[7],R=v*m[6]+_*m[7],I=M*m[8]+x*m[9],E=_*m[8]+y*m[9],S=w*m[2]+I*m[3],C=R*m[2]+E*m[3];h.push([S,C])}return h}(...a,...l,...u,...s,n._curveDetail,n._curveAlpha);for(let e=0;e<c.length;e++)r?o.moveTo(...c[e]):o.lineTo(...c[e]),r=!1};n.curve=function(e,t,o,a,r,i,l,u){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,a),n.curveVertex(r,i),n.curveVertex(l,u),n.endShape()};n.translate=function(e,t){o.translate(e,t)};n.rotate=function(e){o.rotate(e)};nM
.scale=function(e,t){null==t&&(t=e),o.scale(e,t)};n.applyMatrix=function(e,t,n,a,r,i){o.transform(e,t,n,a,r,i)};n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)};n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)};n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)};n.pushMatrix=n.push=function(){o.save()};n.popMatrix=n.pop=function(){o.restore()};n.image=function(e,t,a,r,i,l,u,s,c){let h=e.MAGIC==n.MAGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let tM
=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(!function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d"));null==e&&(e=o.canvas.width,t=o.canvas.height);f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tinted(n._tint)),r?l?(s||(s=h.width),c||(c=h.height),o.drawImage(h,l,u,s,c,t,M
a,r,i),void d()):(o.drawImage(h,t,a,r,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,a,e.width,e.height):o.drawImage(h,t,a,e.videoWidth,e.videoHeight),void d())};n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data};n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)};n.loadImage=function(e,t){u++;let o=n.createGraphics(100,100),a=o.canvas.getContext("2d"),r=new Image;return r.src=e,r.crossOrigin="Anonymous",r.onload=function(){a.canvas.width=r.width,a.canvas.heM
ight=r.height,o.width=r.width,o.height=r.height,a.drawImage(r,0,0),u--,t&&t(o)},o};let y={};y[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}};y[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}};y[n.OPAQUE]=function(e){for(let t=0;t<e.length;t+=4)e[t+3]=255};y[n.INVERT]=function(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[tM
+2]=255-e[t+2]};y[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n};y[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.max(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.ERODE]=function(e){R(),d.set(M
e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.min(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let a=2*t+1;let r=function(e){let n=new Float32Array(e),o=.3*t+.8,a=o*o*2;for(let t=0;t<e;t++){let r=t-e/2,i=Math.exp(-r*r/a)/(2.5066282746*o);n[t]=i}reM
turn n}(a),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,u=0,s=0,c=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(o-t+e,0),i-1),h=4*(n*i+a);l+=d[h]*r[e],u+=d[h+1]*r[e],s+=d[h+2]*r[e],c+=d[h+3]*r[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=u,e[h+2]=s,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let u=0,s=0,c=0,h=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(n-t+e,0),l-1),f=4*(a*i+o);u+=d[f]*r[e],s+=d[f+1]*r[e],c+=d[f+2]*r[e],h+=d[f+3]*r[e]}let f=4*(n*i+o);e[f]=u,e[f+1]=sM
,e[f+2]=c,e[f+3]=h}};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClampedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvasM
,0,0),o.restore()}n.filter=function(e,t){let a=n.HARDWARE_FILTERS&&null!=o.filter;if(a)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5);let e=Math.floor(.5/t*100);I(`saturate(0%) brightness(${e}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(h.canvas,0,0),o.restore();else if(e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(t*M
n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}};n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()};n.getM
=function(e,t,a,r){if(null!=e&&null==a){let a=o.getImageData(e,t,1,1).data;return new n.Color(a[0],a[1],a[2],a[3]/255)}e=e||0,t=t||0,a=a||n.width,r=r||n.height;let i=n.createGraphics(a,r);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,a*n._pixelDensity,r*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i};n.set=function(e,t,a){if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.image(a,e,t),void(n._tint=o)}let r=4*(t*n._pixelDensity*o.canvas.width+M
e*n._pixelDensity);n.pixels[r]=a._r,n.pixels[r+1]=a._g,n.pixels[r+2]=a._b,n.pixels[r+3]=255*a._a};n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransform();let a=o.globalCompositeOperation;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.glM
obalCompositeOperation=a,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()};n.tint=function(){n._tint=n.color(...Array.from(arguments))};n.noTint=function(){n._tint=null};n.mask=function(e){o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositeOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeM
Operation=t,o.restore()};n.clearTemporaryBuffers=function(){h=null,f=null,d=null};n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t},!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)};n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.save(t,o);let n=t.split(".");return e.save(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);let aM
=e.split(".");return n.save(a.slice(0,-1).join("."),a[a.length-1])};n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),a=`@font-face {\n        font-family: '${o}';\n        src: url('${e}');\n      }`;const r=document.createElement("style");return r.textContent=a,document.head.append(r),o};n.textFont=function(e){n._textFont=e};n.textSize=function(e){n._textSize=e,n._textLeading=e};n.textLeading=function(e){n._textLeading=e};n.textStyle=function(e){n._textStyle=e};n.textAlign=M
function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)};n.text=function(e,t,a,r){if(!e)return;if(e=e.toString(),n._noFill&&n._noStroke)return;o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._noFill||o.fillText(i[e],t,a,r),n._noStroke||o.strokeText(i[e],t,a,r),a+=n._textLeading};n.textWidth=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).width};n.textAscent=function(e){return o.font=`${n._textStyle}M
 ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent};n.textDescent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent};var E=4;var S=.5;var C=function(e){return.5*(1-Math.cos(e*Math.PI))};var A;n.noise=function(e,t,n){if(t=t||0,n=n||0,null==A){A=new Array(4096);for(var o=0;o<4096;o++)A[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var a,r,i,l,u,s=Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-s,d=t-c,p=n-h,m=0,g=M
.5,v=0;v<E;v++){var M=s+(c<<4)+(h<<8);a=C(f),r=C(d),i=A[4095&M],i+=a*(A[M+1&4095]-i),l=A[M+16&4095],l+=a*(A[M+16+1&4095]-l),i+=r*(l-i),l=A[4095&(M+=256)],l+=a*(A[M+1&4095]-l),u=A[M+16&4095],u+=a*(A[M+16+1&4095]-u),l+=r*(u-l),i+=C(p)*(l-i),m+=i*g,g*=S,s<<=1,c<<=1,h<<=1,(f*=2)>=1&&(s++,f--),(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return m};n.noiseDetail=function(e,t){e>0&&(E=e),t>0&&(S=t)};const T=function(){let e,t,n=4294967295;return{setSeed(o){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17M
,e^=e>>13,((e^=e<<5)>>>0)/n)}};let D=T();D.setSeed();n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;A||(A=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,A[n]=(t>>>0)/4294967295};n.randomSeed=function(e){D.setSeed(e)};n.random=function(e,t){return"number"==typeof e?null!=t?D.rand()*(t-e)+e:D.rand()*e:e[~~(e.length*D.rand())]};n.randomGenerator=function(e){e==n.LCG?D=function(){const e=4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>t,rM
and:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(D=T()),D.setSeed()};var P=new function(){var e,t,n,o=new Array(128),a=new Array(256),r=new Array(128),i=new Array(128),l=new Array(256),u=new Array(256),s=function(){return 4294967296*D.rand()-2147483648},c=function(){return.5+2.328306e-10*(s()<<0)},h=function(){for(var t,a,l,u,h=3.44262;;){if(t=n*r[e],0==e){do{l=c(),u=c(),t=.2904764*-Math.log(l),a=-Math.log(u)}while(a+a<t*t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=s(),e=12M
7&n,Math.abs(n)<o[e])return n*r[e]}},f=function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],u[e]+c()*(u[e-1]-u[e])<Math.exp(-n))return n;if((t=s())<a[e=255&t])return t*l[e]}};this.SHR3=s,this.UNI=c,this.RNOR=function(){return n=s(),e=127&n,Math.abs(n)<o[e]?n*r[e]:h()},this.REXP=function(){return(t=s()>>>0)<o[e=255&t]?t*l[e]:f()},this.zigset=function(){var e,t,n=2147483648,s=4294967296,c=3.442619855899,h=c,f=.00991256303526217,d=7.697117470131487,p=d,m=.003949659822581572;for(e=f/Math.exp(-.5*c*cM
),o[0]=Math.floor(c/e*n),o[1]=0,r[0]=e/n,r[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),r[t]=c/n;for(e=m/Math.exp(-d),a[0]=Math.floor(d/e*s),a[1]=0,l[0]=e/s,l[255]=d/s,u[0]=1,u[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(m/d+Math.exp(-d)),a[t+1]=Math.floor(d/p*s),p=d,u[t]=Math.exp(-d),l[t]=d/s}};P.hasInit=!1;n.randomGaussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e};n.randomEM
xponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()};n.print=console.log;n.cursor=function(e,t,o){let a="";e.includes(".")&&(e=`url("${e}")`,a=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+a};n.noCursor=function(){n.canvas.style.cursor="none"};n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUserMedia(e).then(function(e){t.srcObject=e}),t.style.position="absolute",t.style.opacity=M
1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let b=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of b){let t="_"+e+"Fn";n[t]=function(){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(a=null==n._frameRate?requestAnimationFrame(z):setTimeout(z,1e3/n._frameRate)),x(),r=!0,o.save(),n._drawFn(),o.restore(),n.frM
ameCount++}n.noLoop=function(){n._noLoop=!0,a=null};n.loop=function(){n._noLoop=!1,null==a&&z()};n.redraw=function(){z()};n.frameRate=function(e){n._frameRate=e};setTimeout(function(){n._preloadFn(),c=window.performance.now(),function e(){if(u>0)return setTimeout(e,10);n._setupFn();z()}()},1);n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraggedFn(e):n._mouseMovedFn(e)};n.canvas.onmousedown=function(e){n.pmouseX=n.mouseX,n.pmousM
eY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)};n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)};n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickedFn(e),n.mouseIsPressed=!1};window.addEventListener("keydown",function(e){n.keyIsPressed=M
!0,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)});window.addEventListener("keyup",function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!1,n._keyReleasedFn(e)});n.keyIsDown=function(e){return!!s[e]};function O(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,a=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,y:(e.clientY-t.top)/a,id:e.identifier}}function k(){return n._touchStarted.isPlaceHolder&M
&n._touchMoved.isPlaceHolder&&n._touchEnded.isPlaceHolder}n.canvas.ontouchstart=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()};n.canvas.ontouchmove=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButtoM
n=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()};n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()};n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DeviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPeM
rmission);n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(e=>{"granted"==e&&(n.hasSensorPermission=!0)}).catch(alert)}).catch(alert)};window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pRelRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,nM
.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ};window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,!e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[M
1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13],e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]*t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[15M
],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]*t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(e)M
,0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}};n.year=function(){return(new Date).getFullYear()};n.day=function(){return(new Date).getDay()};n.hour=function(){return(new Date).getHours()};n.minute=function(){return(new Date).getMinutes()};n.second=function(){return(new Date).getSeconds()};n.millis=function(){return window.performance.now()-c}}(e)}
or{static p;static SAND_COLOR_MODE=3;static getSandColorByIndex(e,t=0,i=30,s=50){e%=5;let a=[];var r,h,n;for(let e=0;e<5;e++){let t=e%5;1==Color.SAND_COLOR_MODE?a.push(o(t)):2==Color.SAND_COLOR_MODE?a.push(l(t)):3==Color.SAND_COLOR_MODE?a.push(d(t)):4==Color.SAND_COLOR_MODE?a.push(m(t)):5==Color.SAND_COLOR_MODE?a.push(p(t)):6==Color.SAND_COLOR_MODE?a.push(g(t)):7==Color.SAND_COLOR_MODE?a.push(c(t)):8==Color.SAND_COLOR_MODE?a.push(u(t)):9==Color.SAND_COLOR_MODE&&a.push(v(t))}return a[e];function o(e){return 0==e?(r=M
t+60,h=i+5,n=s+5):1==e?(r=t+30,h=i+5,n=s+9):2==e?(r=t,h=i,n=s):3==e?(r=t-30,h=i+5,n=s+9):4==e&&(r=t-60,h=i+5,n=s+5),r<0?r+=360:r>360&&(r-=360),chroma(r,h/100,n/100,"hsl")}function l(e){return r=t,0==e?(h=i,n=s+30):1==e?(h=i-30,n=s+8):2==e?(h=i,n=s):3==e?(h=i-30,n=s+30):4==e&&(h=i,n=s-20),h<10&&(h+=60),(0==e||3==e)&&n>100&&(n=s-50),chroma(r,h/100,n/100,"hsl")}function d(e){return 0==e?(r=t-120,h=i+10,n=s-30):1==e?(r=t+120,h=i-10,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t-120,h=i+10,n=s):4==e&&(r=t+120,h=i+10,n=s-30),r>360?r-M
=360:r<0&&(r+=360),h>100&&(h-=20),n>100&&(n-=30),chroma(r,h/100,n/100,"hsl")}function m(e){return 0==e?(r=t,h=i+10,n=s-30):1==e?(r=t,h=i-30,n=s+30):2==e?(r=t,h=i,n=s):3==e?(r=t-180,h=i+20,n=s-30):4==e&&(r=t-180,h=i,n=s),r<0&&(r+=360),chroma(r,h/100,n/100,"hsl")}function p(e){return 0==e?(r=t-150,h=i-10,n=s+30):1==e?(r=t-150,h=i-5,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t+150,h=i+10,n=s+30):4==e&&(r=t+150,h=i+5,n=s),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n>100&&(n-=60),chroma(r,h/100,n/100,"hsl")}function g(e){return 0==M
e?(r=t+60,h=i-5):1==e?(r=t+150,h=i-10):2==e?(r=t,h=i):3==e?(r=t-150,h=i+10):4==e&&(r=t-60,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function c(e){return 0==e?(r=t,h=i+20):1==e?(r=t+90,h=i-10):2==e?(r=t,h=i):3==e?(r=t+180,h=i+10):4==e&&(r=t-90,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function u(e){return 0==e?(r=t+30,h=i+10,n=s+20):1==e?(r=t+30,h=i+40,n=s+40):2==e?(r=t,h=i,n=s):3==e?(r=t+160,h=i+25,n=s+5):4==e&&(r=t+150,h=i+10,n=s+20),r>3M
60&&(r-=360),(0==e||4==e)&&h>100?h-=20:1==e&&h>90?h-=80:3==e&&h>60&&(h-=50),1==e&&n>100?n-=80:(0==e||4==e)&&n>100&&(n-=40),chroma(r,h/100,n/100,"hsl")}function v(e){return r=t,h=i,0==e?n=s-25:1==e?n=s+30:2==e?n=s:3==e?n=s+5:4==e&&(n=s-10),n>100&&(n-=80),chroma(r,h/100,n/100,"hsl")}}static chromaToArray=e=>[e._rgb[0],e._rgb[1],e._rgb[2],255*e._rgb[3]];static setColorMode=e=>{this.SAND_COLOR_MODE=e}}class Geometry{static slicePolyByY(e,t){let i=[];for(let s=0;s<e.length;s++){let a=e[s],r=s?e[s-1]:e.at(-1),h=a.y>=t;h!M
=r.y>=t&&i.push(Geometry.interWithY(r,a,t)),h&&i.push(a)}return i}static getAreaBelowY(e,t){return Geometry.getPolyArea(Geometry.slicePolyByY(e,t))}static getYByAreaBelow(e,t){let[i,s,a,r]=Geometry.getBoundingBox(e,"COORD"),h=s,n=r;for(let i=0;i<30;++i){let i=(h+n)/2;Geometry.getAreaBelowY(e,i)>t?h=i:n=i}return n}static interWithY(e,t,i){let s=e.copy(),a=t.copy(),r=createVector(-1e9,i),h=createVector(1e9,i);return Geometry.intersection(s,a,r,h)}static getPolyArea(e){let t=0;for(let i=0;i<e.length;i++){let s=e[i],a=M
e[(i+1)%e.length],r=createVector(s.x,s.y),h=createVector(a.x,a.y);t+=r.cross(h).z}return t=abs(t)/2,t}static getBoundingBox(e,t="SIZE"){let i=e[0].x,s=e[0].x,a=e[0].y,r=e[0].y;for(let t=0;t<e.length;t++)isNaN(e[t].y)||(a=min(a,e[t].y),r=max(r,e[t].y)),isNaN(e[t].x)||(i=min(i,e[t].x),s=max(s,e[t].x));return"SIZE"==t?[i,a,s-i,r-a]:"COORD"==t?[i,a,s,r]:[]}static intersection(e,t,i,s){let a=createVector(t.x-e.x,t.y-e.y),r=createVector(s.x-i.x,s.y-i.y),h=createVector(i.x-e.x,i.y-e.y),n=(a.copy().rotate(PI/2),r.copy().roM
tate(PI/2)),o=h.dot(n)/a.dot(n),l=a.mult(o);return createVector(e.x+l.x,e.y+l.y)}}class GraphicUtils{static applyMask(e,t){e.push(),e.noStroke(),e.blendMode(REMOVE),e.fill(255,255,255,255),e.beginShape(),e.vertex(0,0),e.vertex(0,e.height),e.vertex(e.width,e.height),e.vertex(e.width,0),e.beginContour();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endContour(),e.endShape(e.CLOSE),e.blendMode(BLEND),e.pop()}}class Hourglass{static TICK_INTERVAL=60;static ROTATE_INTERVAL=10/3;constructor(e,t){this.evolvePeriod=M
e.evolvePeriod,t.registerIterationChangeEvent(this.onIterationChange.bind(this));let i=t.getCurrentIteration();this.onIterationChange(i),this.update(new Date)}onIterationChange(e){this.flipped=e%2==1}getState(){return{top:this.top,rotation:this.rotation,flipped:this.flipped,timeSinceRotation:this.timeSinceRotation}}update(e){let t,i=0;if(traits.evolvePeriod==EvolvePeriod.HOURLY)t=3600,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.DAILY)t=86400,i+=60*e.geM
tHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.MONTHLY){let s=e.getFullYear(),a=e.getMonth()+1;t=24*new Date(s,a,0).getDate()*60*60,i+=24*(e.getDate()-1)*60*60,i+=60*e.getHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3}this.flipped?this.top=1-min(1,i/t):this.top=min(1,i/t),this.timeSinceRotation=max(0,i-Hourglass.ROTATE_INTERVAL);let s=Math.min(i,Hourglass.ROTATE_INTERVAL);this.rotation=this.flipped?PI:0,this.rotatM
ion+=s/Hourglass.ROTATE_INTERVAL*PI}}function getRandomInt(e,t){return floor(random(e,t))}function getRandomItem(e){let t=0;for(const i of e)t+=i[1];let i=random(t),s=0;for(const t of e)if(s+=t[1],i<s)return t[0];return null}function shuffle(e){for(let t=1;t<e.length;++t){let i=getRandomInt(0,t),s=e[t];e[t]=e[i],e[i]=s}}class PostProcessing{constructor(e,t,i){this.wCanvas=e,this.hCanvas=t,this.graphic=createGraphics(this.wCanvas,this.hCanvas),this.updateFilter(1)}updateFilter(e,t,i){this.graphic.fill(255,255,255,25M
5),this.graphic.blendMode(REMOVE),this.graphic.rect(0,0,this.wCanvas,this.hCanvas),this.graphic.blendMode(BLEND);let s,a=this.wCanvas/2,r=this.hCanvas/2,h=2*sqrt(a*a+r*r);s=a>r?sqrt(1-Math.pow(r/a,2)):sqrt(1-Math.pow(a/r,2));let n,o;if(1!=abs(e)){let t,i;3==abs(e)?(t=6,i=.6):10==abs(e)?(t=4,i=.5):60==abs(e)?(t=3,i=.4):3600==abs(e)&&(t=2,i=.3),o=i-.1,n=map(sin(Date.now()/1e3/t*TAU),-1,1,i-.1,i+.1)}else i?(o=1,n=1):(o=.75,n=.75);this.graphic.push(),this.graphic.ellipseMode(RADIUS),this.graphic.translate(a,r);for(let M
e=39;e>=0;e--){let t=(e+1)/40;if(1==o||map(t,o,1,0,1.2)<=0)break;let i=max(map(t,n,1,0,1.2),0),s=color(0,0,0,255*i);this.graphic.fill(s),this.graphic.noStroke(),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),e>0&&(t=e/40,this.graphic.fill(255,255,255,255),this.graphic.blendMode(REMOVE),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),this.graphic.blendMode(BLEND))}this.graphic.pop()}applyToMainCanvas(){image(this.graphic,0,0)}}class BackgroundRenderer{constructor(e,t,i,s,a,r){this.wCanvas=e.width,this.hCanvas=eM
.height,this.maxR=min(this.wCanvas,this.hCanvas)/1024,this.dx,this.yvalues,this.xvalues,this.xspacing1=[],this.thickness1=[],this.theta1=[],this.velocity1=[],this.sz1=[],this.xspacing2=[],this.thickness2=[],this.theta2=[],this.velocity2=[],this.sz2=[],this.xspacing3=[],this.thickness3=[],this.theta3=[],this.velocity3=[],this.sz3=[],this.xspacing4=[],this.thickness4=[],this.theta4=[],this.velocity4=[],this.sz4=[],this.c=[],this.num_waves=30,this._h=t,this._s=i,this._l=s,this.patternOrder=a.patternOrder,this.diagonalM
=sqrt(Math.pow(width,2)+Math.pow(height,2));let h=createVector(width,height).heading(),n=abs(PI/4-h);this.ty=this.diagonal/2*cos(n),this.waveSpeed=a.waveSpeed,this.wavePeriod=a.wavePeriod,this.waveHeight=a.waveHeight,this.evolvePeriod=a.evolvePeriod,this.evolvePeriod==EvolvePeriod.DAILY?this.num_lines=7:(this.evolvePeriod==EvolvePeriod.HOURLY||this.evolvePeriod==EvolvePeriod.MONTHLY)&&(this.num_lines=12),this.waveHeight==WaveHeight.SHORT?this.amplitude=getRandomInt(20,30):this.waveHeight==WaveHeight.MEDIUM?this.ampM
litude=getRandomInt(30,40):this.waveHeight==WaveHeight.TALL&&(this.amplitude=getRandomInt(40,50)),this.wavePeriod==WavePeriod.SHORT?this.period=getRandomInt(300,351):this.wavePeriod==WavePeriod.MEDIUM?this.period=getRandomInt(425,476):this.wavePeriod==WavePeriod.LONG&&(this.period=getRandomInt(600,651)),this.waveSpeed==WaveSpeed.SLOW?(this.min_speed=.003,this.max_speed=.005):this.waveSpeed==WaveSpeed.MEDIUM?(this.min_speed=.008,this.max_speed=.01):this.waveSpeed==WaveSpeed.FAST&&(this.min_speed=.015,this.max_speed=M
.018),this.thetaList=[0,1/4*PI,.5*PI,3/4*PI,PI],this.setupStaticWave(),this.setupDynamicWave(),r.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=r.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){randomSeed(100*e+1),shuffle(this.xspacing1),shuffle(this.thickness1),shuffle(this.theta1),shuffle(this.xspacing1),shuffle(this.velocity1),shuffle(this.xspacing2),shuffle(this.thickness2),shuffle(this.theta2),shuffle(this.xspacing2),shuffle(this.velocity2),shuffle(this.xspacing3),shM
uffle(this.thickness3),shuffle(this.theta3),shuffle(this.xspacing3),shuffle(this.velocity3),shuffle(this.xspacing4),shuffle(this.thickness4),shuffle(this.theta4),shuffle(this.xspacing4),shuffle(this.velocity4)}setupStaticWave(){for(let e=0;e<this.num_waves;e++){this.xspacing1.push(getRandomInt(5,50)),this.thickness1.push(getRandomInt(50,200)),this.theta1.push({value:random(this.thetaList)}),this.velocity1.push({value:random(this.min_speed,this.max_speed)}),this.sz1.push(random(.5,3)),this.xspacing2.push(getRandomInM
t(5,50)),this.thickness2.push(getRandomInt(50,200)),this.theta2.push({value:random(this.thetaList)}),this.velocity2.push({value:random(this.min_speed,this.max_speed)}),this.sz2.push(random(.5,3)),this.xspacing3.push(getRandomInt(5,50)),this.thickness3.push(getRandomInt(50,200)),this.theta3.push({value:random(this.thetaList)}),this.velocity3.push({value:random(this.min_speed,this.max_speed)}),this.sz3.push(random(.5,3)),this.xspacing4.push(getRandomInt(5,50)),this.thickness4.push(getRandomInt(50,200)),this.theta4.puM
sh({value:random(this.thetaList)}),this.velocity4.push({value:random(this.min_speed,this.max_speed)}),this.sz4.push(random(.5,3));let t=e%5;this.c.push(Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25))}}setupDynamicWave(){this.dynamicWave={h:random(this.hCanvas/3),xspacing:getRandomInt(5,20),thickness:getRandomInt(100,200),theta:{value:random(this.thetaList)},velocity:{value:random(this.min_speed,this.max_speed)},sz:random(1,3),num_lines:0},1==this.patternOrder[0]?this.dynamicWave.h=random(200,heM
ight-200):2==this.patternOrder[0]?this.dynamicWave.h=random(200,width-200):(3==this.patternOrder[0]||4==this.patternOrder[0])&&(this.dynamicWave.h=random(200,2*this.ty-200))}update(e){this.time=e}drawHorWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(width/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),tM
+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s];r<-2||r>height+2||e.square(a,r,n*this.maxR)}}}drawVerWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.xvalues=new Array(floor(height/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.xvalues.length;e++)this.xvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.xvalues.length;s++){let a=t+this.xvalues[s],r=s*iM
;a<-2||a>width+2||e.square(a,r,n*this.maxR)}}}drawDiaWave(e,t,i,s,a,r,h,n,o,l){let d=cos(-l),m=sin(-l);this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(this.diagonal/i));let p=this.time.getTime()/(1e3/60),g=r.value+h.value*p/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(g)*this.amplitude,g+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s],h=n*this.maxR,o=a-this.diagonal/2,l=r-this.tM
y,p=o*d+l*m+width/2,g=-o*m+l*d+height/2;p<-2||p>width+2||g<-2||g>height+2||e.square(a,r,h)}}}drawHorizontal(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawHorWave(e,t,this.xspacing1[i]*width/1024,this.thickness1[i]*height/1024,this.num_lines,this.theta1[i],this.velocity1[i],this.sz1[i],this.c[i]),t+=(height+50)/this.num_waves}drawVertical(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawVerWave(e,t,this.xspacing2[i]*height/1024,this.thickness2[i]*width/1024,this.num_lines,this.theta2[i],this.vM
elocity2[i],this.sz2[i],this.c[i]),t+=(width+50)/this.num_waves}drawLeft(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing3[i]*this.maxR,this.thickness3[i]*this.maxR,this.num_lines,this.theta3[i],this.velocity3[i],this.sz3[i],this.c[i],PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawRight(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(M
3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing4[i]*this.maxR,this.thickness4[i]*this.maxR,this.num_lines,this.theta4[i],this.velocity4[i],this.sz4[i],this.c[i],3*PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawPattern(e,t){1==t?this.drawHorizontal(e):2==t?this.drawVertical(e):3==t?this.drawLeft(e):this.drawRight(e)}draw(e,t,i,s,a){this._h=s.h,this._s=s.s,this._l=s.l,e.background(0);let r=t.getHours()>=6&&t.getHours()<18?.2:.05,h=Color.getSandColorByIndex(4,this._h,this._s,M
this._l).luminance(r).alpha(.5);if(e.background(color(...Color.chromaToArray(h))),!a)return;this.evolvePeriod==EvolvePeriod.HOURLY?this.dynamicWave.num_lines=(t.getHours()+11)%12+1:this.evolvePeriod==EvolvePeriod.DAILY?this.dynamicWave.num_lines=t.getDay()+1:this.evolvePeriod==EvolvePeriod.MONTHLY&&(this.dynamicWave.num_lines=t.getMonth()+1);for(let e=0;e<this.num_waves;e++){let t=e%5;this.c[e]=Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25)}1==i?(3==this.patternOrder[0]||4==this.patternOrder[0]M
?this.num_waves=30:this.num_waves=20,this.drawPattern(e,this.patternOrder[0])):2==i?(this.patternOrder[0]+this.patternOrder[1]==3?this.num_waves=10:this.patternOrder[0]+this.patternOrder[1]==7?this.num_waves=20:this.num_waves=15,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1])):3==i?(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2])):(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),M
this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2]),this.drawPattern(e,this.patternOrder[3]));let{h:n,xspacing:o,thickness:l,num_lines:d,theta:m,velocity:p,sz:g}=this.dynamicWave,c=Color.getSandColorByIndex(0,this._h,this._s,this._l).luminance(.5);1==this.patternOrder[0]?this.drawHorWave(e,n,o*width/1024,l*height/1024,d,m,p,g,c):2==this.patternOrder[0]?this.drawVerWave(e,n,o*height/1024,l*width/1024,d,m,p,g,c):3==this.patternOrder[0]?(e.push(),e.translate(width/2,height/2),e.rotate(PI/M
4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,PI/4),e.pop()):4==this.patternOrder[0]&&(e.push(),e.translate(width/2,height/2),e.rotate(3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,3*PI/4),e.pop())}}class GrainRenderer{static texture;static deltaX;static deltaY;static maxDelta=100;static wCanvas;static hCanvas;static setup(e,t){GrainRenderer.wCanvas=e+GrainRenderer.maxDelta,GrainRenderer.hCanvas=t+GrainRendereM
r.maxDelta,GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0),GrainRenderer.texture=createImage(GrainRenderer.wCanvas,GrainRenderer.hCanvas),GrainRenderer.texture.loadPixels();let i=GrainRenderer.texture.pixelDensity();for(let e=0;e<GrainRenderer.wCanvas;e++)for(let t=0;t<GrainRenderer.hCanvas;t++){let s=216.75,a=255,r=random(s,a),h=random(s,a),n=random(s,a);for(let s=0;s<i;s++)for(let a=0;a<i;a++){let o=4*((t*i+a)*GrainRenderer.wCanvas*i+(e*i+s));GrainRendM
erer.texture.pixels[o]=r,GrainRenderer.texture.pixels[o+1]=h,GrainRenderer.texture.pixels[o+2]=n,GrainRenderer.texture.pixels[o+3]=255}}GrainRenderer.texture.updatePixels()}static applyGrain(e,t){let i=!!t&&{atFrame:1};e.textureOverlay(GrainRenderer.texture,{mode:BURN,animate:i})}static applyGrainToMainCanvas(e){blendMode(BURN),e&&(GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0)),image(GrainRenderer.texture,GrainRenderer.deltaX,GrainRenderer.deltaY)}}conM
st HourglassSize={SMALL:"SMALL",MEDIUM:"MEDIUM",LARGE:"LARGE"};class HourglassRenderer{constructor(e,t,i){this.nLayer=10,this.wCanvas=e.width,this.hCanvas=e.height,this.hourglassSize=t.hourglassSize,this.poly=t.poly,this.evolvePeriod=t.evolvePeriod,this.xc=this.wCanvas/2,this.yc=this.hCanvas/2,this.x1=this.xc+random(100,300),this.y1=this.yc+random(100,300),this.x2=this.xc+random(100,300),this.y2=this.yc+random(100,300),this.x1m=this.wCanvas-this.x1,this.y1m=this.y1,this.maxR=min(this.wCanvas,this.hCanvas)/2,1==thisM
.poly?this.mainRadius=.1*this.maxR*4:this.mainRadius=.1*this.maxR*getRandomInt(1,6),i.registerIterationChangeEvent(this.onIterationChange.bind(this));let s=i.getCurrentIteration();this.onIterationChange(s),this.topline=this.polygon(this.xc,this.yc,this.poly,PI),this.bottomline=this.polygon(this.xc,this.yc,this.poly,0),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.excitement=.15*max(this.sandRects[0][2],this.sandRects[0][3]),this.dx=[],this.dy=[];for(let e=0;e<2M
*this.nLayer;++e)this.dx[e]=random(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement);this.curSecond=(new Date).getSeconds(),this.rotateAngle=0}onIterationChange(e){randomSeed(100*e+2),this.startAngle=this.getStartAngle(),this.radiuses=this.getRadiuses()}getIteration(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(M
e.getFullYear()-1970)+e.getMonth()),t}getStartAngle(){let e=getRandomInt(1,6);return PI/(2.5+.5*e)}getRadiuses(){let e,t;this.hourglassSize==HourglassSize.MEDIUM?(e=.45*this.maxR,t=.55*this.maxR):this.hourglassSize==HourglassSize.LARGE&&(e=.6*this.maxR,t=.7*this.maxR);let i=[];for(let s=0;s<this.poly;s++){let a;a=0==s?e:random(e,t),i.push(a)}return i}update(e,t){if(e.getSeconds()!=this.curSecond){this.curSecond=e.getSeconds(),this.secondTicked=!0,this.rotateAngle+=PI/30;for(let e=0;e<2*this.nLayer;++e)this.dx[e]=raM
ndom(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement)}else this.secondTicked=!1;this.topline=this.polygon(this.xc,this.yc,this.poly,PI+t),this.bottomline=this.polygon(this.xc,this.yc,this.poly,t),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.time=e,this.rotation=t}draw(e,t,i){let s=i.luminance(.3);e.fill(255,255,255,255),e.blendMode(REMOVE),e.rect(0,0,this.wCanvas,this.hCanvas),e.blendMode(BLEND),0==t?this.drawShadowNormal(eM
,s,this.time):1==t&&this.drawShadowCircle(e,s),e.fill(255,255,255,255),e.blendMode(REMOVE),this.drawShape(e,this.topline),this.drawShape(e,this.bottomline),e.blendMode(BLEND)}drawShadowNormal(e,t,i){let s=floor(i.getMinutes()/10),a=i.getMinutes()%10;e.push(),e.noFill(),e.strokeWeight(.005*this.maxR);for(let i=0;i<s;i++){let a=map(i,s,0,.2,.5),r=color(...Color.chromaToArray(t.alpha(a)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i],this.yc+this.dy[2*i],this.poly,PI)}for(let i=0;i<a;i++){let s=map(i,a,0,.M
2,.5),r=color(...Color.chromaToArray(t.alpha(s)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i+1],this.yc+this.dy[2*i+1],this.poly,0)}e.pop()}drawShadowCircle(e,t){e.push(),e.noStroke(),e.translate(this.xc,this.yc),e.rotate(PI+this.rotateAngle);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.fill(a),this.getAndDrawPolygon(e,0,2.5*this.mainRadius,this.poly,PI),this.getAndDrawPolygon(e,0,2.5*-this.mainRadius,this.poly,0),e.rotate(PI/3)}e.pop(),e.push(),e.noFill(),M
e.strokeWeight(2),e.translate(this.xc,this.yc),e.rotate(-this.rotateAngle+PI/30);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.stroke(a),this.getAndDrawPolygon(e,0,-this.mainRadius/2,this.poly,PI),this.getAndDrawPolygon(e,0,this.mainRadius/2,this.poly,0),e.rotate(-PI/3)}e.pop()}getAndDrawPolygon(e,t,i,s,a){let r=this.polygon(t,i,s,a);this.drawShape(e,r)}drawShape(e,t){e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endShape(e.CLOSE)}polygon(e,t,i,s){leM
t a=(PI/2-this.startAngle)/i,r=0,h=[];h.push({x:e,y:t});let n=this.startAngle+s;for(let s=0;s<i;s++){let i=this.radiuses[r];r+=1;let s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}r=this.poly,n=PI/2+a+s;for(let s=0;s<i;s++){r-=1;let i=this.radiuses[r],s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}return h=h.filter((e=>!isNaN(e.x)&&!isNaN(e.y))),h}getSandRects=()=>this.sandRects;getTopLine=()=>this.topline;getBottomLine=()=>this.bottomline;getSecondTicked=()=>this.secondTicked}const WavePeriod={SHORT:"SHORT",MEM
DIUM:"MEDIUM",LONG:"LONG"},WaveHeight={SHORT:"SHORT",MEDIUM:"MEDIUM",TALL:"TALL"},WaveSpeed={SLOW:"SLOW",MEDIUM:"MEDIUM",FAST:"FAST"};class SandRenderer{static N_CURVE_POINT=50;static DROPDOWN_TIME=3;constructor(e,t,i,s,a,r,h,n){this.wCanvas=e.width,this.hCanvas=e.height,this.hInit=t,this.baseLine=this.transformCoord(i),this.baseH=s,this.baseS=a,this.baseL=r,this.curSecond=0,this.waveHeight=h.waveHeight,this.wavePeriod=h.wavePeriod,this.waveSpeed=h.waveSpeed,this.evolvePeriod=h.evolvePeriod,this.nSandLayer=6,this.lM
ayers=this.getLayers(),this._h=this.baseH,this._s=this.baseS,this._l=this.baseL,this.prevIteration=null,n.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=n.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){null==this.prevIteration?this._h=this.getHue(this.baseH,0,e):this._h=this.getHue(this._h,this.prevIteration,e),this.prevIteration=e}getHue(e,t,i){let s=min(t,i),a=max(t,i);for(let r=s;r<a;r++){randomSeed(100*r+3);let s=random(1);if(this.evolvePeriod==EvolvePeriod.HOURLY?s=M
map(s,0,1,5,10):this.evolvePeriod==EvolvePeriod.DAILY?s=map(s,0,1,10,30):this.evolvePeriod==EvolvePeriod.MONTHLY&&(s=map(s,0,1,50,100)),i>t)for(e+=s;e>360;)e-=360;else for(e-=s;e<0;)e+=360}return e}update(e){this.time=e}getChroma(){return Color.getSandColorByIndex(0,this._h,this._s,this._l)}getBaseHSL(){return{h:this._h,s:this._s,l:this._l}}draw(e,t,i,s,a){this.nLayer=(this.time.getHours()+11)%12+1,t=this.transformCoord(t),e.background(0);let r=this.getChroma().luminance(.5).alpha(.25);e.background(color(...Color.cM
hromaToArray(r))),e.strokeWeight(1),this.layers.forEach((e=>{if(0==e.id)e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).luminance(.2).alpha(1);else{let t=map(e.id/this.nSandLayer,0,1,.5,.8);e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).alpha(t)}let s=map(i,0,1,e.baselineY,this.hInit),a=max(0,map(s,this.hInit,0,0,1)),r=Geometry.getPolyArea(t)*a;e.y=Geometry.getYByAreaBelow(t,r),e.y=map(e.y,0,this.hInit,.05*-this.hCanvas,this.hInit+.05*this.hCanvas)})),this.layers.forEach((i=>{s&&2*i.id<thisM
.nLayer&&this.drawDropdown(e,t,i,a)})),this.layers.forEach((t=>this.drawLayer(e,t)));let h=!1;this.time.getSeconds()!=this.curSecond&&(this.curSecond=this.time.getSeconds(),h=!0),GraphicUtils.applyMask(e,t)}transformCoord(e){let[t,i,s,a]=Geometry.getBoundingBox(e),r=t+s,h=i+a;return e.map((e=>{let n=map(e.x,t,r,-s/2,s/2)+this.wCanvas/2,o=map(e.y,i,h,0,a);return createVector(n,o)}))}getLayers(){let e=[];for(let t=0;t<this.nSandLayer;t++){let i,s=this.hInit/this.nSandLayer*t;this.waveSpeed==WaveSpeed.SLOW?i=random(.0M
08,.012):this.waveSpeed==WaveSpeed.MEDIUM?i=random(.016,.024):this.waveSpeed==WaveSpeed.FAST&&(i=random(.032,.048));let a,r,h=random(1e4);this.wavePeriod==WavePeriod.SHORT?a=random(2.7,3):this.wavePeriod==WavePeriod.MEDIUM?a=random(1.8,2):this.wavePeriod==WavePeriod.LONG&&(a=random(1.2,1.3)),this.waveHeight==WaveHeight.SHORT?r=this.hCanvas/30:this.waveHeight==WaveHeight.MEDIUM?r=this.hCanvas/24:this.waveHeight==WaveHeight.TALL&&(r=this.hCanvas/18);let n={mode:"DELTA_Y",deltaY:(e,t)=>map(sin(e*a*TAU+t*i+h),-1,1,-r,rM
)};e.push({id:t,baselineY:s,height:r,speed:i,seed:h,shape:n,stripe:{distance:random(.04*this.hInit,.08*this.hInit),height:random(.02*this.hInit,.04*this.hInit),stretch:random(1.2,1.5),colorTransform:e=>e.brighten(1.2)}})}return e}drawDropdown=(e,t,i,s)=>{let{c:a,shape:r}=i,h=Geometry.getBoundingBox(t)[3],n=this.time.getTime()/(1e3/60),o=createVector(this.wCanvas/2,0),l=createVector(this.wCanvas/2,h),d=[];for(let e=0;e<50;e++){let t=e/49,i=o.copy(),{x:s,y:a}=Vector.lerp(i,l,t);s+=r.deltaY(t,-n/5)*map(e,0,50,.1,1.5),M
d.push(createVector(s,a))}let m=map(s,0,SandRenderer.DROPDOWN_TIME,0,50);m=min(m,50),e.push(),e.noStroke(),e.fill(color(...Color.chromaToArray(a)));for(let t=0;t<m;t++)e.square(d[t].x,d[t].y,.004*this.hCanvas);e.pop()};drawLayer=(e,t)=>{if(2*t.id<this.nLayer){let i=this.getLayerPointline(t);this.drawWave(e,i,t),this.drawPattern(e,i,t,this.hCanvas/8,this.hCanvas/60),2*t.id+1<this.nLayer&&this.drawStripe(e,i,t)}};getLayerPointline=e=>{let{y:t,shape:i}=e,s=[],a=this.time.getTime()/(1e3/60);if("DELTA_Y"==i.mode){let e=M
createVector(0,t),r=createVector(this.wCanvas,t);for(let t=0;t<SandRenderer.N_CURVE_POINT;t++){let h=t/(SandRenderer.N_CURVE_POINT-1),n=e.copy(),{x:o,y:l}=Vector.lerp(n,r,h);l+=i.deltaY(h,a/5),s.push(createVector(o,l))}}else s=[start,end];return s};drawWave=(e,t,i)=>{let{c:s}=i;e.noStroke(),e.fill(color(...Color.chromaToArray(s))),e.beginShape(),e.vertex(0,this.hCanvas);for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.vertex(this.wCanvas,this.hCanvas),e.endShape()};drawPattern=(e,t,i,s,a)=>{e.noStroke();for(letM
 i=a;i<=s;i+=a){let a=map((i-1)/(s-1),0,1,.2,0);e.fill(0,255*a),e.beginShape();for(let s=0;s<t.length;s++)e.vertex(t[s].x,t[s].y+i);for(let s=t.length-1;s>=0;s--)e.vertex(t[s].x,t[s].y+(i-1));e.endShape()}};drawStripe=(e,t,i)=>{let{c:s,stripe:{distance:a,height:r,stretch:h,colorTransform:n}}=i;e.noStroke();let o=n(s),l=color(...Color.chromaToArray(o)),d=s.alpha();l.setAlpha(255*d),e.fill(l),e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x*h,t[i].y+a);for(let i=t.length-1;i>=0;i--)e.vertex(t[i].x*h,t[i].y+aM
+r);e.endShape()}}new Q5("global");let wCanvas,hCanvas,canvas,timeController,hourglass,layerBackground,layerSandTop,layerSandBottom,layerHourglass,renBackground,renSandTop,renSandBottom,renHourglass,renPostProcessing,traits,prevSpeed,showMode,currentTime,maxFps=60;setup=()=>{setupRandom(),setupTraits(),setupSketch()},setupRandom=()=>{let e=p5seed;randomSeed(e),noiseSeed(e)},setupTraits=()=>{let e=getRandomInt(1,10),t=getRandomItem([[HourglassSize.MEDIUM,70],[HourglassSize.LARGE,30]]),i=getRandomItem([[WaveHeight.SHM
ORT,1],[WaveHeight.MEDIUM,1],[WaveHeight.TALL,1]]),s=getRandomItem([[WavePeriod.SHORT,1],[WavePeriod.MEDIUM,1],[WavePeriod.LONG,1]]),a=getRandomItem([[WaveSpeed.SLOW,1],[WaveSpeed.MEDIUM,1],[WaveSpeed.FAST,1]]),r=getRandomItem([[EvolvePeriod.HOURLY,60],[EvolvePeriod.DAILY,35],[EvolvePeriod.MONTHLY,5]]),h=getRandomItem([[1,5],[2,20],[3,50],[4,20],[5,5]]),n=getPatternOrder(),o=getRandomItem(AngelNumber.map((e=>[e[0],1]))),l=getRandomItem(BlissLimit.map((e=>[e[0],e[2]])));traits={waveHeight:i,wavePeriod:s,waveSpeed:a,M
evolvePeriod:r,color:e,hourglassSize:t,poly:h,patternOrder:n,angelNumber:o,blissLimit:l},console.log(traits)},getPatternOrder=()=>{let e=[],t=[1,2,3,4],i=getRandomItem([[1,.6],[2,.1],[3,.15],[4,.15]]);e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);for(let s=0;s<3;s++)i=random(t),e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);return e},setupSketch=()=>{frameRate(maxFps),frameCount=0,wCanvas=windowWidth,hCanvas=windowHeight,canvas=createCanvas(wCanvas,hCanvas),showMode=0,timeControM
ller=new TimeController(traits),hourglass=new Hourglass(traits,timeController);let e=getRandomInt(0,361),t=getRandomInt(30,101),i=getRandomInt(50,101);Color.setColorMode(traits.color),layerBackground=createGraphics(wCanvas,hCanvas),renBackground=new BackgroundRenderer(layerBackground,e,t,i,traits,timeController),layerHourglass=createGraphics(wCanvas,hCanvas),renHourglass=new HourglassRenderer(layerHourglass,traits,timeController);let s=renHourglass.getSandRects(wCanvas,hCanvas),a=renHourglass.getTopLine(),r=renHourM
glass.getBottomLine(),h=createVector(s[0][2],s[0][3]).mag();layerSandTop=createGraphics(h,h),layerSandBottom=createGraphics(h,h),renSandTop=new SandRenderer(layerSandTop,s[0][3],a,e,t,i,traits,timeController),renSandBottom=new SandRenderer(layerSandBottom,s[0][3],r,e,t,i,traits,timeController),imgSandTop=createGraphics(wCanvas,hCanvas),imgSandBottom=createGraphics(wCanvas,hCanvas),renPostProcessing=new PostProcessing(wCanvas,hCanvas,traits),GrainRenderer.setup(wCanvas,hCanvas),prevSpeed=1},draw=()=>{let e=0==showMoM
de||1==showMode,t=0==showMode||2==showMode,{time:i,state:s,speed:a,paused:r,isLive:h,realDelta:n}=timeController.step();hourglass.update(i),renSandTop.update(i),renSandBottom.update(i),renBackground.update(i);let o=4==s?1:0,{top:l,rotation:d,flipped:m,timeSinceRotation:p}=hourglass.getState();renHourglass.update(i,d);let g=renSandTop.getChroma(),c=renSandTop.getBaseHSL();if(background(255),renBackground.draw(layerBackground,i,s,c,e),image(layerBackground,0,0),t){let e=renHourglass.getSandRects();renHourglass.draw(lM
ayerHourglass,o,g),renSandTop.draw(layerSandTop,renHourglass.getTopLine(),1-l,!m,p),renSandBottom.draw(layerSandBottom,renHourglass.getBottomLine(),l,m,p),image(layerSandTop,...e[0],(layerSandTop.width-e[0][2])/2,0,e[0][2],e[0][3]),image(layerSandBottom,...e[1],(layerSandBottom.width-e[1][2])/2,0,e[1][2],e[1][3]),image(layerHourglass,0,0)}let u=renHourglass.getSecondTicked();GrainRenderer.applyGrainToMainCanvas(u),renPostProcessing.updateFilter(a,r,h),prevSpeed=a,renPostProcessing.applyToMainCanvas(),currentTime=i}M
,keyPressed=()=>{"+"!=key&&"="!=key||timeController.setFasterSpeed(),"-"==key&&timeController.setSlowerSpeed(),keyCode==LEFT_ARROW&&timeController.jumpBackward(),keyCode==RIGHT_ARROW&&timeController.jumpForward(),keyCode==ESCAPE&&timeController.resumeLive()," "==key&&timeController.togglePause(),"T"!=key&&"t"!=key||(showMode=(showMode+1)%3),"S"!=key&&"s"!=key||saveCanvasAtCurrentTime()},saveCanvasAtCurrentTime=()=>{let e=60*new Date(currentTime).getTimezoneOffset()*1e3,t=new Date(currentTime-e).toISOString().slice(M
0,-1);save(t+".png")};const EvolvePeriod={HOURLY:"HOURLY",DAILY:"DAILY",MONTHLY:"MONTHLY"},AngelNumber=[["11/111/1111",["1:1","1:11","11:1","11:11"],["1/1","11/1","1/11","11/11"]],["22/222/2222",["2:2","2:22","22:2","22:22"],["2/2","22/2"]],["33/333/3333",["3:3","3:33"],["3/3"]],["44/444/4444",["4:4","4:44"],["4/4"]],["55/555/555",["5:5","5:55"],["5/5"]],["66/666/6666",["6:6"],["6/6"]],["77/777/7777",["7:7"],["7/7"]],["88/888/8888",["8:8"],["8/8"]],["99/999/9999",["9:9"],["9/9"]],["1212",["12:12"],["12/12"]],["399/M
339",["3:39"],["3/3","9/3","3/9","9/9"]],["83/8833",["8:3"],["8/3","3/8"]],["72/7722",["7:2"],["7/2","2/7"]],["633/6363",["6:3","6:33"],["6/3","3/6"]],["588",["5:8","8:58"],["8/5","5/8","8/8"]],["446/4646",["4:6","4:46"],["4/4","6/4","4/6"]],["000",[],[]],["1010",["10:10"],["10/10"]],["1017",["10:17","17:10"],["17/10"]],["1022",["10:22","22:10"],["22/10"]],["1313",["13:13"],["1/3","3/1"]],["1444",["14:44"],["4/1","1/4","4/4"]],["2020",["20:20"],["2/2"]]],BlissLimit=[["Forever",-1,3],["2",2,40],["5",5,30],["10",10,2M
0],["20",20,7]];class TimeController{constructor(e){this.speeds=[-3600,-60,-10,-3,1,3,10,60,3600],this.defaultSpeedLevel=4,this.evolvePeriod=e.evolvePeriod,this.angelNumber=e.angelNumber,this.blissLimit=e.blissLimit,this.timestamp=Date.now(),this.prevRealTimestamp=this.timestamp,this.paused=!1,this.speedLevel=this.defaultSpeedLevel;let t=new Date(this.timestamp);this.iteration=this.getIteration(t),this.prevBliss=this.getPrevBliss(t,1),this.iterationChangeHandlers=[]}getCurrentIteration=()=>this.iteration;getIteratiM
on(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(e.getFullYear()-1970)+e.getMonth()),t}registerIterationChangeEvent(e){this.iterationChangeHandlers.push(e)}unregisterIterationChangeEvent(e){this.iterationChangeHandlers=this.iterationChangeHandlers.filter((t=>t!=e))}step(){let e=Date.now(),t=e-this.prevRealTimestamp,i=this.speeds[this.speedLevel],sM
=this.paused?0:i;this.timestamp+=t*s,this.timestamp=this.limitTimestamp(this.timestamp);let a=new Date(this.timestamp),r=this.getStateFromTime(a);this.updateIteration(a),this.prevRealTimestamp=e;let h=this.timestamp==e;return{time:a,state:r,speed:i,paused:this.paused,isLive:h,realDelta:t}}updateIteration(e){let t=this.getIteration(e);t!=this.iteration&&(this.iterationChangeHandlers.forEach((e=>e(t))),this.iteration=t)}getStateFromTime(e){let t,i,s=e.getHours(),a=e.getMinutes(),r=e.getDate(),h=e.getMonth()+1;if("000M
"==this.angelNumber)i=0==s&&0==a,t=i&&1==r&&1==h;else{let e=`${s}:${a}`,n=`${h}/${r}`,o=AngelNumber.filter((e=>e[0]==this.angelNumber))[0];i=o[1].includes(e),t=o[2].includes(n)}return i&&t?4:t?3:i?2:1}limitTimestamp(e){let t=BlissLimit.filter((e=>e[0]==this.blissLimit))[0][1],i=Date.now(),s=this.getPrevBliss(new Date,t);return e>i?(e=i,this.resetSpeed()):e<s&&(e=s,this.resetSpeed()),e}getPrevBliss(e,t){if(-1==t)return 0;let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i-=6e4;let e=this.getStateFrM
omTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}getNextBliss(e,t){if(-1==t)return Date.now();let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i+=6e4;let e=this.getStateFromTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}togglePause(){this.paused=!this.paused}setFasterSpeed(){this.speedLevel=min(this.speedLevel+1,this.speeds.length-1),this.paused=!1}setSlowerSpeed(){this.speedLevel=max(this.speedLevel-1,0),this.paused=!1}jumpForward(){let e=new Date(this.timestamp);this.timestamp=this.getNextBliss(eM
,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}jumpBackward(){let e=new Date(this.timestamp);this.timestamp=this.getPrevBliss(e,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}resetSpeed(){this.speedLevel=this.defaultSpeedLevel,this.paused=!1}resumeLive(){this.timestamp=Date.now(),this.resetSpeed()}}
-%-,%*)#*:->2(25,=8,:/'.*$,3+:;0H7-A-'16*7=.A
9/DD2K/(4>2L@3PA0G?/DF3O/'1I5SC5TM7Z3)60)7
U<gP9^R:b4*4K6VE6WG7[
text/html;charset=utf-8
      display: block;
    <meta charset="utf-8" />
    let seed=window.location.href.split('/').find(t=>t.includes('i0'));
    if (seed == null) {
      seed = new URLSearchParams(window.location.search).get("seed");
      let pattern = "seed=";
      for(let i = 0; i < seed.length - pattern.length; M
        if (seed.substring(i, i + pattern.length) == pattern) {
          seed = seed.substring(i + pattern.length);
    function cyrb128($) {
      let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
      for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
      return _ = Math.imul(i ^ _ >>> 18,M
 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
    function sfc32($, _, u, i) {
      return function () {
        u >>>= 0, i >>>= 0;
        var l = ($ >>>= 0) + (_ >>>= 0) | 0;
        return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
 sfc32(...cyrb128(seed));
    let p5seed = Math.floor(mathRand() * Number.MAX_SAFE_INTEGER);
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).chroma=e()}(this,function(){"use strict";for(var r=function(r,e,t){return void 0===e&&(e=0),void 0===t&&(t=1),r<e?e:r>t?t:r},e=r,t={},n=0,a=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];n<a.length;nM
+=1){var f=a[n];t["[object "+f+"]"]=f.toLowerCase()}var o=function(r){return t[Object.prototype.toString.call(r)]||"object"},c=o,u=o,i=Math.PI,l={clip_rgb:function(r){r._clipped=!1,r._unclipped=r.slice(0);for(var t=0;t<=3;t++)t<3?((r[t]<0||r[t]>255)&&(r._clipped=!0),r[t]=e(r[t],0,255)):3===t&&(r[t]=e(r[t],0,1));return r},limit:r,type:o,unpack:function(r,e){return void 0===e&&(e=null),r.length>=3?Array.prototype.slice.call(r):"object"==c(r[0])&&e?e.split("").filter(function(e){return void 0!==r[0][e]}).map(function(M
e){return r[0][e]}):r[0]},last:function(r){if(r.length<2)return null;var e=r.length-1;return"string"==u(r[e])?r[e].toLowerCase():null},PI:i,TWOPI:2*i,PITHIRD:i/3,DEG2RAD:i/180,RAD2DEG:180/i},d={format:{},autodetect:[]},h=l.last,b=l.clip_rgb,s=l.type,p=d,g=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if("object"===s(r[0])&&r[0].constructor&&r[0].constructor===this.constructor)return r[0];var t=h(r),n=!1;if(!t){n=!0,p.sorted||(p.autodetect=p.autodetect.sort(function(r,e){return e.p-r.p}),p.sortedM
=!0);for(var a=0,f=p.autodetect;a<f.length;a+=1){var o=f[a];if(t=o.test.apply(o,r))break}}if(!p.format[t])throw new Error("unknown format: "+r);var c=p.format[t].apply(null,n?r:r.slice(0,-1));this._rgb=b(c),3===this._rgb.length&&this._rgb.push(1)};g.prototype.toString=function(){return"function"==s(this.hex)?this.hex():"["+this._rgb.join(",")+"]"};var v=g,y=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(y.Color,[null].concat(r)))};y.Color=v,y.version="2.4.M
2";var m=y,k=l.unpack,w=Math.max,M=l.unpack,_=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=M(r,"cmyk"))[0],n=r[1],a=r[2],f=r[3],o=r.length>4?r[4]:1;return 1===f?[0,0,0,o]:[t>=1?0:255*(1-t)*(1-f),n>=1?0:255*(1-n)*(1-f),a>=1?0:255*(1-a)*(1-f),o]},N=m,F=v,x=d,P=l.unpack,R=l.type,G=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=k(r,"rgb"),n=t[0],a=t[1],f=t[2],o=1-w(n/=255,w(a/=255,f/=255)),c=o<1?1/(1-o):0;return[(1-n-o)*c,(1-a-o)*c,(1-f-o)*c,o]};F.prototype.cmyk=fuM
nction(){return G(this._rgb)},N.cmyk=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(F,[null].concat(r,["cmyk"])))},x.format.cmyk=_,x.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=P(r,"cmyk"),"array"===R(r)&&4===r.length)return"cmyk"}});var j=l.unpack,E=l.last,O=function(r){return Math.round(100*r)/100},q=l.unpack,B=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=q(r,"rgba"))[0],nM
=r[1],a=r[2];t/=255,n/=255,a/=255;var f,o,c=Math.min(t,n,a),u=Math.max(t,n,a),i=(u+c)/2;return u===c?(f=0,o=Number.NaN):f=i<.5?(u-c)/(u+c):(u-c)/(2-u-c),t==u?o=(n-a)/(u-c):n==u?o=2+(a-t)/(u-c):a==u&&(o=4+(t-n)/(u-c)),(o*=60)<0&&(o+=360),r.length>3&&void 0!==r[3]?[o,f,i,r[3]]:[o,f,i]},I=l.unpack,A=l.last,D=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=j(r,"hsla"),n=E(r)||"lsa";return t[0]=O(t[0]||0),t[1]=O(100*t[1])+"%",t[2]=O(100*t[2])+"%","hsla"===n||t.length>3&&t[3]<1?(t[3]=t.length>3?t[M
3]:1,n="hsla"):t.length=3,n+"("+t.join(",")+")"},C=B,Y=Math.round,S=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=I(r,"rgba"),n=A(r)||"rgb";return"hsl"==n.substr(0,3)?D(C(t),n):(t[0]=Y(t[0]),t[1]=Y(t[1]),t[2]=Y(t[2]),("rgba"===n||t.length>3&&t[3]<1)&&(t[3]=t.length>3?t[3]:1,n="rgba"),n+"("+t.slice(0,"rgb"===n?3:4).join(",")+")")},L=l.unpack,$=Math.round,T=function(){for(var r,e=[],t=arguments.length;t--;)e[t]=arguments[t];var n,a,f,o=(e=L(e,"hsl"))[0],c=e[1],u=e[2];if(0===c)n=a=f=255*u;elsM
e{var i=[0,0,0],l=[0,0,0],d=u<.5?u*(1+c):u+c-u*c,h=2*u-d,b=o/360;i[0]=b+1/3,i[1]=b,i[2]=b-1/3;for(var s=0;s<3;s++)i[s]<0&&(i[s]+=1),i[s]>1&&(i[s]-=1),6*i[s]<1?l[s]=h+6*(d-h)*i[s]:2*i[s]<1?l[s]=d:3*i[s]<2?l[s]=h+(d-h)*(2/3-i[s])*6:l[s]=h;n=(r=[$(255*l[0]),$(255*l[1]),$(255*l[2])])[0],a=r[1],f=r[2]}return e.length>3?[n,a,f,e[3]]:[n,a,f,1]},K=T,W=d,X=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,Z=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,H=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\M
d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,z=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,U=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,V=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,J=Math.round,Q=function(r){var e;if(r=r.toLowerCase().trim(),W.format.named)try{return W.format.named(r)}catch(r){}if(e=r.match(X)){for(var t=e.slice(1,4),n=0;n<3;n++)t[n]=+t[n];returnM
 t[3]=1,t}if(e=r.match(Z)){for(var a=e.slice(1,5),f=0;f<4;f++)a[f]=+a[f];return a}if(e=r.match(H)){for(var o=e.slice(1,4),c=0;c<3;c++)o[c]=J(2.55*o[c]);return o[3]=1,o}if(e=r.match(z)){for(var u=e.slice(1,5),i=0;i<3;i++)u[i]=J(2.55*u[i]);return u[3]=+u[3],u}if(e=r.match(U)){var l=e.slice(1,4);l[1]*=.01,l[2]*=.01;var d=K(l);return d[3]=1,d}if(e=r.match(V)){var h=e.slice(1,4);h[1]*=.01,h[2]*=.01;var b=K(h);return b[3]=+e[4],b}};Q.test=function(r){return X.test(r)||Z.test(r)||H.test(r)||z.test(r)||U.test(r)||V.test(r)M
};var rr=m,er=v,tr=d,nr=l.type,ar=S,fr=Q;er.prototype.css=function(r){return ar(this._rgb,r)},rr.css=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(er,[null].concat(r,["css"])))},tr.format.css=fr,tr.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===nr(r)&&fr.test(r))return"css"}});var or=v,cr=m,ur=l.unpack;d.format.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e]M
;var t=ur(r,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t},cr.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(or,[null].concat(r,["gl"])))},or.prototype.gl=function(){var r=this._rgb;return[r[0]/255,r[1]/255,r[2]/255,r[3]]};var ir=l.unpack,lr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=ir(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Math.min(a,f,o),u=Math.max(a,f,o),i=u-c,l=100*i/255,d=c/(255-i)*100;return 0===i?t=Number.NaN:(a===u&&(t=M
(f-o)/i),f===u&&(t=2+(o-a)/i),o===u&&(t=4+(a-f)/i),(t*=60)<0&&(t+=360)),[t,l,d]},dr=l.unpack,hr=Math.floor,br=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=dr(o,"hcg"))[0],h=o[1],b=o[2];b*=255;var s=255*h;if(0===h)u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=hr(d/=60),g=d-p,v=b*(1-h),y=v+s*(1-g),m=v+s*g,k=v+s;switch(p){case 0:u=(r=[k,m,v])[0],i=r[1],l=r[2];break;case 1:u=(e=[y,k,v])[0],i=e[1],l=e[2];break;case 2:u=(t=[v,k,m])[0],i=t[1],l=t[2];break;cM
ase 3:u=(n=[v,y,k])[0],i=n[1],l=n[2];break;case 4:u=(a=[m,v,k])[0],i=a[1],l=a[2];break;case 5:u=(f=[k,v,y])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},sr=l.unpack,pr=l.type,gr=m,vr=v,yr=d,mr=lr;vr.prototype.hcg=function(){return mr(this._rgb)},gr.hcg=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(vr,[null].concat(r,["hcg"])))},yr.format.hcg=br,yr.autodetect.push({p:1,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=sr(r,"M
hcg"),"array"===pr(r)&&3===r.length)return"hcg"}});var kr=l.unpack,wr=l.last,Mr=Math.round,_r=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=kr(r,"rgba"),n=t[0],a=t[1],f=t[2],o=t[3],c=wr(r)||"auto";void 0===o&&(o=1),"auto"===c&&(c=o<1?"rgba":"rgb");var u="000000"+((n=Mr(n))<<16|(a=Mr(a))<<8|(f=Mr(f))).toString(16);u=u.substr(u.length-6);var i="0"+Mr(255*o).toString(16);switch(i=i.substr(i.length-2),c.toLowerCase()){case"rgba":return"#"+u+i;case"argb":return"#"+i+u;default:return"#"+u}},Nr=/M
^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Fr=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,xr=function(r){if(r.match(Nr)){4!==r.length&&7!==r.length||(r=r.substr(1)),3===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]);var e=parseInt(r,16);return[e>>16,e>>8&255,255&e,1]}if(r.match(Fr)){5!==r.length&&9!==r.length||(r=r.substr(1)),4===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);var t=parseInt(r,16);return[t>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100]}throw new Error("unknown hex coM
lor: "+r)},Pr=m,Rr=v,Gr=l.type,jr=d,Er=_r;Rr.prototype.hex=function(r){return Er(this._rgb,r)},Pr.hex=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Rr,[null].concat(r,["hex"])))},jr.format.hex=xr,jr.autodetect.push({p:4,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===Gr(r)&&[3,4,5,6,7,8,9].indexOf(r.length)>=0)return"hex"}});var Or=l.unpack,qr=l.TWOPI,Br=Math.min,Ir=Math.sqrt,Ar=Math.acos,Dr=functionM
(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=Or(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Br(a/=255,f/=255,o/=255),u=(a+f+o)/3,i=u>0?1-c/u:0;return 0===i?t=NaN:(t=(a-f+(a-o))/2,t/=Ir((a-f)*(a-f)+(a-o)*(f-o)),t=Ar(t),o>f&&(t=qr-t),t/=qr),[360*t,i,u]},Cr=l.unpack,Yr=l.limit,Sr=l.TWOPI,Lr=l.PITHIRD,$r=Math.cos,Tr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Cr(r,"hsi"))[0],o=r[1],c=r[2];return isNaN(f)&&(f=0),isNaN(o)&&(o=0),f>360&&(f-=360),f<0&&(f+=360),(f/=360)<1/3?n=1-M
((a=(1-o)/3)+(t=(1+o*$r(Sr*f)/$r(Lr-Sr*f))/3)):f<2/3?a=1-((t=(1-o)/3)+(n=(1+o*$r(Sr*(f-=1/3))/$r(Lr-Sr*f))/3)):t=1-((n=(1-o)/3)+(a=(1+o*$r(Sr*(f-=2/3))/$r(Lr-Sr*f))/3)),[255*(t=Yr(c*t*3)),255*(n=Yr(c*n*3)),255*(a=Yr(c*a*3)),r.length>3?r[3]:1]},Kr=l.unpack,Wr=l.type,Xr=m,Zr=v,Hr=d,zr=Dr;Zr.prototype.hsi=function(){return zr(this._rgb)},Xr.hsi=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Zr,[null].concat(r,["hsi"])))},Hr.format.hsi=Tr,Hr.autodetect.push({pM
:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Kr(r,"hsi"),"array"===Wr(r)&&3===r.length)return"hsi"}});var Ur=l.unpack,Vr=l.type,Jr=m,Qr=v,re=d,ee=B;Qr.prototype.hsl=function(){return ee(this._rgb)},Jr.hsl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Qr,[null].concat(r,["hsl"])))},re.format.hsl=T,re.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ur(r,"hsl"),"array"===Vr(r)M
&&3===r.length)return"hsl"}});var te=l.unpack,ne=Math.min,ae=Math.max,fe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=te(r,"rgb"))[0],o=r[1],c=r[2],u=ne(f,o,c),i=ae(f,o,c),l=i-u;return a=i/255,0===i?(t=Number.NaN,n=0):(n=l/i,f===i&&(t=(o-c)/l),o===i&&(t=2+(c-f)/l),c===i&&(t=4+(f-o)/l),(t*=60)<0&&(t+=360)),[t,n,a]},oe=l.unpack,ce=Math.floor,ue=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=oe(o,"hsv"))[0],h=o[1],b=o[2];if(b*=255,0===h)M
u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var s=ce(d/=60),p=d-s,g=b*(1-h),v=b*(1-h*p),y=b*(1-h*(1-p));switch(s){case 0:u=(r=[b,y,g])[0],i=r[1],l=r[2];break;case 1:u=(e=[v,b,g])[0],i=e[1],l=e[2];break;case 2:u=(t=[g,b,y])[0],i=t[1],l=t[2];break;case 3:u=(n=[g,v,b])[0],i=n[1],l=n[2];break;case 4:u=(a=[y,g,b])[0],i=a[1],l=a[2];break;case 5:u=(f=[b,g,v])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},ie=l.unpack,le=l.type,de=m,he=v,be=d,se=fe;he.prototype.hsv=function(){return se(this._rgb)},de.hsv=M
function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(he,[null].concat(r,["hsv"])))},be.format.hsv=ue,be.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=ie(r,"hsv"),"array"===le(r)&&3===r.length)return"hsv"}});var pe={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ge=pe,ve=l.unpack,ye=Math.pow,me=function(r){return(r/=255)<=.04045?r/12.92:ye((r+.055)/1.055,2.4)},ke=function(M
r){return r>ge.t3?ye(r,1/3):r/ge.t2+ge.t0},we=function(r,e,t){return r=me(r),e=me(e),t=me(t),[ke((.4124564*r+.3575761*e+.1804375*t)/ge.Xn),ke((.2126729*r+.7151522*e+.072175*t)/ge.Yn),ke((.0193339*r+.119192*e+.9503041*t)/ge.Zn)]},Me=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=ve(r,"rgb"),n=t[0],a=t[1],f=t[2],o=we(n,a,f),c=o[0],u=o[1],i=116*u-16;return[i<0?0:i,500*(c-u),200*(u-o[2])]},_e=pe,Ne=l.unpack,Fe=Math.pow,xe=function(r){return 255*(r<=.00304?12.92*r:1.055*Fe(r,1/2.4)-.055)},Pe=funM
ction(r){return r>_e.t1?r*r*r:_e.t2*(r-_e.t0)},Re=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Ne(r,"lab"))[0],o=r[1],c=r[2];return n=(f+16)/116,t=isNaN(o)?n:n+o/500,a=isNaN(c)?n:n-c/200,n=_e.Yn*Pe(n),t=_e.Xn*Pe(t),a=_e.Zn*Pe(a),[xe(3.2404542*t-1.5371385*n-.4985314*a),xe(-.969266*t+1.8760108*n+.041556*a),xe(.0556434*t-.2040259*n+1.0572252*a),r.length>3?r[3]:1]},Ge=l.unpack,je=l.type,Ee=m,Oe=v,qe=d,Be=Me;Oe.prototype.lab=function(){return Be(this._rgb)},Ee.lab=function(){for(var rM
=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Oe,[null].concat(r,["lab"])))},qe.format.lab=Re,qe.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ge(r,"lab"),"array"===je(r)&&3===r.length)return"lab"}});var Ie=l.unpack,Ae=l.RAD2DEG,De=Math.sqrt,Ce=Math.atan2,Ye=Math.round,Se=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ie(r,"lab"),n=t[0],a=t[1],f=t[2],o=De(a*a+f*f),c=(Ce(f,a)*Ae+360)%360;return 0===YeM
(1e4*o)&&(c=Number.NaN),[n,o,c]},Le=l.unpack,$e=Me,Te=Se,Ke=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Le(r,"rgb"),n=t[0],a=t[1],f=t[2],o=$e(n,a,f),c=o[0],u=o[1],i=o[2];return Te(c,u,i)},We=l.unpack,Xe=l.DEG2RAD,Ze=Math.sin,He=Math.cos,ze=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=We(r,"lch"),n=t[0],a=t[1],f=t[2];return isNaN(f)&&(f=0),[n,He(f*=Xe)*a,Ze(f)*a]},Ue=l.unpack,Ve=ze,Je=Re,Qe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=M
(r=Ue(r,"lch"))[0],n=r[1],a=r[2],f=Ve(t,n,a),o=f[0],c=f[1],u=f[2],i=Je(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},rt=l.unpack,et=Qe,tt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rt(r,"hcl").reverse();return et.apply(void 0,t)},nt=l.unpack,at=l.type,ft=m,ot=v,ct=d,ut=Ke;ot.prototype.lch=function(){return ut(this._rgb)},ot.prototype.hcl=function(){return ut(this._rgb).reverse()},ft.lch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.biM
nd.apply(ot,[null].concat(r,["lch"])))},ft.hcl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ot,[null].concat(r,["hcl"])))},ct.format.lch=Qe,ct.format.hcl=tt,["lch","hcl"].forEach(function(r){return ct.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=nt(e,r),"array"===at(e)&&3===e.length)return r}})});var it=d,lt=l.type,dt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:M
"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",daM
rkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#M
adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#M
778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhiteM
:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a4M
60",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},ht=xr,bt=_r;v.prototype.name=function(){for(var r=bt(this._rgb,"rgb"),e=0,t=Object.keys(dt);e<t.length;e+=1){var n=M
t[e];if(dt[n]===r)return n.toLowerCase()}return r},it.format.named=function(r){if(r=r.toLowerCase(),dt[r])return ht(dt[r]);throw new Error("unknown color name: "+r)},it.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===lt(r)&&dt[r.toLowerCase()])return"named"}});var st=l.unpack,pt=l.type,gt=function(r){if("number"==pt(r)&&r>=0&&r<=16777215)return[r>>16,r>>8&255,255&r,1];throw new Error("unknown num color: "+r)},vt=m,yt=v,mt=d,kt=l.type,wt=fuM
nction(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=st(r,"rgb");return(t[0]<<16)+(t[1]<<8)+t[2]};yt.prototype.num=function(){return wt(this._rgb)},vt.num=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(yt,[null].concat(r,["num"])))},mt.format.num=gt,mt.autodetect.push({p:5,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(1===r.length&&"number"===kt(r[0])&&r[0]>=0&&r[0]<=16777215)return"num"}});var Mt=m,_t=v,Nt=d,FtM
=l.unpack,xt=l.type,Pt=Math.round;_t.prototype.rgb=function(r){return void 0===r&&(r=!0),!1===r?this._rgb.slice(0,3):this._rgb.slice(0,3).map(Pt)},_t.prototype.rgba=function(r){return void 0===r&&(r=!0),this._rgb.slice(0,4).map(function(e,t){return t<3?!1===r?e:Pt(e):e})},Mt.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(_t,[null].concat(r,["rgb"])))},Nt.format.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ft(r,"rgba");retM
urn void 0===t[3]&&(t[3]=1),t},Nt.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ft(r,"rgba"),"array"===xt(r)&&(3===r.length||4===r.length&&"number"==xt(r[3])&&r[3]>=0&&r[3]<=1))return"rgb"}});var Rt=Math.log,Gt=function(r){var e,t,n,a=r/100;return a<66?(e=255,t=a<6?0:-155.25485562709179-.44596950469579133*(t=a-2)+104.49216199393888*Rt(t),n=a<20?0:.8274096064007395*(n=a-10)-254.76935184120902+115.67994401066147*Rt(n)):(e=351.97690566805693+.114206453784165*(e=a-55)-M
40.25366309332127*Rt(e),t=325.4494125711974+.07943456536662342*(t=a-50)-28.0852963507957*Rt(t),n=255),[e,t,n,1]},jt=Gt,Et=l.unpack,Ot=Math.round,qt=m,Bt=v,It=d,At=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];for(var t,n=Et(r,"rgb"),a=n[0],f=n[2],o=1e3,c=4e4;c-o>.4;){var u=jt(t=.5*(c+o));u[2]/u[0]>=f/a?c=t:o=t}return Ot(t)};Bt.prototype.temp=Bt.prototype.kelvin=Bt.prototype.temperature=function(){return At(this._rgb)},qt.temp=qt.kelvin=qt.temperature=function(){for(var r=[],e=arguments.length;e-M
-;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Bt,[null].concat(r,["temp"])))},It.format.temp=It.format.kelvin=It.format.temperature=Gt;var Dt=l.unpack,Ct=Math.cbrt,Yt=Math.pow,St=Math.sign,Lt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Dt(r,"rgb"),n=t[0],a=t[1],f=t[2],o=[$t(n/255),$t(a/255),$t(f/255)],c=o[0],u=o[1],i=o[2],l=Ct(.4122214708*c+.5363325363*u+.0514459929*i),d=Ct(.2119034982*c+.6806995451*u+.1073969566*i),h=Ct(.0883024619*c+.2817188376*u+.6299787005*i);return[.M
2104542553*l+.793617785*d-.0040720468*h,1.9779984951*l-2.428592205*d+.4505937099*h,.0259040371*l+.7827717662*d-.808675766*h]};function $t(r){var e=Math.abs(r);return e<.04045?r/12.92:(St(r)||1)*Yt((e+.055)/1.055,2.4)}var Tt=l.unpack,Kt=Math.pow,Wt=Math.sign,Xt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=Tt(r,"lab"))[0],n=r[1],a=r[2],f=Kt(t+.3963377774*n+.2158037573*a,3),o=Kt(t-.1055613458*n-.0638541728*a,3),c=Kt(t-.0894841775*n-1.291485548*a,3);return[255*Zt(4.0767416621*f-3.307711591M
3*o+.2309699292*c),255*Zt(-1.2684380046*f+2.6097574011*o-.3413193965*c),255*Zt(-.0041960863*f-.7034186147*o+1.707614701*c),r.length>3?r[3]:1]};function Zt(r){var e=Math.abs(r);return e>.0031308?(Wt(r)||1)*(1.055*Kt(e,1/2.4)-.055):12.92*r}var Ht=l.unpack,zt=l.type,Ut=m,Vt=v,Jt=d,Qt=Lt;Vt.prototype.oklab=function(){return Qt(this._rgb)},Ut.oklab=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Vt,[null].concat(r,["oklab"])))},Jt.format.oklab=Xt,Jt.autodetect.pM
ush({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ht(r,"oklab"),"array"===zt(r)&&3===r.length)return"oklab"}});var rn=l.unpack,en=Lt,tn=Se,nn=l.unpack,an=ze,fn=Xt,on=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=nn(r,"lch"))[0],n=r[1],a=r[2],f=an(t,n,a),o=f[0],c=f[1],u=f[2],i=fn(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},cn=l.unpack,un=l.type,ln=m,dn=v,hn=d,bn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rn(r,"rgb"),n=tM
[0],a=t[1],f=t[2],o=en(n,a,f),c=o[0],u=o[1],i=o[2];return tn(c,u,i)};dn.prototype.oklch=function(){return bn(this._rgb)},ln.oklch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(dn,[null].concat(r,["oklch"])))},hn.format.oklch=on,hn.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=cn(r,"oklch"),"array"===un(r)&&3===r.length)return"oklch"}});var sn=v,pn=l.type;sn.prototype.alpha=function(r,e){return void 0===e&M
&(e=!1),void 0!==r&&"number"===pn(r)?e?(this._rgb[3]=r,this):new sn([this._rgb[0],this._rgb[1],this._rgb[2],r],"rgb"):this._rgb[3]},v.prototype.clipped=function(){return this._rgb._clipped||!1};var gn=v,vn=pe;gn.prototype.darken=function(r){void 0===r&&(r=1);var e=this.lab();return e[0]-=vn.Kn*r,new gn(e,"lab").alpha(this.alpha(),!0)},gn.prototype.brighten=function(r){return void 0===r&&(r=1),this.darken(-r)},gn.prototype.darker=gn.prototype.darken,gn.prototype.brighter=gn.prototype.brighten,v.prototype.get=functioM
n(r){var e=r.split("."),t=e[0],n=e[1],a=this[t]();if(n){var f=t.indexOf(n)-("ok"===t.substr(0,2)?2:0);if(f>-1)return a[f];throw new Error("unknown channel "+n+" in mode "+t)}return a};var yn=v,mn=l.type,kn=Math.pow;yn.prototype.luminance=function(r){if(void 0!==r&&"number"===mn(r)){if(0===r)return new yn([0,0,0,this._rgb[3]],"rgb");if(1===r)return new yn([255,255,255,this._rgb[3]],"rgb");var e=this.luminance(),t=20,n=function(e,a){var f=e.interpolate(a,.5,"rgb"),o=f.luminance();return Math.abs(r-o)<1e-7||!t--?f:o>rM
?n(e,f):n(f,a)},a=(e>r?n(new yn([0,0,0]),this):n(this,new yn([255,255,255]))).rgb();return new yn(a.concat([this._rgb[3]]))}return wn.apply(void 0,this._rgb.slice(0,3))};var wn=function(r,e,t){return.2126*(r=Mn(r))+.7152*(e=Mn(e))+.0722*(t=Mn(t))},Mn=function(r){return(r/=255)<=.03928?r/12.92:kn((r+.055)/1.055,2.4)},_n={},Nn=v,Fn=l.type,xn=_n,Pn=v,Rn=function(r,e,t){void 0===t&&(t=.5);for(var n=[],a=arguments.length-3;a-- >0;)n[a]=arguments[a+3];var f=n[0]||"lrgb";if(xn[f]||n.length||(f=Object.keys(xn)[0]),!xn[f])tM
hrow new Error("interpolation mode "+f+" is not defined");return"object"!==Fn(r)&&(r=new Nn(r)),"object"!==Fn(e)&&(e=new Nn(e)),xn[f](r,e,t).alpha(r.alpha()+t*(e.alpha()-r.alpha()))};Pn.prototype.mix=Pn.prototype.interpolate=function(r,e){void 0===e&&(e=.5);for(var t=[],n=arguments.length-2;n-- >0;)t[n]=arguments[n+2];return Rn.apply(void 0,[this,r,e].concat(t))};var Gn=v;Gn.prototype.premultiply=function(r){void 0===r&&(r=!1);var e=this._rgb,t=e[3];return r?(this._rgb=[e[0]*t,e[1]*t,e[2]*t,t],this):new Gn([e[0]*t,M
e[1]*t,e[2]*t,t],"rgb")};var jn=v,En=pe;jn.prototype.saturate=function(r){void 0===r&&(r=1);var e=this.lch();return e[1]+=En.Kn*r,e[1]<0&&(e[1]=0),new jn(e,"lch").alpha(this.alpha(),!0)},jn.prototype.desaturate=function(r){return void 0===r&&(r=1),this.saturate(-r)};var On=v,qn=l.type;On.prototype.set=function(r,e,t){void 0===t&&(t=!1);var n=r.split("."),a=n[0],f=n[1],o=this[a]();if(f){var c=a.indexOf(f)-("ok"===a.substr(0,2)?2:0);if(c>-1){if("string"==qn(e))switch(e.charAt(0)){case"+":case"-":o[c]+=+e;break;case"*M
":o[c]*=+e.substr(1);break;case"/":o[c]/=+e.substr(1);break;default:o[c]=+e}else{if("number"!==qn(e))throw new Error("unsupported value for Color.set");o[c]=e}var u=new On(o,a);return t?(this._rgb=u._rgb,this):u}throw new Error("unknown channel "+f+" in mode "+a)}return o};var Bn=v;_n.rgb=function(r,e,t){var n=r._rgb,a=e._rgb;return new Bn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"rgb")};var In=v,An=Math.sqrt,Dn=Math.pow;_n.lrgb=function(r,e,t){var n=r._rgb,a=n[0],f=n[1],o=n[2],c=e._rgb,u=c[0],i=c[1M
],l=c[2];return new In(An(Dn(a,2)*(1-t)+Dn(u,2)*t),An(Dn(f,2)*(1-t)+Dn(i,2)*t),An(Dn(o,2)*(1-t)+Dn(l,2)*t),"rgb")};var Cn=v;_n.lab=function(r,e,t){var n=r.lab(),a=e.lab();return new Cn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"lab")};var Yn=v,Sn=function(r,e,t,n){var a,f,o,c,u,i,l,d,h,b,s,p,g;return"hsl"===n?(o=r.hsl(),c=e.hsl()):"hsv"===n?(o=r.hsv(),c=e.hsv()):"hcg"===n?(o=r.hcg(),c=e.hcg()):"hsi"===n?(o=r.hsi(),c=e.hsi()):"lch"===n||"hcl"===n?(n="hcl",o=r.hcl(),c=e.hcl()):"oklch"===n&&(o=r.oklch()M
.reverse(),c=e.oklch().reverse()),"h"!==n.substr(0,1)&&"oklch"!==n||(u=(a=o)[0],l=a[1],h=a[2],i=(f=c)[0],d=f[1],b=f[2]),isNaN(u)||isNaN(i)?isNaN(u)?isNaN(i)?p=Number.NaN:(p=i,1!=h&&0!=h||"hsv"==n||(s=d)):(p=u,1!=b&&0!=b||"hsv"==n||(s=l)):p=u+t*(i>u&&i-u>180?i-(u+360):i<u&&u-i>180?i+360-u:i-u),void 0===s&&(s=l+t*(d-l)),g=h+t*(b-h),new Yn("oklch"===n?[g,s,p]:[p,s,g],n)},Ln=Sn,$n=function(r,e,t){return Ln(r,e,t,"lch")};_n.lch=$n,_n.hcl=$n;var Tn=v;_n.num=function(r,e,t){var n=r.num(),a=e.num();return new Tn(n+t*(a-n),M
"num")};var Kn=Sn;_n.hcg=function(r,e,t){return Kn(r,e,t,"hcg")};var Wn=Sn;_n.hsi=function(r,e,t){return Wn(r,e,t,"hsi")};var Xn=Sn;_n.hsl=function(r,e,t){return Xn(r,e,t,"hsl")};var Zn=Sn;_n.hsv=function(r,e,t){return Zn(r,e,t,"hsv")};var Hn=v;_n.oklab=function(r,e,t){var n=r.oklab(),a=e.oklab();return new Hn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"oklab")};var zn=Sn;_n.oklch=function(r,e,t){return zn(r,e,t,"oklch")};Math.pow,Math.sqrt,Math.PI,Math.cos,Math.sin,Math.atan2,Math.pow;var Un=m,Vn=funM
ction(r,e,t){if(!Vn[t])throw new Error("unknown blend mode "+t);return Vn[t](r,e)},Jn=function(r){return function(e,t){var n=Un(t).rgb(),a=Un(e).rgb();return Un.rgb(r(n,a))}},Qn=function(r){return function(e,t){var n=[];return n[0]=r(e[0],t[0]),n[1]=r(e[1],t[1]),n[2]=r(e[2],t[2]),n}};Vn.normal=Jn(Qn(function(r){return r})),Vn.multiply=Jn(Qn(function(r,e){return r*e/255})),Vn.screen=Jn(Qn(function(r,e){return 255*(1-(1-r/255)*(1-e/255))})),Vn.overlay=Jn(Qn(function(r,e){return e<128?2*r*e/255:255*(1-2*(1-r/255)*(1-eM
/255))})),Vn.darken=Jn(Qn(function(r,e){return r>e?e:r})),Vn.lighten=Jn(Qn(function(r,e){return r>e?r:e})),Vn.dodge=Jn(Qn(function(r,e){return 255===r?255:(r=e/255*255/(1-r/255))>255?255:r})),Vn.burn=Jn(Qn(function(r,e){return 255*(1-(1-e/255)/(r/255))}));Math.pow,Math.sin,Math.cos,Math.floor,Math.random,Math.log,Math.pow,Math.floor,Math.abs,Math.sqrt,Math.pow,Math.min,Math.max,Math.atan2,Math.abs,Math.cos,Math.sin,Math.exp,Math.PI;for(var ra={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d730M
1f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:M
["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeM
b","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6M
","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#M
fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#M
01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999M
999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","M
#fddaec","#f2f2f2"]},ea=0,ta=Object.keys(ra);ea<ta.length;ea+=1){var na=ta[ea];ra[na.toLowerCase()]=ra[na]}return m});
function Q5(e){return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100;n.height=100;n.canvas.width=n.width;n.canvas.height=n.height;"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",function(){document.body.appendChild(n.canvas)}));m();n.MAGIC=161533525;n.RGB=0;n.HSVM
=1;n.HSB=1;n.CHORD=0;n.PIE=1;n.OPEN=2;n.RADIUS=1;n.CORNER=2;n.CORNERS=3;n.ROUND="round";n.SQUARE="butt";n.PROJECT="square";n.MITER="miter";n.BEVEL="bevel";n.CLOSE=1;n.BLEND="source-over";n.REMOVE="destination-out";n.ADD="lighter";n.DARKEST="darken";n.LIGHTEST="lighten";n.DIFFERENCE="difference";n.SUBTRACT="subtract";n.EXCLUSION="exclusion";n.MULTIPLY="multiply";n.SCREEN="screen";n.REPLACE="copy";n.OVERLAY="overlay";n.HARD_LIGHT="hard-light";n.SOFT_LIGHT="soft-light";n.DODGE="color-dodge";n.BURN="color-burn";n.NORMAM
L="normal";n.ITALIC="italic";n.BOLD="bold";n.BOLDITALIC="italic bold";n.CENTER="center";n.LEFT="left";n.RIGHT="right";n.TOP="top";n.BOTTOM="bottom";n.BASELINE="alphabetic";n.LANDSCAPE="landscape";n.PORTRAIT="portrait";n.ALT=18;n.BACKSPACE=8;n.CONTROL=17;n.DELETE=46;n.DOWN_ARROW=40;n.ENTER=13;n.ESCAPE=27;n.LEFT_ARROW=37;n.OPTION=18;n.RETURN=13;n.RIGHT_ARROW=39;n.SHIFT=16;n.TAB=9;n.UP_ARROW=38;n.HALF_PI=Math.PI/2;n.PI=Math.PI;n.QUARTER_PI=Math.PI/4;n.TAU=2*Math.PI;n.TWO_PI=2*Math.PI;n.THRESHOLD=1;n.GRAY=2;n.OPAQUE=3;M
n.INVERT=4;n.POSTERIZE=5;n.DILATE=6;n.ERODE=7;n.BLUR=8;n.ARROW="default";n.CROSS="crosshair";n.HAND="pointer";n.MOVE="move";n.TEXT="text";n.VIDEO={video:!0,audio:!1};n.AUDIO={video:!1,audio:!0};n.SHR3=1;n.LCG=2;n.HARDWARE_FILTERS=!0;n.hint=function(e,t){n[e]=t};n.frameCount=0;n.mouseX=0;n.mouseY=0;n.pmouseX=0;n.pmouseY=0;n.mouseButton=null;n.keyIsPressed=!1;n.mouseIsPressed=!1;n.key=null;n.keyCode=null;n.pixels=null;n.accelerationX=0;n.accelerationY=0;n.accelerationZ=0;n.rotationX=0;n.rotationY=0;n.rotationZ=0;n.reM
lRotationX=0;n.relRotationY=0;n.relRotationZ=0;n.pAccelerationX=0;n.pAccelerationY=0;n.pAccelerationZ=0;n.pRotationX=0;n.pRotationY=0;n.pRotationZ=0;n.pRelRotationX=0;n.pRelRotationY=0;n.pRelRotationZ=0;n.touches=[];n._colorMode=n.RGB;n._noStroke=!1;n._noFill=!1;n._ellipseMode=n.CENTER;n._rectMode=n.CORNER;n._curveDetail=20;n._curveAlpha=0;n._noLoop=!1;n._textFont="sans-serif";n._textSize=12;n._textLeading=12;n._textStyle="normal";n._pixelDensity=1;n._frameRate=null;n._tint=null;let a=null;let r=!0;let i=[];let l=nM
ull;let u=0;let s={};let c=0;let h=null;let f=null;let d=null;Object.defineProperty(n,"deviceOrientation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}});Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}});Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}});Object.defineProperty(n,"drawingContext",{get:function(){return o}});n.createCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t,m()};n.resizM
eCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t};n.createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o};n.pixelDensity=function(e){return null==e?n._pixelDensity:(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),m(),n._pixelDensity)};n.map=function(e,t,n,o,a,r){let i=o+1*(e-t)/(nM
-t)*(a-o);return r?o<a?Math.min(Math.max(i,o),a):Math.min(Math.max(i,a),o):i};n.lerp=function(e,t,n){return e*(1-n)+t*n};n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)};n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])};n.norm=function(e,t,o){return n.map(e,t,o,0,1)};n.sq=function(e){return e*e};n.fract=function(e){return e-Math.floor(e)};n.degrees=functiM
on(e){return 180*e/Math.PI};n.radians=function(e){return e*Math.PI/180};n.abs=Math.abs;n.ceil=Math.ceil;n.exp=Math.exp;n.floor=Math.floor;n.log=Math.log;n.mag=Math.hypot;n.max=Math.max;n.min=Math.min;n.round=Math.round;n.sqrt=Math.sqrt;n.sin=Math.sin;n.cos=Math.cos;n.tan=Math.tan;n.asin=Math.asin;n.acos=Math.acos;n.atan=Math.atan;n.atan2=Math.atan2;n.Vector=function(e,t,o){let a=this;a.x=e||0,a.y=t||0,a.z=o||0;let r=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n||0}:{x:e,y:e,z:e}}function u()M
{null==i&&(i=a.x*a.x+a.y*a.y+a.z*a.z,r=Math.sqrt(i))}function s(){i=null,r=null}a.set=function(e,t,n){a.x=e||0,a.y=t||0,a.z=n||0},a.copy=function(){return new n.Vector(a.x,a.y,a.z)},a.add=function(){let e=l.apply(null,arguments);return a.x+=e.x,a.y+=e.y,a.z+=e.z,s(),a},a.rem=function(){let e=l.apply(null,arguments);return a.x%=e.x,a.y%=e.y,a.z%=e.z,s(),a},a.sub=function(){let e=l.apply(null,arguments);return a.x-=e.x,a.y-=e.y,a.z-=e.z,s(),a},a.mult=function(){let e=l.apply(null,arguments);return a.x*=e.x,a.y*=e.y,aM
.z*=e.z,s(),a},a.div=function(){let e=l.apply(null,arguments);return a.x/=e.x,a.y/=e.y,a.z/=e.z,s(),a},a.mag=function(){return u(),r},a.magSq=function(){return u(),i},a.dot=function(){let e=l.apply(null,arguments);return a.x*e.x+a.y*e.y+a.z*e.z},a.dist=function(){let e=l.apply(null,arguments),t=a.x-e.x,n=a.y-e.y,o=a.z-e.z;return Math.sqrt(t*t+n*n+o*o)},a.cross=function(){let e=l.apply(null,arguments),t=a.y*e.z-a.z*e.y,n=a.z*e.x-a.x*e.z,o=a.x*e.y-a.y*e.x;return a.x=t,a.y=n,a.z=o,s(),a},a.normalize=function(){u();letM
 e=r;return a.x/=e,a.y/=e,a.z/=e,r=1,i=1,a},a.limit=function(e){u();let t=r;if(t>e){let n=e/t;a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e}return a},a.setMag=function(e){u();let t=r,n=e/t;return a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e,a},a.heading=function(){return Math.atan2(a.y,a.x)},a.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=a.x*t-a.y*n,r=a.x*n+a.y*t;return a.x=o,a.y=r,a},a.angleBetween=function(){let e=l.apply(null,arguments);const t=a.dot(e)/(a.mag()*e.mag());let n;return n=Math.acos(Math.min(1,Math.max(-1,t))),n*=Math.sM
ign(a.cross(e).z||1)},a.lerp=function(e,t){return a.x=a.x*(1-t)+e.x*t,a.y=a.y*(1-t)+e.y*t,a.z=a.z*(1-t)+e.z*t,s(),a},a.reflect=function(e){return e.normalize(),a.sub(e.mult(2*a.dot(e)))},a.array=function(){return[a.x,a.y,a.z]},a.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-a.x)<t&&Math.abs(e.y-a.y)<t&&Math.abs(e.z-a.z)<t},a.fromAngle=function(e,t){return null==t&&(t=1),r=t,i=t*t,a.x=t*Math.cos(e),a.y=t*Math.sin(e),a.z=0,a},a.fromAngles=function(e,t,n){null==n&&(n=1),r=n,i=n*n;coM
nst o=Math.cos(t),l=Math.sin(t),u=Math.cos(e),s=Math.sin(e);return a.x=n*s*l,a.y=-n*u,a.z=n*s*o,a},a.random2D=function(){return r=1,i=1,a.fromAngle(Math.random()*Math.PI*2)},a.random3D=function(){return r=1,i=1,a.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},a.toString=function(){return`[${a.x}, ${a.y}, ${a.z}]`}};n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)};n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)};n.Vector.sub=function(e,t){return new n.VecM
tor(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):new n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)};n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)};n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)};n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-o)+t.x*o,e.y=e.y*(1-o)+t.y*o,e.M
z=e.z*(1-o)+t.z*o)};n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAngles","random2D","random3D"])n.Vector[e]=function(t,o,a){return(new n.Vector)[e](t,o,a)};n.createVector=function(e,t,o){return new n.Vector(e,t,o)};n.curvePoint=function(e,t,n,o,a){const r=a*a*a,i=a*a,l=-.5*r+i-.5*a,u=1.5*r-2.5*i+1,s=-1.5*r+2*i+.5*a,c=.5*r-.5*i;return e*l+t*u+n*s+o*c};n.bezierPoint=function(e,t,n,o,a){const r=1-a;return Math.pow(r,3)*e+3*Math.pow(r,2)*a*t+3*r*Math.pow(a,2)*n+Math.pow(a,3)*o};n.M
curveTangent=function(e,t,n,o,a){const r=a*a,i=-3*r/2+2*a-.5,l=9*r/2-5*a,u=-9*r/2+4*a+.5,s=3*r/2-a;return e*i+t*l+n*u+o*s};n.bezierTangent=function(e,t,n,o,a){const r=1-a;return 3*o*Math.pow(a,2)-3*n*Math.pow(a,2)+6*n*r*a-6*t*r*a+3*t*Math.pow(r,2)-3*e*Math.pow(r,2)};function p(e,t,n){let o,a,r,i,l,u,s,c,h;if(0==t)return[255*(o=n),255*(a=n),255*(r=n)];switch((i=e)>360&&(i=0),s=n*(1-t),c=n*(1-t*(u=(i/=60)-(l=~~i))),h=n*(1-t*(1-u)),l){case 0:o=n,a=h,r=s;break;case 1:o=c,a=n,r=s;break;case 2:o=s,a=n,r=h;break;case 3:o=M
s,a=c,r=n;break;case 4:o=h,a=s,r=n;break;default:o=n,a=s,r=c}return[255*o,255*a,255*r]}n.Color=function(e,t,n,o){let a=this;a.MAGIC=786698,a._r=e,a._g=t,a._b=n,a._a=o,a._h=0,a._s=0,a._v=0,a._hsvInferred=!1,a.setRed=function(e){a._r=e,a._hsvInferred=!1},a.setGreen=function(e){a._g=e,a._hsvInferred=!1},a.setBlue=function(e){a._b=e,a._hsvInferred=!1},a.setAlpha=function(e){a._a=e/255,a._hsvInferred=!1},a._inferHSV=function(){a._hsvInferred||([a._h,a._s,a._v]=function(e,t,n){let o,a,r,i,l;if(o=e<t?e<n?e:n:t<n?t:n,0==(lM
=100*(a=e>t?e>n?e:n:t>n?t:n)/255))return[r=0,i=0,l];if(0==(i=100*(a-o)/a))return[r=0,i,l];r=a==e?0+60*(t-n)/(a-o):a==t?120+60*(n-e)/(a-o):240+60*(e-t)/(a-o);return[r,i,l]}(a._r,a._g,a._b),a._hsvInferred=!0)},a.toString=function(){return`rgba(${Math.round(a._r)},${Math.round(a._g)},${Math.round(a._b)},${~~(1e3*a._a)/1e3})`}};n.colorMode=function(e){n._colorMode=e};n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGIC)return arguments[0];if(n._colorMode==n.RGB){if(1==arguments.length)return new n.ColoM
r(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);if(3==arguments.length)return M
new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null};n.red=function(e){return e._r};n.green=function(e){return e._g};n.blue=function(e){return e._b};n.alpha=function(e){return 255*e._a};n.hue=function(e){return e._inferHSV(),e._h};n.saturation=function(e){return e._inferHSV(),e._s};n.brightness=function(e){return e._inferHSV(),e._v};n.lightness=function(e){return 100*(.2126*e._r+.M
7152*e._g+.0722*e._b)/255};n.lerpColor=function(e,t,o){return n._colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var a=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.map(o,0,1,e,t-360)]];return a.sort((e,t)=>e[0]-t[0]),(a[0][1]+720)%360}(e._h,t._h,o),0,360),n.constrM
ain(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))};function m(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}n.strokeWeight=function(e){n._noStroke=!1,o.lineWidth=e};n.stroke=function(){if(n._noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noStroke=!0:o.strokeStyle=e};n.noStroke=function(){n._noStroke=!0};n.fill=function(){if(n._noFill=!1,"striM
ng"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noFill=!0:o.fillStyle=e};n.noFill=function(){n._noFill=!0};n.blendMode=function(e){o.globalCompositeOperation=e};n.strokeCap=function(e){o.lineCap=e};n.strokeJoin=function(e){o.lineJoin=e};n.ellipseMode=function(e){n._ellipseMode=e};n.rectMode=function(e){n._rectMode=e};n.curveDetail=function(e){n._curveDetail=e};n.curveAlpha=function(e){n._curveAlpha=e};n.curveTightness=function(e){console.warn("curveTightM
ness() sets the 'alpha' parameter of Catmull-Rom curve, and is NOT identical to p5.js counterpart. As this might change in the future, please call curveAlpha() directly."),n._curveAlpha=e};n.clear=function(){o.clearRect(0,0,n.width,n.height)};n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),"string"==typeof arguments[0]?o.fillStyle=arguments[0]:o.fillStyle=n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.heigM
ht),o.restore()};n.line=function(e,t,a,r){n._noStroke||(o.beginPath(),o.moveTo(e,t),o.lineTo(a,r),o.stroke())};function g(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function v(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;let c=g(i),h=g(l);o.beginPath();for(let i=0;i<s+1;i++){let l=i/s,u=n.lerp(c,h,l),f=Math.cos(u)*a/2,d=Math.sin(u)*r/2;o[i?"lineTo":"moveTo"](e+f,t+d)}u==n.CHORD?o.closePath():u==n.PIE&&(o.lineTo(e,t),o.closePath()),n._noFill||o.fill(),n._noStrM
oke||o.stroke()}n.arc=function(e,t,o,a,r,i,l,u){if(r==i)return n.ellipse(e,t,o,a);null==u&&(u=25),null==l&&(l=n.PIE),n._ellipseMode==n.CENTER?v(e,t,o,a,r,i,l,u):n._ellipseMode==n.RADIUS?v(e,t,2*o,2*a,r,i,l,u):n._ellipseMode==n.CORNER?v(e+o/2,t+a/2,o,a,r,i,l,u):n._ellipseMode==n.CORNERS&&v((e+o)/2,(t+a)/2,o-e,a-t,r,i,l,u)};function M(e,t,a,r){n._noFill&&n._noStroke||(o.beginPath(),o.ellipse(e,t,a/2,r/2,0,0,2*Math.PI),n._noFill||o.fill(),n._noStroke||o.stroke())}n.ellipse=function(e,t,o,a){null==a&&(a=o),n._ellipseMoM
de==n.CENTER?M(e,t,o,a):n._ellipseMode==n.RADIUS?M(e,t,2*o,2*a):n._ellipseMode==n.CORNER?M(e+o/2,t+a/2,o,a):n._ellipseMode==n.CORNERS&&M((e+o)/2,(t+a)/2,o-e,a-t)};n.circle=function(e,t,o){return n.ellipse(e,t,o,o)};n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()};function _(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;if(null==i)return function(e,t,a,r){n._noFill||o.fillRect(e,t,a,r);n._noStroke||o.strokeRect(e,t,a,r)}(e,t,a,r);if(null==l)return _(e,t,a,r,i,M
i,i,i);const c=Math.min(Math.abs(r),Math.abs(a))/2;i=Math.min(c,i),l=Math.min(c,l),s=Math.min(c,s),u=Math.min(c,u),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+a,t,e+a,t+r,l),o.arcTo(e+a,t+r,e,t+r,u),o.arcTo(e,t+r,e,t,s),o.arcTo(e,t,e+a,t,i),o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke()}n.rect=function(e,t,o,a,r,i,l,u){n._rectMode==n.CENTER?_(e-o/2,t-a/2,o,a,r,i,l,u):n._rectMode==n.RADIUS?_(e-o,t-a,2*o,2*a,r,i,l,u):n._rectMode==n.CORNER?_(e,t,o,a,r,i,l,u):n._rectMode==n.CORNERS&&_(e,t,o-e,a-t,r,i,l,u)};n.squM
are=function(e,t,o,a,r,i,l){return n.rect(e,t,o,o,a,r,i,l)};function x(){i=[]}n.beginShape=function(){x(),o.beginPath(),r=!0};n.beginContour=function(){o.closePath(),x(),r=!0};n.endContour=function(){x(),r=!0};n.vertex=function(e,t){x(),r?o.moveTo(e,t):o.lineTo(e,t),r=!1};n.bezierVertex=function(e,t,n,a,r,i){x(),o.bezierCurveTo(e,t,n,a,r,i)};n.quadraticVertex=function(e,t,n,a){x(),o.quadraticCurveTo(e,t,n,a)};n.bezier=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.bezierVertex(o,a,r,i,l,u),n.endShape()};nM
.triangle=function(e,t,o,a,r,i){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.endShape(n.CLOSE)};n.quad=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.vertex(l,u),n.endShape(n.CLOSE)};n.endShape=function(e){x(),e&&o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke(),n._noFill&&n._noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())};n.curveVertex=function(e,t){if(i.push([e,t]),i.length<4)return;let a=i[i.length-4],l=i[i.length-3],u=i[i.length-2],s=i[i.M
length-1],c=function(e,t,n,o,a,r,i,l,u,s){function c(e,t,n,o,a,r){let i=Math.pow(o-t,2)+Math.pow(a-n,2),l=Math.pow(i,.5*r);return l+e}let h=[],f=c(0,e,t,n,o,s),d=c(f,n,o,a,r,s),p=c(d,a,r,i,l,s);for(let s=0;s<u;s++){let c=f+s/(u-1)*(d-f),m=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<m.length;e+=2)isNaN(m[e])&&(m[e]=1,m[e+1]=0),isFinite(m[e])||(m[e]>0?(m[e]=1,m[e+1]=0):(m[e]=0,m[e+1]=1));let g=e*m[0]+n*m[1],v=t*m[0]+o*m[1],M=nM
*m[2]+a*m[3],_=o*m[2]+r*m[3],x=a*m[4]+i*m[5],y=r*m[4]+l*m[5],w=g*m[6]+M*m[7],R=v*m[6]+_*m[7],I=M*m[8]+x*m[9],E=_*m[8]+y*m[9],S=w*m[2]+I*m[3],C=R*m[2]+E*m[3];h.push([S,C])}return h}(...a,...l,...u,...s,n._curveDetail,n._curveAlpha);for(let e=0;e<c.length;e++)r?o.moveTo(...c[e]):o.lineTo(...c[e]),r=!1};n.curve=function(e,t,o,a,r,i,l,u){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,a),n.curveVertex(r,i),n.curveVertex(l,u),n.endShape()};n.translate=function(e,t){o.translate(e,t)};n.rotate=function(e){o.rotate(e)};nM
.scale=function(e,t){null==t&&(t=e),o.scale(e,t)};n.applyMatrix=function(e,t,n,a,r,i){o.transform(e,t,n,a,r,i)};n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)};n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)};n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)};n.pushMatrix=n.push=function(){o.save()};n.popMatrix=n.pop=function(){o.restore()};n.image=function(e,t,a,r,i,l,u,s,c){let h=e.MAGIC==n.MAGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let tM
=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(!function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d"));null==e&&(e=o.canvas.width,t=o.canvas.height);f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tinted(n._tint)),r?l?(s||(s=h.width),c||(c=h.height),o.drawImage(h,l,u,s,c,t,M
a,r,i),void d()):(o.drawImage(h,t,a,r,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,a,e.width,e.height):o.drawImage(h,t,a,e.videoWidth,e.videoHeight),void d())};n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data};n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)};n.loadImage=function(e,t){u++;let o=n.createGraphics(100,100),a=o.canvas.getContext("2d"),r=new Image;return r.src=e,r.crossOrigin="Anonymous",r.onload=function(){a.canvas.width=r.width,a.canvas.heM
ight=r.height,o.width=r.width,o.height=r.height,a.drawImage(r,0,0),u--,t&&t(o)},o};let y={};y[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}};y[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}};y[n.OPAQUE]=function(e){for(let t=0;t<e.length;t+=4)e[t+3]=255};y[n.INVERT]=function(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[tM
+2]=255-e[t+2]};y[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n};y[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.max(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.ERODE]=function(e){R(),d.set(M
e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.min(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let a=2*t+1;let r=function(e){let n=new Float32Array(e),o=.3*t+.8,a=o*o*2;for(let t=0;t<e;t++){let r=t-e/2,i=Math.exp(-r*r/a)/(2.5066282746*o);n[t]=i}reM
turn n}(a),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,u=0,s=0,c=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(o-t+e,0),i-1),h=4*(n*i+a);l+=d[h]*r[e],u+=d[h+1]*r[e],s+=d[h+2]*r[e],c+=d[h+3]*r[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=u,e[h+2]=s,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let u=0,s=0,c=0,h=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(n-t+e,0),l-1),f=4*(a*i+o);u+=d[f]*r[e],s+=d[f+1]*r[e],c+=d[f+2]*r[e],h+=d[f+3]*r[e]}let f=4*(n*i+o);e[f]=u,e[f+1]=sM
,e[f+2]=c,e[f+3]=h}};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClampedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvasM
,0,0),o.restore()}n.filter=function(e,t){let a=n.HARDWARE_FILTERS&&null!=o.filter;if(a)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5);let e=Math.floor(.5/t*100);I(`saturate(0%) brightness(${e}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(h.canvas,0,0),o.restore();else if(e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(t*M
n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}};n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()};n.getM
=function(e,t,a,r){if(null!=e&&null==a){let a=o.getImageData(e,t,1,1).data;return new n.Color(a[0],a[1],a[2],a[3]/255)}e=e||0,t=t||0,a=a||n.width,r=r||n.height;let i=n.createGraphics(a,r);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,a*n._pixelDensity,r*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i};n.set=function(e,t,a){if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.image(a,e,t),void(n._tint=o)}let r=4*(t*n._pixelDensity*o.canvas.width+M
e*n._pixelDensity);n.pixels[r]=a._r,n.pixels[r+1]=a._g,n.pixels[r+2]=a._b,n.pixels[r+3]=255*a._a};n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransform();let a=o.globalCompositeOperation;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.glM
obalCompositeOperation=a,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()};n.tint=function(){n._tint=n.color(...Array.from(arguments))};n.noTint=function(){n._tint=null};n.mask=function(e){o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositeOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeM
Operation=t,o.restore()};n.clearTemporaryBuffers=function(){h=null,f=null,d=null};n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t},!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)};n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.save(t,o);let n=t.split(".");return e.save(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);let aM
=e.split(".");return n.save(a.slice(0,-1).join("."),a[a.length-1])};n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),a=`@font-face {\n        font-family: '${o}';\n        src: url('${e}');\n      }`;const r=document.createElement("style");return r.textContent=a,document.head.append(r),o};n.textFont=function(e){n._textFont=e};n.textSize=function(e){n._textSize=e,n._textLeading=e};n.textLeading=function(e){n._textLeading=e};n.textStyle=function(e){n._textStyle=e};n.textAlign=M
function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)};n.text=function(e,t,a,r){if(!e)return;if(e=e.toString(),n._noFill&&n._noStroke)return;o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._noFill||o.fillText(i[e],t,a,r),n._noStroke||o.strokeText(i[e],t,a,r),a+=n._textLeading};n.textWidth=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).width};n.textAscent=function(e){return o.font=`${n._textStyle}M
 ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent};n.textDescent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent};var E=4;var S=.5;var C=function(e){return.5*(1-Math.cos(e*Math.PI))};var A;n.noise=function(e,t,n){if(t=t||0,n=n||0,null==A){A=new Array(4096);for(var o=0;o<4096;o++)A[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var a,r,i,l,u,s=Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-s,d=t-c,p=n-h,m=0,g=M
.5,v=0;v<E;v++){var M=s+(c<<4)+(h<<8);a=C(f),r=C(d),i=A[4095&M],i+=a*(A[M+1&4095]-i),l=A[M+16&4095],l+=a*(A[M+16+1&4095]-l),i+=r*(l-i),l=A[4095&(M+=256)],l+=a*(A[M+1&4095]-l),u=A[M+16&4095],u+=a*(A[M+16+1&4095]-u),l+=r*(u-l),i+=C(p)*(l-i),m+=i*g,g*=S,s<<=1,c<<=1,h<<=1,(f*=2)>=1&&(s++,f--),(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return m};n.noiseDetail=function(e,t){e>0&&(E=e),t>0&&(S=t)};const T=function(){let e,t,n=4294967295;return{setSeed(o){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17M
,e^=e>>13,((e^=e<<5)>>>0)/n)}};let D=T();D.setSeed();n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;A||(A=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,A[n]=(t>>>0)/4294967295};n.randomSeed=function(e){D.setSeed(e)};n.random=function(e,t){return"number"==typeof e?null!=t?D.rand()*(t-e)+e:D.rand()*e:e[~~(e.length*D.rand())]};n.randomGenerator=function(e){e==n.LCG?D=function(){const e=4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>t,rM
and:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(D=T()),D.setSeed()};var P=new function(){var e,t,n,o=new Array(128),a=new Array(256),r=new Array(128),i=new Array(128),l=new Array(256),u=new Array(256),s=function(){return 4294967296*D.rand()-2147483648},c=function(){return.5+2.328306e-10*(s()<<0)},h=function(){for(var t,a,l,u,h=3.44262;;){if(t=n*r[e],0==e){do{l=c(),u=c(),t=.2904764*-Math.log(l),a=-Math.log(u)}while(a+a<t*t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=s(),e=12M
7&n,Math.abs(n)<o[e])return n*r[e]}},f=function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],u[e]+c()*(u[e-1]-u[e])<Math.exp(-n))return n;if((t=s())<a[e=255&t])return t*l[e]}};this.SHR3=s,this.UNI=c,this.RNOR=function(){return n=s(),e=127&n,Math.abs(n)<o[e]?n*r[e]:h()},this.REXP=function(){return(t=s()>>>0)<o[e=255&t]?t*l[e]:f()},this.zigset=function(){var e,t,n=2147483648,s=4294967296,c=3.442619855899,h=c,f=.00991256303526217,d=7.697117470131487,p=d,m=.003949659822581572;for(e=f/Math.exp(-.5*c*cM
),o[0]=Math.floor(c/e*n),o[1]=0,r[0]=e/n,r[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),r[t]=c/n;for(e=m/Math.exp(-d),a[0]=Math.floor(d/e*s),a[1]=0,l[0]=e/s,l[255]=d/s,u[0]=1,u[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(m/d+Math.exp(-d)),a[t+1]=Math.floor(d/p*s),p=d,u[t]=Math.exp(-d),l[t]=d/s}};P.hasInit=!1;n.randomGaussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e};n.randomEM
xponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()};n.print=console.log;n.cursor=function(e,t,o){let a="";e.includes(".")&&(e=`url("${e}")`,a=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+a};n.noCursor=function(){n.canvas.style.cursor="none"};n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUserMedia(e).then(function(e){t.srcObject=e}),t.style.position="absolute",t.style.opacity=M
1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let b=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of b){let t="_"+e+"Fn";n[t]=function(){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(a=null==n._frameRate?requestAnimationFrame(z):setTimeout(z,1e3/n._frameRate)),x(),r=!0,o.save(),n._drawFn(),o.restore(),n.frM
ameCount++}n.noLoop=function(){n._noLoop=!0,a=null};n.loop=function(){n._noLoop=!1,null==a&&z()};n.redraw=function(){z()};n.frameRate=function(e){n._frameRate=e};setTimeout(function(){n._preloadFn(),c=window.performance.now(),function e(){if(u>0)return setTimeout(e,10);n._setupFn();z()}()},1);n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraggedFn(e):n._mouseMovedFn(e)};n.canvas.onmousedown=function(e){n.pmouseX=n.mouseX,n.pmousM
eY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)};n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)};n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickedFn(e),n.mouseIsPressed=!1};window.addEventListener("keydown",function(e){n.keyIsPressed=M
!0,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)});window.addEventListener("keyup",function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!1,n._keyReleasedFn(e)});n.keyIsDown=function(e){return!!s[e]};function O(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,a=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,y:(e.clientY-t.top)/a,id:e.identifier}}function k(){return n._touchStarted.isPlaceHolder&M
&n._touchMoved.isPlaceHolder&&n._touchEnded.isPlaceHolder}n.canvas.ontouchstart=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()};n.canvas.ontouchmove=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButtoM
n=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()};n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()};n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DeviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPeM
rmission);n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(e=>{"granted"==e&&(n.hasSensorPermission=!0)}).catch(alert)}).catch(alert)};window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pRelRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,nM
.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ};window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,!e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[M
1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13],e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]*t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[15M
],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]*t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(e)M
,0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}};n.year=function(){return(new Date).getFullYear()};n.day=function(){return(new Date).getDay()};n.hour=function(){return(new Date).getHours()};n.minute=function(){return(new Date).getMinutes()};n.second=function(){return(new Date).getSeconds()};n.millis=function(){return window.performance.now()-c}}(e)}
or{static p;static SAND_COLOR_MODE=3;static getSandColorByIndex(e,t=0,i=30,s=50){e%=5;let a=[];var r,h,n;for(let e=0;e<5;e++){let t=e%5;1==Color.SAND_COLOR_MODE?a.push(o(t)):2==Color.SAND_COLOR_MODE?a.push(l(t)):3==Color.SAND_COLOR_MODE?a.push(d(t)):4==Color.SAND_COLOR_MODE?a.push(m(t)):5==Color.SAND_COLOR_MODE?a.push(p(t)):6==Color.SAND_COLOR_MODE?a.push(g(t)):7==Color.SAND_COLOR_MODE?a.push(c(t)):8==Color.SAND_COLOR_MODE?a.push(u(t)):9==Color.SAND_COLOR_MODE&&a.push(v(t))}return a[e];function o(e){return 0==e?(r=M
t+60,h=i+5,n=s+5):1==e?(r=t+30,h=i+5,n=s+9):2==e?(r=t,h=i,n=s):3==e?(r=t-30,h=i+5,n=s+9):4==e&&(r=t-60,h=i+5,n=s+5),r<0?r+=360:r>360&&(r-=360),chroma(r,h/100,n/100,"hsl")}function l(e){return r=t,0==e?(h=i,n=s+30):1==e?(h=i-30,n=s+8):2==e?(h=i,n=s):3==e?(h=i-30,n=s+30):4==e&&(h=i,n=s-20),h<10&&(h+=60),(0==e||3==e)&&n>100&&(n=s-50),chroma(r,h/100,n/100,"hsl")}function d(e){return 0==e?(r=t-120,h=i+10,n=s-30):1==e?(r=t+120,h=i-10,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t-120,h=i+10,n=s):4==e&&(r=t+120,h=i+10,n=s-30),r>360?r-M
=360:r<0&&(r+=360),h>100&&(h-=20),n>100&&(n-=30),chroma(r,h/100,n/100,"hsl")}function m(e){return 0==e?(r=t,h=i+10,n=s-30):1==e?(r=t,h=i-30,n=s+30):2==e?(r=t,h=i,n=s):3==e?(r=t-180,h=i+20,n=s-30):4==e&&(r=t-180,h=i,n=s),r<0&&(r+=360),chroma(r,h/100,n/100,"hsl")}function p(e){return 0==e?(r=t-150,h=i-10,n=s+30):1==e?(r=t-150,h=i-5,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t+150,h=i+10,n=s+30):4==e&&(r=t+150,h=i+5,n=s),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n>100&&(n-=60),chroma(r,h/100,n/100,"hsl")}function g(e){return 0==M
e?(r=t+60,h=i-5):1==e?(r=t+150,h=i-10):2==e?(r=t,h=i):3==e?(r=t-150,h=i+10):4==e&&(r=t-60,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function c(e){return 0==e?(r=t,h=i+20):1==e?(r=t+90,h=i-10):2==e?(r=t,h=i):3==e?(r=t+180,h=i+10):4==e&&(r=t-90,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function u(e){return 0==e?(r=t+30,h=i+10,n=s+20):1==e?(r=t+30,h=i+40,n=s+40):2==e?(r=t,h=i,n=s):3==e?(r=t+160,h=i+25,n=s+5):4==e&&(r=t+150,h=i+10,n=s+20),r>3M
60&&(r-=360),(0==e||4==e)&&h>100?h-=20:1==e&&h>90?h-=80:3==e&&h>60&&(h-=50),1==e&&n>100?n-=80:(0==e||4==e)&&n>100&&(n-=40),chroma(r,h/100,n/100,"hsl")}function v(e){return r=t,h=i,0==e?n=s-25:1==e?n=s+30:2==e?n=s:3==e?n=s+5:4==e&&(n=s-10),n>100&&(n-=80),chroma(r,h/100,n/100,"hsl")}}static chromaToArray=e=>[e._rgb[0],e._rgb[1],e._rgb[2],255*e._rgb[3]];static setColorMode=e=>{this.SAND_COLOR_MODE=e}}class Geometry{static slicePolyByY(e,t){let i=[];for(let s=0;s<e.length;s++){let a=e[s],r=s?e[s-1]:e.at(-1),h=a.y>=t;h!M
=r.y>=t&&i.push(Geometry.interWithY(r,a,t)),h&&i.push(a)}return i}static getAreaBelowY(e,t){return Geometry.getPolyArea(Geometry.slicePolyByY(e,t))}static getYByAreaBelow(e,t){let[i,s,a,r]=Geometry.getBoundingBox(e,"COORD"),h=s,n=r;for(let i=0;i<30;++i){let i=(h+n)/2;Geometry.getAreaBelowY(e,i)>t?h=i:n=i}return n}static interWithY(e,t,i){let s=e.copy(),a=t.copy(),r=createVector(-1e9,i),h=createVector(1e9,i);return Geometry.intersection(s,a,r,h)}static getPolyArea(e){let t=0;for(let i=0;i<e.length;i++){let s=e[i],a=M
e[(i+1)%e.length],r=createVector(s.x,s.y),h=createVector(a.x,a.y);t+=r.cross(h).z}return t=abs(t)/2,t}static getBoundingBox(e,t="SIZE"){let i=e[0].x,s=e[0].x,a=e[0].y,r=e[0].y;for(let t=0;t<e.length;t++)isNaN(e[t].y)||(a=min(a,e[t].y),r=max(r,e[t].y)),isNaN(e[t].x)||(i=min(i,e[t].x),s=max(s,e[t].x));return"SIZE"==t?[i,a,s-i,r-a]:"COORD"==t?[i,a,s,r]:[]}static intersection(e,t,i,s){let a=createVector(t.x-e.x,t.y-e.y),r=createVector(s.x-i.x,s.y-i.y),h=createVector(i.x-e.x,i.y-e.y),n=(a.copy().rotate(PI/2),r.copy().roM
tate(PI/2)),o=h.dot(n)/a.dot(n),l=a.mult(o);return createVector(e.x+l.x,e.y+l.y)}}class GraphicUtils{static applyMask(e,t){e.push(),e.noStroke(),e.blendMode(REMOVE),e.fill(255,255,255,255),e.beginShape(),e.vertex(0,0),e.vertex(0,e.height),e.vertex(e.width,e.height),e.vertex(e.width,0),e.beginContour();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endContour(),e.endShape(e.CLOSE),e.blendMode(BLEND),e.pop()}}class Hourglass{static TICK_INTERVAL=60;static ROTATE_INTERVAL=10/3;constructor(e,t){this.evolvePeriod=M
e.evolvePeriod,t.registerIterationChangeEvent(this.onIterationChange.bind(this));let i=t.getCurrentIteration();this.onIterationChange(i),this.update(new Date)}onIterationChange(e){this.flipped=e%2==1}getState(){return{top:this.top,rotation:this.rotation,flipped:this.flipped,timeSinceRotation:this.timeSinceRotation}}update(e){let t,i=0;if(traits.evolvePeriod==EvolvePeriod.HOURLY)t=3600,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.DAILY)t=86400,i+=60*e.geM
tHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.MONTHLY){let s=e.getFullYear(),a=e.getMonth()+1;t=24*new Date(s,a,0).getDate()*60*60,i+=24*(e.getDate()-1)*60*60,i+=60*e.getHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3}this.flipped?this.top=1-min(1,i/t):this.top=min(1,i/t),this.timeSinceRotation=max(0,i-Hourglass.ROTATE_INTERVAL);let s=Math.min(i,Hourglass.ROTATE_INTERVAL);this.rotation=this.flipped?PI:0,this.rotatM
ion+=s/Hourglass.ROTATE_INTERVAL*PI}}function getRandomInt(e,t){return floor(random(e,t))}function getRandomItem(e){let t=0;for(const i of e)t+=i[1];let i=random(t),s=0;for(const t of e)if(s+=t[1],i<s)return t[0];return null}function shuffle(e){for(let t=1;t<e.length;++t){let i=getRandomInt(0,t),s=e[t];e[t]=e[i],e[i]=s}}class PostProcessing{constructor(e,t,i){this.wCanvas=e,this.hCanvas=t,this.graphic=createGraphics(this.wCanvas,this.hCanvas),this.updateFilter(1)}updateFilter(e,t,i){this.graphic.fill(255,255,255,25M
5),this.graphic.blendMode(REMOVE),this.graphic.rect(0,0,this.wCanvas,this.hCanvas),this.graphic.blendMode(BLEND);let s,a=this.wCanvas/2,r=this.hCanvas/2,h=2*sqrt(a*a+r*r);s=a>r?sqrt(1-Math.pow(r/a,2)):sqrt(1-Math.pow(a/r,2));let n,o;if(1!=abs(e)){let t,i;3==abs(e)?(t=6,i=.6):10==abs(e)?(t=4,i=.5):60==abs(e)?(t=3,i=.4):3600==abs(e)&&(t=2,i=.3),o=i-.1,n=map(sin(Date.now()/1e3/t*TAU),-1,1,i-.1,i+.1)}else i?(o=1,n=1):(o=.75,n=.75);this.graphic.push(),this.graphic.ellipseMode(RADIUS),this.graphic.translate(a,r);for(let M
e=39;e>=0;e--){let t=(e+1)/40;if(1==o||map(t,o,1,0,1.2)<=0)break;let i=max(map(t,n,1,0,1.2),0),s=color(0,0,0,255*i);this.graphic.fill(s),this.graphic.noStroke(),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),e>0&&(t=e/40,this.graphic.fill(255,255,255,255),this.graphic.blendMode(REMOVE),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),this.graphic.blendMode(BLEND))}this.graphic.pop()}applyToMainCanvas(){image(this.graphic,0,0)}}class BackgroundRenderer{constructor(e,t,i,s,a,r){this.wCanvas=e.width,this.hCanvas=eM
.height,this.maxR=min(this.wCanvas,this.hCanvas)/1024,this.dx,this.yvalues,this.xvalues,this.xspacing1=[],this.thickness1=[],this.theta1=[],this.velocity1=[],this.sz1=[],this.xspacing2=[],this.thickness2=[],this.theta2=[],this.velocity2=[],this.sz2=[],this.xspacing3=[],this.thickness3=[],this.theta3=[],this.velocity3=[],this.sz3=[],this.xspacing4=[],this.thickness4=[],this.theta4=[],this.velocity4=[],this.sz4=[],this.c=[],this.num_waves=30,this._h=t,this._s=i,this._l=s,this.patternOrder=a.patternOrder,this.diagonalM
=sqrt(Math.pow(width,2)+Math.pow(height,2));let h=createVector(width,height).heading(),n=abs(PI/4-h);this.ty=this.diagonal/2*cos(n),this.waveSpeed=a.waveSpeed,this.wavePeriod=a.wavePeriod,this.waveHeight=a.waveHeight,this.evolvePeriod=a.evolvePeriod,this.evolvePeriod==EvolvePeriod.DAILY?this.num_lines=7:(this.evolvePeriod==EvolvePeriod.HOURLY||this.evolvePeriod==EvolvePeriod.MONTHLY)&&(this.num_lines=12),this.waveHeight==WaveHeight.SHORT?this.amplitude=getRandomInt(20,30):this.waveHeight==WaveHeight.MEDIUM?this.ampM
litude=getRandomInt(30,40):this.waveHeight==WaveHeight.TALL&&(this.amplitude=getRandomInt(40,50)),this.wavePeriod==WavePeriod.SHORT?this.period=getRandomInt(300,351):this.wavePeriod==WavePeriod.MEDIUM?this.period=getRandomInt(425,476):this.wavePeriod==WavePeriod.LONG&&(this.period=getRandomInt(600,651)),this.waveSpeed==WaveSpeed.SLOW?(this.min_speed=.003,this.max_speed=.005):this.waveSpeed==WaveSpeed.MEDIUM?(this.min_speed=.008,this.max_speed=.01):this.waveSpeed==WaveSpeed.FAST&&(this.min_speed=.015,this.max_speed=M
.018),this.thetaList=[0,1/4*PI,.5*PI,3/4*PI,PI],this.setupStaticWave(),this.setupDynamicWave(),r.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=r.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){randomSeed(100*e+1),shuffle(this.xspacing1),shuffle(this.thickness1),shuffle(this.theta1),shuffle(this.xspacing1),shuffle(this.velocity1),shuffle(this.xspacing2),shuffle(this.thickness2),shuffle(this.theta2),shuffle(this.xspacing2),shuffle(this.velocity2),shuffle(this.xspacing3),shM
uffle(this.thickness3),shuffle(this.theta3),shuffle(this.xspacing3),shuffle(this.velocity3),shuffle(this.xspacing4),shuffle(this.thickness4),shuffle(this.theta4),shuffle(this.xspacing4),shuffle(this.velocity4)}setupStaticWave(){for(let e=0;e<this.num_waves;e++){this.xspacing1.push(getRandomInt(5,50)),this.thickness1.push(getRandomInt(50,200)),this.theta1.push({value:random(this.thetaList)}),this.velocity1.push({value:random(this.min_speed,this.max_speed)}),this.sz1.push(random(.5,3)),this.xspacing2.push(getRandomInM
t(5,50)),this.thickness2.push(getRandomInt(50,200)),this.theta2.push({value:random(this.thetaList)}),this.velocity2.push({value:random(this.min_speed,this.max_speed)}),this.sz2.push(random(.5,3)),this.xspacing3.push(getRandomInt(5,50)),this.thickness3.push(getRandomInt(50,200)),this.theta3.push({value:random(this.thetaList)}),this.velocity3.push({value:random(this.min_speed,this.max_speed)}),this.sz3.push(random(.5,3)),this.xspacing4.push(getRandomInt(5,50)),this.thickness4.push(getRandomInt(50,200)),this.theta4.puM
sh({value:random(this.thetaList)}),this.velocity4.push({value:random(this.min_speed,this.max_speed)}),this.sz4.push(random(.5,3));let t=e%5;this.c.push(Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25))}}setupDynamicWave(){this.dynamicWave={h:random(this.hCanvas/3),xspacing:getRandomInt(5,20),thickness:getRandomInt(100,200),theta:{value:random(this.thetaList)},velocity:{value:random(this.min_speed,this.max_speed)},sz:random(1,3),num_lines:0},1==this.patternOrder[0]?this.dynamicWave.h=random(200,heM
ight-200):2==this.patternOrder[0]?this.dynamicWave.h=random(200,width-200):(3==this.patternOrder[0]||4==this.patternOrder[0])&&(this.dynamicWave.h=random(200,2*this.ty-200))}update(e){this.time=e}drawHorWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(width/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),tM
+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s];r<-2||r>height+2||e.square(a,r,n*this.maxR)}}}drawVerWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.xvalues=new Array(floor(height/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.xvalues.length;e++)this.xvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.xvalues.length;s++){let a=t+this.xvalues[s],r=s*iM
;a<-2||a>width+2||e.square(a,r,n*this.maxR)}}}drawDiaWave(e,t,i,s,a,r,h,n,o,l){let d=cos(-l),m=sin(-l);this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(this.diagonal/i));let p=this.time.getTime()/(1e3/60),g=r.value+h.value*p/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(g)*this.amplitude,g+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s],h=n*this.maxR,o=a-this.diagonal/2,l=r-this.tM
y,p=o*d+l*m+width/2,g=-o*m+l*d+height/2;p<-2||p>width+2||g<-2||g>height+2||e.square(a,r,h)}}}drawHorizontal(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawHorWave(e,t,this.xspacing1[i]*width/1024,this.thickness1[i]*height/1024,this.num_lines,this.theta1[i],this.velocity1[i],this.sz1[i],this.c[i]),t+=(height+50)/this.num_waves}drawVertical(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawVerWave(e,t,this.xspacing2[i]*height/1024,this.thickness2[i]*width/1024,this.num_lines,this.theta2[i],this.vM
elocity2[i],this.sz2[i],this.c[i]),t+=(width+50)/this.num_waves}drawLeft(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing3[i]*this.maxR,this.thickness3[i]*this.maxR,this.num_lines,this.theta3[i],this.velocity3[i],this.sz3[i],this.c[i],PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawRight(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(M
3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing4[i]*this.maxR,this.thickness4[i]*this.maxR,this.num_lines,this.theta4[i],this.velocity4[i],this.sz4[i],this.c[i],3*PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawPattern(e,t){1==t?this.drawHorizontal(e):2==t?this.drawVertical(e):3==t?this.drawLeft(e):this.drawRight(e)}draw(e,t,i,s,a){this._h=s.h,this._s=s.s,this._l=s.l,e.background(0);let r=t.getHours()>=6&&t.getHours()<18?.2:.05,h=Color.getSandColorByIndex(4,this._h,this._s,M
this._l).luminance(r).alpha(.5);if(e.background(color(...Color.chromaToArray(h))),!a)return;this.evolvePeriod==EvolvePeriod.HOURLY?this.dynamicWave.num_lines=(t.getHours()+11)%12+1:this.evolvePeriod==EvolvePeriod.DAILY?this.dynamicWave.num_lines=t.getDay()+1:this.evolvePeriod==EvolvePeriod.MONTHLY&&(this.dynamicWave.num_lines=t.getMonth()+1);for(let e=0;e<this.num_waves;e++){let t=e%5;this.c[e]=Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25)}1==i?(3==this.patternOrder[0]||4==this.patternOrder[0]M
?this.num_waves=30:this.num_waves=20,this.drawPattern(e,this.patternOrder[0])):2==i?(this.patternOrder[0]+this.patternOrder[1]==3?this.num_waves=10:this.patternOrder[0]+this.patternOrder[1]==7?this.num_waves=20:this.num_waves=15,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1])):3==i?(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2])):(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),M
this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2]),this.drawPattern(e,this.patternOrder[3]));let{h:n,xspacing:o,thickness:l,num_lines:d,theta:m,velocity:p,sz:g}=this.dynamicWave,c=Color.getSandColorByIndex(0,this._h,this._s,this._l).luminance(.5);1==this.patternOrder[0]?this.drawHorWave(e,n,o*width/1024,l*height/1024,d,m,p,g,c):2==this.patternOrder[0]?this.drawVerWave(e,n,o*height/1024,l*width/1024,d,m,p,g,c):3==this.patternOrder[0]?(e.push(),e.translate(width/2,height/2),e.rotate(PI/M
4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,PI/4),e.pop()):4==this.patternOrder[0]&&(e.push(),e.translate(width/2,height/2),e.rotate(3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,3*PI/4),e.pop())}}class GrainRenderer{static texture;static deltaX;static deltaY;static maxDelta=100;static wCanvas;static hCanvas;static setup(e,t){GrainRenderer.wCanvas=e+GrainRenderer.maxDelta,GrainRenderer.hCanvas=t+GrainRendereM
r.maxDelta,GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0),GrainRenderer.texture=createImage(GrainRenderer.wCanvas,GrainRenderer.hCanvas),GrainRenderer.texture.loadPixels();let i=GrainRenderer.texture.pixelDensity();for(let e=0;e<GrainRenderer.wCanvas;e++)for(let t=0;t<GrainRenderer.hCanvas;t++){let s=216.75,a=255,r=random(s,a),h=random(s,a),n=random(s,a);for(let s=0;s<i;s++)for(let a=0;a<i;a++){let o=4*((t*i+a)*GrainRenderer.wCanvas*i+(e*i+s));GrainRendM
erer.texture.pixels[o]=r,GrainRenderer.texture.pixels[o+1]=h,GrainRenderer.texture.pixels[o+2]=n,GrainRenderer.texture.pixels[o+3]=255}}GrainRenderer.texture.updatePixels()}static applyGrain(e,t){let i=!!t&&{atFrame:1};e.textureOverlay(GrainRenderer.texture,{mode:BURN,animate:i})}static applyGrainToMainCanvas(e){blendMode(BURN),e&&(GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0)),image(GrainRenderer.texture,GrainRenderer.deltaX,GrainRenderer.deltaY)}}conM
st HourglassSize={SMALL:"SMALL",MEDIUM:"MEDIUM",LARGE:"LARGE"};class HourglassRenderer{constructor(e,t,i){this.nLayer=10,this.wCanvas=e.width,this.hCanvas=e.height,this.hourglassSize=t.hourglassSize,this.poly=t.poly,this.evolvePeriod=t.evolvePeriod,this.xc=this.wCanvas/2,this.yc=this.hCanvas/2,this.x1=this.xc+random(100,300),this.y1=this.yc+random(100,300),this.x2=this.xc+random(100,300),this.y2=this.yc+random(100,300),this.x1m=this.wCanvas-this.x1,this.y1m=this.y1,this.maxR=min(this.wCanvas,this.hCanvas)/2,1==thisM
.poly?this.mainRadius=.1*this.maxR*4:this.mainRadius=.1*this.maxR*getRandomInt(1,6),i.registerIterationChangeEvent(this.onIterationChange.bind(this));let s=i.getCurrentIteration();this.onIterationChange(s),this.topline=this.polygon(this.xc,this.yc,this.poly,PI),this.bottomline=this.polygon(this.xc,this.yc,this.poly,0),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.excitement=.15*max(this.sandRects[0][2],this.sandRects[0][3]),this.dx=[],this.dy=[];for(let e=0;e<2M
*this.nLayer;++e)this.dx[e]=random(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement);this.curSecond=(new Date).getSeconds(),this.rotateAngle=0}onIterationChange(e){randomSeed(100*e+2),this.startAngle=this.getStartAngle(),this.radiuses=this.getRadiuses()}getIteration(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(M
e.getFullYear()-1970)+e.getMonth()),t}getStartAngle(){let e=getRandomInt(1,6);return PI/(2.5+.5*e)}getRadiuses(){let e,t;this.hourglassSize==HourglassSize.MEDIUM?(e=.45*this.maxR,t=.55*this.maxR):this.hourglassSize==HourglassSize.LARGE&&(e=.6*this.maxR,t=.7*this.maxR);let i=[];for(let s=0;s<this.poly;s++){let a;a=0==s?e:random(e,t),i.push(a)}return i}update(e,t){if(e.getSeconds()!=this.curSecond){this.curSecond=e.getSeconds(),this.secondTicked=!0,this.rotateAngle+=PI/30;for(let e=0;e<2*this.nLayer;++e)this.dx[e]=raM
ndom(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement)}else this.secondTicked=!1;this.topline=this.polygon(this.xc,this.yc,this.poly,PI+t),this.bottomline=this.polygon(this.xc,this.yc,this.poly,t),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.time=e,this.rotation=t}draw(e,t,i){let s=i.luminance(.3);e.fill(255,255,255,255),e.blendMode(REMOVE),e.rect(0,0,this.wCanvas,this.hCanvas),e.blendMode(BLEND),0==t?this.drawShadowNormal(eM
,s,this.time):1==t&&this.drawShadowCircle(e,s),e.fill(255,255,255,255),e.blendMode(REMOVE),this.drawShape(e,this.topline),this.drawShape(e,this.bottomline),e.blendMode(BLEND)}drawShadowNormal(e,t,i){let s=floor(i.getMinutes()/10),a=i.getMinutes()%10;e.push(),e.noFill(),e.strokeWeight(.005*this.maxR);for(let i=0;i<s;i++){let a=map(i,s,0,.2,.5),r=color(...Color.chromaToArray(t.alpha(a)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i],this.yc+this.dy[2*i],this.poly,PI)}for(let i=0;i<a;i++){let s=map(i,a,0,.M
2,.5),r=color(...Color.chromaToArray(t.alpha(s)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i+1],this.yc+this.dy[2*i+1],this.poly,0)}e.pop()}drawShadowCircle(e,t){e.push(),e.noStroke(),e.translate(this.xc,this.yc),e.rotate(PI+this.rotateAngle);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.fill(a),this.getAndDrawPolygon(e,0,2.5*this.mainRadius,this.poly,PI),this.getAndDrawPolygon(e,0,2.5*-this.mainRadius,this.poly,0),e.rotate(PI/3)}e.pop(),e.push(),e.noFill(),M
e.strokeWeight(2),e.translate(this.xc,this.yc),e.rotate(-this.rotateAngle+PI/30);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.stroke(a),this.getAndDrawPolygon(e,0,-this.mainRadius/2,this.poly,PI),this.getAndDrawPolygon(e,0,this.mainRadius/2,this.poly,0),e.rotate(-PI/3)}e.pop()}getAndDrawPolygon(e,t,i,s,a){let r=this.polygon(t,i,s,a);this.drawShape(e,r)}drawShape(e,t){e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endShape(e.CLOSE)}polygon(e,t,i,s){leM
t a=(PI/2-this.startAngle)/i,r=0,h=[];h.push({x:e,y:t});let n=this.startAngle+s;for(let s=0;s<i;s++){let i=this.radiuses[r];r+=1;let s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}r=this.poly,n=PI/2+a+s;for(let s=0;s<i;s++){r-=1;let i=this.radiuses[r],s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}return h=h.filter((e=>!isNaN(e.x)&&!isNaN(e.y))),h}getSandRects=()=>this.sandRects;getTopLine=()=>this.topline;getBottomLine=()=>this.bottomline;getSecondTicked=()=>this.secondTicked}const WavePeriod={SHORT:"SHORT",MEM
DIUM:"MEDIUM",LONG:"LONG"},WaveHeight={SHORT:"SHORT",MEDIUM:"MEDIUM",TALL:"TALL"},WaveSpeed={SLOW:"SLOW",MEDIUM:"MEDIUM",FAST:"FAST"};class SandRenderer{static N_CURVE_POINT=50;static DROPDOWN_TIME=3;constructor(e,t,i,s,a,r,h,n){this.wCanvas=e.width,this.hCanvas=e.height,this.hInit=t,this.baseLine=this.transformCoord(i),this.baseH=s,this.baseS=a,this.baseL=r,this.curSecond=0,this.waveHeight=h.waveHeight,this.wavePeriod=h.wavePeriod,this.waveSpeed=h.waveSpeed,this.evolvePeriod=h.evolvePeriod,this.nSandLayer=6,this.lM
ayers=this.getLayers(),this._h=this.baseH,this._s=this.baseS,this._l=this.baseL,this.prevIteration=null,n.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=n.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){null==this.prevIteration?this._h=this.getHue(this.baseH,0,e):this._h=this.getHue(this._h,this.prevIteration,e),this.prevIteration=e}getHue(e,t,i){let s=min(t,i),a=max(t,i);for(let r=s;r<a;r++){randomSeed(100*r+3);let s=random(1);if(this.evolvePeriod==EvolvePeriod.HOURLY?s=M
map(s,0,1,5,10):this.evolvePeriod==EvolvePeriod.DAILY?s=map(s,0,1,10,30):this.evolvePeriod==EvolvePeriod.MONTHLY&&(s=map(s,0,1,50,100)),i>t)for(e+=s;e>360;)e-=360;else for(e-=s;e<0;)e+=360}return e}update(e){this.time=e}getChroma(){return Color.getSandColorByIndex(0,this._h,this._s,this._l)}getBaseHSL(){return{h:this._h,s:this._s,l:this._l}}draw(e,t,i,s,a){this.nLayer=(this.time.getHours()+11)%12+1,t=this.transformCoord(t),e.background(0);let r=this.getChroma().luminance(.5).alpha(.25);e.background(color(...Color.cM
hromaToArray(r))),e.strokeWeight(1),this.layers.forEach((e=>{if(0==e.id)e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).luminance(.2).alpha(1);else{let t=map(e.id/this.nSandLayer,0,1,.5,.8);e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).alpha(t)}let s=map(i,0,1,e.baselineY,this.hInit),a=max(0,map(s,this.hInit,0,0,1)),r=Geometry.getPolyArea(t)*a;e.y=Geometry.getYByAreaBelow(t,r),e.y=map(e.y,0,this.hInit,.05*-this.hCanvas,this.hInit+.05*this.hCanvas)})),this.layers.forEach((i=>{s&&2*i.id<thisM
.nLayer&&this.drawDropdown(e,t,i,a)})),this.layers.forEach((t=>this.drawLayer(e,t)));let h=!1;this.time.getSeconds()!=this.curSecond&&(this.curSecond=this.time.getSeconds(),h=!0),GraphicUtils.applyMask(e,t)}transformCoord(e){let[t,i,s,a]=Geometry.getBoundingBox(e),r=t+s,h=i+a;return e.map((e=>{let n=map(e.x,t,r,-s/2,s/2)+this.wCanvas/2,o=map(e.y,i,h,0,a);return createVector(n,o)}))}getLayers(){let e=[];for(let t=0;t<this.nSandLayer;t++){let i,s=this.hInit/this.nSandLayer*t;this.waveSpeed==WaveSpeed.SLOW?i=random(.0M
08,.012):this.waveSpeed==WaveSpeed.MEDIUM?i=random(.016,.024):this.waveSpeed==WaveSpeed.FAST&&(i=random(.032,.048));let a,r,h=random(1e4);this.wavePeriod==WavePeriod.SHORT?a=random(2.7,3):this.wavePeriod==WavePeriod.MEDIUM?a=random(1.8,2):this.wavePeriod==WavePeriod.LONG&&(a=random(1.2,1.3)),this.waveHeight==WaveHeight.SHORT?r=this.hCanvas/30:this.waveHeight==WaveHeight.MEDIUM?r=this.hCanvas/24:this.waveHeight==WaveHeight.TALL&&(r=this.hCanvas/18);let n={mode:"DELTA_Y",deltaY:(e,t)=>map(sin(e*a*TAU+t*i+h),-1,1,-r,rM
)};e.push({id:t,baselineY:s,height:r,speed:i,seed:h,shape:n,stripe:{distance:random(.04*this.hInit,.08*this.hInit),height:random(.02*this.hInit,.04*this.hInit),stretch:random(1.2,1.5),colorTransform:e=>e.brighten(1.2)}})}return e}drawDropdown=(e,t,i,s)=>{let{c:a,shape:r}=i,h=Geometry.getBoundingBox(t)[3],n=this.time.getTime()/(1e3/60),o=createVector(this.wCanvas/2,0),l=createVector(this.wCanvas/2,h),d=[];for(let e=0;e<50;e++){let t=e/49,i=o.copy(),{x:s,y:a}=Vector.lerp(i,l,t);s+=r.deltaY(t,-n/5)*map(e,0,50,.1,1.5),M
d.push(createVector(s,a))}let m=map(s,0,SandRenderer.DROPDOWN_TIME,0,50);m=min(m,50),e.push(),e.noStroke(),e.fill(color(...Color.chromaToArray(a)));for(let t=0;t<m;t++)e.square(d[t].x,d[t].y,.004*this.hCanvas);e.pop()};drawLayer=(e,t)=>{if(2*t.id<this.nLayer){let i=this.getLayerPointline(t);this.drawWave(e,i,t),this.drawPattern(e,i,t,this.hCanvas/8,this.hCanvas/60),2*t.id+1<this.nLayer&&this.drawStripe(e,i,t)}};getLayerPointline=e=>{let{y:t,shape:i}=e,s=[],a=this.time.getTime()/(1e3/60);if("DELTA_Y"==i.mode){let e=M
createVector(0,t),r=createVector(this.wCanvas,t);for(let t=0;t<SandRenderer.N_CURVE_POINT;t++){let h=t/(SandRenderer.N_CURVE_POINT-1),n=e.copy(),{x:o,y:l}=Vector.lerp(n,r,h);l+=i.deltaY(h,a/5),s.push(createVector(o,l))}}else s=[start,end];return s};drawWave=(e,t,i)=>{let{c:s}=i;e.noStroke(),e.fill(color(...Color.chromaToArray(s))),e.beginShape(),e.vertex(0,this.hCanvas);for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.vertex(this.wCanvas,this.hCanvas),e.endShape()};drawPattern=(e,t,i,s,a)=>{e.noStroke();for(letM
 i=a;i<=s;i+=a){let a=map((i-1)/(s-1),0,1,.2,0);e.fill(0,255*a),e.beginShape();for(let s=0;s<t.length;s++)e.vertex(t[s].x,t[s].y+i);for(let s=t.length-1;s>=0;s--)e.vertex(t[s].x,t[s].y+(i-1));e.endShape()}};drawStripe=(e,t,i)=>{let{c:s,stripe:{distance:a,height:r,stretch:h,colorTransform:n}}=i;e.noStroke();let o=n(s),l=color(...Color.chromaToArray(o)),d=s.alpha();l.setAlpha(255*d),e.fill(l),e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x*h,t[i].y+a);for(let i=t.length-1;i>=0;i--)e.vertex(t[i].x*h,t[i].y+aM
+r);e.endShape()}}new Q5("global");let wCanvas,hCanvas,canvas,timeController,hourglass,layerBackground,layerSandTop,layerSandBottom,layerHourglass,renBackground,renSandTop,renSandBottom,renHourglass,renPostProcessing,traits,prevSpeed,showMode,currentTime,maxFps=60;setup=()=>{setupRandom(),setupTraits(),setupSketch()},setupRandom=()=>{let e=p5seed;randomSeed(e),noiseSeed(e)},setupTraits=()=>{let e=getRandomInt(1,10),t=getRandomItem([[HourglassSize.MEDIUM,70],[HourglassSize.LARGE,30]]),i=getRandomItem([[WaveHeight.SHM
ORT,1],[WaveHeight.MEDIUM,1],[WaveHeight.TALL,1]]),s=getRandomItem([[WavePeriod.SHORT,1],[WavePeriod.MEDIUM,1],[WavePeriod.LONG,1]]),a=getRandomItem([[WaveSpeed.SLOW,1],[WaveSpeed.MEDIUM,1],[WaveSpeed.FAST,1]]),r=getRandomItem([[EvolvePeriod.HOURLY,60],[EvolvePeriod.DAILY,35],[EvolvePeriod.MONTHLY,5]]),h=getRandomItem([[1,5],[2,20],[3,50],[4,20],[5,5]]),n=getPatternOrder(),o=getRandomItem(AngelNumber.map((e=>[e[0],1]))),l=getRandomItem(BlissLimit.map((e=>[e[0],e[2]])));traits={waveHeight:i,wavePeriod:s,waveSpeed:a,M
evolvePeriod:r,color:e,hourglassSize:t,poly:h,patternOrder:n,angelNumber:o,blissLimit:l},console.log(traits)},getPatternOrder=()=>{let e=[],t=[1,2,3,4],i=getRandomItem([[1,.6],[2,.1],[3,.15],[4,.15]]);e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);for(let s=0;s<3;s++)i=random(t),e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);return e},setupSketch=()=>{frameRate(maxFps),frameCount=0,wCanvas=windowWidth,hCanvas=windowHeight,canvas=createCanvas(wCanvas,hCanvas),showMode=0,timeControM
ller=new TimeController(traits),hourglass=new Hourglass(traits,timeController);let e=getRandomInt(0,361),t=getRandomInt(30,101),i=getRandomInt(50,101);Color.setColorMode(traits.color),layerBackground=createGraphics(wCanvas,hCanvas),renBackground=new BackgroundRenderer(layerBackground,e,t,i,traits,timeController),layerHourglass=createGraphics(wCanvas,hCanvas),renHourglass=new HourglassRenderer(layerHourglass,traits,timeController);let s=renHourglass.getSandRects(wCanvas,hCanvas),a=renHourglass.getTopLine(),r=renHourM
glass.getBottomLine(),h=createVector(s[0][2],s[0][3]).mag();layerSandTop=createGraphics(h,h),layerSandBottom=createGraphics(h,h),renSandTop=new SandRenderer(layerSandTop,s[0][3],a,e,t,i,traits,timeController),renSandBottom=new SandRenderer(layerSandBottom,s[0][3],r,e,t,i,traits,timeController),imgSandTop=createGraphics(wCanvas,hCanvas),imgSandBottom=createGraphics(wCanvas,hCanvas),renPostProcessing=new PostProcessing(wCanvas,hCanvas,traits),GrainRenderer.setup(wCanvas,hCanvas),prevSpeed=1},draw=()=>{let e=0==showMoM
de||1==showMode,t=0==showMode||2==showMode,{time:i,state:s,speed:a,paused:r,isLive:h,realDelta:n}=timeController.step();hourglass.update(i),renSandTop.update(i),renSandBottom.update(i),renBackground.update(i);let o=4==s?1:0,{top:l,rotation:d,flipped:m,timeSinceRotation:p}=hourglass.getState();renHourglass.update(i,d);let g=renSandTop.getChroma(),c=renSandTop.getBaseHSL();if(background(255),renBackground.draw(layerBackground,i,s,c,e),image(layerBackground,0,0),t){let e=renHourglass.getSandRects();renHourglass.draw(lM
ayerHourglass,o,g),renSandTop.draw(layerSandTop,renHourglass.getTopLine(),1-l,!m,p),renSandBottom.draw(layerSandBottom,renHourglass.getBottomLine(),l,m,p),image(layerSandTop,...e[0],(layerSandTop.width-e[0][2])/2,0,e[0][2],e[0][3]),image(layerSandBottom,...e[1],(layerSandBottom.width-e[1][2])/2,0,e[1][2],e[1][3]),image(layerHourglass,0,0)}let u=renHourglass.getSecondTicked();GrainRenderer.applyGrainToMainCanvas(u),renPostProcessing.updateFilter(a,r,h),prevSpeed=a,renPostProcessing.applyToMainCanvas(),currentTime=i}M
,keyPressed=()=>{"+"!=key&&"="!=key||timeController.setFasterSpeed(),"-"==key&&timeController.setSlowerSpeed(),keyCode==LEFT_ARROW&&timeController.jumpBackward(),keyCode==RIGHT_ARROW&&timeController.jumpForward(),keyCode==ESCAPE&&timeController.resumeLive()," "==key&&timeController.togglePause(),"T"!=key&&"t"!=key||(showMode=(showMode+1)%3),"S"!=key&&"s"!=key||saveCanvasAtCurrentTime()},saveCanvasAtCurrentTime=()=>{let e=60*new Date(currentTime).getTimezoneOffset()*1e3,t=new Date(currentTime-e).toISOString().slice(M
0,-1);save(t+".png")};const EvolvePeriod={HOURLY:"HOURLY",DAILY:"DAILY",MONTHLY:"MONTHLY"},AngelNumber=[["11/111/1111",["1:1","1:11","11:1","11:11"],["1/1","11/1","1/11","11/11"]],["22/222/2222",["2:2","2:22","22:2","22:22"],["2/2","22/2"]],["33/333/3333",["3:3","3:33"],["3/3"]],["44/444/4444",["4:4","4:44"],["4/4"]],["55/555/555",["5:5","5:55"],["5/5"]],["66/666/6666",["6:6"],["6/6"]],["77/777/7777",["7:7"],["7/7"]],["88/888/8888",["8:8"],["8/8"]],["99/999/9999",["9:9"],["9/9"]],["1212",["12:12"],["12/12"]],["399/M
339",["3:39"],["3/3","9/3","3/9","9/9"]],["83/8833",["8:3"],["8/3","3/8"]],["72/7722",["7:2"],["7/2","2/7"]],["633/6363",["6:3","6:33"],["6/3","3/6"]],["588",["5:8","8:58"],["8/5","5/8","8/8"]],["446/4646",["4:6","4:46"],["4/4","6/4","4/6"]],["000",[],[]],["1010",["10:10"],["10/10"]],["1017",["10:17","17:10"],["17/10"]],["1022",["10:22","22:10"],["22/10"]],["1313",["13:13"],["1/3","3/1"]],["1444",["14:44"],["4/1","1/4","4/4"]],["2020",["20:20"],["2/2"]]],BlissLimit=[["Forever",-1,3],["2",2,40],["5",5,30],["10",10,2M
0],["20",20,7]];class TimeController{constructor(e){this.speeds=[-3600,-60,-10,-3,1,3,10,60,3600],this.defaultSpeedLevel=4,this.evolvePeriod=e.evolvePeriod,this.angelNumber=e.angelNumber,this.blissLimit=e.blissLimit,this.timestamp=Date.now(),this.prevRealTimestamp=this.timestamp,this.paused=!1,this.speedLevel=this.defaultSpeedLevel;let t=new Date(this.timestamp);this.iteration=this.getIteration(t),this.prevBliss=this.getPrevBliss(t,1),this.iterationChangeHandlers=[]}getCurrentIteration=()=>this.iteration;getIteratiM
on(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(e.getFullYear()-1970)+e.getMonth()),t}registerIterationChangeEvent(e){this.iterationChangeHandlers.push(e)}unregisterIterationChangeEvent(e){this.iterationChangeHandlers=this.iterationChangeHandlers.filter((t=>t!=e))}step(){let e=Date.now(),t=e-this.prevRealTimestamp,i=this.speeds[this.speedLevel],sM
=this.paused?0:i;this.timestamp+=t*s,this.timestamp=this.limitTimestamp(this.timestamp);let a=new Date(this.timestamp),r=this.getStateFromTime(a);this.updateIteration(a),this.prevRealTimestamp=e;let h=this.timestamp==e;return{time:a,state:r,speed:i,paused:this.paused,isLive:h,realDelta:t}}updateIteration(e){let t=this.getIteration(e);t!=this.iteration&&(this.iterationChangeHandlers.forEach((e=>e(t))),this.iteration=t)}getStateFromTime(e){let t,i,s=e.getHours(),a=e.getMinutes(),r=e.getDate(),h=e.getMonth()+1;if("000M
"==this.angelNumber)i=0==s&&0==a,t=i&&1==r&&1==h;else{let e=`${s}:${a}`,n=`${h}/${r}`,o=AngelNumber.filter((e=>e[0]==this.angelNumber))[0];i=o[1].includes(e),t=o[2].includes(n)}return i&&t?4:t?3:i?2:1}limitTimestamp(e){let t=BlissLimit.filter((e=>e[0]==this.blissLimit))[0][1],i=Date.now(),s=this.getPrevBliss(new Date,t);return e>i?(e=i,this.resetSpeed()):e<s&&(e=s,this.resetSpeed()),e}getPrevBliss(e,t){if(-1==t)return 0;let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i-=6e4;let e=this.getStateFrM
omTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}getNextBliss(e,t){if(-1==t)return Date.now();let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i+=6e4;let e=this.getStateFromTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}togglePause(){this.paused=!this.paused}setFasterSpeed(){this.speedLevel=min(this.speedLevel+1,this.speeds.length-1),this.paused=!1}setSlowerSpeed(){this.speedLevel=max(this.speedLevel-1,0),this.paused=!1}jumpForward(){let e=new Date(this.timestamp);this.timestamp=this.getNextBliss(eM
,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}jumpBackward(){let e=new Date(this.timestamp);this.timestamp=this.getPrevBliss(e,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}resetSpeed(){this.speedLevel=this.defaultSpeedLevel,this.paused=!1}resumeLive(){this.timestamp=Date.now(),this.resetSpeed()}}
qhttp://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="122M
5407CAA4D22E3A20AA7775173442A" xmpMM:DocumentID="xmp.did:7BE1CF2DABC511EDA3C8ED56F4982731" xmpMM:InstanceID="xmp.iid:7BE1CF2CABC511EDA3C8ED56F4982731" xmp:CreatorTool="Adobe Photoshop 2022 Windows"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:370214b9-d8fe-4949-aa5e-d6976be762db" stRef:documentID="xmp.did:370214b9-d8fe-4949-aa5e-d6976be762db"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFM
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Bj@=:BNB.BNB:bnb1f9uwwwz2ra2v8flwzq2fpueuj9xlpxllqekepj:97906070::0
Bj@=:ETH.ETH:0xc8671Ee0cD530a0baC413c90e3Baa9D7A3203fea:80467037::0
<svg viewBox="0 0 16 16" version="1.2" shape-rendering="crispEdges" xmlns="http://www.w3.org/2000/svg"><path fill="#000" d="M0 0h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 1h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 2h1v1H0zm1 0h1v1H1zm1 0h1v1H2M
z"></path><path fill="#FFF" d="M3 2h1v1H3zm1 0h1v1H4zm1 0h1v1H5z"></path><path fill="#000" d="M6 2h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9z"></path><path fill="#FFF" d="M10 2h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 2h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 3h1v1H0zm1 0h1v1H1z"></path><path fill="#FFF" d="M2 3h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6z"></path><path fill="#000" d="M7 3h1v1H7zm1 0h1v1H8z"></path><path fill="#FFF" d="M9 3h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM
"></path><path fill="#000" d="M14 3h1v1h-1zm1 0h1v1h-1zM0 4h1v1H0zm1 0h1v1H1z"></path><path fill="#FFF" d="M2 4h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6z"></path><path fill="#000" d="M7 4h1v1H7zm1 0h1v1H8z"></path><path fill="#FFF" d="M9 4h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M14 4h1v1h-1zm1 0h1v1h-1zM0 5h1v1H0z"></path><path fill="#FFF" d="M1 5h1v1H1z"></path><path fill="#000" d="M2 5h1v1H2z"></path><path fill="#FFF" d="M3 5h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1M
v1H6zm1 0h1v1H7zm1 0h1v1H8z"></path><path fill="#000" d="M9 5h1v1H9z"></path><path fill="#FFF" d="M10 5h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M15 5h1v1h-1zM0 6h1v1H0zm1 0h1v1H1z"></path><path fill="#FFF" d="M2 6h1v1H2z"></path><path fill="#000" d="M3 6h1v1H3zm1 0h1v1H4z"></path><path fill="#FFF" d="M5 6h1v1H5zm1 0h1v1H6zm1 0h1v1H7z"></path><path fill="#000" d="M8 6h1v1H8z"></path><path fill="#FFF" d="M9 6h1v1H9z"></path><path fill="#000" d="M10 6h1v1h-1zm1 0h1v1h-1z"><M
/path><path fill="#FFF" d="M12 6h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M15 6h1v1h-1zM0 7h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4z"></path><path fill="#FFF" d="M5 7h1v1H5zm1 0h1v1H6zm1 0h1v1H7z"></path><path fill="#000" d="M8 7h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 8h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4z"></path><path fill="#FFF" d="M5 8h1v1H5zm1 0h1v1H6zm1 0h1v1H7z"></path><path fill="#000" d="M8 8h1v1H8zm1 0h1v1H9zmM
1 0h1v1h-1z"></path><path fill="#FFF" d="M11 8h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M0 9h1v1H0z"></path><path fill="#FFF" d="M1 9h1v1H1z"></path><path fill="#000" d="M2 9h1v1H2zm1 0h1v1H3z"></path><path fill="#FFF" d="M4 9h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8z"></path><path fill="#000" d="M9 9h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#FFF" d="M12 9h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M15 9h1v1h-1zM0 10h1v1H0z"></path><paM
th fill="#FFF" d="M1 10h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M15 10h1v1h-1zM0 11h1v1H0zm1 0h1v1H1z"></path><path fill="#FFF" d="M2 11h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6z"></path><path fill="#000" d="M7 11h1v1H7zm1 0h1v1H8z"></path><path fill="#FFF" d="M9 11h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M14 11h1v1h-1zm1M
 0h1v1h-1zM0 12h1v1H0zm1 0h1v1H1z"></path><path fill="#FFF" d="M2 12h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6z"></path><path fill="#000" d="M7 12h1v1H7zm1 0h1v1H8z"></path><path fill="#FFF" d="M9 12h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M14 12h1v1h-1zm1 0h1v1h-1zM0 13h1v1H0zm1 0h1v1H1zm1 0h1v1H2z"></path><path fill="#FFF" d="M3 13h1v1H3zm1 0h1v1H4zm1 0h1v1H5z"></path><path fill="#000" d="M6 13h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9z"></path><path fill="#FFF" d=M
"M10 13h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 13h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 14h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 15h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path></svg>h!
<svg viewBox="0 0 16 16" version="1.2" shape-rendering="crispEdges" xmlns="http://www.w3.org/2000/svg"><path fill="#000" d="M0 0h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 1h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 2h1v1H0zm1 0h1v1H1zm1 0h1v1H2M
zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5z"></path><path fill="#FFF" d="M6 2h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1z"></path><path fill="#000" d="M11 2h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 3h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4z"></path><path fill="#FFF" d="M5 3h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M12 3h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 4h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3z"></path><path fill="#M
FFF" d="M4 4h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 4h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 5h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3z"></path><path fill="#FFF" d="M4 5h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7z"></path><path fill="#000" d="M8 5h1v1H8z"></path><path fill="#FFF" d="M9 5h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 5h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 6h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1vM
1H3z"></path><path fill="#FFF" d="M4 6h1v1H4zm1 0h1v1H5zm1 0h1v1H6z"></path><path fill="#000" d="M7 6h1v1H7z"></path><path fill="#FFF" d="M8 6h1v1H8z"></path><path fill="#000" d="M9 6h1v1H9z"></path><path fill="#FFF" d="M10 6h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 6h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 7h1v1H0zm1 0h1v1H1zm1 0h1v1H2z"></path><path fill="#FFF" d="M3 7h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8z"></path><path fill="#000" d="M9 7h1v1H9z"></path><path fill="#FFF"M
 d="M10 7h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 7h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 8h1v1H0zm1 0h1v1H1zm1 0h1v1H2z"></path><path fill="#FFF" d="M3 8h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7z"></path><path fill="#000" d="M8 8h1v1H8z"></path><path fill="#FFF" d="M9 8h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 8h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 9h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3z"></path><path fill="#FFF" d="M4 9h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1M
 0h1v1H7z"></path><path fill="#000" d="M8 9h1v1H8z"></path><path fill="#FFF" d="M9 9h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 9h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 10h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3z"></path><path fill="#FFF" d="M4 10h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 10h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 11h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3z"></path><path fill="#FFF" d="M4 11M
h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7z"></path><path fill="#000" d="M8 11h1v1H8z"></path><path fill="#FFF" d="M9 11h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 11h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 12h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3z"></path><path fill="#FFF" d="M4 12h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M13 12h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 13h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3z"M
></path><path fill="#FFF" d="M4 13h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1z"></path><path fill="#000" d="M12 13h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 14h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3z"></path><path fill="#FFF" d="M4 14h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7zm1 0h1v1H8zm1 0h1v1H9zm1 0h1v1h-1z"></path><path fill="#000" d="M11 14h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zM0 15h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3z"></path><path fill="#FFF" d=L
"M4 15h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7z"></path><path fill="#000" d="M8 15h1v1H8zm1 0h1v1H9zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1zm1 0h1v1h-1z"></path></svg>h!
CjA=:BNB.BNB:bnb1vvtcfw4gkau7xjmqckd5ss5eugqdhel7prgeey:7276376:te:0
CjA=:BNB.BNB:bnb162r8s0l79n2xhu7duq4rzy9df439wpz7cq86rd:1542558:te:0
CjA=:BNB.BNB:bnb1dzcq4vkfmglnkrghh9auv5sgvx55yp6m6jj7yu:2516845:te:0
CjA=:BNB.BNB:bnb1avxm0yquk4jluj30tps2sgfsaa6xg3dmeacudy:1908395:te:0
DjB=:BNB.BNB:bnb1ufm0tznlsnqkv7zcgxnw9q3z38nj48j4z4v504:63512230:te:0
EjC=:BNB.BNB:bnb1ytgshlf0x252chj37ql73zht7n2x3fyc3hzn2k:209599895:te:0
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
FjDOUT:56398BA7BFCCD3FB0288102957C88B4ECB9AFC90ED4AFB810065C0C20CBD3991
text/html;charset=utf-8
      display: block;
    <meta charset="utf-8" />
    let seed=window.location.href.split('/').find(t=>t.includes('i0'));
    if (seed == null) {
      seed = new URLSearchParams(window.location.search).get("seed");
      let pattern = "seed=";
      for(let i = 0; i < seed.length - pattern.length; M
        if (seed.substring(i, i + pattern.length) == pattern) {
          seed = seed.substring(i + pattern.length);
    function cyrb128($) {
      let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
      for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
      return _ = Math.imul(i ^ _ >>> 18,M
 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
    function sfc32($, _, u, i) {
      return function () {
        u >>>= 0, i >>>= 0;
        var l = ($ >>>= 0) + (_ >>>= 0) | 0;
        return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
 sfc32(...cyrb128(seed));
    let p5seed = Math.floor(mathRand() * Number.MAX_SAFE_INTEGER);
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).chroma=e()}(this,function(){"use strict";for(var r=function(r,e,t){return void 0===e&&(e=0),void 0===t&&(t=1),r<e?e:r>t?t:r},e=r,t={},n=0,a=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];n<a.length;nM
+=1){var f=a[n];t["[object "+f+"]"]=f.toLowerCase()}var o=function(r){return t[Object.prototype.toString.call(r)]||"object"},c=o,u=o,i=Math.PI,l={clip_rgb:function(r){r._clipped=!1,r._unclipped=r.slice(0);for(var t=0;t<=3;t++)t<3?((r[t]<0||r[t]>255)&&(r._clipped=!0),r[t]=e(r[t],0,255)):3===t&&(r[t]=e(r[t],0,1));return r},limit:r,type:o,unpack:function(r,e){return void 0===e&&(e=null),r.length>=3?Array.prototype.slice.call(r):"object"==c(r[0])&&e?e.split("").filter(function(e){return void 0!==r[0][e]}).map(function(M
e){return r[0][e]}):r[0]},last:function(r){if(r.length<2)return null;var e=r.length-1;return"string"==u(r[e])?r[e].toLowerCase():null},PI:i,TWOPI:2*i,PITHIRD:i/3,DEG2RAD:i/180,RAD2DEG:180/i},d={format:{},autodetect:[]},h=l.last,b=l.clip_rgb,s=l.type,p=d,g=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if("object"===s(r[0])&&r[0].constructor&&r[0].constructor===this.constructor)return r[0];var t=h(r),n=!1;if(!t){n=!0,p.sorted||(p.autodetect=p.autodetect.sort(function(r,e){return e.p-r.p}),p.sortedM
=!0);for(var a=0,f=p.autodetect;a<f.length;a+=1){var o=f[a];if(t=o.test.apply(o,r))break}}if(!p.format[t])throw new Error("unknown format: "+r);var c=p.format[t].apply(null,n?r:r.slice(0,-1));this._rgb=b(c),3===this._rgb.length&&this._rgb.push(1)};g.prototype.toString=function(){return"function"==s(this.hex)?this.hex():"["+this._rgb.join(",")+"]"};var v=g,y=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(y.Color,[null].concat(r)))};y.Color=v,y.version="2.4.M
2";var m=y,k=l.unpack,w=Math.max,M=l.unpack,_=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=M(r,"cmyk"))[0],n=r[1],a=r[2],f=r[3],o=r.length>4?r[4]:1;return 1===f?[0,0,0,o]:[t>=1?0:255*(1-t)*(1-f),n>=1?0:255*(1-n)*(1-f),a>=1?0:255*(1-a)*(1-f),o]},N=m,F=v,x=d,P=l.unpack,R=l.type,G=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=k(r,"rgb"),n=t[0],a=t[1],f=t[2],o=1-w(n/=255,w(a/=255,f/=255)),c=o<1?1/(1-o):0;return[(1-n-o)*c,(1-a-o)*c,(1-f-o)*c,o]};F.prototype.cmyk=fuM
nction(){return G(this._rgb)},N.cmyk=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(F,[null].concat(r,["cmyk"])))},x.format.cmyk=_,x.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=P(r,"cmyk"),"array"===R(r)&&4===r.length)return"cmyk"}});var j=l.unpack,E=l.last,O=function(r){return Math.round(100*r)/100},q=l.unpack,B=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=q(r,"rgba"))[0],nM
=r[1],a=r[2];t/=255,n/=255,a/=255;var f,o,c=Math.min(t,n,a),u=Math.max(t,n,a),i=(u+c)/2;return u===c?(f=0,o=Number.NaN):f=i<.5?(u-c)/(u+c):(u-c)/(2-u-c),t==u?o=(n-a)/(u-c):n==u?o=2+(a-t)/(u-c):a==u&&(o=4+(t-n)/(u-c)),(o*=60)<0&&(o+=360),r.length>3&&void 0!==r[3]?[o,f,i,r[3]]:[o,f,i]},I=l.unpack,A=l.last,D=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=j(r,"hsla"),n=E(r)||"lsa";return t[0]=O(t[0]||0),t[1]=O(100*t[1])+"%",t[2]=O(100*t[2])+"%","hsla"===n||t.length>3&&t[3]<1?(t[3]=t.length>3?t[M
3]:1,n="hsla"):t.length=3,n+"("+t.join(",")+")"},C=B,Y=Math.round,S=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=I(r,"rgba"),n=A(r)||"rgb";return"hsl"==n.substr(0,3)?D(C(t),n):(t[0]=Y(t[0]),t[1]=Y(t[1]),t[2]=Y(t[2]),("rgba"===n||t.length>3&&t[3]<1)&&(t[3]=t.length>3?t[3]:1,n="rgba"),n+"("+t.slice(0,"rgb"===n?3:4).join(",")+")")},L=l.unpack,$=Math.round,T=function(){for(var r,e=[],t=arguments.length;t--;)e[t]=arguments[t];var n,a,f,o=(e=L(e,"hsl"))[0],c=e[1],u=e[2];if(0===c)n=a=f=255*u;elsM
e{var i=[0,0,0],l=[0,0,0],d=u<.5?u*(1+c):u+c-u*c,h=2*u-d,b=o/360;i[0]=b+1/3,i[1]=b,i[2]=b-1/3;for(var s=0;s<3;s++)i[s]<0&&(i[s]+=1),i[s]>1&&(i[s]-=1),6*i[s]<1?l[s]=h+6*(d-h)*i[s]:2*i[s]<1?l[s]=d:3*i[s]<2?l[s]=h+(d-h)*(2/3-i[s])*6:l[s]=h;n=(r=[$(255*l[0]),$(255*l[1]),$(255*l[2])])[0],a=r[1],f=r[2]}return e.length>3?[n,a,f,e[3]]:[n,a,f,1]},K=T,W=d,X=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,Z=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,H=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\M
d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,z=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,U=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,V=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,J=Math.round,Q=function(r){var e;if(r=r.toLowerCase().trim(),W.format.named)try{return W.format.named(r)}catch(r){}if(e=r.match(X)){for(var t=e.slice(1,4),n=0;n<3;n++)t[n]=+t[n];returnM
 t[3]=1,t}if(e=r.match(Z)){for(var a=e.slice(1,5),f=0;f<4;f++)a[f]=+a[f];return a}if(e=r.match(H)){for(var o=e.slice(1,4),c=0;c<3;c++)o[c]=J(2.55*o[c]);return o[3]=1,o}if(e=r.match(z)){for(var u=e.slice(1,5),i=0;i<3;i++)u[i]=J(2.55*u[i]);return u[3]=+u[3],u}if(e=r.match(U)){var l=e.slice(1,4);l[1]*=.01,l[2]*=.01;var d=K(l);return d[3]=1,d}if(e=r.match(V)){var h=e.slice(1,4);h[1]*=.01,h[2]*=.01;var b=K(h);return b[3]=+e[4],b}};Q.test=function(r){return X.test(r)||Z.test(r)||H.test(r)||z.test(r)||U.test(r)||V.test(r)M
};var rr=m,er=v,tr=d,nr=l.type,ar=S,fr=Q;er.prototype.css=function(r){return ar(this._rgb,r)},rr.css=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(er,[null].concat(r,["css"])))},tr.format.css=fr,tr.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===nr(r)&&fr.test(r))return"css"}});var or=v,cr=m,ur=l.unpack;d.format.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e]M
;var t=ur(r,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t},cr.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(or,[null].concat(r,["gl"])))},or.prototype.gl=function(){var r=this._rgb;return[r[0]/255,r[1]/255,r[2]/255,r[3]]};var ir=l.unpack,lr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=ir(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Math.min(a,f,o),u=Math.max(a,f,o),i=u-c,l=100*i/255,d=c/(255-i)*100;return 0===i?t=Number.NaN:(a===u&&(t=M
(f-o)/i),f===u&&(t=2+(o-a)/i),o===u&&(t=4+(a-f)/i),(t*=60)<0&&(t+=360)),[t,l,d]},dr=l.unpack,hr=Math.floor,br=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=dr(o,"hcg"))[0],h=o[1],b=o[2];b*=255;var s=255*h;if(0===h)u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=hr(d/=60),g=d-p,v=b*(1-h),y=v+s*(1-g),m=v+s*g,k=v+s;switch(p){case 0:u=(r=[k,m,v])[0],i=r[1],l=r[2];break;case 1:u=(e=[y,k,v])[0],i=e[1],l=e[2];break;case 2:u=(t=[v,k,m])[0],i=t[1],l=t[2];break;cM
ase 3:u=(n=[v,y,k])[0],i=n[1],l=n[2];break;case 4:u=(a=[m,v,k])[0],i=a[1],l=a[2];break;case 5:u=(f=[k,v,y])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},sr=l.unpack,pr=l.type,gr=m,vr=v,yr=d,mr=lr;vr.prototype.hcg=function(){return mr(this._rgb)},gr.hcg=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(vr,[null].concat(r,["hcg"])))},yr.format.hcg=br,yr.autodetect.push({p:1,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=sr(r,"M
hcg"),"array"===pr(r)&&3===r.length)return"hcg"}});var kr=l.unpack,wr=l.last,Mr=Math.round,_r=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=kr(r,"rgba"),n=t[0],a=t[1],f=t[2],o=t[3],c=wr(r)||"auto";void 0===o&&(o=1),"auto"===c&&(c=o<1?"rgba":"rgb");var u="000000"+((n=Mr(n))<<16|(a=Mr(a))<<8|(f=Mr(f))).toString(16);u=u.substr(u.length-6);var i="0"+Mr(255*o).toString(16);switch(i=i.substr(i.length-2),c.toLowerCase()){case"rgba":return"#"+u+i;case"argb":return"#"+i+u;default:return"#"+u}},Nr=/M
^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Fr=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,xr=function(r){if(r.match(Nr)){4!==r.length&&7!==r.length||(r=r.substr(1)),3===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]);var e=parseInt(r,16);return[e>>16,e>>8&255,255&e,1]}if(r.match(Fr)){5!==r.length&&9!==r.length||(r=r.substr(1)),4===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);var t=parseInt(r,16);return[t>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100]}throw new Error("unknown hex coM
lor: "+r)},Pr=m,Rr=v,Gr=l.type,jr=d,Er=_r;Rr.prototype.hex=function(r){return Er(this._rgb,r)},Pr.hex=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Rr,[null].concat(r,["hex"])))},jr.format.hex=xr,jr.autodetect.push({p:4,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===Gr(r)&&[3,4,5,6,7,8,9].indexOf(r.length)>=0)return"hex"}});var Or=l.unpack,qr=l.TWOPI,Br=Math.min,Ir=Math.sqrt,Ar=Math.acos,Dr=functionM
(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=Or(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Br(a/=255,f/=255,o/=255),u=(a+f+o)/3,i=u>0?1-c/u:0;return 0===i?t=NaN:(t=(a-f+(a-o))/2,t/=Ir((a-f)*(a-f)+(a-o)*(f-o)),t=Ar(t),o>f&&(t=qr-t),t/=qr),[360*t,i,u]},Cr=l.unpack,Yr=l.limit,Sr=l.TWOPI,Lr=l.PITHIRD,$r=Math.cos,Tr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Cr(r,"hsi"))[0],o=r[1],c=r[2];return isNaN(f)&&(f=0),isNaN(o)&&(o=0),f>360&&(f-=360),f<0&&(f+=360),(f/=360)<1/3?n=1-M
((a=(1-o)/3)+(t=(1+o*$r(Sr*f)/$r(Lr-Sr*f))/3)):f<2/3?a=1-((t=(1-o)/3)+(n=(1+o*$r(Sr*(f-=1/3))/$r(Lr-Sr*f))/3)):t=1-((n=(1-o)/3)+(a=(1+o*$r(Sr*(f-=2/3))/$r(Lr-Sr*f))/3)),[255*(t=Yr(c*t*3)),255*(n=Yr(c*n*3)),255*(a=Yr(c*a*3)),r.length>3?r[3]:1]},Kr=l.unpack,Wr=l.type,Xr=m,Zr=v,Hr=d,zr=Dr;Zr.prototype.hsi=function(){return zr(this._rgb)},Xr.hsi=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Zr,[null].concat(r,["hsi"])))},Hr.format.hsi=Tr,Hr.autodetect.push({pM
:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Kr(r,"hsi"),"array"===Wr(r)&&3===r.length)return"hsi"}});var Ur=l.unpack,Vr=l.type,Jr=m,Qr=v,re=d,ee=B;Qr.prototype.hsl=function(){return ee(this._rgb)},Jr.hsl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Qr,[null].concat(r,["hsl"])))},re.format.hsl=T,re.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ur(r,"hsl"),"array"===Vr(r)M
&&3===r.length)return"hsl"}});var te=l.unpack,ne=Math.min,ae=Math.max,fe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=te(r,"rgb"))[0],o=r[1],c=r[2],u=ne(f,o,c),i=ae(f,o,c),l=i-u;return a=i/255,0===i?(t=Number.NaN,n=0):(n=l/i,f===i&&(t=(o-c)/l),o===i&&(t=2+(c-f)/l),c===i&&(t=4+(f-o)/l),(t*=60)<0&&(t+=360)),[t,n,a]},oe=l.unpack,ce=Math.floor,ue=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=oe(o,"hsv"))[0],h=o[1],b=o[2];if(b*=255,0===h)M
u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var s=ce(d/=60),p=d-s,g=b*(1-h),v=b*(1-h*p),y=b*(1-h*(1-p));switch(s){case 0:u=(r=[b,y,g])[0],i=r[1],l=r[2];break;case 1:u=(e=[v,b,g])[0],i=e[1],l=e[2];break;case 2:u=(t=[g,b,y])[0],i=t[1],l=t[2];break;case 3:u=(n=[g,v,b])[0],i=n[1],l=n[2];break;case 4:u=(a=[y,g,b])[0],i=a[1],l=a[2];break;case 5:u=(f=[b,g,v])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},ie=l.unpack,le=l.type,de=m,he=v,be=d,se=fe;he.prototype.hsv=function(){return se(this._rgb)},de.hsv=M
function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(he,[null].concat(r,["hsv"])))},be.format.hsv=ue,be.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=ie(r,"hsv"),"array"===le(r)&&3===r.length)return"hsv"}});var pe={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ge=pe,ve=l.unpack,ye=Math.pow,me=function(r){return(r/=255)<=.04045?r/12.92:ye((r+.055)/1.055,2.4)},ke=function(M
r){return r>ge.t3?ye(r,1/3):r/ge.t2+ge.t0},we=function(r,e,t){return r=me(r),e=me(e),t=me(t),[ke((.4124564*r+.3575761*e+.1804375*t)/ge.Xn),ke((.2126729*r+.7151522*e+.072175*t)/ge.Yn),ke((.0193339*r+.119192*e+.9503041*t)/ge.Zn)]},Me=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=ve(r,"rgb"),n=t[0],a=t[1],f=t[2],o=we(n,a,f),c=o[0],u=o[1],i=116*u-16;return[i<0?0:i,500*(c-u),200*(u-o[2])]},_e=pe,Ne=l.unpack,Fe=Math.pow,xe=function(r){return 255*(r<=.00304?12.92*r:1.055*Fe(r,1/2.4)-.055)},Pe=funM
ction(r){return r>_e.t1?r*r*r:_e.t2*(r-_e.t0)},Re=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Ne(r,"lab"))[0],o=r[1],c=r[2];return n=(f+16)/116,t=isNaN(o)?n:n+o/500,a=isNaN(c)?n:n-c/200,n=_e.Yn*Pe(n),t=_e.Xn*Pe(t),a=_e.Zn*Pe(a),[xe(3.2404542*t-1.5371385*n-.4985314*a),xe(-.969266*t+1.8760108*n+.041556*a),xe(.0556434*t-.2040259*n+1.0572252*a),r.length>3?r[3]:1]},Ge=l.unpack,je=l.type,Ee=m,Oe=v,qe=d,Be=Me;Oe.prototype.lab=function(){return Be(this._rgb)},Ee.lab=function(){for(var rM
=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Oe,[null].concat(r,["lab"])))},qe.format.lab=Re,qe.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ge(r,"lab"),"array"===je(r)&&3===r.length)return"lab"}});var Ie=l.unpack,Ae=l.RAD2DEG,De=Math.sqrt,Ce=Math.atan2,Ye=Math.round,Se=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ie(r,"lab"),n=t[0],a=t[1],f=t[2],o=De(a*a+f*f),c=(Ce(f,a)*Ae+360)%360;return 0===YeM
(1e4*o)&&(c=Number.NaN),[n,o,c]},Le=l.unpack,$e=Me,Te=Se,Ke=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Le(r,"rgb"),n=t[0],a=t[1],f=t[2],o=$e(n,a,f),c=o[0],u=o[1],i=o[2];return Te(c,u,i)},We=l.unpack,Xe=l.DEG2RAD,Ze=Math.sin,He=Math.cos,ze=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=We(r,"lch"),n=t[0],a=t[1],f=t[2];return isNaN(f)&&(f=0),[n,He(f*=Xe)*a,Ze(f)*a]},Ue=l.unpack,Ve=ze,Je=Re,Qe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=M
(r=Ue(r,"lch"))[0],n=r[1],a=r[2],f=Ve(t,n,a),o=f[0],c=f[1],u=f[2],i=Je(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},rt=l.unpack,et=Qe,tt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rt(r,"hcl").reverse();return et.apply(void 0,t)},nt=l.unpack,at=l.type,ft=m,ot=v,ct=d,ut=Ke;ot.prototype.lch=function(){return ut(this._rgb)},ot.prototype.hcl=function(){return ut(this._rgb).reverse()},ft.lch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.biM
nd.apply(ot,[null].concat(r,["lch"])))},ft.hcl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ot,[null].concat(r,["hcl"])))},ct.format.lch=Qe,ct.format.hcl=tt,["lch","hcl"].forEach(function(r){return ct.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=nt(e,r),"array"===at(e)&&3===e.length)return r}})});var it=d,lt=l.type,dt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:M
"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",daM
rkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#M
adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#M
778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhiteM
:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a4M
60",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},ht=xr,bt=_r;v.prototype.name=function(){for(var r=bt(this._rgb,"rgb"),e=0,t=Object.keys(dt);e<t.length;e+=1){var n=M
t[e];if(dt[n]===r)return n.toLowerCase()}return r},it.format.named=function(r){if(r=r.toLowerCase(),dt[r])return ht(dt[r]);throw new Error("unknown color name: "+r)},it.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===lt(r)&&dt[r.toLowerCase()])return"named"}});var st=l.unpack,pt=l.type,gt=function(r){if("number"==pt(r)&&r>=0&&r<=16777215)return[r>>16,r>>8&255,255&r,1];throw new Error("unknown num color: "+r)},vt=m,yt=v,mt=d,kt=l.type,wt=fuM
nction(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=st(r,"rgb");return(t[0]<<16)+(t[1]<<8)+t[2]};yt.prototype.num=function(){return wt(this._rgb)},vt.num=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(yt,[null].concat(r,["num"])))},mt.format.num=gt,mt.autodetect.push({p:5,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(1===r.length&&"number"===kt(r[0])&&r[0]>=0&&r[0]<=16777215)return"num"}});var Mt=m,_t=v,Nt=d,FtM
=l.unpack,xt=l.type,Pt=Math.round;_t.prototype.rgb=function(r){return void 0===r&&(r=!0),!1===r?this._rgb.slice(0,3):this._rgb.slice(0,3).map(Pt)},_t.prototype.rgba=function(r){return void 0===r&&(r=!0),this._rgb.slice(0,4).map(function(e,t){return t<3?!1===r?e:Pt(e):e})},Mt.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(_t,[null].concat(r,["rgb"])))},Nt.format.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ft(r,"rgba");retM
urn void 0===t[3]&&(t[3]=1),t},Nt.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ft(r,"rgba"),"array"===xt(r)&&(3===r.length||4===r.length&&"number"==xt(r[3])&&r[3]>=0&&r[3]<=1))return"rgb"}});var Rt=Math.log,Gt=function(r){var e,t,n,a=r/100;return a<66?(e=255,t=a<6?0:-155.25485562709179-.44596950469579133*(t=a-2)+104.49216199393888*Rt(t),n=a<20?0:.8274096064007395*(n=a-10)-254.76935184120902+115.67994401066147*Rt(n)):(e=351.97690566805693+.114206453784165*(e=a-55)-M
40.25366309332127*Rt(e),t=325.4494125711974+.07943456536662342*(t=a-50)-28.0852963507957*Rt(t),n=255),[e,t,n,1]},jt=Gt,Et=l.unpack,Ot=Math.round,qt=m,Bt=v,It=d,At=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];for(var t,n=Et(r,"rgb"),a=n[0],f=n[2],o=1e3,c=4e4;c-o>.4;){var u=jt(t=.5*(c+o));u[2]/u[0]>=f/a?c=t:o=t}return Ot(t)};Bt.prototype.temp=Bt.prototype.kelvin=Bt.prototype.temperature=function(){return At(this._rgb)},qt.temp=qt.kelvin=qt.temperature=function(){for(var r=[],e=arguments.length;e-M
-;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Bt,[null].concat(r,["temp"])))},It.format.temp=It.format.kelvin=It.format.temperature=Gt;var Dt=l.unpack,Ct=Math.cbrt,Yt=Math.pow,St=Math.sign,Lt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Dt(r,"rgb"),n=t[0],a=t[1],f=t[2],o=[$t(n/255),$t(a/255),$t(f/255)],c=o[0],u=o[1],i=o[2],l=Ct(.4122214708*c+.5363325363*u+.0514459929*i),d=Ct(.2119034982*c+.6806995451*u+.1073969566*i),h=Ct(.0883024619*c+.2817188376*u+.6299787005*i);return[.M
2104542553*l+.793617785*d-.0040720468*h,1.9779984951*l-2.428592205*d+.4505937099*h,.0259040371*l+.7827717662*d-.808675766*h]};function $t(r){var e=Math.abs(r);return e<.04045?r/12.92:(St(r)||1)*Yt((e+.055)/1.055,2.4)}var Tt=l.unpack,Kt=Math.pow,Wt=Math.sign,Xt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=Tt(r,"lab"))[0],n=r[1],a=r[2],f=Kt(t+.3963377774*n+.2158037573*a,3),o=Kt(t-.1055613458*n-.0638541728*a,3),c=Kt(t-.0894841775*n-1.291485548*a,3);return[255*Zt(4.0767416621*f-3.307711591M
3*o+.2309699292*c),255*Zt(-1.2684380046*f+2.6097574011*o-.3413193965*c),255*Zt(-.0041960863*f-.7034186147*o+1.707614701*c),r.length>3?r[3]:1]};function Zt(r){var e=Math.abs(r);return e>.0031308?(Wt(r)||1)*(1.055*Kt(e,1/2.4)-.055):12.92*r}var Ht=l.unpack,zt=l.type,Ut=m,Vt=v,Jt=d,Qt=Lt;Vt.prototype.oklab=function(){return Qt(this._rgb)},Ut.oklab=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Vt,[null].concat(r,["oklab"])))},Jt.format.oklab=Xt,Jt.autodetect.pM
ush({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ht(r,"oklab"),"array"===zt(r)&&3===r.length)return"oklab"}});var rn=l.unpack,en=Lt,tn=Se,nn=l.unpack,an=ze,fn=Xt,on=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=nn(r,"lch"))[0],n=r[1],a=r[2],f=an(t,n,a),o=f[0],c=f[1],u=f[2],i=fn(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},cn=l.unpack,un=l.type,ln=m,dn=v,hn=d,bn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rn(r,"rgb"),n=tM
[0],a=t[1],f=t[2],o=en(n,a,f),c=o[0],u=o[1],i=o[2];return tn(c,u,i)};dn.prototype.oklch=function(){return bn(this._rgb)},ln.oklch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(dn,[null].concat(r,["oklch"])))},hn.format.oklch=on,hn.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=cn(r,"oklch"),"array"===un(r)&&3===r.length)return"oklch"}});var sn=v,pn=l.type;sn.prototype.alpha=function(r,e){return void 0===e&M
&(e=!1),void 0!==r&&"number"===pn(r)?e?(this._rgb[3]=r,this):new sn([this._rgb[0],this._rgb[1],this._rgb[2],r],"rgb"):this._rgb[3]},v.prototype.clipped=function(){return this._rgb._clipped||!1};var gn=v,vn=pe;gn.prototype.darken=function(r){void 0===r&&(r=1);var e=this.lab();return e[0]-=vn.Kn*r,new gn(e,"lab").alpha(this.alpha(),!0)},gn.prototype.brighten=function(r){return void 0===r&&(r=1),this.darken(-r)},gn.prototype.darker=gn.prototype.darken,gn.prototype.brighter=gn.prototype.brighten,v.prototype.get=functioM
n(r){var e=r.split("."),t=e[0],n=e[1],a=this[t]();if(n){var f=t.indexOf(n)-("ok"===t.substr(0,2)?2:0);if(f>-1)return a[f];throw new Error("unknown channel "+n+" in mode "+t)}return a};var yn=v,mn=l.type,kn=Math.pow;yn.prototype.luminance=function(r){if(void 0!==r&&"number"===mn(r)){if(0===r)return new yn([0,0,0,this._rgb[3]],"rgb");if(1===r)return new yn([255,255,255,this._rgb[3]],"rgb");var e=this.luminance(),t=20,n=function(e,a){var f=e.interpolate(a,.5,"rgb"),o=f.luminance();return Math.abs(r-o)<1e-7||!t--?f:o>rM
?n(e,f):n(f,a)},a=(e>r?n(new yn([0,0,0]),this):n(this,new yn([255,255,255]))).rgb();return new yn(a.concat([this._rgb[3]]))}return wn.apply(void 0,this._rgb.slice(0,3))};var wn=function(r,e,t){return.2126*(r=Mn(r))+.7152*(e=Mn(e))+.0722*(t=Mn(t))},Mn=function(r){return(r/=255)<=.03928?r/12.92:kn((r+.055)/1.055,2.4)},_n={},Nn=v,Fn=l.type,xn=_n,Pn=v,Rn=function(r,e,t){void 0===t&&(t=.5);for(var n=[],a=arguments.length-3;a-- >0;)n[a]=arguments[a+3];var f=n[0]||"lrgb";if(xn[f]||n.length||(f=Object.keys(xn)[0]),!xn[f])tM
hrow new Error("interpolation mode "+f+" is not defined");return"object"!==Fn(r)&&(r=new Nn(r)),"object"!==Fn(e)&&(e=new Nn(e)),xn[f](r,e,t).alpha(r.alpha()+t*(e.alpha()-r.alpha()))};Pn.prototype.mix=Pn.prototype.interpolate=function(r,e){void 0===e&&(e=.5);for(var t=[],n=arguments.length-2;n-- >0;)t[n]=arguments[n+2];return Rn.apply(void 0,[this,r,e].concat(t))};var Gn=v;Gn.prototype.premultiply=function(r){void 0===r&&(r=!1);var e=this._rgb,t=e[3];return r?(this._rgb=[e[0]*t,e[1]*t,e[2]*t,t],this):new Gn([e[0]*t,M
e[1]*t,e[2]*t,t],"rgb")};var jn=v,En=pe;jn.prototype.saturate=function(r){void 0===r&&(r=1);var e=this.lch();return e[1]+=En.Kn*r,e[1]<0&&(e[1]=0),new jn(e,"lch").alpha(this.alpha(),!0)},jn.prototype.desaturate=function(r){return void 0===r&&(r=1),this.saturate(-r)};var On=v,qn=l.type;On.prototype.set=function(r,e,t){void 0===t&&(t=!1);var n=r.split("."),a=n[0],f=n[1],o=this[a]();if(f){var c=a.indexOf(f)-("ok"===a.substr(0,2)?2:0);if(c>-1){if("string"==qn(e))switch(e.charAt(0)){case"+":case"-":o[c]+=+e;break;case"*M
":o[c]*=+e.substr(1);break;case"/":o[c]/=+e.substr(1);break;default:o[c]=+e}else{if("number"!==qn(e))throw new Error("unsupported value for Color.set");o[c]=e}var u=new On(o,a);return t?(this._rgb=u._rgb,this):u}throw new Error("unknown channel "+f+" in mode "+a)}return o};var Bn=v;_n.rgb=function(r,e,t){var n=r._rgb,a=e._rgb;return new Bn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"rgb")};var In=v,An=Math.sqrt,Dn=Math.pow;_n.lrgb=function(r,e,t){var n=r._rgb,a=n[0],f=n[1],o=n[2],c=e._rgb,u=c[0],i=c[1M
],l=c[2];return new In(An(Dn(a,2)*(1-t)+Dn(u,2)*t),An(Dn(f,2)*(1-t)+Dn(i,2)*t),An(Dn(o,2)*(1-t)+Dn(l,2)*t),"rgb")};var Cn=v;_n.lab=function(r,e,t){var n=r.lab(),a=e.lab();return new Cn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"lab")};var Yn=v,Sn=function(r,e,t,n){var a,f,o,c,u,i,l,d,h,b,s,p,g;return"hsl"===n?(o=r.hsl(),c=e.hsl()):"hsv"===n?(o=r.hsv(),c=e.hsv()):"hcg"===n?(o=r.hcg(),c=e.hcg()):"hsi"===n?(o=r.hsi(),c=e.hsi()):"lch"===n||"hcl"===n?(n="hcl",o=r.hcl(),c=e.hcl()):"oklch"===n&&(o=r.oklch()M
.reverse(),c=e.oklch().reverse()),"h"!==n.substr(0,1)&&"oklch"!==n||(u=(a=o)[0],l=a[1],h=a[2],i=(f=c)[0],d=f[1],b=f[2]),isNaN(u)||isNaN(i)?isNaN(u)?isNaN(i)?p=Number.NaN:(p=i,1!=h&&0!=h||"hsv"==n||(s=d)):(p=u,1!=b&&0!=b||"hsv"==n||(s=l)):p=u+t*(i>u&&i-u>180?i-(u+360):i<u&&u-i>180?i+360-u:i-u),void 0===s&&(s=l+t*(d-l)),g=h+t*(b-h),new Yn("oklch"===n?[g,s,p]:[p,s,g],n)},Ln=Sn,$n=function(r,e,t){return Ln(r,e,t,"lch")};_n.lch=$n,_n.hcl=$n;var Tn=v;_n.num=function(r,e,t){var n=r.num(),a=e.num();return new Tn(n+t*(a-n),M
"num")};var Kn=Sn;_n.hcg=function(r,e,t){return Kn(r,e,t,"hcg")};var Wn=Sn;_n.hsi=function(r,e,t){return Wn(r,e,t,"hsi")};var Xn=Sn;_n.hsl=function(r,e,t){return Xn(r,e,t,"hsl")};var Zn=Sn;_n.hsv=function(r,e,t){return Zn(r,e,t,"hsv")};var Hn=v;_n.oklab=function(r,e,t){var n=r.oklab(),a=e.oklab();return new Hn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"oklab")};var zn=Sn;_n.oklch=function(r,e,t){return zn(r,e,t,"oklch")};Math.pow,Math.sqrt,Math.PI,Math.cos,Math.sin,Math.atan2,Math.pow;var Un=m,Vn=funM
ction(r,e,t){if(!Vn[t])throw new Error("unknown blend mode "+t);return Vn[t](r,e)},Jn=function(r){return function(e,t){var n=Un(t).rgb(),a=Un(e).rgb();return Un.rgb(r(n,a))}},Qn=function(r){return function(e,t){var n=[];return n[0]=r(e[0],t[0]),n[1]=r(e[1],t[1]),n[2]=r(e[2],t[2]),n}};Vn.normal=Jn(Qn(function(r){return r})),Vn.multiply=Jn(Qn(function(r,e){return r*e/255})),Vn.screen=Jn(Qn(function(r,e){return 255*(1-(1-r/255)*(1-e/255))})),Vn.overlay=Jn(Qn(function(r,e){return e<128?2*r*e/255:255*(1-2*(1-r/255)*(1-eM
/255))})),Vn.darken=Jn(Qn(function(r,e){return r>e?e:r})),Vn.lighten=Jn(Qn(function(r,e){return r>e?r:e})),Vn.dodge=Jn(Qn(function(r,e){return 255===r?255:(r=e/255*255/(1-r/255))>255?255:r})),Vn.burn=Jn(Qn(function(r,e){return 255*(1-(1-e/255)/(r/255))}));Math.pow,Math.sin,Math.cos,Math.floor,Math.random,Math.log,Math.pow,Math.floor,Math.abs,Math.sqrt,Math.pow,Math.min,Math.max,Math.atan2,Math.abs,Math.cos,Math.sin,Math.exp,Math.PI;for(var ra={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d730M
1f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:M
["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeM
b","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6M
","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#M
fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#M
01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999M
999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","M
#fddaec","#f2f2f2"]},ea=0,ta=Object.keys(ra);ea<ta.length;ea+=1){var na=ta[ea];ra[na.toLowerCase()]=ra[na]}return m});
function Q5(e){return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100;n.height=100;n.canvas.width=n.width;n.canvas.height=n.height;"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",function(){document.body.appendChild(n.canvas)}));m();n.MAGIC=161533525;n.RGB=0;n.HSVM
=1;n.HSB=1;n.CHORD=0;n.PIE=1;n.OPEN=2;n.RADIUS=1;n.CORNER=2;n.CORNERS=3;n.ROUND="round";n.SQUARE="butt";n.PROJECT="square";n.MITER="miter";n.BEVEL="bevel";n.CLOSE=1;n.BLEND="source-over";n.REMOVE="destination-out";n.ADD="lighter";n.DARKEST="darken";n.LIGHTEST="lighten";n.DIFFERENCE="difference";n.SUBTRACT="subtract";n.EXCLUSION="exclusion";n.MULTIPLY="multiply";n.SCREEN="screen";n.REPLACE="copy";n.OVERLAY="overlay";n.HARD_LIGHT="hard-light";n.SOFT_LIGHT="soft-light";n.DODGE="color-dodge";n.BURN="color-burn";n.NORMAM
L="normal";n.ITALIC="italic";n.BOLD="bold";n.BOLDITALIC="italic bold";n.CENTER="center";n.LEFT="left";n.RIGHT="right";n.TOP="top";n.BOTTOM="bottom";n.BASELINE="alphabetic";n.LANDSCAPE="landscape";n.PORTRAIT="portrait";n.ALT=18;n.BACKSPACE=8;n.CONTROL=17;n.DELETE=46;n.DOWN_ARROW=40;n.ENTER=13;n.ESCAPE=27;n.LEFT_ARROW=37;n.OPTION=18;n.RETURN=13;n.RIGHT_ARROW=39;n.SHIFT=16;n.TAB=9;n.UP_ARROW=38;n.HALF_PI=Math.PI/2;n.PI=Math.PI;n.QUARTER_PI=Math.PI/4;n.TAU=2*Math.PI;n.TWO_PI=2*Math.PI;n.THRESHOLD=1;n.GRAY=2;n.OPAQUE=3;M
n.INVERT=4;n.POSTERIZE=5;n.DILATE=6;n.ERODE=7;n.BLUR=8;n.ARROW="default";n.CROSS="crosshair";n.HAND="pointer";n.MOVE="move";n.TEXT="text";n.VIDEO={video:!0,audio:!1};n.AUDIO={video:!1,audio:!0};n.SHR3=1;n.LCG=2;n.HARDWARE_FILTERS=!0;n.hint=function(e,t){n[e]=t};n.frameCount=0;n.mouseX=0;n.mouseY=0;n.pmouseX=0;n.pmouseY=0;n.mouseButton=null;n.keyIsPressed=!1;n.mouseIsPressed=!1;n.key=null;n.keyCode=null;n.pixels=null;n.accelerationX=0;n.accelerationY=0;n.accelerationZ=0;n.rotationX=0;n.rotationY=0;n.rotationZ=0;n.reM
lRotationX=0;n.relRotationY=0;n.relRotationZ=0;n.pAccelerationX=0;n.pAccelerationY=0;n.pAccelerationZ=0;n.pRotationX=0;n.pRotationY=0;n.pRotationZ=0;n.pRelRotationX=0;n.pRelRotationY=0;n.pRelRotationZ=0;n.touches=[];n._colorMode=n.RGB;n._noStroke=!1;n._noFill=!1;n._ellipseMode=n.CENTER;n._rectMode=n.CORNER;n._curveDetail=20;n._curveAlpha=0;n._noLoop=!1;n._textFont="sans-serif";n._textSize=12;n._textLeading=12;n._textStyle="normal";n._pixelDensity=1;n._frameRate=null;n._tint=null;let a=null;let r=!0;let i=[];let l=nM
ull;let u=0;let s={};let c=0;let h=null;let f=null;let d=null;Object.defineProperty(n,"deviceOrientation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}});Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}});Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}});Object.defineProperty(n,"drawingContext",{get:function(){return o}});n.createCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t,m()};n.resizM
eCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t};n.createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o};n.pixelDensity=function(e){return null==e?n._pixelDensity:(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),m(),n._pixelDensity)};n.map=function(e,t,n,o,a,r){let i=o+1*(e-t)/(nM
-t)*(a-o);return r?o<a?Math.min(Math.max(i,o),a):Math.min(Math.max(i,a),o):i};n.lerp=function(e,t,n){return e*(1-n)+t*n};n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)};n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])};n.norm=function(e,t,o){return n.map(e,t,o,0,1)};n.sq=function(e){return e*e};n.fract=function(e){return e-Math.floor(e)};n.degrees=functiM
on(e){return 180*e/Math.PI};n.radians=function(e){return e*Math.PI/180};n.abs=Math.abs;n.ceil=Math.ceil;n.exp=Math.exp;n.floor=Math.floor;n.log=Math.log;n.mag=Math.hypot;n.max=Math.max;n.min=Math.min;n.round=Math.round;n.sqrt=Math.sqrt;n.sin=Math.sin;n.cos=Math.cos;n.tan=Math.tan;n.asin=Math.asin;n.acos=Math.acos;n.atan=Math.atan;n.atan2=Math.atan2;n.Vector=function(e,t,o){let a=this;a.x=e||0,a.y=t||0,a.z=o||0;let r=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n||0}:{x:e,y:e,z:e}}function u()M
{null==i&&(i=a.x*a.x+a.y*a.y+a.z*a.z,r=Math.sqrt(i))}function s(){i=null,r=null}a.set=function(e,t,n){a.x=e||0,a.y=t||0,a.z=n||0},a.copy=function(){return new n.Vector(a.x,a.y,a.z)},a.add=function(){let e=l.apply(null,arguments);return a.x+=e.x,a.y+=e.y,a.z+=e.z,s(),a},a.rem=function(){let e=l.apply(null,arguments);return a.x%=e.x,a.y%=e.y,a.z%=e.z,s(),a},a.sub=function(){let e=l.apply(null,arguments);return a.x-=e.x,a.y-=e.y,a.z-=e.z,s(),a},a.mult=function(){let e=l.apply(null,arguments);return a.x*=e.x,a.y*=e.y,aM
.z*=e.z,s(),a},a.div=function(){let e=l.apply(null,arguments);return a.x/=e.x,a.y/=e.y,a.z/=e.z,s(),a},a.mag=function(){return u(),r},a.magSq=function(){return u(),i},a.dot=function(){let e=l.apply(null,arguments);return a.x*e.x+a.y*e.y+a.z*e.z},a.dist=function(){let e=l.apply(null,arguments),t=a.x-e.x,n=a.y-e.y,o=a.z-e.z;return Math.sqrt(t*t+n*n+o*o)},a.cross=function(){let e=l.apply(null,arguments),t=a.y*e.z-a.z*e.y,n=a.z*e.x-a.x*e.z,o=a.x*e.y-a.y*e.x;return a.x=t,a.y=n,a.z=o,s(),a},a.normalize=function(){u();letM
 e=r;return a.x/=e,a.y/=e,a.z/=e,r=1,i=1,a},a.limit=function(e){u();let t=r;if(t>e){let n=e/t;a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e}return a},a.setMag=function(e){u();let t=r,n=e/t;return a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e,a},a.heading=function(){return Math.atan2(a.y,a.x)},a.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=a.x*t-a.y*n,r=a.x*n+a.y*t;return a.x=o,a.y=r,a},a.angleBetween=function(){let e=l.apply(null,arguments);const t=a.dot(e)/(a.mag()*e.mag());let n;return n=Math.acos(Math.min(1,Math.max(-1,t))),n*=Math.sM
ign(a.cross(e).z||1)},a.lerp=function(e,t){return a.x=a.x*(1-t)+e.x*t,a.y=a.y*(1-t)+e.y*t,a.z=a.z*(1-t)+e.z*t,s(),a},a.reflect=function(e){return e.normalize(),a.sub(e.mult(2*a.dot(e)))},a.array=function(){return[a.x,a.y,a.z]},a.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-a.x)<t&&Math.abs(e.y-a.y)<t&&Math.abs(e.z-a.z)<t},a.fromAngle=function(e,t){return null==t&&(t=1),r=t,i=t*t,a.x=t*Math.cos(e),a.y=t*Math.sin(e),a.z=0,a},a.fromAngles=function(e,t,n){null==n&&(n=1),r=n,i=n*n;coM
nst o=Math.cos(t),l=Math.sin(t),u=Math.cos(e),s=Math.sin(e);return a.x=n*s*l,a.y=-n*u,a.z=n*s*o,a},a.random2D=function(){return r=1,i=1,a.fromAngle(Math.random()*Math.PI*2)},a.random3D=function(){return r=1,i=1,a.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},a.toString=function(){return`[${a.x}, ${a.y}, ${a.z}]`}};n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)};n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)};n.Vector.sub=function(e,t){return new n.VecM
tor(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):new n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)};n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)};n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)};n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-o)+t.x*o,e.y=e.y*(1-o)+t.y*o,e.M
z=e.z*(1-o)+t.z*o)};n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAngles","random2D","random3D"])n.Vector[e]=function(t,o,a){return(new n.Vector)[e](t,o,a)};n.createVector=function(e,t,o){return new n.Vector(e,t,o)};n.curvePoint=function(e,t,n,o,a){const r=a*a*a,i=a*a,l=-.5*r+i-.5*a,u=1.5*r-2.5*i+1,s=-1.5*r+2*i+.5*a,c=.5*r-.5*i;return e*l+t*u+n*s+o*c};n.bezierPoint=function(e,t,n,o,a){const r=1-a;return Math.pow(r,3)*e+3*Math.pow(r,2)*a*t+3*r*Math.pow(a,2)*n+Math.pow(a,3)*o};n.M
curveTangent=function(e,t,n,o,a){const r=a*a,i=-3*r/2+2*a-.5,l=9*r/2-5*a,u=-9*r/2+4*a+.5,s=3*r/2-a;return e*i+t*l+n*u+o*s};n.bezierTangent=function(e,t,n,o,a){const r=1-a;return 3*o*Math.pow(a,2)-3*n*Math.pow(a,2)+6*n*r*a-6*t*r*a+3*t*Math.pow(r,2)-3*e*Math.pow(r,2)};function p(e,t,n){let o,a,r,i,l,u,s,c,h;if(0==t)return[255*(o=n),255*(a=n),255*(r=n)];switch((i=e)>360&&(i=0),s=n*(1-t),c=n*(1-t*(u=(i/=60)-(l=~~i))),h=n*(1-t*(1-u)),l){case 0:o=n,a=h,r=s;break;case 1:o=c,a=n,r=s;break;case 2:o=s,a=n,r=h;break;case 3:o=M
s,a=c,r=n;break;case 4:o=h,a=s,r=n;break;default:o=n,a=s,r=c}return[255*o,255*a,255*r]}n.Color=function(e,t,n,o){let a=this;a.MAGIC=786698,a._r=e,a._g=t,a._b=n,a._a=o,a._h=0,a._s=0,a._v=0,a._hsvInferred=!1,a.setRed=function(e){a._r=e,a._hsvInferred=!1},a.setGreen=function(e){a._g=e,a._hsvInferred=!1},a.setBlue=function(e){a._b=e,a._hsvInferred=!1},a.setAlpha=function(e){a._a=e/255,a._hsvInferred=!1},a._inferHSV=function(){a._hsvInferred||([a._h,a._s,a._v]=function(e,t,n){let o,a,r,i,l;if(o=e<t?e<n?e:n:t<n?t:n,0==(lM
=100*(a=e>t?e>n?e:n:t>n?t:n)/255))return[r=0,i=0,l];if(0==(i=100*(a-o)/a))return[r=0,i,l];r=a==e?0+60*(t-n)/(a-o):a==t?120+60*(n-e)/(a-o):240+60*(e-t)/(a-o);return[r,i,l]}(a._r,a._g,a._b),a._hsvInferred=!0)},a.toString=function(){return`rgba(${Math.round(a._r)},${Math.round(a._g)},${Math.round(a._b)},${~~(1e3*a._a)/1e3})`}};n.colorMode=function(e){n._colorMode=e};n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGIC)return arguments[0];if(n._colorMode==n.RGB){if(1==arguments.length)return new n.ColoM
r(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);if(3==arguments.length)return M
new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null};n.red=function(e){return e._r};n.green=function(e){return e._g};n.blue=function(e){return e._b};n.alpha=function(e){return 255*e._a};n.hue=function(e){return e._inferHSV(),e._h};n.saturation=function(e){return e._inferHSV(),e._s};n.brightness=function(e){return e._inferHSV(),e._v};n.lightness=function(e){return 100*(.2126*e._r+.M
7152*e._g+.0722*e._b)/255};n.lerpColor=function(e,t,o){return n._colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var a=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.map(o,0,1,e,t-360)]];return a.sort((e,t)=>e[0]-t[0]),(a[0][1]+720)%360}(e._h,t._h,o),0,360),n.constrM
ain(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))};function m(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}n.strokeWeight=function(e){n._noStroke=!1,o.lineWidth=e};n.stroke=function(){if(n._noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noStroke=!0:o.strokeStyle=e};n.noStroke=function(){n._noStroke=!0};n.fill=function(){if(n._noFill=!1,"striM
ng"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noFill=!0:o.fillStyle=e};n.noFill=function(){n._noFill=!0};n.blendMode=function(e){o.globalCompositeOperation=e};n.strokeCap=function(e){o.lineCap=e};n.strokeJoin=function(e){o.lineJoin=e};n.ellipseMode=function(e){n._ellipseMode=e};n.rectMode=function(e){n._rectMode=e};n.curveDetail=function(e){n._curveDetail=e};n.curveAlpha=function(e){n._curveAlpha=e};n.curveTightness=function(e){console.warn("curveTightM
ness() sets the 'alpha' parameter of Catmull-Rom curve, and is NOT identical to p5.js counterpart. As this might change in the future, please call curveAlpha() directly."),n._curveAlpha=e};n.clear=function(){o.clearRect(0,0,n.width,n.height)};n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),"string"==typeof arguments[0]?o.fillStyle=arguments[0]:o.fillStyle=n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.heigM
ht),o.restore()};n.line=function(e,t,a,r){n._noStroke||(o.beginPath(),o.moveTo(e,t),o.lineTo(a,r),o.stroke())};function g(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function v(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;let c=g(i),h=g(l);o.beginPath();for(let i=0;i<s+1;i++){let l=i/s,u=n.lerp(c,h,l),f=Math.cos(u)*a/2,d=Math.sin(u)*r/2;o[i?"lineTo":"moveTo"](e+f,t+d)}u==n.CHORD?o.closePath():u==n.PIE&&(o.lineTo(e,t),o.closePath()),n._noFill||o.fill(),n._noStrM
oke||o.stroke()}n.arc=function(e,t,o,a,r,i,l,u){if(r==i)return n.ellipse(e,t,o,a);null==u&&(u=25),null==l&&(l=n.PIE),n._ellipseMode==n.CENTER?v(e,t,o,a,r,i,l,u):n._ellipseMode==n.RADIUS?v(e,t,2*o,2*a,r,i,l,u):n._ellipseMode==n.CORNER?v(e+o/2,t+a/2,o,a,r,i,l,u):n._ellipseMode==n.CORNERS&&v((e+o)/2,(t+a)/2,o-e,a-t,r,i,l,u)};function M(e,t,a,r){n._noFill&&n._noStroke||(o.beginPath(),o.ellipse(e,t,a/2,r/2,0,0,2*Math.PI),n._noFill||o.fill(),n._noStroke||o.stroke())}n.ellipse=function(e,t,o,a){null==a&&(a=o),n._ellipseMoM
de==n.CENTER?M(e,t,o,a):n._ellipseMode==n.RADIUS?M(e,t,2*o,2*a):n._ellipseMode==n.CORNER?M(e+o/2,t+a/2,o,a):n._ellipseMode==n.CORNERS&&M((e+o)/2,(t+a)/2,o-e,a-t)};n.circle=function(e,t,o){return n.ellipse(e,t,o,o)};n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()};function _(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;if(null==i)return function(e,t,a,r){n._noFill||o.fillRect(e,t,a,r);n._noStroke||o.strokeRect(e,t,a,r)}(e,t,a,r);if(null==l)return _(e,t,a,r,i,M
i,i,i);const c=Math.min(Math.abs(r),Math.abs(a))/2;i=Math.min(c,i),l=Math.min(c,l),s=Math.min(c,s),u=Math.min(c,u),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+a,t,e+a,t+r,l),o.arcTo(e+a,t+r,e,t+r,u),o.arcTo(e,t+r,e,t,s),o.arcTo(e,t,e+a,t,i),o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke()}n.rect=function(e,t,o,a,r,i,l,u){n._rectMode==n.CENTER?_(e-o/2,t-a/2,o,a,r,i,l,u):n._rectMode==n.RADIUS?_(e-o,t-a,2*o,2*a,r,i,l,u):n._rectMode==n.CORNER?_(e,t,o,a,r,i,l,u):n._rectMode==n.CORNERS&&_(e,t,o-e,a-t,r,i,l,u)};n.squM
are=function(e,t,o,a,r,i,l){return n.rect(e,t,o,o,a,r,i,l)};function x(){i=[]}n.beginShape=function(){x(),o.beginPath(),r=!0};n.beginContour=function(){o.closePath(),x(),r=!0};n.endContour=function(){x(),r=!0};n.vertex=function(e,t){x(),r?o.moveTo(e,t):o.lineTo(e,t),r=!1};n.bezierVertex=function(e,t,n,a,r,i){x(),o.bezierCurveTo(e,t,n,a,r,i)};n.quadraticVertex=function(e,t,n,a){x(),o.quadraticCurveTo(e,t,n,a)};n.bezier=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.bezierVertex(o,a,r,i,l,u),n.endShape()};nM
.triangle=function(e,t,o,a,r,i){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.endShape(n.CLOSE)};n.quad=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.vertex(l,u),n.endShape(n.CLOSE)};n.endShape=function(e){x(),e&&o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke(),n._noFill&&n._noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())};n.curveVertex=function(e,t){if(i.push([e,t]),i.length<4)return;let a=i[i.length-4],l=i[i.length-3],u=i[i.length-2],s=i[i.M
length-1],c=function(e,t,n,o,a,r,i,l,u,s){function c(e,t,n,o,a,r){let i=Math.pow(o-t,2)+Math.pow(a-n,2),l=Math.pow(i,.5*r);return l+e}let h=[],f=c(0,e,t,n,o,s),d=c(f,n,o,a,r,s),p=c(d,a,r,i,l,s);for(let s=0;s<u;s++){let c=f+s/(u-1)*(d-f),m=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<m.length;e+=2)isNaN(m[e])&&(m[e]=1,m[e+1]=0),isFinite(m[e])||(m[e]>0?(m[e]=1,m[e+1]=0):(m[e]=0,m[e+1]=1));let g=e*m[0]+n*m[1],v=t*m[0]+o*m[1],M=nM
*m[2]+a*m[3],_=o*m[2]+r*m[3],x=a*m[4]+i*m[5],y=r*m[4]+l*m[5],w=g*m[6]+M*m[7],R=v*m[6]+_*m[7],I=M*m[8]+x*m[9],E=_*m[8]+y*m[9],S=w*m[2]+I*m[3],C=R*m[2]+E*m[3];h.push([S,C])}return h}(...a,...l,...u,...s,n._curveDetail,n._curveAlpha);for(let e=0;e<c.length;e++)r?o.moveTo(...c[e]):o.lineTo(...c[e]),r=!1};n.curve=function(e,t,o,a,r,i,l,u){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,a),n.curveVertex(r,i),n.curveVertex(l,u),n.endShape()};n.translate=function(e,t){o.translate(e,t)};n.rotate=function(e){o.rotate(e)};nM
.scale=function(e,t){null==t&&(t=e),o.scale(e,t)};n.applyMatrix=function(e,t,n,a,r,i){o.transform(e,t,n,a,r,i)};n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)};n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)};n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)};n.pushMatrix=n.push=function(){o.save()};n.popMatrix=n.pop=function(){o.restore()};n.image=function(e,t,a,r,i,l,u,s,c){let h=e.MAGIC==n.MAGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let tM
=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(!function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d"));null==e&&(e=o.canvas.width,t=o.canvas.height);f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tinted(n._tint)),r?l?(s||(s=h.width),c||(c=h.height),o.drawImage(h,l,u,s,c,t,M
a,r,i),void d()):(o.drawImage(h,t,a,r,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,a,e.width,e.height):o.drawImage(h,t,a,e.videoWidth,e.videoHeight),void d())};n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data};n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)};n.loadImage=function(e,t){u++;let o=n.createGraphics(100,100),a=o.canvas.getContext("2d"),r=new Image;return r.src=e,r.crossOrigin="Anonymous",r.onload=function(){a.canvas.width=r.width,a.canvas.heM
ight=r.height,o.width=r.width,o.height=r.height,a.drawImage(r,0,0),u--,t&&t(o)},o};let y={};y[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}};y[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}};y[n.OPAQUE]=function(e){for(let t=0;t<e.length;t+=4)e[t+3]=255};y[n.INVERT]=function(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[tM
+2]=255-e[t+2]};y[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n};y[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.max(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.ERODE]=function(e){R(),d.set(M
e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.min(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let a=2*t+1;let r=function(e){let n=new Float32Array(e),o=.3*t+.8,a=o*o*2;for(let t=0;t<e;t++){let r=t-e/2,i=Math.exp(-r*r/a)/(2.5066282746*o);n[t]=i}reM
turn n}(a),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,u=0,s=0,c=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(o-t+e,0),i-1),h=4*(n*i+a);l+=d[h]*r[e],u+=d[h+1]*r[e],s+=d[h+2]*r[e],c+=d[h+3]*r[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=u,e[h+2]=s,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let u=0,s=0,c=0,h=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(n-t+e,0),l-1),f=4*(a*i+o);u+=d[f]*r[e],s+=d[f+1]*r[e],c+=d[f+2]*r[e],h+=d[f+3]*r[e]}let f=4*(n*i+o);e[f]=u,e[f+1]=sM
,e[f+2]=c,e[f+3]=h}};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClampedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvasM
,0,0),o.restore()}n.filter=function(e,t){let a=n.HARDWARE_FILTERS&&null!=o.filter;if(a)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5);let e=Math.floor(.5/t*100);I(`saturate(0%) brightness(${e}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(h.canvas,0,0),o.restore();else if(e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(t*M
n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}};n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()};n.getM
=function(e,t,a,r){if(null!=e&&null==a){let a=o.getImageData(e,t,1,1).data;return new n.Color(a[0],a[1],a[2],a[3]/255)}e=e||0,t=t||0,a=a||n.width,r=r||n.height;let i=n.createGraphics(a,r);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,a*n._pixelDensity,r*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i};n.set=function(e,t,a){if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.image(a,e,t),void(n._tint=o)}let r=4*(t*n._pixelDensity*o.canvas.width+M
e*n._pixelDensity);n.pixels[r]=a._r,n.pixels[r+1]=a._g,n.pixels[r+2]=a._b,n.pixels[r+3]=255*a._a};n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransform();let a=o.globalCompositeOperation;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.glM
obalCompositeOperation=a,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()};n.tint=function(){n._tint=n.color(...Array.from(arguments))};n.noTint=function(){n._tint=null};n.mask=function(e){o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositeOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeM
Operation=t,o.restore()};n.clearTemporaryBuffers=function(){h=null,f=null,d=null};n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t},!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)};n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.save(t,o);let n=t.split(".");return e.save(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);let aM
=e.split(".");return n.save(a.slice(0,-1).join("."),a[a.length-1])};n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),a=`@font-face {\n        font-family: '${o}';\n        src: url('${e}');\n      }`;const r=document.createElement("style");return r.textContent=a,document.head.append(r),o};n.textFont=function(e){n._textFont=e};n.textSize=function(e){n._textSize=e,n._textLeading=e};n.textLeading=function(e){n._textLeading=e};n.textStyle=function(e){n._textStyle=e};n.textAlign=M
function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)};n.text=function(e,t,a,r){if(!e)return;if(e=e.toString(),n._noFill&&n._noStroke)return;o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._noFill||o.fillText(i[e],t,a,r),n._noStroke||o.strokeText(i[e],t,a,r),a+=n._textLeading};n.textWidth=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).width};n.textAscent=function(e){return o.font=`${n._textStyle}M
 ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent};n.textDescent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent};var E=4;var S=.5;var C=function(e){return.5*(1-Math.cos(e*Math.PI))};var A;n.noise=function(e,t,n){if(t=t||0,n=n||0,null==A){A=new Array(4096);for(var o=0;o<4096;o++)A[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var a,r,i,l,u,s=Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-s,d=t-c,p=n-h,m=0,g=M
.5,v=0;v<E;v++){var M=s+(c<<4)+(h<<8);a=C(f),r=C(d),i=A[4095&M],i+=a*(A[M+1&4095]-i),l=A[M+16&4095],l+=a*(A[M+16+1&4095]-l),i+=r*(l-i),l=A[4095&(M+=256)],l+=a*(A[M+1&4095]-l),u=A[M+16&4095],u+=a*(A[M+16+1&4095]-u),l+=r*(u-l),i+=C(p)*(l-i),m+=i*g,g*=S,s<<=1,c<<=1,h<<=1,(f*=2)>=1&&(s++,f--),(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return m};n.noiseDetail=function(e,t){e>0&&(E=e),t>0&&(S=t)};const T=function(){let e,t,n=4294967295;return{setSeed(o){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17M
,e^=e>>13,((e^=e<<5)>>>0)/n)}};let D=T();D.setSeed();n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;A||(A=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,A[n]=(t>>>0)/4294967295};n.randomSeed=function(e){D.setSeed(e)};n.random=function(e,t){return"number"==typeof e?null!=t?D.rand()*(t-e)+e:D.rand()*e:e[~~(e.length*D.rand())]};n.randomGenerator=function(e){e==n.LCG?D=function(){const e=4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>t,rM
and:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(D=T()),D.setSeed()};var P=new function(){var e,t,n,o=new Array(128),a=new Array(256),r=new Array(128),i=new Array(128),l=new Array(256),u=new Array(256),s=function(){return 4294967296*D.rand()-2147483648},c=function(){return.5+2.328306e-10*(s()<<0)},h=function(){for(var t,a,l,u,h=3.44262;;){if(t=n*r[e],0==e){do{l=c(),u=c(),t=.2904764*-Math.log(l),a=-Math.log(u)}while(a+a<t*t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=s(),e=12M
7&n,Math.abs(n)<o[e])return n*r[e]}},f=function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],u[e]+c()*(u[e-1]-u[e])<Math.exp(-n))return n;if((t=s())<a[e=255&t])return t*l[e]}};this.SHR3=s,this.UNI=c,this.RNOR=function(){return n=s(),e=127&n,Math.abs(n)<o[e]?n*r[e]:h()},this.REXP=function(){return(t=s()>>>0)<o[e=255&t]?t*l[e]:f()},this.zigset=function(){var e,t,n=2147483648,s=4294967296,c=3.442619855899,h=c,f=.00991256303526217,d=7.697117470131487,p=d,m=.003949659822581572;for(e=f/Math.exp(-.5*c*cM
),o[0]=Math.floor(c/e*n),o[1]=0,r[0]=e/n,r[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),r[t]=c/n;for(e=m/Math.exp(-d),a[0]=Math.floor(d/e*s),a[1]=0,l[0]=e/s,l[255]=d/s,u[0]=1,u[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(m/d+Math.exp(-d)),a[t+1]=Math.floor(d/p*s),p=d,u[t]=Math.exp(-d),l[t]=d/s}};P.hasInit=!1;n.randomGaussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e};n.randomEM
xponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()};n.print=console.log;n.cursor=function(e,t,o){let a="";e.includes(".")&&(e=`url("${e}")`,a=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+a};n.noCursor=function(){n.canvas.style.cursor="none"};n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUserMedia(e).then(function(e){t.srcObject=e}),t.style.position="absolute",t.style.opacity=M
1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let b=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of b){let t="_"+e+"Fn";n[t]=function(){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(a=null==n._frameRate?requestAnimationFrame(z):setTimeout(z,1e3/n._frameRate)),x(),r=!0,o.save(),n._drawFn(),o.restore(),n.frM
ameCount++}n.noLoop=function(){n._noLoop=!0,a=null};n.loop=function(){n._noLoop=!1,null==a&&z()};n.redraw=function(){z()};n.frameRate=function(e){n._frameRate=e};setTimeout(function(){n._preloadFn(),c=window.performance.now(),function e(){if(u>0)return setTimeout(e,10);n._setupFn();z()}()},1);n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraggedFn(e):n._mouseMovedFn(e)};n.canvas.onmousedown=function(e){n.pmouseX=n.mouseX,n.pmousM
eY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)};n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)};n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickedFn(e),n.mouseIsPressed=!1};window.addEventListener("keydown",function(e){n.keyIsPressed=M
!0,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)});window.addEventListener("keyup",function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!1,n._keyReleasedFn(e)});n.keyIsDown=function(e){return!!s[e]};function O(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,a=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,y:(e.clientY-t.top)/a,id:e.identifier}}function k(){return n._touchStarted.isPlaceHolder&M
&n._touchMoved.isPlaceHolder&&n._touchEnded.isPlaceHolder}n.canvas.ontouchstart=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()};n.canvas.ontouchmove=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButtoM
n=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()};n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()};n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DeviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPeM
rmission);n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(e=>{"granted"==e&&(n.hasSensorPermission=!0)}).catch(alert)}).catch(alert)};window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pRelRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,nM
.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ};window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,!e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[M
1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13],e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]*t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[15M
],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]*t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(e)M
,0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}};n.year=function(){return(new Date).getFullYear()};n.day=function(){return(new Date).getDay()};n.hour=function(){return(new Date).getHours()};n.minute=function(){return(new Date).getMinutes()};n.second=function(){return(new Date).getSeconds()};n.millis=function(){return window.performance.now()-c}}(e)}
or{static p;static SAND_COLOR_MODE=3;static getSandColorByIndex(e,t=0,i=30,s=50){e%=5;let a=[];var r,h,n;for(let e=0;e<5;e++){let t=e%5;1==Color.SAND_COLOR_MODE?a.push(o(t)):2==Color.SAND_COLOR_MODE?a.push(l(t)):3==Color.SAND_COLOR_MODE?a.push(d(t)):4==Color.SAND_COLOR_MODE?a.push(m(t)):5==Color.SAND_COLOR_MODE?a.push(p(t)):6==Color.SAND_COLOR_MODE?a.push(g(t)):7==Color.SAND_COLOR_MODE?a.push(c(t)):8==Color.SAND_COLOR_MODE?a.push(u(t)):9==Color.SAND_COLOR_MODE&&a.push(v(t))}return a[e];function o(e){return 0==e?(r=M
t+60,h=i+5,n=s+5):1==e?(r=t+30,h=i+5,n=s+9):2==e?(r=t,h=i,n=s):3==e?(r=t-30,h=i+5,n=s+9):4==e&&(r=t-60,h=i+5,n=s+5),r<0?r+=360:r>360&&(r-=360),chroma(r,h/100,n/100,"hsl")}function l(e){return r=t,0==e?(h=i,n=s+30):1==e?(h=i-30,n=s+8):2==e?(h=i,n=s):3==e?(h=i-30,n=s+30):4==e&&(h=i,n=s-20),h<10&&(h+=60),(0==e||3==e)&&n>100&&(n=s-50),chroma(r,h/100,n/100,"hsl")}function d(e){return 0==e?(r=t-120,h=i+10,n=s-30):1==e?(r=t+120,h=i-10,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t-120,h=i+10,n=s):4==e&&(r=t+120,h=i+10,n=s-30),r>360?r-M
=360:r<0&&(r+=360),h>100&&(h-=20),n>100&&(n-=30),chroma(r,h/100,n/100,"hsl")}function m(e){return 0==e?(r=t,h=i+10,n=s-30):1==e?(r=t,h=i-30,n=s+30):2==e?(r=t,h=i,n=s):3==e?(r=t-180,h=i+20,n=s-30):4==e&&(r=t-180,h=i,n=s),r<0&&(r+=360),chroma(r,h/100,n/100,"hsl")}function p(e){return 0==e?(r=t-150,h=i-10,n=s+30):1==e?(r=t-150,h=i-5,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t+150,h=i+10,n=s+30):4==e&&(r=t+150,h=i+5,n=s),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n>100&&(n-=60),chroma(r,h/100,n/100,"hsl")}function g(e){return 0==M
e?(r=t+60,h=i-5):1==e?(r=t+150,h=i-10):2==e?(r=t,h=i):3==e?(r=t-150,h=i+10):4==e&&(r=t-60,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function c(e){return 0==e?(r=t,h=i+20):1==e?(r=t+90,h=i-10):2==e?(r=t,h=i):3==e?(r=t+180,h=i+10):4==e&&(r=t-90,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function u(e){return 0==e?(r=t+30,h=i+10,n=s+20):1==e?(r=t+30,h=i+40,n=s+40):2==e?(r=t,h=i,n=s):3==e?(r=t+160,h=i+25,n=s+5):4==e&&(r=t+150,h=i+10,n=s+20),r>3M
60&&(r-=360),(0==e||4==e)&&h>100?h-=20:1==e&&h>90?h-=80:3==e&&h>60&&(h-=50),1==e&&n>100?n-=80:(0==e||4==e)&&n>100&&(n-=40),chroma(r,h/100,n/100,"hsl")}function v(e){return r=t,h=i,0==e?n=s-25:1==e?n=s+30:2==e?n=s:3==e?n=s+5:4==e&&(n=s-10),n>100&&(n-=80),chroma(r,h/100,n/100,"hsl")}}static chromaToArray=e=>[e._rgb[0],e._rgb[1],e._rgb[2],255*e._rgb[3]];static setColorMode=e=>{this.SAND_COLOR_MODE=e}}class Geometry{static slicePolyByY(e,t){let i=[];for(let s=0;s<e.length;s++){let a=e[s],r=s?e[s-1]:e.at(-1),h=a.y>=t;h!M
=r.y>=t&&i.push(Geometry.interWithY(r,a,t)),h&&i.push(a)}return i}static getAreaBelowY(e,t){return Geometry.getPolyArea(Geometry.slicePolyByY(e,t))}static getYByAreaBelow(e,t){let[i,s,a,r]=Geometry.getBoundingBox(e,"COORD"),h=s,n=r;for(let i=0;i<30;++i){let i=(h+n)/2;Geometry.getAreaBelowY(e,i)>t?h=i:n=i}return n}static interWithY(e,t,i){let s=e.copy(),a=t.copy(),r=createVector(-1e9,i),h=createVector(1e9,i);return Geometry.intersection(s,a,r,h)}static getPolyArea(e){let t=0;for(let i=0;i<e.length;i++){let s=e[i],a=M
e[(i+1)%e.length],r=createVector(s.x,s.y),h=createVector(a.x,a.y);t+=r.cross(h).z}return t=abs(t)/2,t}static getBoundingBox(e,t="SIZE"){let i=e[0].x,s=e[0].x,a=e[0].y,r=e[0].y;for(let t=0;t<e.length;t++)isNaN(e[t].y)||(a=min(a,e[t].y),r=max(r,e[t].y)),isNaN(e[t].x)||(i=min(i,e[t].x),s=max(s,e[t].x));return"SIZE"==t?[i,a,s-i,r-a]:"COORD"==t?[i,a,s,r]:[]}static intersection(e,t,i,s){let a=createVector(t.x-e.x,t.y-e.y),r=createVector(s.x-i.x,s.y-i.y),h=createVector(i.x-e.x,i.y-e.y),n=(a.copy().rotate(PI/2),r.copy().roM
tate(PI/2)),o=h.dot(n)/a.dot(n),l=a.mult(o);return createVector(e.x+l.x,e.y+l.y)}}class GraphicUtils{static applyMask(e,t){e.push(),e.noStroke(),e.blendMode(REMOVE),e.fill(255,255,255,255),e.beginShape(),e.vertex(0,0),e.vertex(0,e.height),e.vertex(e.width,e.height),e.vertex(e.width,0),e.beginContour();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endContour(),e.endShape(e.CLOSE),e.blendMode(BLEND),e.pop()}}class Hourglass{static TICK_INTERVAL=60;static ROTATE_INTERVAL=10/3;constructor(e,t){this.evolvePeriod=M
e.evolvePeriod,t.registerIterationChangeEvent(this.onIterationChange.bind(this));let i=t.getCurrentIteration();this.onIterationChange(i),this.update(new Date)}onIterationChange(e){this.flipped=e%2==1}getState(){return{top:this.top,rotation:this.rotation,flipped:this.flipped,timeSinceRotation:this.timeSinceRotation}}update(e){let t,i=0;if(traits.evolvePeriod==EvolvePeriod.HOURLY)t=3600,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.DAILY)t=86400,i+=60*e.geM
tHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.MONTHLY){let s=e.getFullYear(),a=e.getMonth()+1;t=24*new Date(s,a,0).getDate()*60*60,i+=24*(e.getDate()-1)*60*60,i+=60*e.getHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3}this.flipped?this.top=1-min(1,i/t):this.top=min(1,i/t),this.timeSinceRotation=max(0,i-Hourglass.ROTATE_INTERVAL);let s=Math.min(i,Hourglass.ROTATE_INTERVAL);this.rotation=this.flipped?PI:0,this.rotatM
ion+=s/Hourglass.ROTATE_INTERVAL*PI}}function getRandomInt(e,t){return floor(random(e,t))}function getRandomItem(e){let t=0;for(const i of e)t+=i[1];let i=random(t),s=0;for(const t of e)if(s+=t[1],i<s)return t[0];return null}function shuffle(e){for(let t=1;t<e.length;++t){let i=getRandomInt(0,t),s=e[t];e[t]=e[i],e[i]=s}}class PostProcessing{constructor(e,t,i){this.wCanvas=e,this.hCanvas=t,this.graphic=createGraphics(this.wCanvas,this.hCanvas),this.updateFilter(1)}updateFilter(e,t,i){this.graphic.fill(255,255,255,25M
5),this.graphic.blendMode(REMOVE),this.graphic.rect(0,0,this.wCanvas,this.hCanvas),this.graphic.blendMode(BLEND);let s,a=this.wCanvas/2,r=this.hCanvas/2,h=2*sqrt(a*a+r*r);s=a>r?sqrt(1-Math.pow(r/a,2)):sqrt(1-Math.pow(a/r,2));let n,o;if(1!=abs(e)){let t,i;3==abs(e)?(t=6,i=.6):10==abs(e)?(t=4,i=.5):60==abs(e)?(t=3,i=.4):3600==abs(e)&&(t=2,i=.3),o=i-.1,n=map(sin(Date.now()/1e3/t*TAU),-1,1,i-.1,i+.1)}else i?(o=1,n=1):(o=.75,n=.75);this.graphic.push(),this.graphic.ellipseMode(RADIUS),this.graphic.translate(a,r);for(let M
e=39;e>=0;e--){let t=(e+1)/40;if(1==o||map(t,o,1,0,1.2)<=0)break;let i=max(map(t,n,1,0,1.2),0),s=color(0,0,0,255*i);this.graphic.fill(s),this.graphic.noStroke(),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),e>0&&(t=e/40,this.graphic.fill(255,255,255,255),this.graphic.blendMode(REMOVE),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),this.graphic.blendMode(BLEND))}this.graphic.pop()}applyToMainCanvas(){image(this.graphic,0,0)}}class BackgroundRenderer{constructor(e,t,i,s,a,r){this.wCanvas=e.width,this.hCanvas=eM
.height,this.maxR=min(this.wCanvas,this.hCanvas)/1024,this.dx,this.yvalues,this.xvalues,this.xspacing1=[],this.thickness1=[],this.theta1=[],this.velocity1=[],this.sz1=[],this.xspacing2=[],this.thickness2=[],this.theta2=[],this.velocity2=[],this.sz2=[],this.xspacing3=[],this.thickness3=[],this.theta3=[],this.velocity3=[],this.sz3=[],this.xspacing4=[],this.thickness4=[],this.theta4=[],this.velocity4=[],this.sz4=[],this.c=[],this.num_waves=30,this._h=t,this._s=i,this._l=s,this.patternOrder=a.patternOrder,this.diagonalM
=sqrt(Math.pow(width,2)+Math.pow(height,2));let h=createVector(width,height).heading(),n=abs(PI/4-h);this.ty=this.diagonal/2*cos(n),this.waveSpeed=a.waveSpeed,this.wavePeriod=a.wavePeriod,this.waveHeight=a.waveHeight,this.evolvePeriod=a.evolvePeriod,this.evolvePeriod==EvolvePeriod.DAILY?this.num_lines=7:(this.evolvePeriod==EvolvePeriod.HOURLY||this.evolvePeriod==EvolvePeriod.MONTHLY)&&(this.num_lines=12),this.waveHeight==WaveHeight.SHORT?this.amplitude=getRandomInt(20,30):this.waveHeight==WaveHeight.MEDIUM?this.ampM
litude=getRandomInt(30,40):this.waveHeight==WaveHeight.TALL&&(this.amplitude=getRandomInt(40,50)),this.wavePeriod==WavePeriod.SHORT?this.period=getRandomInt(300,351):this.wavePeriod==WavePeriod.MEDIUM?this.period=getRandomInt(425,476):this.wavePeriod==WavePeriod.LONG&&(this.period=getRandomInt(600,651)),this.waveSpeed==WaveSpeed.SLOW?(this.min_speed=.003,this.max_speed=.005):this.waveSpeed==WaveSpeed.MEDIUM?(this.min_speed=.008,this.max_speed=.01):this.waveSpeed==WaveSpeed.FAST&&(this.min_speed=.015,this.max_speed=M
.018),this.thetaList=[0,1/4*PI,.5*PI,3/4*PI,PI],this.setupStaticWave(),this.setupDynamicWave(),r.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=r.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){randomSeed(100*e+1),shuffle(this.xspacing1),shuffle(this.thickness1),shuffle(this.theta1),shuffle(this.xspacing1),shuffle(this.velocity1),shuffle(this.xspacing2),shuffle(this.thickness2),shuffle(this.theta2),shuffle(this.xspacing2),shuffle(this.velocity2),shuffle(this.xspacing3),shM
uffle(this.thickness3),shuffle(this.theta3),shuffle(this.xspacing3),shuffle(this.velocity3),shuffle(this.xspacing4),shuffle(this.thickness4),shuffle(this.theta4),shuffle(this.xspacing4),shuffle(this.velocity4)}setupStaticWave(){for(let e=0;e<this.num_waves;e++){this.xspacing1.push(getRandomInt(5,50)),this.thickness1.push(getRandomInt(50,200)),this.theta1.push({value:random(this.thetaList)}),this.velocity1.push({value:random(this.min_speed,this.max_speed)}),this.sz1.push(random(.5,3)),this.xspacing2.push(getRandomInM
t(5,50)),this.thickness2.push(getRandomInt(50,200)),this.theta2.push({value:random(this.thetaList)}),this.velocity2.push({value:random(this.min_speed,this.max_speed)}),this.sz2.push(random(.5,3)),this.xspacing3.push(getRandomInt(5,50)),this.thickness3.push(getRandomInt(50,200)),this.theta3.push({value:random(this.thetaList)}),this.velocity3.push({value:random(this.min_speed,this.max_speed)}),this.sz3.push(random(.5,3)),this.xspacing4.push(getRandomInt(5,50)),this.thickness4.push(getRandomInt(50,200)),this.theta4.puM
sh({value:random(this.thetaList)}),this.velocity4.push({value:random(this.min_speed,this.max_speed)}),this.sz4.push(random(.5,3));let t=e%5;this.c.push(Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25))}}setupDynamicWave(){this.dynamicWave={h:random(this.hCanvas/3),xspacing:getRandomInt(5,20),thickness:getRandomInt(100,200),theta:{value:random(this.thetaList)},velocity:{value:random(this.min_speed,this.max_speed)},sz:random(1,3),num_lines:0},1==this.patternOrder[0]?this.dynamicWave.h=random(200,heM
ight-200):2==this.patternOrder[0]?this.dynamicWave.h=random(200,width-200):(3==this.patternOrder[0]||4==this.patternOrder[0])&&(this.dynamicWave.h=random(200,2*this.ty-200))}update(e){this.time=e}drawHorWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(width/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),tM
+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s];r<-2||r>height+2||e.square(a,r,n*this.maxR)}}}drawVerWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.xvalues=new Array(floor(height/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.xvalues.length;e++)this.xvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.xvalues.length;s++){let a=t+this.xvalues[s],r=s*iM
;a<-2||a>width+2||e.square(a,r,n*this.maxR)}}}drawDiaWave(e,t,i,s,a,r,h,n,o,l){let d=cos(-l),m=sin(-l);this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(this.diagonal/i));let p=this.time.getTime()/(1e3/60),g=r.value+h.value*p/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(g)*this.amplitude,g+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s],h=n*this.maxR,o=a-this.diagonal/2,l=r-this.tM
y,p=o*d+l*m+width/2,g=-o*m+l*d+height/2;p<-2||p>width+2||g<-2||g>height+2||e.square(a,r,h)}}}drawHorizontal(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawHorWave(e,t,this.xspacing1[i]*width/1024,this.thickness1[i]*height/1024,this.num_lines,this.theta1[i],this.velocity1[i],this.sz1[i],this.c[i]),t+=(height+50)/this.num_waves}drawVertical(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawVerWave(e,t,this.xspacing2[i]*height/1024,this.thickness2[i]*width/1024,this.num_lines,this.theta2[i],this.vM
elocity2[i],this.sz2[i],this.c[i]),t+=(width+50)/this.num_waves}drawLeft(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing3[i]*this.maxR,this.thickness3[i]*this.maxR,this.num_lines,this.theta3[i],this.velocity3[i],this.sz3[i],this.c[i],PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawRight(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(M
3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing4[i]*this.maxR,this.thickness4[i]*this.maxR,this.num_lines,this.theta4[i],this.velocity4[i],this.sz4[i],this.c[i],3*PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawPattern(e,t){1==t?this.drawHorizontal(e):2==t?this.drawVertical(e):3==t?this.drawLeft(e):this.drawRight(e)}draw(e,t,i,s,a){this._h=s.h,this._s=s.s,this._l=s.l,e.background(0);let r=t.getHours()>=6&&t.getHours()<18?.2:.05,h=Color.getSandColorByIndex(4,this._h,this._s,M
this._l).luminance(r).alpha(.5);if(e.background(color(...Color.chromaToArray(h))),!a)return;this.evolvePeriod==EvolvePeriod.HOURLY?this.dynamicWave.num_lines=(t.getHours()+11)%12+1:this.evolvePeriod==EvolvePeriod.DAILY?this.dynamicWave.num_lines=t.getDay()+1:this.evolvePeriod==EvolvePeriod.MONTHLY&&(this.dynamicWave.num_lines=t.getMonth()+1);for(let e=0;e<this.num_waves;e++){let t=e%5;this.c[e]=Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25)}1==i?(3==this.patternOrder[0]||4==this.patternOrder[0]M
?this.num_waves=30:this.num_waves=20,this.drawPattern(e,this.patternOrder[0])):2==i?(this.patternOrder[0]+this.patternOrder[1]==3?this.num_waves=10:this.patternOrder[0]+this.patternOrder[1]==7?this.num_waves=20:this.num_waves=15,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1])):3==i?(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2])):(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),M
this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2]),this.drawPattern(e,this.patternOrder[3]));let{h:n,xspacing:o,thickness:l,num_lines:d,theta:m,velocity:p,sz:g}=this.dynamicWave,c=Color.getSandColorByIndex(0,this._h,this._s,this._l).luminance(.5);1==this.patternOrder[0]?this.drawHorWave(e,n,o*width/1024,l*height/1024,d,m,p,g,c):2==this.patternOrder[0]?this.drawVerWave(e,n,o*height/1024,l*width/1024,d,m,p,g,c):3==this.patternOrder[0]?(e.push(),e.translate(width/2,height/2),e.rotate(PI/M
4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,PI/4),e.pop()):4==this.patternOrder[0]&&(e.push(),e.translate(width/2,height/2),e.rotate(3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,3*PI/4),e.pop())}}class GrainRenderer{static texture;static deltaX;static deltaY;static maxDelta=100;static wCanvas;static hCanvas;static setup(e,t){GrainRenderer.wCanvas=e+GrainRenderer.maxDelta,GrainRenderer.hCanvas=t+GrainRendereM
r.maxDelta,GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0),GrainRenderer.texture=createImage(GrainRenderer.wCanvas,GrainRenderer.hCanvas),GrainRenderer.texture.loadPixels();let i=GrainRenderer.texture.pixelDensity();for(let e=0;e<GrainRenderer.wCanvas;e++)for(let t=0;t<GrainRenderer.hCanvas;t++){let s=216.75,a=255,r=random(s,a),h=random(s,a),n=random(s,a);for(let s=0;s<i;s++)for(let a=0;a<i;a++){let o=4*((t*i+a)*GrainRenderer.wCanvas*i+(e*i+s));GrainRendM
erer.texture.pixels[o]=r,GrainRenderer.texture.pixels[o+1]=h,GrainRenderer.texture.pixels[o+2]=n,GrainRenderer.texture.pixels[o+3]=255}}GrainRenderer.texture.updatePixels()}static applyGrain(e,t){let i=!!t&&{atFrame:1};e.textureOverlay(GrainRenderer.texture,{mode:BURN,animate:i})}static applyGrainToMainCanvas(e){blendMode(BURN),e&&(GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0)),image(GrainRenderer.texture,GrainRenderer.deltaX,GrainRenderer.deltaY)}}conM
st HourglassSize={SMALL:"SMALL",MEDIUM:"MEDIUM",LARGE:"LARGE"};class HourglassRenderer{constructor(e,t,i){this.nLayer=10,this.wCanvas=e.width,this.hCanvas=e.height,this.hourglassSize=t.hourglassSize,this.poly=t.poly,this.evolvePeriod=t.evolvePeriod,this.xc=this.wCanvas/2,this.yc=this.hCanvas/2,this.x1=this.xc+random(100,300),this.y1=this.yc+random(100,300),this.x2=this.xc+random(100,300),this.y2=this.yc+random(100,300),this.x1m=this.wCanvas-this.x1,this.y1m=this.y1,this.maxR=min(this.wCanvas,this.hCanvas)/2,1==thisM
.poly?this.mainRadius=.1*this.maxR*4:this.mainRadius=.1*this.maxR*getRandomInt(1,6),i.registerIterationChangeEvent(this.onIterationChange.bind(this));let s=i.getCurrentIteration();this.onIterationChange(s),this.topline=this.polygon(this.xc,this.yc,this.poly,PI),this.bottomline=this.polygon(this.xc,this.yc,this.poly,0),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.excitement=.15*max(this.sandRects[0][2],this.sandRects[0][3]),this.dx=[],this.dy=[];for(let e=0;e<2M
*this.nLayer;++e)this.dx[e]=random(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement);this.curSecond=(new Date).getSeconds(),this.rotateAngle=0}onIterationChange(e){randomSeed(100*e+2),this.startAngle=this.getStartAngle(),this.radiuses=this.getRadiuses()}getIteration(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(M
e.getFullYear()-1970)+e.getMonth()),t}getStartAngle(){let e=getRandomInt(1,6);return PI/(2.5+.5*e)}getRadiuses(){let e,t;this.hourglassSize==HourglassSize.MEDIUM?(e=.45*this.maxR,t=.55*this.maxR):this.hourglassSize==HourglassSize.LARGE&&(e=.6*this.maxR,t=.7*this.maxR);let i=[];for(let s=0;s<this.poly;s++){let a;a=0==s?e:random(e,t),i.push(a)}return i}update(e,t){if(e.getSeconds()!=this.curSecond){this.curSecond=e.getSeconds(),this.secondTicked=!0,this.rotateAngle+=PI/30;for(let e=0;e<2*this.nLayer;++e)this.dx[e]=raM
ndom(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement)}else this.secondTicked=!1;this.topline=this.polygon(this.xc,this.yc,this.poly,PI+t),this.bottomline=this.polygon(this.xc,this.yc,this.poly,t),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.time=e,this.rotation=t}draw(e,t,i){let s=i.luminance(.3);e.fill(255,255,255,255),e.blendMode(REMOVE),e.rect(0,0,this.wCanvas,this.hCanvas),e.blendMode(BLEND),0==t?this.drawShadowNormal(eM
,s,this.time):1==t&&this.drawShadowCircle(e,s),e.fill(255,255,255,255),e.blendMode(REMOVE),this.drawShape(e,this.topline),this.drawShape(e,this.bottomline),e.blendMode(BLEND)}drawShadowNormal(e,t,i){let s=floor(i.getMinutes()/10),a=i.getMinutes()%10;e.push(),e.noFill(),e.strokeWeight(.005*this.maxR);for(let i=0;i<s;i++){let a=map(i,s,0,.2,.5),r=color(...Color.chromaToArray(t.alpha(a)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i],this.yc+this.dy[2*i],this.poly,PI)}for(let i=0;i<a;i++){let s=map(i,a,0,.M
2,.5),r=color(...Color.chromaToArray(t.alpha(s)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i+1],this.yc+this.dy[2*i+1],this.poly,0)}e.pop()}drawShadowCircle(e,t){e.push(),e.noStroke(),e.translate(this.xc,this.yc),e.rotate(PI+this.rotateAngle);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.fill(a),this.getAndDrawPolygon(e,0,2.5*this.mainRadius,this.poly,PI),this.getAndDrawPolygon(e,0,2.5*-this.mainRadius,this.poly,0),e.rotate(PI/3)}e.pop(),e.push(),e.noFill(),M
e.strokeWeight(2),e.translate(this.xc,this.yc),e.rotate(-this.rotateAngle+PI/30);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.stroke(a),this.getAndDrawPolygon(e,0,-this.mainRadius/2,this.poly,PI),this.getAndDrawPolygon(e,0,this.mainRadius/2,this.poly,0),e.rotate(-PI/3)}e.pop()}getAndDrawPolygon(e,t,i,s,a){let r=this.polygon(t,i,s,a);this.drawShape(e,r)}drawShape(e,t){e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endShape(e.CLOSE)}polygon(e,t,i,s){leM
t a=(PI/2-this.startAngle)/i,r=0,h=[];h.push({x:e,y:t});let n=this.startAngle+s;for(let s=0;s<i;s++){let i=this.radiuses[r];r+=1;let s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}r=this.poly,n=PI/2+a+s;for(let s=0;s<i;s++){r-=1;let i=this.radiuses[r],s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}return h=h.filter((e=>!isNaN(e.x)&&!isNaN(e.y))),h}getSandRects=()=>this.sandRects;getTopLine=()=>this.topline;getBottomLine=()=>this.bottomline;getSecondTicked=()=>this.secondTicked}const WavePeriod={SHORT:"SHORT",MEM
DIUM:"MEDIUM",LONG:"LONG"},WaveHeight={SHORT:"SHORT",MEDIUM:"MEDIUM",TALL:"TALL"},WaveSpeed={SLOW:"SLOW",MEDIUM:"MEDIUM",FAST:"FAST"};class SandRenderer{static N_CURVE_POINT=50;static DROPDOWN_TIME=3;constructor(e,t,i,s,a,r,h,n){this.wCanvas=e.width,this.hCanvas=e.height,this.hInit=t,this.baseLine=this.transformCoord(i),this.baseH=s,this.baseS=a,this.baseL=r,this.curSecond=0,this.waveHeight=h.waveHeight,this.wavePeriod=h.wavePeriod,this.waveSpeed=h.waveSpeed,this.evolvePeriod=h.evolvePeriod,this.nSandLayer=6,this.lM
ayers=this.getLayers(),this._h=this.baseH,this._s=this.baseS,this._l=this.baseL,this.prevIteration=null,n.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=n.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){null==this.prevIteration?this._h=this.getHue(this.baseH,0,e):this._h=this.getHue(this._h,this.prevIteration,e),this.prevIteration=e}getHue(e,t,i){let s=min(t,i),a=max(t,i);for(let r=s;r<a;r++){randomSeed(100*r+3);let s=random(1);if(this.evolvePeriod==EvolvePeriod.HOURLY?s=M
map(s,0,1,5,10):this.evolvePeriod==EvolvePeriod.DAILY?s=map(s,0,1,10,30):this.evolvePeriod==EvolvePeriod.MONTHLY&&(s=map(s,0,1,50,100)),i>t)for(e+=s;e>360;)e-=360;else for(e-=s;e<0;)e+=360}return e}update(e){this.time=e}getChroma(){return Color.getSandColorByIndex(0,this._h,this._s,this._l)}getBaseHSL(){return{h:this._h,s:this._s,l:this._l}}draw(e,t,i,s,a){this.nLayer=(this.time.getHours()+11)%12+1,t=this.transformCoord(t),e.background(0);let r=this.getChroma().luminance(.5).alpha(.25);e.background(color(...Color.cM
hromaToArray(r))),e.strokeWeight(1),this.layers.forEach((e=>{if(0==e.id)e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).luminance(.2).alpha(1);else{let t=map(e.id/this.nSandLayer,0,1,.5,.8);e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).alpha(t)}let s=map(i,0,1,e.baselineY,this.hInit),a=max(0,map(s,this.hInit,0,0,1)),r=Geometry.getPolyArea(t)*a;e.y=Geometry.getYByAreaBelow(t,r),e.y=map(e.y,0,this.hInit,.05*-this.hCanvas,this.hInit+.05*this.hCanvas)})),this.layers.forEach((i=>{s&&2*i.id<thisM
.nLayer&&this.drawDropdown(e,t,i,a)})),this.layers.forEach((t=>this.drawLayer(e,t)));let h=!1;this.time.getSeconds()!=this.curSecond&&(this.curSecond=this.time.getSeconds(),h=!0),GraphicUtils.applyMask(e,t)}transformCoord(e){let[t,i,s,a]=Geometry.getBoundingBox(e),r=t+s,h=i+a;return e.map((e=>{let n=map(e.x,t,r,-s/2,s/2)+this.wCanvas/2,o=map(e.y,i,h,0,a);return createVector(n,o)}))}getLayers(){let e=[];for(let t=0;t<this.nSandLayer;t++){let i,s=this.hInit/this.nSandLayer*t;this.waveSpeed==WaveSpeed.SLOW?i=random(.0M
08,.012):this.waveSpeed==WaveSpeed.MEDIUM?i=random(.016,.024):this.waveSpeed==WaveSpeed.FAST&&(i=random(.032,.048));let a,r,h=random(1e4);this.wavePeriod==WavePeriod.SHORT?a=random(2.7,3):this.wavePeriod==WavePeriod.MEDIUM?a=random(1.8,2):this.wavePeriod==WavePeriod.LONG&&(a=random(1.2,1.3)),this.waveHeight==WaveHeight.SHORT?r=this.hCanvas/30:this.waveHeight==WaveHeight.MEDIUM?r=this.hCanvas/24:this.waveHeight==WaveHeight.TALL&&(r=this.hCanvas/18);let n={mode:"DELTA_Y",deltaY:(e,t)=>map(sin(e*a*TAU+t*i+h),-1,1,-r,rM
)};e.push({id:t,baselineY:s,height:r,speed:i,seed:h,shape:n,stripe:{distance:random(.04*this.hInit,.08*this.hInit),height:random(.02*this.hInit,.04*this.hInit),stretch:random(1.2,1.5),colorTransform:e=>e.brighten(1.2)}})}return e}drawDropdown=(e,t,i,s)=>{let{c:a,shape:r}=i,h=Geometry.getBoundingBox(t)[3],n=this.time.getTime()/(1e3/60),o=createVector(this.wCanvas/2,0),l=createVector(this.wCanvas/2,h),d=[];for(let e=0;e<50;e++){let t=e/49,i=o.copy(),{x:s,y:a}=Vector.lerp(i,l,t);s+=r.deltaY(t,-n/5)*map(e,0,50,.1,1.5),M
d.push(createVector(s,a))}let m=map(s,0,SandRenderer.DROPDOWN_TIME,0,50);m=min(m,50),e.push(),e.noStroke(),e.fill(color(...Color.chromaToArray(a)));for(let t=0;t<m;t++)e.square(d[t].x,d[t].y,.004*this.hCanvas);e.pop()};drawLayer=(e,t)=>{if(2*t.id<this.nLayer){let i=this.getLayerPointline(t);this.drawWave(e,i,t),this.drawPattern(e,i,t,this.hCanvas/8,this.hCanvas/60),2*t.id+1<this.nLayer&&this.drawStripe(e,i,t)}};getLayerPointline=e=>{let{y:t,shape:i}=e,s=[],a=this.time.getTime()/(1e3/60);if("DELTA_Y"==i.mode){let e=M
createVector(0,t),r=createVector(this.wCanvas,t);for(let t=0;t<SandRenderer.N_CURVE_POINT;t++){let h=t/(SandRenderer.N_CURVE_POINT-1),n=e.copy(),{x:o,y:l}=Vector.lerp(n,r,h);l+=i.deltaY(h,a/5),s.push(createVector(o,l))}}else s=[start,end];return s};drawWave=(e,t,i)=>{let{c:s}=i;e.noStroke(),e.fill(color(...Color.chromaToArray(s))),e.beginShape(),e.vertex(0,this.hCanvas);for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.vertex(this.wCanvas,this.hCanvas),e.endShape()};drawPattern=(e,t,i,s,a)=>{e.noStroke();for(letM
 i=a;i<=s;i+=a){let a=map((i-1)/(s-1),0,1,.2,0);e.fill(0,255*a),e.beginShape();for(let s=0;s<t.length;s++)e.vertex(t[s].x,t[s].y+i);for(let s=t.length-1;s>=0;s--)e.vertex(t[s].x,t[s].y+(i-1));e.endShape()}};drawStripe=(e,t,i)=>{let{c:s,stripe:{distance:a,height:r,stretch:h,colorTransform:n}}=i;e.noStroke();let o=n(s),l=color(...Color.chromaToArray(o)),d=s.alpha();l.setAlpha(255*d),e.fill(l),e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x*h,t[i].y+a);for(let i=t.length-1;i>=0;i--)e.vertex(t[i].x*h,t[i].y+aM
+r);e.endShape()}}new Q5("global");let wCanvas,hCanvas,canvas,timeController,hourglass,layerBackground,layerSandTop,layerSandBottom,layerHourglass,renBackground,renSandTop,renSandBottom,renHourglass,renPostProcessing,traits,prevSpeed,showMode,currentTime,maxFps=60;setup=()=>{setupRandom(),setupTraits(),setupSketch()},setupRandom=()=>{let e=p5seed;randomSeed(e),noiseSeed(e)},setupTraits=()=>{let e=getRandomInt(1,10),t=getRandomItem([[HourglassSize.MEDIUM,70],[HourglassSize.LARGE,30]]),i=getRandomItem([[WaveHeight.SHM
ORT,1],[WaveHeight.MEDIUM,1],[WaveHeight.TALL,1]]),s=getRandomItem([[WavePeriod.SHORT,1],[WavePeriod.MEDIUM,1],[WavePeriod.LONG,1]]),a=getRandomItem([[WaveSpeed.SLOW,1],[WaveSpeed.MEDIUM,1],[WaveSpeed.FAST,1]]),r=getRandomItem([[EvolvePeriod.HOURLY,60],[EvolvePeriod.DAILY,35],[EvolvePeriod.MONTHLY,5]]),h=getRandomItem([[1,5],[2,20],[3,50],[4,20],[5,5]]),n=getPatternOrder(),o=getRandomItem(AngelNumber.map((e=>[e[0],1]))),l=getRandomItem(BlissLimit.map((e=>[e[0],e[2]])));traits={waveHeight:i,wavePeriod:s,waveSpeed:a,M
evolvePeriod:r,color:e,hourglassSize:t,poly:h,patternOrder:n,angelNumber:o,blissLimit:l},console.log(traits)},getPatternOrder=()=>{let e=[],t=[1,2,3,4],i=getRandomItem([[1,.6],[2,.1],[3,.15],[4,.15]]);e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);for(let s=0;s<3;s++)i=random(t),e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);return e},setupSketch=()=>{frameRate(maxFps),frameCount=0,wCanvas=windowWidth,hCanvas=windowHeight,canvas=createCanvas(wCanvas,hCanvas),showMode=0,timeControM
ller=new TimeController(traits),hourglass=new Hourglass(traits,timeController);let e=getRandomInt(0,361),t=getRandomInt(30,101),i=getRandomInt(50,101);Color.setColorMode(traits.color),layerBackground=createGraphics(wCanvas,hCanvas),renBackground=new BackgroundRenderer(layerBackground,e,t,i,traits,timeController),layerHourglass=createGraphics(wCanvas,hCanvas),renHourglass=new HourglassRenderer(layerHourglass,traits,timeController);let s=renHourglass.getSandRects(wCanvas,hCanvas),a=renHourglass.getTopLine(),r=renHourM
glass.getBottomLine(),h=createVector(s[0][2],s[0][3]).mag();layerSandTop=createGraphics(h,h),layerSandBottom=createGraphics(h,h),renSandTop=new SandRenderer(layerSandTop,s[0][3],a,e,t,i,traits,timeController),renSandBottom=new SandRenderer(layerSandBottom,s[0][3],r,e,t,i,traits,timeController),imgSandTop=createGraphics(wCanvas,hCanvas),imgSandBottom=createGraphics(wCanvas,hCanvas),renPostProcessing=new PostProcessing(wCanvas,hCanvas,traits),GrainRenderer.setup(wCanvas,hCanvas),prevSpeed=1},draw=()=>{let e=0==showMoM
de||1==showMode,t=0==showMode||2==showMode,{time:i,state:s,speed:a,paused:r,isLive:h,realDelta:n}=timeController.step();hourglass.update(i),renSandTop.update(i),renSandBottom.update(i),renBackground.update(i);let o=4==s?1:0,{top:l,rotation:d,flipped:m,timeSinceRotation:p}=hourglass.getState();renHourglass.update(i,d);let g=renSandTop.getChroma(),c=renSandTop.getBaseHSL();if(background(255),renBackground.draw(layerBackground,i,s,c,e),image(layerBackground,0,0),t){let e=renHourglass.getSandRects();renHourglass.draw(lM
ayerHourglass,o,g),renSandTop.draw(layerSandTop,renHourglass.getTopLine(),1-l,!m,p),renSandBottom.draw(layerSandBottom,renHourglass.getBottomLine(),l,m,p),image(layerSandTop,...e[0],(layerSandTop.width-e[0][2])/2,0,e[0][2],e[0][3]),image(layerSandBottom,...e[1],(layerSandBottom.width-e[1][2])/2,0,e[1][2],e[1][3]),image(layerHourglass,0,0)}let u=renHourglass.getSecondTicked();GrainRenderer.applyGrainToMainCanvas(u),renPostProcessing.updateFilter(a,r,h),prevSpeed=a,renPostProcessing.applyToMainCanvas(),currentTime=i}M
,keyPressed=()=>{"+"!=key&&"="!=key||timeController.setFasterSpeed(),"-"==key&&timeController.setSlowerSpeed(),keyCode==LEFT_ARROW&&timeController.jumpBackward(),keyCode==RIGHT_ARROW&&timeController.jumpForward(),keyCode==ESCAPE&&timeController.resumeLive()," "==key&&timeController.togglePause(),"T"!=key&&"t"!=key||(showMode=(showMode+1)%3),"S"!=key&&"s"!=key||saveCanvasAtCurrentTime()},saveCanvasAtCurrentTime=()=>{let e=60*new Date(currentTime).getTimezoneOffset()*1e3,t=new Date(currentTime-e).toISOString().slice(M
0,-1);save(t+".png")};const EvolvePeriod={HOURLY:"HOURLY",DAILY:"DAILY",MONTHLY:"MONTHLY"},AngelNumber=[["11/111/1111",["1:1","1:11","11:1","11:11"],["1/1","11/1","1/11","11/11"]],["22/222/2222",["2:2","2:22","22:2","22:22"],["2/2","22/2"]],["33/333/3333",["3:3","3:33"],["3/3"]],["44/444/4444",["4:4","4:44"],["4/4"]],["55/555/555",["5:5","5:55"],["5/5"]],["66/666/6666",["6:6"],["6/6"]],["77/777/7777",["7:7"],["7/7"]],["88/888/8888",["8:8"],["8/8"]],["99/999/9999",["9:9"],["9/9"]],["1212",["12:12"],["12/12"]],["399/M
339",["3:39"],["3/3","9/3","3/9","9/9"]],["83/8833",["8:3"],["8/3","3/8"]],["72/7722",["7:2"],["7/2","2/7"]],["633/6363",["6:3","6:33"],["6/3","3/6"]],["588",["5:8","8:58"],["8/5","5/8","8/8"]],["446/4646",["4:6","4:46"],["4/4","6/4","4/6"]],["000",[],[]],["1010",["10:10"],["10/10"]],["1017",["10:17","17:10"],["17/10"]],["1022",["10:22","22:10"],["22/10"]],["1313",["13:13"],["1/3","3/1"]],["1444",["14:44"],["4/1","1/4","4/4"]],["2020",["20:20"],["2/2"]]],BlissLimit=[["Forever",-1,3],["2",2,40],["5",5,30],["10",10,2M
0],["20",20,7]];class TimeController{constructor(e){this.speeds=[-3600,-60,-10,-3,1,3,10,60,3600],this.defaultSpeedLevel=4,this.evolvePeriod=e.evolvePeriod,this.angelNumber=e.angelNumber,this.blissLimit=e.blissLimit,this.timestamp=Date.now(),this.prevRealTimestamp=this.timestamp,this.paused=!1,this.speedLevel=this.defaultSpeedLevel;let t=new Date(this.timestamp);this.iteration=this.getIteration(t),this.prevBliss=this.getPrevBliss(t,1),this.iterationChangeHandlers=[]}getCurrentIteration=()=>this.iteration;getIteratiM
on(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(e.getFullYear()-1970)+e.getMonth()),t}registerIterationChangeEvent(e){this.iterationChangeHandlers.push(e)}unregisterIterationChangeEvent(e){this.iterationChangeHandlers=this.iterationChangeHandlers.filter((t=>t!=e))}step(){let e=Date.now(),t=e-this.prevRealTimestamp,i=this.speeds[this.speedLevel],sM
=this.paused?0:i;this.timestamp+=t*s,this.timestamp=this.limitTimestamp(this.timestamp);let a=new Date(this.timestamp),r=this.getStateFromTime(a);this.updateIteration(a),this.prevRealTimestamp=e;let h=this.timestamp==e;return{time:a,state:r,speed:i,paused:this.paused,isLive:h,realDelta:t}}updateIteration(e){let t=this.getIteration(e);t!=this.iteration&&(this.iterationChangeHandlers.forEach((e=>e(t))),this.iteration=t)}getStateFromTime(e){let t,i,s=e.getHours(),a=e.getMinutes(),r=e.getDate(),h=e.getMonth()+1;if("000M
"==this.angelNumber)i=0==s&&0==a,t=i&&1==r&&1==h;else{let e=`${s}:${a}`,n=`${h}/${r}`,o=AngelNumber.filter((e=>e[0]==this.angelNumber))[0];i=o[1].includes(e),t=o[2].includes(n)}return i&&t?4:t?3:i?2:1}limitTimestamp(e){let t=BlissLimit.filter((e=>e[0]==this.blissLimit))[0][1],i=Date.now(),s=this.getPrevBliss(new Date,t);return e>i?(e=i,this.resetSpeed()):e<s&&(e=s,this.resetSpeed()),e}getPrevBliss(e,t){if(-1==t)return 0;let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i-=6e4;let e=this.getStateFrM
omTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}getNextBliss(e,t){if(-1==t)return Date.now();let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i+=6e4;let e=this.getStateFromTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}togglePause(){this.paused=!this.paused}setFasterSpeed(){this.speedLevel=min(this.speedLevel+1,this.speeds.length-1),this.paused=!1}setSlowerSpeed(){this.speedLevel=max(this.speedLevel-1,0),this.paused=!1}jumpForward(){let e=new Date(this.timestamp);this.timestamp=this.getNextBliss(eM
,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}jumpBackward(){let e=new Date(this.timestamp);this.timestamp=this.getPrevBliss(e,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}resetSpeed(){this.speedLevel=this.defaultSpeedLevel,this.paused=!1}resumeLive(){this.timestamp=Date.now(),this.resetSpeed()}}
text/html;charset=utf-8
      display: block;
    <meta charset="utf-8" />
    let seed=window.location.href.split('/').find(t=>t.includes('i0'));
    if (seed == null) {
      seed = new URLSearchParams(window.location.search).get("seed");
      let pattern = "seed=";
      for(let i = 0; i < seed.length - pattern.length; M
        if (seed.substring(i, i + pattern.length) == pattern) {
          seed = seed.substring(i + pattern.length);
    function cyrb128($) {
      let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
      for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
      return _ = Math.imul(i ^ _ >>> 18,M
 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
    function sfc32($, _, u, i) {
      return function () {
        u >>>= 0, i >>>= 0;
        var l = ($ >>>= 0) + (_ >>>= 0) | 0;
        return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
 sfc32(...cyrb128(seed));
    let p5seed = Math.floor(mathRand() * Number.MAX_SAFE_INTEGER);
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).chroma=e()}(this,function(){"use strict";for(var r=function(r,e,t){return void 0===e&&(e=0),void 0===t&&(t=1),r<e?e:r>t?t:r},e=r,t={},n=0,a=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];n<a.length;nM
+=1){var f=a[n];t["[object "+f+"]"]=f.toLowerCase()}var o=function(r){return t[Object.prototype.toString.call(r)]||"object"},c=o,u=o,i=Math.PI,l={clip_rgb:function(r){r._clipped=!1,r._unclipped=r.slice(0);for(var t=0;t<=3;t++)t<3?((r[t]<0||r[t]>255)&&(r._clipped=!0),r[t]=e(r[t],0,255)):3===t&&(r[t]=e(r[t],0,1));return r},limit:r,type:o,unpack:function(r,e){return void 0===e&&(e=null),r.length>=3?Array.prototype.slice.call(r):"object"==c(r[0])&&e?e.split("").filter(function(e){return void 0!==r[0][e]}).map(function(M
e){return r[0][e]}):r[0]},last:function(r){if(r.length<2)return null;var e=r.length-1;return"string"==u(r[e])?r[e].toLowerCase():null},PI:i,TWOPI:2*i,PITHIRD:i/3,DEG2RAD:i/180,RAD2DEG:180/i},d={format:{},autodetect:[]},h=l.last,b=l.clip_rgb,s=l.type,p=d,g=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if("object"===s(r[0])&&r[0].constructor&&r[0].constructor===this.constructor)return r[0];var t=h(r),n=!1;if(!t){n=!0,p.sorted||(p.autodetect=p.autodetect.sort(function(r,e){return e.p-r.p}),p.sortedM
=!0);for(var a=0,f=p.autodetect;a<f.length;a+=1){var o=f[a];if(t=o.test.apply(o,r))break}}if(!p.format[t])throw new Error("unknown format: "+r);var c=p.format[t].apply(null,n?r:r.slice(0,-1));this._rgb=b(c),3===this._rgb.length&&this._rgb.push(1)};g.prototype.toString=function(){return"function"==s(this.hex)?this.hex():"["+this._rgb.join(",")+"]"};var v=g,y=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(y.Color,[null].concat(r)))};y.Color=v,y.version="2.4.M
2";var m=y,k=l.unpack,w=Math.max,M=l.unpack,_=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=M(r,"cmyk"))[0],n=r[1],a=r[2],f=r[3],o=r.length>4?r[4]:1;return 1===f?[0,0,0,o]:[t>=1?0:255*(1-t)*(1-f),n>=1?0:255*(1-n)*(1-f),a>=1?0:255*(1-a)*(1-f),o]},N=m,F=v,x=d,P=l.unpack,R=l.type,G=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=k(r,"rgb"),n=t[0],a=t[1],f=t[2],o=1-w(n/=255,w(a/=255,f/=255)),c=o<1?1/(1-o):0;return[(1-n-o)*c,(1-a-o)*c,(1-f-o)*c,o]};F.prototype.cmyk=fuM
nction(){return G(this._rgb)},N.cmyk=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(F,[null].concat(r,["cmyk"])))},x.format.cmyk=_,x.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=P(r,"cmyk"),"array"===R(r)&&4===r.length)return"cmyk"}});var j=l.unpack,E=l.last,O=function(r){return Math.round(100*r)/100},q=l.unpack,B=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=q(r,"rgba"))[0],nM
=r[1],a=r[2];t/=255,n/=255,a/=255;var f,o,c=Math.min(t,n,a),u=Math.max(t,n,a),i=(u+c)/2;return u===c?(f=0,o=Number.NaN):f=i<.5?(u-c)/(u+c):(u-c)/(2-u-c),t==u?o=(n-a)/(u-c):n==u?o=2+(a-t)/(u-c):a==u&&(o=4+(t-n)/(u-c)),(o*=60)<0&&(o+=360),r.length>3&&void 0!==r[3]?[o,f,i,r[3]]:[o,f,i]},I=l.unpack,A=l.last,D=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=j(r,"hsla"),n=E(r)||"lsa";return t[0]=O(t[0]||0),t[1]=O(100*t[1])+"%",t[2]=O(100*t[2])+"%","hsla"===n||t.length>3&&t[3]<1?(t[3]=t.length>3?t[M
3]:1,n="hsla"):t.length=3,n+"("+t.join(",")+")"},C=B,Y=Math.round,S=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=I(r,"rgba"),n=A(r)||"rgb";return"hsl"==n.substr(0,3)?D(C(t),n):(t[0]=Y(t[0]),t[1]=Y(t[1]),t[2]=Y(t[2]),("rgba"===n||t.length>3&&t[3]<1)&&(t[3]=t.length>3?t[3]:1,n="rgba"),n+"("+t.slice(0,"rgb"===n?3:4).join(",")+")")},L=l.unpack,$=Math.round,T=function(){for(var r,e=[],t=arguments.length;t--;)e[t]=arguments[t];var n,a,f,o=(e=L(e,"hsl"))[0],c=e[1],u=e[2];if(0===c)n=a=f=255*u;elsM
e{var i=[0,0,0],l=[0,0,0],d=u<.5?u*(1+c):u+c-u*c,h=2*u-d,b=o/360;i[0]=b+1/3,i[1]=b,i[2]=b-1/3;for(var s=0;s<3;s++)i[s]<0&&(i[s]+=1),i[s]>1&&(i[s]-=1),6*i[s]<1?l[s]=h+6*(d-h)*i[s]:2*i[s]<1?l[s]=d:3*i[s]<2?l[s]=h+(d-h)*(2/3-i[s])*6:l[s]=h;n=(r=[$(255*l[0]),$(255*l[1]),$(255*l[2])])[0],a=r[1],f=r[2]}return e.length>3?[n,a,f,e[3]]:[n,a,f,1]},K=T,W=d,X=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,Z=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,H=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\M
d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,z=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,U=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,V=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,J=Math.round,Q=function(r){var e;if(r=r.toLowerCase().trim(),W.format.named)try{return W.format.named(r)}catch(r){}if(e=r.match(X)){for(var t=e.slice(1,4),n=0;n<3;n++)t[n]=+t[n];returnM
 t[3]=1,t}if(e=r.match(Z)){for(var a=e.slice(1,5),f=0;f<4;f++)a[f]=+a[f];return a}if(e=r.match(H)){for(var o=e.slice(1,4),c=0;c<3;c++)o[c]=J(2.55*o[c]);return o[3]=1,o}if(e=r.match(z)){for(var u=e.slice(1,5),i=0;i<3;i++)u[i]=J(2.55*u[i]);return u[3]=+u[3],u}if(e=r.match(U)){var l=e.slice(1,4);l[1]*=.01,l[2]*=.01;var d=K(l);return d[3]=1,d}if(e=r.match(V)){var h=e.slice(1,4);h[1]*=.01,h[2]*=.01;var b=K(h);return b[3]=+e[4],b}};Q.test=function(r){return X.test(r)||Z.test(r)||H.test(r)||z.test(r)||U.test(r)||V.test(r)M
};var rr=m,er=v,tr=d,nr=l.type,ar=S,fr=Q;er.prototype.css=function(r){return ar(this._rgb,r)},rr.css=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(er,[null].concat(r,["css"])))},tr.format.css=fr,tr.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===nr(r)&&fr.test(r))return"css"}});var or=v,cr=m,ur=l.unpack;d.format.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e]M
;var t=ur(r,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t},cr.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(or,[null].concat(r,["gl"])))},or.prototype.gl=function(){var r=this._rgb;return[r[0]/255,r[1]/255,r[2]/255,r[3]]};var ir=l.unpack,lr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=ir(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Math.min(a,f,o),u=Math.max(a,f,o),i=u-c,l=100*i/255,d=c/(255-i)*100;return 0===i?t=Number.NaN:(a===u&&(t=M
(f-o)/i),f===u&&(t=2+(o-a)/i),o===u&&(t=4+(a-f)/i),(t*=60)<0&&(t+=360)),[t,l,d]},dr=l.unpack,hr=Math.floor,br=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=dr(o,"hcg"))[0],h=o[1],b=o[2];b*=255;var s=255*h;if(0===h)u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=hr(d/=60),g=d-p,v=b*(1-h),y=v+s*(1-g),m=v+s*g,k=v+s;switch(p){case 0:u=(r=[k,m,v])[0],i=r[1],l=r[2];break;case 1:u=(e=[y,k,v])[0],i=e[1],l=e[2];break;case 2:u=(t=[v,k,m])[0],i=t[1],l=t[2];break;cM
ase 3:u=(n=[v,y,k])[0],i=n[1],l=n[2];break;case 4:u=(a=[m,v,k])[0],i=a[1],l=a[2];break;case 5:u=(f=[k,v,y])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},sr=l.unpack,pr=l.type,gr=m,vr=v,yr=d,mr=lr;vr.prototype.hcg=function(){return mr(this._rgb)},gr.hcg=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(vr,[null].concat(r,["hcg"])))},yr.format.hcg=br,yr.autodetect.push({p:1,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=sr(r,"M
hcg"),"array"===pr(r)&&3===r.length)return"hcg"}});var kr=l.unpack,wr=l.last,Mr=Math.round,_r=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=kr(r,"rgba"),n=t[0],a=t[1],f=t[2],o=t[3],c=wr(r)||"auto";void 0===o&&(o=1),"auto"===c&&(c=o<1?"rgba":"rgb");var u="000000"+((n=Mr(n))<<16|(a=Mr(a))<<8|(f=Mr(f))).toString(16);u=u.substr(u.length-6);var i="0"+Mr(255*o).toString(16);switch(i=i.substr(i.length-2),c.toLowerCase()){case"rgba":return"#"+u+i;case"argb":return"#"+i+u;default:return"#"+u}},Nr=/M
^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Fr=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,xr=function(r){if(r.match(Nr)){4!==r.length&&7!==r.length||(r=r.substr(1)),3===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]);var e=parseInt(r,16);return[e>>16,e>>8&255,255&e,1]}if(r.match(Fr)){5!==r.length&&9!==r.length||(r=r.substr(1)),4===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);var t=parseInt(r,16);return[t>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100]}throw new Error("unknown hex coM
lor: "+r)},Pr=m,Rr=v,Gr=l.type,jr=d,Er=_r;Rr.prototype.hex=function(r){return Er(this._rgb,r)},Pr.hex=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Rr,[null].concat(r,["hex"])))},jr.format.hex=xr,jr.autodetect.push({p:4,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===Gr(r)&&[3,4,5,6,7,8,9].indexOf(r.length)>=0)return"hex"}});var Or=l.unpack,qr=l.TWOPI,Br=Math.min,Ir=Math.sqrt,Ar=Math.acos,Dr=functionM
(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=Or(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Br(a/=255,f/=255,o/=255),u=(a+f+o)/3,i=u>0?1-c/u:0;return 0===i?t=NaN:(t=(a-f+(a-o))/2,t/=Ir((a-f)*(a-f)+(a-o)*(f-o)),t=Ar(t),o>f&&(t=qr-t),t/=qr),[360*t,i,u]},Cr=l.unpack,Yr=l.limit,Sr=l.TWOPI,Lr=l.PITHIRD,$r=Math.cos,Tr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Cr(r,"hsi"))[0],o=r[1],c=r[2];return isNaN(f)&&(f=0),isNaN(o)&&(o=0),f>360&&(f-=360),f<0&&(f+=360),(f/=360)<1/3?n=1-M
((a=(1-o)/3)+(t=(1+o*$r(Sr*f)/$r(Lr-Sr*f))/3)):f<2/3?a=1-((t=(1-o)/3)+(n=(1+o*$r(Sr*(f-=1/3))/$r(Lr-Sr*f))/3)):t=1-((n=(1-o)/3)+(a=(1+o*$r(Sr*(f-=2/3))/$r(Lr-Sr*f))/3)),[255*(t=Yr(c*t*3)),255*(n=Yr(c*n*3)),255*(a=Yr(c*a*3)),r.length>3?r[3]:1]},Kr=l.unpack,Wr=l.type,Xr=m,Zr=v,Hr=d,zr=Dr;Zr.prototype.hsi=function(){return zr(this._rgb)},Xr.hsi=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Zr,[null].concat(r,["hsi"])))},Hr.format.hsi=Tr,Hr.autodetect.push({pM
:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Kr(r,"hsi"),"array"===Wr(r)&&3===r.length)return"hsi"}});var Ur=l.unpack,Vr=l.type,Jr=m,Qr=v,re=d,ee=B;Qr.prototype.hsl=function(){return ee(this._rgb)},Jr.hsl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Qr,[null].concat(r,["hsl"])))},re.format.hsl=T,re.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ur(r,"hsl"),"array"===Vr(r)M
&&3===r.length)return"hsl"}});var te=l.unpack,ne=Math.min,ae=Math.max,fe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=te(r,"rgb"))[0],o=r[1],c=r[2],u=ne(f,o,c),i=ae(f,o,c),l=i-u;return a=i/255,0===i?(t=Number.NaN,n=0):(n=l/i,f===i&&(t=(o-c)/l),o===i&&(t=2+(c-f)/l),c===i&&(t=4+(f-o)/l),(t*=60)<0&&(t+=360)),[t,n,a]},oe=l.unpack,ce=Math.floor,ue=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=oe(o,"hsv"))[0],h=o[1],b=o[2];if(b*=255,0===h)M
u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var s=ce(d/=60),p=d-s,g=b*(1-h),v=b*(1-h*p),y=b*(1-h*(1-p));switch(s){case 0:u=(r=[b,y,g])[0],i=r[1],l=r[2];break;case 1:u=(e=[v,b,g])[0],i=e[1],l=e[2];break;case 2:u=(t=[g,b,y])[0],i=t[1],l=t[2];break;case 3:u=(n=[g,v,b])[0],i=n[1],l=n[2];break;case 4:u=(a=[y,g,b])[0],i=a[1],l=a[2];break;case 5:u=(f=[b,g,v])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},ie=l.unpack,le=l.type,de=m,he=v,be=d,se=fe;he.prototype.hsv=function(){return se(this._rgb)},de.hsv=M
function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(he,[null].concat(r,["hsv"])))},be.format.hsv=ue,be.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=ie(r,"hsv"),"array"===le(r)&&3===r.length)return"hsv"}});var pe={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ge=pe,ve=l.unpack,ye=Math.pow,me=function(r){return(r/=255)<=.04045?r/12.92:ye((r+.055)/1.055,2.4)},ke=function(M
r){return r>ge.t3?ye(r,1/3):r/ge.t2+ge.t0},we=function(r,e,t){return r=me(r),e=me(e),t=me(t),[ke((.4124564*r+.3575761*e+.1804375*t)/ge.Xn),ke((.2126729*r+.7151522*e+.072175*t)/ge.Yn),ke((.0193339*r+.119192*e+.9503041*t)/ge.Zn)]},Me=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=ve(r,"rgb"),n=t[0],a=t[1],f=t[2],o=we(n,a,f),c=o[0],u=o[1],i=116*u-16;return[i<0?0:i,500*(c-u),200*(u-o[2])]},_e=pe,Ne=l.unpack,Fe=Math.pow,xe=function(r){return 255*(r<=.00304?12.92*r:1.055*Fe(r,1/2.4)-.055)},Pe=funM
ction(r){return r>_e.t1?r*r*r:_e.t2*(r-_e.t0)},Re=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Ne(r,"lab"))[0],o=r[1],c=r[2];return n=(f+16)/116,t=isNaN(o)?n:n+o/500,a=isNaN(c)?n:n-c/200,n=_e.Yn*Pe(n),t=_e.Xn*Pe(t),a=_e.Zn*Pe(a),[xe(3.2404542*t-1.5371385*n-.4985314*a),xe(-.969266*t+1.8760108*n+.041556*a),xe(.0556434*t-.2040259*n+1.0572252*a),r.length>3?r[3]:1]},Ge=l.unpack,je=l.type,Ee=m,Oe=v,qe=d,Be=Me;Oe.prototype.lab=function(){return Be(this._rgb)},Ee.lab=function(){for(var rM
=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Oe,[null].concat(r,["lab"])))},qe.format.lab=Re,qe.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ge(r,"lab"),"array"===je(r)&&3===r.length)return"lab"}});var Ie=l.unpack,Ae=l.RAD2DEG,De=Math.sqrt,Ce=Math.atan2,Ye=Math.round,Se=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ie(r,"lab"),n=t[0],a=t[1],f=t[2],o=De(a*a+f*f),c=(Ce(f,a)*Ae+360)%360;return 0===YeM
(1e4*o)&&(c=Number.NaN),[n,o,c]},Le=l.unpack,$e=Me,Te=Se,Ke=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Le(r,"rgb"),n=t[0],a=t[1],f=t[2],o=$e(n,a,f),c=o[0],u=o[1],i=o[2];return Te(c,u,i)},We=l.unpack,Xe=l.DEG2RAD,Ze=Math.sin,He=Math.cos,ze=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=We(r,"lch"),n=t[0],a=t[1],f=t[2];return isNaN(f)&&(f=0),[n,He(f*=Xe)*a,Ze(f)*a]},Ue=l.unpack,Ve=ze,Je=Re,Qe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=M
(r=Ue(r,"lch"))[0],n=r[1],a=r[2],f=Ve(t,n,a),o=f[0],c=f[1],u=f[2],i=Je(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},rt=l.unpack,et=Qe,tt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rt(r,"hcl").reverse();return et.apply(void 0,t)},nt=l.unpack,at=l.type,ft=m,ot=v,ct=d,ut=Ke;ot.prototype.lch=function(){return ut(this._rgb)},ot.prototype.hcl=function(){return ut(this._rgb).reverse()},ft.lch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.biM
nd.apply(ot,[null].concat(r,["lch"])))},ft.hcl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ot,[null].concat(r,["hcl"])))},ct.format.lch=Qe,ct.format.hcl=tt,["lch","hcl"].forEach(function(r){return ct.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=nt(e,r),"array"===at(e)&&3===e.length)return r}})});var it=d,lt=l.type,dt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:M
"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",daM
rkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#M
adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#M
778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhiteM
:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a4M
60",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},ht=xr,bt=_r;v.prototype.name=function(){for(var r=bt(this._rgb,"rgb"),e=0,t=Object.keys(dt);e<t.length;e+=1){var n=M
t[e];if(dt[n]===r)return n.toLowerCase()}return r},it.format.named=function(r){if(r=r.toLowerCase(),dt[r])return ht(dt[r]);throw new Error("unknown color name: "+r)},it.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===lt(r)&&dt[r.toLowerCase()])return"named"}});var st=l.unpack,pt=l.type,gt=function(r){if("number"==pt(r)&&r>=0&&r<=16777215)return[r>>16,r>>8&255,255&r,1];throw new Error("unknown num color: "+r)},vt=m,yt=v,mt=d,kt=l.type,wt=fuM
nction(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=st(r,"rgb");return(t[0]<<16)+(t[1]<<8)+t[2]};yt.prototype.num=function(){return wt(this._rgb)},vt.num=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(yt,[null].concat(r,["num"])))},mt.format.num=gt,mt.autodetect.push({p:5,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(1===r.length&&"number"===kt(r[0])&&r[0]>=0&&r[0]<=16777215)return"num"}});var Mt=m,_t=v,Nt=d,FtM
=l.unpack,xt=l.type,Pt=Math.round;_t.prototype.rgb=function(r){return void 0===r&&(r=!0),!1===r?this._rgb.slice(0,3):this._rgb.slice(0,3).map(Pt)},_t.prototype.rgba=function(r){return void 0===r&&(r=!0),this._rgb.slice(0,4).map(function(e,t){return t<3?!1===r?e:Pt(e):e})},Mt.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(_t,[null].concat(r,["rgb"])))},Nt.format.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ft(r,"rgba");retM
urn void 0===t[3]&&(t[3]=1),t},Nt.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ft(r,"rgba"),"array"===xt(r)&&(3===r.length||4===r.length&&"number"==xt(r[3])&&r[3]>=0&&r[3]<=1))return"rgb"}});var Rt=Math.log,Gt=function(r){var e,t,n,a=r/100;return a<66?(e=255,t=a<6?0:-155.25485562709179-.44596950469579133*(t=a-2)+104.49216199393888*Rt(t),n=a<20?0:.8274096064007395*(n=a-10)-254.76935184120902+115.67994401066147*Rt(n)):(e=351.97690566805693+.114206453784165*(e=a-55)-M
40.25366309332127*Rt(e),t=325.4494125711974+.07943456536662342*(t=a-50)-28.0852963507957*Rt(t),n=255),[e,t,n,1]},jt=Gt,Et=l.unpack,Ot=Math.round,qt=m,Bt=v,It=d,At=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];for(var t,n=Et(r,"rgb"),a=n[0],f=n[2],o=1e3,c=4e4;c-o>.4;){var u=jt(t=.5*(c+o));u[2]/u[0]>=f/a?c=t:o=t}return Ot(t)};Bt.prototype.temp=Bt.prototype.kelvin=Bt.prototype.temperature=function(){return At(this._rgb)},qt.temp=qt.kelvin=qt.temperature=function(){for(var r=[],e=arguments.length;e-M
-;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Bt,[null].concat(r,["temp"])))},It.format.temp=It.format.kelvin=It.format.temperature=Gt;var Dt=l.unpack,Ct=Math.cbrt,Yt=Math.pow,St=Math.sign,Lt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Dt(r,"rgb"),n=t[0],a=t[1],f=t[2],o=[$t(n/255),$t(a/255),$t(f/255)],c=o[0],u=o[1],i=o[2],l=Ct(.4122214708*c+.5363325363*u+.0514459929*i),d=Ct(.2119034982*c+.6806995451*u+.1073969566*i),h=Ct(.0883024619*c+.2817188376*u+.6299787005*i);return[.M
2104542553*l+.793617785*d-.0040720468*h,1.9779984951*l-2.428592205*d+.4505937099*h,.0259040371*l+.7827717662*d-.808675766*h]};function $t(r){var e=Math.abs(r);return e<.04045?r/12.92:(St(r)||1)*Yt((e+.055)/1.055,2.4)}var Tt=l.unpack,Kt=Math.pow,Wt=Math.sign,Xt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=Tt(r,"lab"))[0],n=r[1],a=r[2],f=Kt(t+.3963377774*n+.2158037573*a,3),o=Kt(t-.1055613458*n-.0638541728*a,3),c=Kt(t-.0894841775*n-1.291485548*a,3);return[255*Zt(4.0767416621*f-3.307711591M
3*o+.2309699292*c),255*Zt(-1.2684380046*f+2.6097574011*o-.3413193965*c),255*Zt(-.0041960863*f-.7034186147*o+1.707614701*c),r.length>3?r[3]:1]};function Zt(r){var e=Math.abs(r);return e>.0031308?(Wt(r)||1)*(1.055*Kt(e,1/2.4)-.055):12.92*r}var Ht=l.unpack,zt=l.type,Ut=m,Vt=v,Jt=d,Qt=Lt;Vt.prototype.oklab=function(){return Qt(this._rgb)},Ut.oklab=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Vt,[null].concat(r,["oklab"])))},Jt.format.oklab=Xt,Jt.autodetect.pM
ush({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ht(r,"oklab"),"array"===zt(r)&&3===r.length)return"oklab"}});var rn=l.unpack,en=Lt,tn=Se,nn=l.unpack,an=ze,fn=Xt,on=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=nn(r,"lch"))[0],n=r[1],a=r[2],f=an(t,n,a),o=f[0],c=f[1],u=f[2],i=fn(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},cn=l.unpack,un=l.type,ln=m,dn=v,hn=d,bn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rn(r,"rgb"),n=tM
[0],a=t[1],f=t[2],o=en(n,a,f),c=o[0],u=o[1],i=o[2];return tn(c,u,i)};dn.prototype.oklch=function(){return bn(this._rgb)},ln.oklch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(dn,[null].concat(r,["oklch"])))},hn.format.oklch=on,hn.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=cn(r,"oklch"),"array"===un(r)&&3===r.length)return"oklch"}});var sn=v,pn=l.type;sn.prototype.alpha=function(r,e){return void 0===e&M
&(e=!1),void 0!==r&&"number"===pn(r)?e?(this._rgb[3]=r,this):new sn([this._rgb[0],this._rgb[1],this._rgb[2],r],"rgb"):this._rgb[3]},v.prototype.clipped=function(){return this._rgb._clipped||!1};var gn=v,vn=pe;gn.prototype.darken=function(r){void 0===r&&(r=1);var e=this.lab();return e[0]-=vn.Kn*r,new gn(e,"lab").alpha(this.alpha(),!0)},gn.prototype.brighten=function(r){return void 0===r&&(r=1),this.darken(-r)},gn.prototype.darker=gn.prototype.darken,gn.prototype.brighter=gn.prototype.brighten,v.prototype.get=functioM
n(r){var e=r.split("."),t=e[0],n=e[1],a=this[t]();if(n){var f=t.indexOf(n)-("ok"===t.substr(0,2)?2:0);if(f>-1)return a[f];throw new Error("unknown channel "+n+" in mode "+t)}return a};var yn=v,mn=l.type,kn=Math.pow;yn.prototype.luminance=function(r){if(void 0!==r&&"number"===mn(r)){if(0===r)return new yn([0,0,0,this._rgb[3]],"rgb");if(1===r)return new yn([255,255,255,this._rgb[3]],"rgb");var e=this.luminance(),t=20,n=function(e,a){var f=e.interpolate(a,.5,"rgb"),o=f.luminance();return Math.abs(r-o)<1e-7||!t--?f:o>rM
?n(e,f):n(f,a)},a=(e>r?n(new yn([0,0,0]),this):n(this,new yn([255,255,255]))).rgb();return new yn(a.concat([this._rgb[3]]))}return wn.apply(void 0,this._rgb.slice(0,3))};var wn=function(r,e,t){return.2126*(r=Mn(r))+.7152*(e=Mn(e))+.0722*(t=Mn(t))},Mn=function(r){return(r/=255)<=.03928?r/12.92:kn((r+.055)/1.055,2.4)},_n={},Nn=v,Fn=l.type,xn=_n,Pn=v,Rn=function(r,e,t){void 0===t&&(t=.5);for(var n=[],a=arguments.length-3;a-- >0;)n[a]=arguments[a+3];var f=n[0]||"lrgb";if(xn[f]||n.length||(f=Object.keys(xn)[0]),!xn[f])tM
hrow new Error("interpolation mode "+f+" is not defined");return"object"!==Fn(r)&&(r=new Nn(r)),"object"!==Fn(e)&&(e=new Nn(e)),xn[f](r,e,t).alpha(r.alpha()+t*(e.alpha()-r.alpha()))};Pn.prototype.mix=Pn.prototype.interpolate=function(r,e){void 0===e&&(e=.5);for(var t=[],n=arguments.length-2;n-- >0;)t[n]=arguments[n+2];return Rn.apply(void 0,[this,r,e].concat(t))};var Gn=v;Gn.prototype.premultiply=function(r){void 0===r&&(r=!1);var e=this._rgb,t=e[3];return r?(this._rgb=[e[0]*t,e[1]*t,e[2]*t,t],this):new Gn([e[0]*t,M
e[1]*t,e[2]*t,t],"rgb")};var jn=v,En=pe;jn.prototype.saturate=function(r){void 0===r&&(r=1);var e=this.lch();return e[1]+=En.Kn*r,e[1]<0&&(e[1]=0),new jn(e,"lch").alpha(this.alpha(),!0)},jn.prototype.desaturate=function(r){return void 0===r&&(r=1),this.saturate(-r)};var On=v,qn=l.type;On.prototype.set=function(r,e,t){void 0===t&&(t=!1);var n=r.split("."),a=n[0],f=n[1],o=this[a]();if(f){var c=a.indexOf(f)-("ok"===a.substr(0,2)?2:0);if(c>-1){if("string"==qn(e))switch(e.charAt(0)){case"+":case"-":o[c]+=+e;break;case"*M
":o[c]*=+e.substr(1);break;case"/":o[c]/=+e.substr(1);break;default:o[c]=+e}else{if("number"!==qn(e))throw new Error("unsupported value for Color.set");o[c]=e}var u=new On(o,a);return t?(this._rgb=u._rgb,this):u}throw new Error("unknown channel "+f+" in mode "+a)}return o};var Bn=v;_n.rgb=function(r,e,t){var n=r._rgb,a=e._rgb;return new Bn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"rgb")};var In=v,An=Math.sqrt,Dn=Math.pow;_n.lrgb=function(r,e,t){var n=r._rgb,a=n[0],f=n[1],o=n[2],c=e._rgb,u=c[0],i=c[1M
],l=c[2];return new In(An(Dn(a,2)*(1-t)+Dn(u,2)*t),An(Dn(f,2)*(1-t)+Dn(i,2)*t),An(Dn(o,2)*(1-t)+Dn(l,2)*t),"rgb")};var Cn=v;_n.lab=function(r,e,t){var n=r.lab(),a=e.lab();return new Cn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"lab")};var Yn=v,Sn=function(r,e,t,n){var a,f,o,c,u,i,l,d,h,b,s,p,g;return"hsl"===n?(o=r.hsl(),c=e.hsl()):"hsv"===n?(o=r.hsv(),c=e.hsv()):"hcg"===n?(o=r.hcg(),c=e.hcg()):"hsi"===n?(o=r.hsi(),c=e.hsi()):"lch"===n||"hcl"===n?(n="hcl",o=r.hcl(),c=e.hcl()):"oklch"===n&&(o=r.oklch()M
.reverse(),c=e.oklch().reverse()),"h"!==n.substr(0,1)&&"oklch"!==n||(u=(a=o)[0],l=a[1],h=a[2],i=(f=c)[0],d=f[1],b=f[2]),isNaN(u)||isNaN(i)?isNaN(u)?isNaN(i)?p=Number.NaN:(p=i,1!=h&&0!=h||"hsv"==n||(s=d)):(p=u,1!=b&&0!=b||"hsv"==n||(s=l)):p=u+t*(i>u&&i-u>180?i-(u+360):i<u&&u-i>180?i+360-u:i-u),void 0===s&&(s=l+t*(d-l)),g=h+t*(b-h),new Yn("oklch"===n?[g,s,p]:[p,s,g],n)},Ln=Sn,$n=function(r,e,t){return Ln(r,e,t,"lch")};_n.lch=$n,_n.hcl=$n;var Tn=v;_n.num=function(r,e,t){var n=r.num(),a=e.num();return new Tn(n+t*(a-n),M
"num")};var Kn=Sn;_n.hcg=function(r,e,t){return Kn(r,e,t,"hcg")};var Wn=Sn;_n.hsi=function(r,e,t){return Wn(r,e,t,"hsi")};var Xn=Sn;_n.hsl=function(r,e,t){return Xn(r,e,t,"hsl")};var Zn=Sn;_n.hsv=function(r,e,t){return Zn(r,e,t,"hsv")};var Hn=v;_n.oklab=function(r,e,t){var n=r.oklab(),a=e.oklab();return new Hn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"oklab")};var zn=Sn;_n.oklch=function(r,e,t){return zn(r,e,t,"oklch")};Math.pow,Math.sqrt,Math.PI,Math.cos,Math.sin,Math.atan2,Math.pow;var Un=m,Vn=funM
ction(r,e,t){if(!Vn[t])throw new Error("unknown blend mode "+t);return Vn[t](r,e)},Jn=function(r){return function(e,t){var n=Un(t).rgb(),a=Un(e).rgb();return Un.rgb(r(n,a))}},Qn=function(r){return function(e,t){var n=[];return n[0]=r(e[0],t[0]),n[1]=r(e[1],t[1]),n[2]=r(e[2],t[2]),n}};Vn.normal=Jn(Qn(function(r){return r})),Vn.multiply=Jn(Qn(function(r,e){return r*e/255})),Vn.screen=Jn(Qn(function(r,e){return 255*(1-(1-r/255)*(1-e/255))})),Vn.overlay=Jn(Qn(function(r,e){return e<128?2*r*e/255:255*(1-2*(1-r/255)*(1-eM
/255))})),Vn.darken=Jn(Qn(function(r,e){return r>e?e:r})),Vn.lighten=Jn(Qn(function(r,e){return r>e?r:e})),Vn.dodge=Jn(Qn(function(r,e){return 255===r?255:(r=e/255*255/(1-r/255))>255?255:r})),Vn.burn=Jn(Qn(function(r,e){return 255*(1-(1-e/255)/(r/255))}));Math.pow,Math.sin,Math.cos,Math.floor,Math.random,Math.log,Math.pow,Math.floor,Math.abs,Math.sqrt,Math.pow,Math.min,Math.max,Math.atan2,Math.abs,Math.cos,Math.sin,Math.exp,Math.PI;for(var ra={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d730M
1f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:M
["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeM
b","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6M
","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#M
fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#M
01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999M
999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","M
#fddaec","#f2f2f2"]},ea=0,ta=Object.keys(ra);ea<ta.length;ea+=1){var na=ta[ea];ra[na.toLowerCase()]=ra[na]}return m});
function Q5(e){return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100;n.height=100;n.canvas.width=n.width;n.canvas.height=n.height;"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",function(){document.body.appendChild(n.canvas)}));m();n.MAGIC=161533525;n.RGB=0;n.HSVM
=1;n.HSB=1;n.CHORD=0;n.PIE=1;n.OPEN=2;n.RADIUS=1;n.CORNER=2;n.CORNERS=3;n.ROUND="round";n.SQUARE="butt";n.PROJECT="square";n.MITER="miter";n.BEVEL="bevel";n.CLOSE=1;n.BLEND="source-over";n.REMOVE="destination-out";n.ADD="lighter";n.DARKEST="darken";n.LIGHTEST="lighten";n.DIFFERENCE="difference";n.SUBTRACT="subtract";n.EXCLUSION="exclusion";n.MULTIPLY="multiply";n.SCREEN="screen";n.REPLACE="copy";n.OVERLAY="overlay";n.HARD_LIGHT="hard-light";n.SOFT_LIGHT="soft-light";n.DODGE="color-dodge";n.BURN="color-burn";n.NORMAM
L="normal";n.ITALIC="italic";n.BOLD="bold";n.BOLDITALIC="italic bold";n.CENTER="center";n.LEFT="left";n.RIGHT="right";n.TOP="top";n.BOTTOM="bottom";n.BASELINE="alphabetic";n.LANDSCAPE="landscape";n.PORTRAIT="portrait";n.ALT=18;n.BACKSPACE=8;n.CONTROL=17;n.DELETE=46;n.DOWN_ARROW=40;n.ENTER=13;n.ESCAPE=27;n.LEFT_ARROW=37;n.OPTION=18;n.RETURN=13;n.RIGHT_ARROW=39;n.SHIFT=16;n.TAB=9;n.UP_ARROW=38;n.HALF_PI=Math.PI/2;n.PI=Math.PI;n.QUARTER_PI=Math.PI/4;n.TAU=2*Math.PI;n.TWO_PI=2*Math.PI;n.THRESHOLD=1;n.GRAY=2;n.OPAQUE=3;M
n.INVERT=4;n.POSTERIZE=5;n.DILATE=6;n.ERODE=7;n.BLUR=8;n.ARROW="default";n.CROSS="crosshair";n.HAND="pointer";n.MOVE="move";n.TEXT="text";n.VIDEO={video:!0,audio:!1};n.AUDIO={video:!1,audio:!0};n.SHR3=1;n.LCG=2;n.HARDWARE_FILTERS=!0;n.hint=function(e,t){n[e]=t};n.frameCount=0;n.mouseX=0;n.mouseY=0;n.pmouseX=0;n.pmouseY=0;n.mouseButton=null;n.keyIsPressed=!1;n.mouseIsPressed=!1;n.key=null;n.keyCode=null;n.pixels=null;n.accelerationX=0;n.accelerationY=0;n.accelerationZ=0;n.rotationX=0;n.rotationY=0;n.rotationZ=0;n.reM
lRotationX=0;n.relRotationY=0;n.relRotationZ=0;n.pAccelerationX=0;n.pAccelerationY=0;n.pAccelerationZ=0;n.pRotationX=0;n.pRotationY=0;n.pRotationZ=0;n.pRelRotationX=0;n.pRelRotationY=0;n.pRelRotationZ=0;n.touches=[];n._colorMode=n.RGB;n._noStroke=!1;n._noFill=!1;n._ellipseMode=n.CENTER;n._rectMode=n.CORNER;n._curveDetail=20;n._curveAlpha=0;n._noLoop=!1;n._textFont="sans-serif";n._textSize=12;n._textLeading=12;n._textStyle="normal";n._pixelDensity=1;n._frameRate=null;n._tint=null;let a=null;let r=!0;let i=[];let l=nM
ull;let u=0;let s={};let c=0;let h=null;let f=null;let d=null;Object.defineProperty(n,"deviceOrientation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}});Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}});Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}});Object.defineProperty(n,"drawingContext",{get:function(){return o}});n.createCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t,m()};n.resizM
eCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t};n.createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o};n.pixelDensity=function(e){return null==e?n._pixelDensity:(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),m(),n._pixelDensity)};n.map=function(e,t,n,o,a,r){let i=o+1*(e-t)/(nM
-t)*(a-o);return r?o<a?Math.min(Math.max(i,o),a):Math.min(Math.max(i,a),o):i};n.lerp=function(e,t,n){return e*(1-n)+t*n};n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)};n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])};n.norm=function(e,t,o){return n.map(e,t,o,0,1)};n.sq=function(e){return e*e};n.fract=function(e){return e-Math.floor(e)};n.degrees=functiM
on(e){return 180*e/Math.PI};n.radians=function(e){return e*Math.PI/180};n.abs=Math.abs;n.ceil=Math.ceil;n.exp=Math.exp;n.floor=Math.floor;n.log=Math.log;n.mag=Math.hypot;n.max=Math.max;n.min=Math.min;n.round=Math.round;n.sqrt=Math.sqrt;n.sin=Math.sin;n.cos=Math.cos;n.tan=Math.tan;n.asin=Math.asin;n.acos=Math.acos;n.atan=Math.atan;n.atan2=Math.atan2;n.Vector=function(e,t,o){let a=this;a.x=e||0,a.y=t||0,a.z=o||0;let r=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n||0}:{x:e,y:e,z:e}}function u()M
{null==i&&(i=a.x*a.x+a.y*a.y+a.z*a.z,r=Math.sqrt(i))}function s(){i=null,r=null}a.set=function(e,t,n){a.x=e||0,a.y=t||0,a.z=n||0},a.copy=function(){return new n.Vector(a.x,a.y,a.z)},a.add=function(){let e=l.apply(null,arguments);return a.x+=e.x,a.y+=e.y,a.z+=e.z,s(),a},a.rem=function(){let e=l.apply(null,arguments);return a.x%=e.x,a.y%=e.y,a.z%=e.z,s(),a},a.sub=function(){let e=l.apply(null,arguments);return a.x-=e.x,a.y-=e.y,a.z-=e.z,s(),a},a.mult=function(){let e=l.apply(null,arguments);return a.x*=e.x,a.y*=e.y,aM
.z*=e.z,s(),a},a.div=function(){let e=l.apply(null,arguments);return a.x/=e.x,a.y/=e.y,a.z/=e.z,s(),a},a.mag=function(){return u(),r},a.magSq=function(){return u(),i},a.dot=function(){let e=l.apply(null,arguments);return a.x*e.x+a.y*e.y+a.z*e.z},a.dist=function(){let e=l.apply(null,arguments),t=a.x-e.x,n=a.y-e.y,o=a.z-e.z;return Math.sqrt(t*t+n*n+o*o)},a.cross=function(){let e=l.apply(null,arguments),t=a.y*e.z-a.z*e.y,n=a.z*e.x-a.x*e.z,o=a.x*e.y-a.y*e.x;return a.x=t,a.y=n,a.z=o,s(),a},a.normalize=function(){u();letM
 e=r;return a.x/=e,a.y/=e,a.z/=e,r=1,i=1,a},a.limit=function(e){u();let t=r;if(t>e){let n=e/t;a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e}return a},a.setMag=function(e){u();let t=r,n=e/t;return a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e,a},a.heading=function(){return Math.atan2(a.y,a.x)},a.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=a.x*t-a.y*n,r=a.x*n+a.y*t;return a.x=o,a.y=r,a},a.angleBetween=function(){let e=l.apply(null,arguments);const t=a.dot(e)/(a.mag()*e.mag());let n;return n=Math.acos(Math.min(1,Math.max(-1,t))),n*=Math.sM
ign(a.cross(e).z||1)},a.lerp=function(e,t){return a.x=a.x*(1-t)+e.x*t,a.y=a.y*(1-t)+e.y*t,a.z=a.z*(1-t)+e.z*t,s(),a},a.reflect=function(e){return e.normalize(),a.sub(e.mult(2*a.dot(e)))},a.array=function(){return[a.x,a.y,a.z]},a.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-a.x)<t&&Math.abs(e.y-a.y)<t&&Math.abs(e.z-a.z)<t},a.fromAngle=function(e,t){return null==t&&(t=1),r=t,i=t*t,a.x=t*Math.cos(e),a.y=t*Math.sin(e),a.z=0,a},a.fromAngles=function(e,t,n){null==n&&(n=1),r=n,i=n*n;coM
nst o=Math.cos(t),l=Math.sin(t),u=Math.cos(e),s=Math.sin(e);return a.x=n*s*l,a.y=-n*u,a.z=n*s*o,a},a.random2D=function(){return r=1,i=1,a.fromAngle(Math.random()*Math.PI*2)},a.random3D=function(){return r=1,i=1,a.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},a.toString=function(){return`[${a.x}, ${a.y}, ${a.z}]`}};n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)};n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)};n.Vector.sub=function(e,t){return new n.VecM
tor(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):new n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)};n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)};n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)};n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-o)+t.x*o,e.y=e.y*(1-o)+t.y*o,e.M
z=e.z*(1-o)+t.z*o)};n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAngles","random2D","random3D"])n.Vector[e]=function(t,o,a){return(new n.Vector)[e](t,o,a)};n.createVector=function(e,t,o){return new n.Vector(e,t,o)};n.curvePoint=function(e,t,n,o,a){const r=a*a*a,i=a*a,l=-.5*r+i-.5*a,u=1.5*r-2.5*i+1,s=-1.5*r+2*i+.5*a,c=.5*r-.5*i;return e*l+t*u+n*s+o*c};n.bezierPoint=function(e,t,n,o,a){const r=1-a;return Math.pow(r,3)*e+3*Math.pow(r,2)*a*t+3*r*Math.pow(a,2)*n+Math.pow(a,3)*o};n.M
curveTangent=function(e,t,n,o,a){const r=a*a,i=-3*r/2+2*a-.5,l=9*r/2-5*a,u=-9*r/2+4*a+.5,s=3*r/2-a;return e*i+t*l+n*u+o*s};n.bezierTangent=function(e,t,n,o,a){const r=1-a;return 3*o*Math.pow(a,2)-3*n*Math.pow(a,2)+6*n*r*a-6*t*r*a+3*t*Math.pow(r,2)-3*e*Math.pow(r,2)};function p(e,t,n){let o,a,r,i,l,u,s,c,h;if(0==t)return[255*(o=n),255*(a=n),255*(r=n)];switch((i=e)>360&&(i=0),s=n*(1-t),c=n*(1-t*(u=(i/=60)-(l=~~i))),h=n*(1-t*(1-u)),l){case 0:o=n,a=h,r=s;break;case 1:o=c,a=n,r=s;break;case 2:o=s,a=n,r=h;break;case 3:o=M
s,a=c,r=n;break;case 4:o=h,a=s,r=n;break;default:o=n,a=s,r=c}return[255*o,255*a,255*r]}n.Color=function(e,t,n,o){let a=this;a.MAGIC=786698,a._r=e,a._g=t,a._b=n,a._a=o,a._h=0,a._s=0,a._v=0,a._hsvInferred=!1,a.setRed=function(e){a._r=e,a._hsvInferred=!1},a.setGreen=function(e){a._g=e,a._hsvInferred=!1},a.setBlue=function(e){a._b=e,a._hsvInferred=!1},a.setAlpha=function(e){a._a=e/255,a._hsvInferred=!1},a._inferHSV=function(){a._hsvInferred||([a._h,a._s,a._v]=function(e,t,n){let o,a,r,i,l;if(o=e<t?e<n?e:n:t<n?t:n,0==(lM
=100*(a=e>t?e>n?e:n:t>n?t:n)/255))return[r=0,i=0,l];if(0==(i=100*(a-o)/a))return[r=0,i,l];r=a==e?0+60*(t-n)/(a-o):a==t?120+60*(n-e)/(a-o):240+60*(e-t)/(a-o);return[r,i,l]}(a._r,a._g,a._b),a._hsvInferred=!0)},a.toString=function(){return`rgba(${Math.round(a._r)},${Math.round(a._g)},${Math.round(a._b)},${~~(1e3*a._a)/1e3})`}};n.colorMode=function(e){n._colorMode=e};n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGIC)return arguments[0];if(n._colorMode==n.RGB){if(1==arguments.length)return new n.ColoM
r(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);if(3==arguments.length)return M
new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null};n.red=function(e){return e._r};n.green=function(e){return e._g};n.blue=function(e){return e._b};n.alpha=function(e){return 255*e._a};n.hue=function(e){return e._inferHSV(),e._h};n.saturation=function(e){return e._inferHSV(),e._s};n.brightness=function(e){return e._inferHSV(),e._v};n.lightness=function(e){return 100*(.2126*e._r+.M
7152*e._g+.0722*e._b)/255};n.lerpColor=function(e,t,o){return n._colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var a=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.map(o,0,1,e,t-360)]];return a.sort((e,t)=>e[0]-t[0]),(a[0][1]+720)%360}(e._h,t._h,o),0,360),n.constrM
ain(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))};function m(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}n.strokeWeight=function(e){n._noStroke=!1,o.lineWidth=e};n.stroke=function(){if(n._noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noStroke=!0:o.strokeStyle=e};n.noStroke=function(){n._noStroke=!0};n.fill=function(){if(n._noFill=!1,"striM
ng"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noFill=!0:o.fillStyle=e};n.noFill=function(){n._noFill=!0};n.blendMode=function(e){o.globalCompositeOperation=e};n.strokeCap=function(e){o.lineCap=e};n.strokeJoin=function(e){o.lineJoin=e};n.ellipseMode=function(e){n._ellipseMode=e};n.rectMode=function(e){n._rectMode=e};n.curveDetail=function(e){n._curveDetail=e};n.curveAlpha=function(e){n._curveAlpha=e};n.curveTightness=function(e){console.warn("curveTightM
ness() sets the 'alpha' parameter of Catmull-Rom curve, and is NOT identical to p5.js counterpart. As this might change in the future, please call curveAlpha() directly."),n._curveAlpha=e};n.clear=function(){o.clearRect(0,0,n.width,n.height)};n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),"string"==typeof arguments[0]?o.fillStyle=arguments[0]:o.fillStyle=n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.heigM
ht),o.restore()};n.line=function(e,t,a,r){n._noStroke||(o.beginPath(),o.moveTo(e,t),o.lineTo(a,r),o.stroke())};function g(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function v(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;let c=g(i),h=g(l);o.beginPath();for(let i=0;i<s+1;i++){let l=i/s,u=n.lerp(c,h,l),f=Math.cos(u)*a/2,d=Math.sin(u)*r/2;o[i?"lineTo":"moveTo"](e+f,t+d)}u==n.CHORD?o.closePath():u==n.PIE&&(o.lineTo(e,t),o.closePath()),n._noFill||o.fill(),n._noStrM
oke||o.stroke()}n.arc=function(e,t,o,a,r,i,l,u){if(r==i)return n.ellipse(e,t,o,a);null==u&&(u=25),null==l&&(l=n.PIE),n._ellipseMode==n.CENTER?v(e,t,o,a,r,i,l,u):n._ellipseMode==n.RADIUS?v(e,t,2*o,2*a,r,i,l,u):n._ellipseMode==n.CORNER?v(e+o/2,t+a/2,o,a,r,i,l,u):n._ellipseMode==n.CORNERS&&v((e+o)/2,(t+a)/2,o-e,a-t,r,i,l,u)};function M(e,t,a,r){n._noFill&&n._noStroke||(o.beginPath(),o.ellipse(e,t,a/2,r/2,0,0,2*Math.PI),n._noFill||o.fill(),n._noStroke||o.stroke())}n.ellipse=function(e,t,o,a){null==a&&(a=o),n._ellipseMoM
de==n.CENTER?M(e,t,o,a):n._ellipseMode==n.RADIUS?M(e,t,2*o,2*a):n._ellipseMode==n.CORNER?M(e+o/2,t+a/2,o,a):n._ellipseMode==n.CORNERS&&M((e+o)/2,(t+a)/2,o-e,a-t)};n.circle=function(e,t,o){return n.ellipse(e,t,o,o)};n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()};function _(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;if(null==i)return function(e,t,a,r){n._noFill||o.fillRect(e,t,a,r);n._noStroke||o.strokeRect(e,t,a,r)}(e,t,a,r);if(null==l)return _(e,t,a,r,i,M
i,i,i);const c=Math.min(Math.abs(r),Math.abs(a))/2;i=Math.min(c,i),l=Math.min(c,l),s=Math.min(c,s),u=Math.min(c,u),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+a,t,e+a,t+r,l),o.arcTo(e+a,t+r,e,t+r,u),o.arcTo(e,t+r,e,t,s),o.arcTo(e,t,e+a,t,i),o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke()}n.rect=function(e,t,o,a,r,i,l,u){n._rectMode==n.CENTER?_(e-o/2,t-a/2,o,a,r,i,l,u):n._rectMode==n.RADIUS?_(e-o,t-a,2*o,2*a,r,i,l,u):n._rectMode==n.CORNER?_(e,t,o,a,r,i,l,u):n._rectMode==n.CORNERS&&_(e,t,o-e,a-t,r,i,l,u)};n.squM
are=function(e,t,o,a,r,i,l){return n.rect(e,t,o,o,a,r,i,l)};function x(){i=[]}n.beginShape=function(){x(),o.beginPath(),r=!0};n.beginContour=function(){o.closePath(),x(),r=!0};n.endContour=function(){x(),r=!0};n.vertex=function(e,t){x(),r?o.moveTo(e,t):o.lineTo(e,t),r=!1};n.bezierVertex=function(e,t,n,a,r,i){x(),o.bezierCurveTo(e,t,n,a,r,i)};n.quadraticVertex=function(e,t,n,a){x(),o.quadraticCurveTo(e,t,n,a)};n.bezier=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.bezierVertex(o,a,r,i,l,u),n.endShape()};nM
.triangle=function(e,t,o,a,r,i){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.endShape(n.CLOSE)};n.quad=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.vertex(l,u),n.endShape(n.CLOSE)};n.endShape=function(e){x(),e&&o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke(),n._noFill&&n._noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())};n.curveVertex=function(e,t){if(i.push([e,t]),i.length<4)return;let a=i[i.length-4],l=i[i.length-3],u=i[i.length-2],s=i[i.M
length-1],c=function(e,t,n,o,a,r,i,l,u,s){function c(e,t,n,o,a,r){let i=Math.pow(o-t,2)+Math.pow(a-n,2),l=Math.pow(i,.5*r);return l+e}let h=[],f=c(0,e,t,n,o,s),d=c(f,n,o,a,r,s),p=c(d,a,r,i,l,s);for(let s=0;s<u;s++){let c=f+s/(u-1)*(d-f),m=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<m.length;e+=2)isNaN(m[e])&&(m[e]=1,m[e+1]=0),isFinite(m[e])||(m[e]>0?(m[e]=1,m[e+1]=0):(m[e]=0,m[e+1]=1));let g=e*m[0]+n*m[1],v=t*m[0]+o*m[1],M=nM
*m[2]+a*m[3],_=o*m[2]+r*m[3],x=a*m[4]+i*m[5],y=r*m[4]+l*m[5],w=g*m[6]+M*m[7],R=v*m[6]+_*m[7],I=M*m[8]+x*m[9],E=_*m[8]+y*m[9],S=w*m[2]+I*m[3],C=R*m[2]+E*m[3];h.push([S,C])}return h}(...a,...l,...u,...s,n._curveDetail,n._curveAlpha);for(let e=0;e<c.length;e++)r?o.moveTo(...c[e]):o.lineTo(...c[e]),r=!1};n.curve=function(e,t,o,a,r,i,l,u){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,a),n.curveVertex(r,i),n.curveVertex(l,u),n.endShape()};n.translate=function(e,t){o.translate(e,t)};n.rotate=function(e){o.rotate(e)};nM
.scale=function(e,t){null==t&&(t=e),o.scale(e,t)};n.applyMatrix=function(e,t,n,a,r,i){o.transform(e,t,n,a,r,i)};n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)};n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)};n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)};n.pushMatrix=n.push=function(){o.save()};n.popMatrix=n.pop=function(){o.restore()};n.image=function(e,t,a,r,i,l,u,s,c){let h=e.MAGIC==n.MAGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let tM
=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(!function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d"));null==e&&(e=o.canvas.width,t=o.canvas.height);f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tinted(n._tint)),r?l?(s||(s=h.width),c||(c=h.height),o.drawImage(h,l,u,s,c,t,M
a,r,i),void d()):(o.drawImage(h,t,a,r,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,a,e.width,e.height):o.drawImage(h,t,a,e.videoWidth,e.videoHeight),void d())};n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data};n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)};n.loadImage=function(e,t){u++;let o=n.createGraphics(100,100),a=o.canvas.getContext("2d"),r=new Image;return r.src=e,r.crossOrigin="Anonymous",r.onload=function(){a.canvas.width=r.width,a.canvas.heM
ight=r.height,o.width=r.width,o.height=r.height,a.drawImage(r,0,0),u--,t&&t(o)},o};let y={};y[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}};y[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}};y[n.OPAQUE]=function(e){for(let t=0;t<e.length;t+=4)e[t+3]=255};y[n.INVERT]=function(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[tM
+2]=255-e[t+2]};y[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n};y[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.max(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.ERODE]=function(e){R(),d.set(M
e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.min(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let a=2*t+1;let r=function(e){let n=new Float32Array(e),o=.3*t+.8,a=o*o*2;for(let t=0;t<e;t++){let r=t-e/2,i=Math.exp(-r*r/a)/(2.5066282746*o);n[t]=i}reM
turn n}(a),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,u=0,s=0,c=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(o-t+e,0),i-1),h=4*(n*i+a);l+=d[h]*r[e],u+=d[h+1]*r[e],s+=d[h+2]*r[e],c+=d[h+3]*r[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=u,e[h+2]=s,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let u=0,s=0,c=0,h=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(n-t+e,0),l-1),f=4*(a*i+o);u+=d[f]*r[e],s+=d[f+1]*r[e],c+=d[f+2]*r[e],h+=d[f+3]*r[e]}let f=4*(n*i+o);e[f]=u,e[f+1]=sM
,e[f+2]=c,e[f+3]=h}};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClampedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvasM
,0,0),o.restore()}n.filter=function(e,t){let a=n.HARDWARE_FILTERS&&null!=o.filter;if(a)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5);let e=Math.floor(.5/t*100);I(`saturate(0%) brightness(${e}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(h.canvas,0,0),o.restore();else if(e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(t*M
n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}};n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()};n.getM
=function(e,t,a,r){if(null!=e&&null==a){let a=o.getImageData(e,t,1,1).data;return new n.Color(a[0],a[1],a[2],a[3]/255)}e=e||0,t=t||0,a=a||n.width,r=r||n.height;let i=n.createGraphics(a,r);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,a*n._pixelDensity,r*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i};n.set=function(e,t,a){if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.image(a,e,t),void(n._tint=o)}let r=4*(t*n._pixelDensity*o.canvas.width+M
e*n._pixelDensity);n.pixels[r]=a._r,n.pixels[r+1]=a._g,n.pixels[r+2]=a._b,n.pixels[r+3]=255*a._a};n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransform();let a=o.globalCompositeOperation;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.glM
obalCompositeOperation=a,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()};n.tint=function(){n._tint=n.color(...Array.from(arguments))};n.noTint=function(){n._tint=null};n.mask=function(e){o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositeOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeM
Operation=t,o.restore()};n.clearTemporaryBuffers=function(){h=null,f=null,d=null};n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t},!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)};n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.save(t,o);let n=t.split(".");return e.save(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);let aM
=e.split(".");return n.save(a.slice(0,-1).join("."),a[a.length-1])};n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),a=`@font-face {\n        font-family: '${o}';\n        src: url('${e}');\n      }`;const r=document.createElement("style");return r.textContent=a,document.head.append(r),o};n.textFont=function(e){n._textFont=e};n.textSize=function(e){n._textSize=e,n._textLeading=e};n.textLeading=function(e){n._textLeading=e};n.textStyle=function(e){n._textStyle=e};n.textAlign=M
function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)};n.text=function(e,t,a,r){if(!e)return;if(e=e.toString(),n._noFill&&n._noStroke)return;o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._noFill||o.fillText(i[e],t,a,r),n._noStroke||o.strokeText(i[e],t,a,r),a+=n._textLeading};n.textWidth=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).width};n.textAscent=function(e){return o.font=`${n._textStyle}M
 ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent};n.textDescent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent};var E=4;var S=.5;var C=function(e){return.5*(1-Math.cos(e*Math.PI))};var A;n.noise=function(e,t,n){if(t=t||0,n=n||0,null==A){A=new Array(4096);for(var o=0;o<4096;o++)A[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var a,r,i,l,u,s=Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-s,d=t-c,p=n-h,m=0,g=M
.5,v=0;v<E;v++){var M=s+(c<<4)+(h<<8);a=C(f),r=C(d),i=A[4095&M],i+=a*(A[M+1&4095]-i),l=A[M+16&4095],l+=a*(A[M+16+1&4095]-l),i+=r*(l-i),l=A[4095&(M+=256)],l+=a*(A[M+1&4095]-l),u=A[M+16&4095],u+=a*(A[M+16+1&4095]-u),l+=r*(u-l),i+=C(p)*(l-i),m+=i*g,g*=S,s<<=1,c<<=1,h<<=1,(f*=2)>=1&&(s++,f--),(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return m};n.noiseDetail=function(e,t){e>0&&(E=e),t>0&&(S=t)};const T=function(){let e,t,n=4294967295;return{setSeed(o){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17M
,e^=e>>13,((e^=e<<5)>>>0)/n)}};let D=T();D.setSeed();n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;A||(A=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,A[n]=(t>>>0)/4294967295};n.randomSeed=function(e){D.setSeed(e)};n.random=function(e,t){return"number"==typeof e?null!=t?D.rand()*(t-e)+e:D.rand()*e:e[~~(e.length*D.rand())]};n.randomGenerator=function(e){e==n.LCG?D=function(){const e=4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>t,rM
and:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(D=T()),D.setSeed()};var P=new function(){var e,t,n,o=new Array(128),a=new Array(256),r=new Array(128),i=new Array(128),l=new Array(256),u=new Array(256),s=function(){return 4294967296*D.rand()-2147483648},c=function(){return.5+2.328306e-10*(s()<<0)},h=function(){for(var t,a,l,u,h=3.44262;;){if(t=n*r[e],0==e){do{l=c(),u=c(),t=.2904764*-Math.log(l),a=-Math.log(u)}while(a+a<t*t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=s(),e=12M
7&n,Math.abs(n)<o[e])return n*r[e]}},f=function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],u[e]+c()*(u[e-1]-u[e])<Math.exp(-n))return n;if((t=s())<a[e=255&t])return t*l[e]}};this.SHR3=s,this.UNI=c,this.RNOR=function(){return n=s(),e=127&n,Math.abs(n)<o[e]?n*r[e]:h()},this.REXP=function(){return(t=s()>>>0)<o[e=255&t]?t*l[e]:f()},this.zigset=function(){var e,t,n=2147483648,s=4294967296,c=3.442619855899,h=c,f=.00991256303526217,d=7.697117470131487,p=d,m=.003949659822581572;for(e=f/Math.exp(-.5*c*cM
),o[0]=Math.floor(c/e*n),o[1]=0,r[0]=e/n,r[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),r[t]=c/n;for(e=m/Math.exp(-d),a[0]=Math.floor(d/e*s),a[1]=0,l[0]=e/s,l[255]=d/s,u[0]=1,u[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(m/d+Math.exp(-d)),a[t+1]=Math.floor(d/p*s),p=d,u[t]=Math.exp(-d),l[t]=d/s}};P.hasInit=!1;n.randomGaussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e};n.randomEM
xponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()};n.print=console.log;n.cursor=function(e,t,o){let a="";e.includes(".")&&(e=`url("${e}")`,a=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+a};n.noCursor=function(){n.canvas.style.cursor="none"};n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUserMedia(e).then(function(e){t.srcObject=e}),t.style.position="absolute",t.style.opacity=M
1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let b=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of b){let t="_"+e+"Fn";n[t]=function(){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(a=null==n._frameRate?requestAnimationFrame(z):setTimeout(z,1e3/n._frameRate)),x(),r=!0,o.save(),n._drawFn(),o.restore(),n.frM
ameCount++}n.noLoop=function(){n._noLoop=!0,a=null};n.loop=function(){n._noLoop=!1,null==a&&z()};n.redraw=function(){z()};n.frameRate=function(e){n._frameRate=e};setTimeout(function(){n._preloadFn(),c=window.performance.now(),function e(){if(u>0)return setTimeout(e,10);n._setupFn();z()}()},1);n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraggedFn(e):n._mouseMovedFn(e)};n.canvas.onmousedown=function(e){n.pmouseX=n.mouseX,n.pmousM
eY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)};n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)};n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickedFn(e),n.mouseIsPressed=!1};window.addEventListener("keydown",function(e){n.keyIsPressed=M
!0,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)});window.addEventListener("keyup",function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!1,n._keyReleasedFn(e)});n.keyIsDown=function(e){return!!s[e]};function O(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,a=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,y:(e.clientY-t.top)/a,id:e.identifier}}function k(){return n._touchStarted.isPlaceHolder&M
&n._touchMoved.isPlaceHolder&&n._touchEnded.isPlaceHolder}n.canvas.ontouchstart=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()};n.canvas.ontouchmove=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButtoM
n=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()};n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()};n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DeviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPeM
rmission);n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(e=>{"granted"==e&&(n.hasSensorPermission=!0)}).catch(alert)}).catch(alert)};window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pRelRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,nM
.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ};window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,!e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[M
1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13],e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]*t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[15M
],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]*t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(e)M
,0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}};n.year=function(){return(new Date).getFullYear()};n.day=function(){return(new Date).getDay()};n.hour=function(){return(new Date).getHours()};n.minute=function(){return(new Date).getMinutes()};n.second=function(){return(new Date).getSeconds()};n.millis=function(){return window.performance.now()-c}}(e)}
or{static p;static SAND_COLOR_MODE=3;static getSandColorByIndex(e,t=0,i=30,s=50){e%=5;let a=[];var r,h,n;for(let e=0;e<5;e++){let t=e%5;1==Color.SAND_COLOR_MODE?a.push(o(t)):2==Color.SAND_COLOR_MODE?a.push(l(t)):3==Color.SAND_COLOR_MODE?a.push(d(t)):4==Color.SAND_COLOR_MODE?a.push(m(t)):5==Color.SAND_COLOR_MODE?a.push(p(t)):6==Color.SAND_COLOR_MODE?a.push(g(t)):7==Color.SAND_COLOR_MODE?a.push(c(t)):8==Color.SAND_COLOR_MODE?a.push(u(t)):9==Color.SAND_COLOR_MODE&&a.push(v(t))}return a[e];function o(e){return 0==e?(r=M
t+60,h=i+5,n=s+5):1==e?(r=t+30,h=i+5,n=s+9):2==e?(r=t,h=i,n=s):3==e?(r=t-30,h=i+5,n=s+9):4==e&&(r=t-60,h=i+5,n=s+5),r<0?r+=360:r>360&&(r-=360),chroma(r,h/100,n/100,"hsl")}function l(e){return r=t,0==e?(h=i,n=s+30):1==e?(h=i-30,n=s+8):2==e?(h=i,n=s):3==e?(h=i-30,n=s+30):4==e&&(h=i,n=s-20),h<10&&(h+=60),(0==e||3==e)&&n>100&&(n=s-50),chroma(r,h/100,n/100,"hsl")}function d(e){return 0==e?(r=t-120,h=i+10,n=s-30):1==e?(r=t+120,h=i-10,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t-120,h=i+10,n=s):4==e&&(r=t+120,h=i+10,n=s-30),r>360?r-M
=360:r<0&&(r+=360),h>100&&(h-=20),n>100&&(n-=30),chroma(r,h/100,n/100,"hsl")}function m(e){return 0==e?(r=t,h=i+10,n=s-30):1==e?(r=t,h=i-30,n=s+30):2==e?(r=t,h=i,n=s):3==e?(r=t-180,h=i+20,n=s-30):4==e&&(r=t-180,h=i,n=s),r<0&&(r+=360),chroma(r,h/100,n/100,"hsl")}function p(e){return 0==e?(r=t-150,h=i-10,n=s+30):1==e?(r=t-150,h=i-5,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t+150,h=i+10,n=s+30):4==e&&(r=t+150,h=i+5,n=s),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n>100&&(n-=60),chroma(r,h/100,n/100,"hsl")}function g(e){return 0==M
e?(r=t+60,h=i-5):1==e?(r=t+150,h=i-10):2==e?(r=t,h=i):3==e?(r=t-150,h=i+10):4==e&&(r=t-60,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function c(e){return 0==e?(r=t,h=i+20):1==e?(r=t+90,h=i-10):2==e?(r=t,h=i):3==e?(r=t+180,h=i+10):4==e&&(r=t-90,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function u(e){return 0==e?(r=t+30,h=i+10,n=s+20):1==e?(r=t+30,h=i+40,n=s+40):2==e?(r=t,h=i,n=s):3==e?(r=t+160,h=i+25,n=s+5):4==e&&(r=t+150,h=i+10,n=s+20),r>3M
60&&(r-=360),(0==e||4==e)&&h>100?h-=20:1==e&&h>90?h-=80:3==e&&h>60&&(h-=50),1==e&&n>100?n-=80:(0==e||4==e)&&n>100&&(n-=40),chroma(r,h/100,n/100,"hsl")}function v(e){return r=t,h=i,0==e?n=s-25:1==e?n=s+30:2==e?n=s:3==e?n=s+5:4==e&&(n=s-10),n>100&&(n-=80),chroma(r,h/100,n/100,"hsl")}}static chromaToArray=e=>[e._rgb[0],e._rgb[1],e._rgb[2],255*e._rgb[3]];static setColorMode=e=>{this.SAND_COLOR_MODE=e}}class Geometry{static slicePolyByY(e,t){let i=[];for(let s=0;s<e.length;s++){let a=e[s],r=s?e[s-1]:e.at(-1),h=a.y>=t;h!M
=r.y>=t&&i.push(Geometry.interWithY(r,a,t)),h&&i.push(a)}return i}static getAreaBelowY(e,t){return Geometry.getPolyArea(Geometry.slicePolyByY(e,t))}static getYByAreaBelow(e,t){let[i,s,a,r]=Geometry.getBoundingBox(e,"COORD"),h=s,n=r;for(let i=0;i<30;++i){let i=(h+n)/2;Geometry.getAreaBelowY(e,i)>t?h=i:n=i}return n}static interWithY(e,t,i){let s=e.copy(),a=t.copy(),r=createVector(-1e9,i),h=createVector(1e9,i);return Geometry.intersection(s,a,r,h)}static getPolyArea(e){let t=0;for(let i=0;i<e.length;i++){let s=e[i],a=M
e[(i+1)%e.length],r=createVector(s.x,s.y),h=createVector(a.x,a.y);t+=r.cross(h).z}return t=abs(t)/2,t}static getBoundingBox(e,t="SIZE"){let i=e[0].x,s=e[0].x,a=e[0].y,r=e[0].y;for(let t=0;t<e.length;t++)isNaN(e[t].y)||(a=min(a,e[t].y),r=max(r,e[t].y)),isNaN(e[t].x)||(i=min(i,e[t].x),s=max(s,e[t].x));return"SIZE"==t?[i,a,s-i,r-a]:"COORD"==t?[i,a,s,r]:[]}static intersection(e,t,i,s){let a=createVector(t.x-e.x,t.y-e.y),r=createVector(s.x-i.x,s.y-i.y),h=createVector(i.x-e.x,i.y-e.y),n=(a.copy().rotate(PI/2),r.copy().roM
tate(PI/2)),o=h.dot(n)/a.dot(n),l=a.mult(o);return createVector(e.x+l.x,e.y+l.y)}}class GraphicUtils{static applyMask(e,t){e.push(),e.noStroke(),e.blendMode(REMOVE),e.fill(255,255,255,255),e.beginShape(),e.vertex(0,0),e.vertex(0,e.height),e.vertex(e.width,e.height),e.vertex(e.width,0),e.beginContour();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endContour(),e.endShape(e.CLOSE),e.blendMode(BLEND),e.pop()}}class Hourglass{static TICK_INTERVAL=60;static ROTATE_INTERVAL=10/3;constructor(e,t){this.evolvePeriod=M
e.evolvePeriod,t.registerIterationChangeEvent(this.onIterationChange.bind(this));let i=t.getCurrentIteration();this.onIterationChange(i),this.update(new Date)}onIterationChange(e){this.flipped=e%2==1}getState(){return{top:this.top,rotation:this.rotation,flipped:this.flipped,timeSinceRotation:this.timeSinceRotation}}update(e){let t,i=0;if(traits.evolvePeriod==EvolvePeriod.HOURLY)t=3600,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.DAILY)t=86400,i+=60*e.geM
tHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.MONTHLY){let s=e.getFullYear(),a=e.getMonth()+1;t=24*new Date(s,a,0).getDate()*60*60,i+=24*(e.getDate()-1)*60*60,i+=60*e.getHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3}this.flipped?this.top=1-min(1,i/t):this.top=min(1,i/t),this.timeSinceRotation=max(0,i-Hourglass.ROTATE_INTERVAL);let s=Math.min(i,Hourglass.ROTATE_INTERVAL);this.rotation=this.flipped?PI:0,this.rotatM
ion+=s/Hourglass.ROTATE_INTERVAL*PI}}function getRandomInt(e,t){return floor(random(e,t))}function getRandomItem(e){let t=0;for(const i of e)t+=i[1];let i=random(t),s=0;for(const t of e)if(s+=t[1],i<s)return t[0];return null}function shuffle(e){for(let t=1;t<e.length;++t){let i=getRandomInt(0,t),s=e[t];e[t]=e[i],e[i]=s}}class PostProcessing{constructor(e,t,i){this.wCanvas=e,this.hCanvas=t,this.graphic=createGraphics(this.wCanvas,this.hCanvas),this.updateFilter(1)}updateFilter(e,t,i){this.graphic.fill(255,255,255,25M
5),this.graphic.blendMode(REMOVE),this.graphic.rect(0,0,this.wCanvas,this.hCanvas),this.graphic.blendMode(BLEND);let s,a=this.wCanvas/2,r=this.hCanvas/2,h=2*sqrt(a*a+r*r);s=a>r?sqrt(1-Math.pow(r/a,2)):sqrt(1-Math.pow(a/r,2));let n,o;if(1!=abs(e)){let t,i;3==abs(e)?(t=6,i=.6):10==abs(e)?(t=4,i=.5):60==abs(e)?(t=3,i=.4):3600==abs(e)&&(t=2,i=.3),o=i-.1,n=map(sin(Date.now()/1e3/t*TAU),-1,1,i-.1,i+.1)}else i?(o=1,n=1):(o=.75,n=.75);this.graphic.push(),this.graphic.ellipseMode(RADIUS),this.graphic.translate(a,r);for(let M
e=39;e>=0;e--){let t=(e+1)/40;if(1==o||map(t,o,1,0,1.2)<=0)break;let i=max(map(t,n,1,0,1.2),0),s=color(0,0,0,255*i);this.graphic.fill(s),this.graphic.noStroke(),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),e>0&&(t=e/40,this.graphic.fill(255,255,255,255),this.graphic.blendMode(REMOVE),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),this.graphic.blendMode(BLEND))}this.graphic.pop()}applyToMainCanvas(){image(this.graphic,0,0)}}class BackgroundRenderer{constructor(e,t,i,s,a,r){this.wCanvas=e.width,this.hCanvas=eM
.height,this.maxR=min(this.wCanvas,this.hCanvas)/1024,this.dx,this.yvalues,this.xvalues,this.xspacing1=[],this.thickness1=[],this.theta1=[],this.velocity1=[],this.sz1=[],this.xspacing2=[],this.thickness2=[],this.theta2=[],this.velocity2=[],this.sz2=[],this.xspacing3=[],this.thickness3=[],this.theta3=[],this.velocity3=[],this.sz3=[],this.xspacing4=[],this.thickness4=[],this.theta4=[],this.velocity4=[],this.sz4=[],this.c=[],this.num_waves=30,this._h=t,this._s=i,this._l=s,this.patternOrder=a.patternOrder,this.diagonalM
=sqrt(Math.pow(width,2)+Math.pow(height,2));let h=createVector(width,height).heading(),n=abs(PI/4-h);this.ty=this.diagonal/2*cos(n),this.waveSpeed=a.waveSpeed,this.wavePeriod=a.wavePeriod,this.waveHeight=a.waveHeight,this.evolvePeriod=a.evolvePeriod,this.evolvePeriod==EvolvePeriod.DAILY?this.num_lines=7:(this.evolvePeriod==EvolvePeriod.HOURLY||this.evolvePeriod==EvolvePeriod.MONTHLY)&&(this.num_lines=12),this.waveHeight==WaveHeight.SHORT?this.amplitude=getRandomInt(20,30):this.waveHeight==WaveHeight.MEDIUM?this.ampM
litude=getRandomInt(30,40):this.waveHeight==WaveHeight.TALL&&(this.amplitude=getRandomInt(40,50)),this.wavePeriod==WavePeriod.SHORT?this.period=getRandomInt(300,351):this.wavePeriod==WavePeriod.MEDIUM?this.period=getRandomInt(425,476):this.wavePeriod==WavePeriod.LONG&&(this.period=getRandomInt(600,651)),this.waveSpeed==WaveSpeed.SLOW?(this.min_speed=.003,this.max_speed=.005):this.waveSpeed==WaveSpeed.MEDIUM?(this.min_speed=.008,this.max_speed=.01):this.waveSpeed==WaveSpeed.FAST&&(this.min_speed=.015,this.max_speed=M
.018),this.thetaList=[0,1/4*PI,.5*PI,3/4*PI,PI],this.setupStaticWave(),this.setupDynamicWave(),r.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=r.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){randomSeed(100*e+1),shuffle(this.xspacing1),shuffle(this.thickness1),shuffle(this.theta1),shuffle(this.xspacing1),shuffle(this.velocity1),shuffle(this.xspacing2),shuffle(this.thickness2),shuffle(this.theta2),shuffle(this.xspacing2),shuffle(this.velocity2),shuffle(this.xspacing3),shM
uffle(this.thickness3),shuffle(this.theta3),shuffle(this.xspacing3),shuffle(this.velocity3),shuffle(this.xspacing4),shuffle(this.thickness4),shuffle(this.theta4),shuffle(this.xspacing4),shuffle(this.velocity4)}setupStaticWave(){for(let e=0;e<this.num_waves;e++){this.xspacing1.push(getRandomInt(5,50)),this.thickness1.push(getRandomInt(50,200)),this.theta1.push({value:random(this.thetaList)}),this.velocity1.push({value:random(this.min_speed,this.max_speed)}),this.sz1.push(random(.5,3)),this.xspacing2.push(getRandomInM
t(5,50)),this.thickness2.push(getRandomInt(50,200)),this.theta2.push({value:random(this.thetaList)}),this.velocity2.push({value:random(this.min_speed,this.max_speed)}),this.sz2.push(random(.5,3)),this.xspacing3.push(getRandomInt(5,50)),this.thickness3.push(getRandomInt(50,200)),this.theta3.push({value:random(this.thetaList)}),this.velocity3.push({value:random(this.min_speed,this.max_speed)}),this.sz3.push(random(.5,3)),this.xspacing4.push(getRandomInt(5,50)),this.thickness4.push(getRandomInt(50,200)),this.theta4.puM
sh({value:random(this.thetaList)}),this.velocity4.push({value:random(this.min_speed,this.max_speed)}),this.sz4.push(random(.5,3));let t=e%5;this.c.push(Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25))}}setupDynamicWave(){this.dynamicWave={h:random(this.hCanvas/3),xspacing:getRandomInt(5,20),thickness:getRandomInt(100,200),theta:{value:random(this.thetaList)},velocity:{value:random(this.min_speed,this.max_speed)},sz:random(1,3),num_lines:0},1==this.patternOrder[0]?this.dynamicWave.h=random(200,heM
ight-200):2==this.patternOrder[0]?this.dynamicWave.h=random(200,width-200):(3==this.patternOrder[0]||4==this.patternOrder[0])&&(this.dynamicWave.h=random(200,2*this.ty-200))}update(e){this.time=e}drawHorWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(width/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),tM
+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s];r<-2||r>height+2||e.square(a,r,n*this.maxR)}}}drawVerWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.xvalues=new Array(floor(height/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.xvalues.length;e++)this.xvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.xvalues.length;s++){let a=t+this.xvalues[s],r=s*iM
;a<-2||a>width+2||e.square(a,r,n*this.maxR)}}}drawDiaWave(e,t,i,s,a,r,h,n,o,l){let d=cos(-l),m=sin(-l);this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(this.diagonal/i));let p=this.time.getTime()/(1e3/60),g=r.value+h.value*p/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(g)*this.amplitude,g+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s],h=n*this.maxR,o=a-this.diagonal/2,l=r-this.tM
y,p=o*d+l*m+width/2,g=-o*m+l*d+height/2;p<-2||p>width+2||g<-2||g>height+2||e.square(a,r,h)}}}drawHorizontal(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawHorWave(e,t,this.xspacing1[i]*width/1024,this.thickness1[i]*height/1024,this.num_lines,this.theta1[i],this.velocity1[i],this.sz1[i],this.c[i]),t+=(height+50)/this.num_waves}drawVertical(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawVerWave(e,t,this.xspacing2[i]*height/1024,this.thickness2[i]*width/1024,this.num_lines,this.theta2[i],this.vM
elocity2[i],this.sz2[i],this.c[i]),t+=(width+50)/this.num_waves}drawLeft(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing3[i]*this.maxR,this.thickness3[i]*this.maxR,this.num_lines,this.theta3[i],this.velocity3[i],this.sz3[i],this.c[i],PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawRight(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(M
3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing4[i]*this.maxR,this.thickness4[i]*this.maxR,this.num_lines,this.theta4[i],this.velocity4[i],this.sz4[i],this.c[i],3*PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawPattern(e,t){1==t?this.drawHorizontal(e):2==t?this.drawVertical(e):3==t?this.drawLeft(e):this.drawRight(e)}draw(e,t,i,s,a){this._h=s.h,this._s=s.s,this._l=s.l,e.background(0);let r=t.getHours()>=6&&t.getHours()<18?.2:.05,h=Color.getSandColorByIndex(4,this._h,this._s,M
this._l).luminance(r).alpha(.5);if(e.background(color(...Color.chromaToArray(h))),!a)return;this.evolvePeriod==EvolvePeriod.HOURLY?this.dynamicWave.num_lines=(t.getHours()+11)%12+1:this.evolvePeriod==EvolvePeriod.DAILY?this.dynamicWave.num_lines=t.getDay()+1:this.evolvePeriod==EvolvePeriod.MONTHLY&&(this.dynamicWave.num_lines=t.getMonth()+1);for(let e=0;e<this.num_waves;e++){let t=e%5;this.c[e]=Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25)}1==i?(3==this.patternOrder[0]||4==this.patternOrder[0]M
?this.num_waves=30:this.num_waves=20,this.drawPattern(e,this.patternOrder[0])):2==i?(this.patternOrder[0]+this.patternOrder[1]==3?this.num_waves=10:this.patternOrder[0]+this.patternOrder[1]==7?this.num_waves=20:this.num_waves=15,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1])):3==i?(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2])):(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),M
this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2]),this.drawPattern(e,this.patternOrder[3]));let{h:n,xspacing:o,thickness:l,num_lines:d,theta:m,velocity:p,sz:g}=this.dynamicWave,c=Color.getSandColorByIndex(0,this._h,this._s,this._l).luminance(.5);1==this.patternOrder[0]?this.drawHorWave(e,n,o*width/1024,l*height/1024,d,m,p,g,c):2==this.patternOrder[0]?this.drawVerWave(e,n,o*height/1024,l*width/1024,d,m,p,g,c):3==this.patternOrder[0]?(e.push(),e.translate(width/2,height/2),e.rotate(PI/M
4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,PI/4),e.pop()):4==this.patternOrder[0]&&(e.push(),e.translate(width/2,height/2),e.rotate(3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,3*PI/4),e.pop())}}class GrainRenderer{static texture;static deltaX;static deltaY;static maxDelta=100;static wCanvas;static hCanvas;static setup(e,t){GrainRenderer.wCanvas=e+GrainRenderer.maxDelta,GrainRenderer.hCanvas=t+GrainRendereM
r.maxDelta,GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0),GrainRenderer.texture=createImage(GrainRenderer.wCanvas,GrainRenderer.hCanvas),GrainRenderer.texture.loadPixels();let i=GrainRenderer.texture.pixelDensity();for(let e=0;e<GrainRenderer.wCanvas;e++)for(let t=0;t<GrainRenderer.hCanvas;t++){let s=216.75,a=255,r=random(s,a),h=random(s,a),n=random(s,a);for(let s=0;s<i;s++)for(let a=0;a<i;a++){let o=4*((t*i+a)*GrainRenderer.wCanvas*i+(e*i+s));GrainRendM
erer.texture.pixels[o]=r,GrainRenderer.texture.pixels[o+1]=h,GrainRenderer.texture.pixels[o+2]=n,GrainRenderer.texture.pixels[o+3]=255}}GrainRenderer.texture.updatePixels()}static applyGrain(e,t){let i=!!t&&{atFrame:1};e.textureOverlay(GrainRenderer.texture,{mode:BURN,animate:i})}static applyGrainToMainCanvas(e){blendMode(BURN),e&&(GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0)),image(GrainRenderer.texture,GrainRenderer.deltaX,GrainRenderer.deltaY)}}conM
st HourglassSize={SMALL:"SMALL",MEDIUM:"MEDIUM",LARGE:"LARGE"};class HourglassRenderer{constructor(e,t,i){this.nLayer=10,this.wCanvas=e.width,this.hCanvas=e.height,this.hourglassSize=t.hourglassSize,this.poly=t.poly,this.evolvePeriod=t.evolvePeriod,this.xc=this.wCanvas/2,this.yc=this.hCanvas/2,this.x1=this.xc+random(100,300),this.y1=this.yc+random(100,300),this.x2=this.xc+random(100,300),this.y2=this.yc+random(100,300),this.x1m=this.wCanvas-this.x1,this.y1m=this.y1,this.maxR=min(this.wCanvas,this.hCanvas)/2,1==thisM
.poly?this.mainRadius=.1*this.maxR*4:this.mainRadius=.1*this.maxR*getRandomInt(1,6),i.registerIterationChangeEvent(this.onIterationChange.bind(this));let s=i.getCurrentIteration();this.onIterationChange(s),this.topline=this.polygon(this.xc,this.yc,this.poly,PI),this.bottomline=this.polygon(this.xc,this.yc,this.poly,0),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.excitement=.15*max(this.sandRects[0][2],this.sandRects[0][3]),this.dx=[],this.dy=[];for(let e=0;e<2M
*this.nLayer;++e)this.dx[e]=random(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement);this.curSecond=(new Date).getSeconds(),this.rotateAngle=0}onIterationChange(e){randomSeed(100*e+2),this.startAngle=this.getStartAngle(),this.radiuses=this.getRadiuses()}getIteration(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(M
e.getFullYear()-1970)+e.getMonth()),t}getStartAngle(){let e=getRandomInt(1,6);return PI/(2.5+.5*e)}getRadiuses(){let e,t;this.hourglassSize==HourglassSize.MEDIUM?(e=.45*this.maxR,t=.55*this.maxR):this.hourglassSize==HourglassSize.LARGE&&(e=.6*this.maxR,t=.7*this.maxR);let i=[];for(let s=0;s<this.poly;s++){let a;a=0==s?e:random(e,t),i.push(a)}return i}update(e,t){if(e.getSeconds()!=this.curSecond){this.curSecond=e.getSeconds(),this.secondTicked=!0,this.rotateAngle+=PI/30;for(let e=0;e<2*this.nLayer;++e)this.dx[e]=raM
ndom(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement)}else this.secondTicked=!1;this.topline=this.polygon(this.xc,this.yc,this.poly,PI+t),this.bottomline=this.polygon(this.xc,this.yc,this.poly,t),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.time=e,this.rotation=t}draw(e,t,i){let s=i.luminance(.3);e.fill(255,255,255,255),e.blendMode(REMOVE),e.rect(0,0,this.wCanvas,this.hCanvas),e.blendMode(BLEND),0==t?this.drawShadowNormal(eM
,s,this.time):1==t&&this.drawShadowCircle(e,s),e.fill(255,255,255,255),e.blendMode(REMOVE),this.drawShape(e,this.topline),this.drawShape(e,this.bottomline),e.blendMode(BLEND)}drawShadowNormal(e,t,i){let s=floor(i.getMinutes()/10),a=i.getMinutes()%10;e.push(),e.noFill(),e.strokeWeight(.005*this.maxR);for(let i=0;i<s;i++){let a=map(i,s,0,.2,.5),r=color(...Color.chromaToArray(t.alpha(a)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i],this.yc+this.dy[2*i],this.poly,PI)}for(let i=0;i<a;i++){let s=map(i,a,0,.M
2,.5),r=color(...Color.chromaToArray(t.alpha(s)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i+1],this.yc+this.dy[2*i+1],this.poly,0)}e.pop()}drawShadowCircle(e,t){e.push(),e.noStroke(),e.translate(this.xc,this.yc),e.rotate(PI+this.rotateAngle);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.fill(a),this.getAndDrawPolygon(e,0,2.5*this.mainRadius,this.poly,PI),this.getAndDrawPolygon(e,0,2.5*-this.mainRadius,this.poly,0),e.rotate(PI/3)}e.pop(),e.push(),e.noFill(),M
e.strokeWeight(2),e.translate(this.xc,this.yc),e.rotate(-this.rotateAngle+PI/30);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.stroke(a),this.getAndDrawPolygon(e,0,-this.mainRadius/2,this.poly,PI),this.getAndDrawPolygon(e,0,this.mainRadius/2,this.poly,0),e.rotate(-PI/3)}e.pop()}getAndDrawPolygon(e,t,i,s,a){let r=this.polygon(t,i,s,a);this.drawShape(e,r)}drawShape(e,t){e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endShape(e.CLOSE)}polygon(e,t,i,s){leM
t a=(PI/2-this.startAngle)/i,r=0,h=[];h.push({x:e,y:t});let n=this.startAngle+s;for(let s=0;s<i;s++){let i=this.radiuses[r];r+=1;let s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}r=this.poly,n=PI/2+a+s;for(let s=0;s<i;s++){r-=1;let i=this.radiuses[r],s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}return h=h.filter((e=>!isNaN(e.x)&&!isNaN(e.y))),h}getSandRects=()=>this.sandRects;getTopLine=()=>this.topline;getBottomLine=()=>this.bottomline;getSecondTicked=()=>this.secondTicked}const WavePeriod={SHORT:"SHORT",MEM
DIUM:"MEDIUM",LONG:"LONG"},WaveHeight={SHORT:"SHORT",MEDIUM:"MEDIUM",TALL:"TALL"},WaveSpeed={SLOW:"SLOW",MEDIUM:"MEDIUM",FAST:"FAST"};class SandRenderer{static N_CURVE_POINT=50;static DROPDOWN_TIME=3;constructor(e,t,i,s,a,r,h,n){this.wCanvas=e.width,this.hCanvas=e.height,this.hInit=t,this.baseLine=this.transformCoord(i),this.baseH=s,this.baseS=a,this.baseL=r,this.curSecond=0,this.waveHeight=h.waveHeight,this.wavePeriod=h.wavePeriod,this.waveSpeed=h.waveSpeed,this.evolvePeriod=h.evolvePeriod,this.nSandLayer=6,this.lM
ayers=this.getLayers(),this._h=this.baseH,this._s=this.baseS,this._l=this.baseL,this.prevIteration=null,n.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=n.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){null==this.prevIteration?this._h=this.getHue(this.baseH,0,e):this._h=this.getHue(this._h,this.prevIteration,e),this.prevIteration=e}getHue(e,t,i){let s=min(t,i),a=max(t,i);for(let r=s;r<a;r++){randomSeed(100*r+3);let s=random(1);if(this.evolvePeriod==EvolvePeriod.HOURLY?s=M
map(s,0,1,5,10):this.evolvePeriod==EvolvePeriod.DAILY?s=map(s,0,1,10,30):this.evolvePeriod==EvolvePeriod.MONTHLY&&(s=map(s,0,1,50,100)),i>t)for(e+=s;e>360;)e-=360;else for(e-=s;e<0;)e+=360}return e}update(e){this.time=e}getChroma(){return Color.getSandColorByIndex(0,this._h,this._s,this._l)}getBaseHSL(){return{h:this._h,s:this._s,l:this._l}}draw(e,t,i,s,a){this.nLayer=(this.time.getHours()+11)%12+1,t=this.transformCoord(t),e.background(0);let r=this.getChroma().luminance(.5).alpha(.25);e.background(color(...Color.cM
hromaToArray(r))),e.strokeWeight(1),this.layers.forEach((e=>{if(0==e.id)e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).luminance(.2).alpha(1);else{let t=map(e.id/this.nSandLayer,0,1,.5,.8);e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).alpha(t)}let s=map(i,0,1,e.baselineY,this.hInit),a=max(0,map(s,this.hInit,0,0,1)),r=Geometry.getPolyArea(t)*a;e.y=Geometry.getYByAreaBelow(t,r),e.y=map(e.y,0,this.hInit,.05*-this.hCanvas,this.hInit+.05*this.hCanvas)})),this.layers.forEach((i=>{s&&2*i.id<thisM
.nLayer&&this.drawDropdown(e,t,i,a)})),this.layers.forEach((t=>this.drawLayer(e,t)));let h=!1;this.time.getSeconds()!=this.curSecond&&(this.curSecond=this.time.getSeconds(),h=!0),GraphicUtils.applyMask(e,t)}transformCoord(e){let[t,i,s,a]=Geometry.getBoundingBox(e),r=t+s,h=i+a;return e.map((e=>{let n=map(e.x,t,r,-s/2,s/2)+this.wCanvas/2,o=map(e.y,i,h,0,a);return createVector(n,o)}))}getLayers(){let e=[];for(let t=0;t<this.nSandLayer;t++){let i,s=this.hInit/this.nSandLayer*t;this.waveSpeed==WaveSpeed.SLOW?i=random(.0M
08,.012):this.waveSpeed==WaveSpeed.MEDIUM?i=random(.016,.024):this.waveSpeed==WaveSpeed.FAST&&(i=random(.032,.048));let a,r,h=random(1e4);this.wavePeriod==WavePeriod.SHORT?a=random(2.7,3):this.wavePeriod==WavePeriod.MEDIUM?a=random(1.8,2):this.wavePeriod==WavePeriod.LONG&&(a=random(1.2,1.3)),this.waveHeight==WaveHeight.SHORT?r=this.hCanvas/30:this.waveHeight==WaveHeight.MEDIUM?r=this.hCanvas/24:this.waveHeight==WaveHeight.TALL&&(r=this.hCanvas/18);let n={mode:"DELTA_Y",deltaY:(e,t)=>map(sin(e*a*TAU+t*i+h),-1,1,-r,rM
)};e.push({id:t,baselineY:s,height:r,speed:i,seed:h,shape:n,stripe:{distance:random(.04*this.hInit,.08*this.hInit),height:random(.02*this.hInit,.04*this.hInit),stretch:random(1.2,1.5),colorTransform:e=>e.brighten(1.2)}})}return e}drawDropdown=(e,t,i,s)=>{let{c:a,shape:r}=i,h=Geometry.getBoundingBox(t)[3],n=this.time.getTime()/(1e3/60),o=createVector(this.wCanvas/2,0),l=createVector(this.wCanvas/2,h),d=[];for(let e=0;e<50;e++){let t=e/49,i=o.copy(),{x:s,y:a}=Vector.lerp(i,l,t);s+=r.deltaY(t,-n/5)*map(e,0,50,.1,1.5),M
d.push(createVector(s,a))}let m=map(s,0,SandRenderer.DROPDOWN_TIME,0,50);m=min(m,50),e.push(),e.noStroke(),e.fill(color(...Color.chromaToArray(a)));for(let t=0;t<m;t++)e.square(d[t].x,d[t].y,.004*this.hCanvas);e.pop()};drawLayer=(e,t)=>{if(2*t.id<this.nLayer){let i=this.getLayerPointline(t);this.drawWave(e,i,t),this.drawPattern(e,i,t,this.hCanvas/8,this.hCanvas/60),2*t.id+1<this.nLayer&&this.drawStripe(e,i,t)}};getLayerPointline=e=>{let{y:t,shape:i}=e,s=[],a=this.time.getTime()/(1e3/60);if("DELTA_Y"==i.mode){let e=M
createVector(0,t),r=createVector(this.wCanvas,t);for(let t=0;t<SandRenderer.N_CURVE_POINT;t++){let h=t/(SandRenderer.N_CURVE_POINT-1),n=e.copy(),{x:o,y:l}=Vector.lerp(n,r,h);l+=i.deltaY(h,a/5),s.push(createVector(o,l))}}else s=[start,end];return s};drawWave=(e,t,i)=>{let{c:s}=i;e.noStroke(),e.fill(color(...Color.chromaToArray(s))),e.beginShape(),e.vertex(0,this.hCanvas);for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.vertex(this.wCanvas,this.hCanvas),e.endShape()};drawPattern=(e,t,i,s,a)=>{e.noStroke();for(letM
 i=a;i<=s;i+=a){let a=map((i-1)/(s-1),0,1,.2,0);e.fill(0,255*a),e.beginShape();for(let s=0;s<t.length;s++)e.vertex(t[s].x,t[s].y+i);for(let s=t.length-1;s>=0;s--)e.vertex(t[s].x,t[s].y+(i-1));e.endShape()}};drawStripe=(e,t,i)=>{let{c:s,stripe:{distance:a,height:r,stretch:h,colorTransform:n}}=i;e.noStroke();let o=n(s),l=color(...Color.chromaToArray(o)),d=s.alpha();l.setAlpha(255*d),e.fill(l),e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x*h,t[i].y+a);for(let i=t.length-1;i>=0;i--)e.vertex(t[i].x*h,t[i].y+aM
+r);e.endShape()}}new Q5("global");let wCanvas,hCanvas,canvas,timeController,hourglass,layerBackground,layerSandTop,layerSandBottom,layerHourglass,renBackground,renSandTop,renSandBottom,renHourglass,renPostProcessing,traits,prevSpeed,showMode,currentTime,maxFps=60;setup=()=>{setupRandom(),setupTraits(),setupSketch()},setupRandom=()=>{let e=p5seed;randomSeed(e),noiseSeed(e)},setupTraits=()=>{let e=getRandomInt(1,10),t=getRandomItem([[HourglassSize.MEDIUM,70],[HourglassSize.LARGE,30]]),i=getRandomItem([[WaveHeight.SHM
ORT,1],[WaveHeight.MEDIUM,1],[WaveHeight.TALL,1]]),s=getRandomItem([[WavePeriod.SHORT,1],[WavePeriod.MEDIUM,1],[WavePeriod.LONG,1]]),a=getRandomItem([[WaveSpeed.SLOW,1],[WaveSpeed.MEDIUM,1],[WaveSpeed.FAST,1]]),r=getRandomItem([[EvolvePeriod.HOURLY,60],[EvolvePeriod.DAILY,35],[EvolvePeriod.MONTHLY,5]]),h=getRandomItem([[1,5],[2,20],[3,50],[4,20],[5,5]]),n=getPatternOrder(),o=getRandomItem(AngelNumber.map((e=>[e[0],1]))),l=getRandomItem(BlissLimit.map((e=>[e[0],e[2]])));traits={waveHeight:i,wavePeriod:s,waveSpeed:a,M
evolvePeriod:r,color:e,hourglassSize:t,poly:h,patternOrder:n,angelNumber:o,blissLimit:l},console.log(traits)},getPatternOrder=()=>{let e=[],t=[1,2,3,4],i=getRandomItem([[1,.6],[2,.1],[3,.15],[4,.15]]);e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);for(let s=0;s<3;s++)i=random(t),e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);return e},setupSketch=()=>{frameRate(maxFps),frameCount=0,wCanvas=windowWidth,hCanvas=windowHeight,canvas=createCanvas(wCanvas,hCanvas),showMode=0,timeControM
ller=new TimeController(traits),hourglass=new Hourglass(traits,timeController);let e=getRandomInt(0,361),t=getRandomInt(30,101),i=getRandomInt(50,101);Color.setColorMode(traits.color),layerBackground=createGraphics(wCanvas,hCanvas),renBackground=new BackgroundRenderer(layerBackground,e,t,i,traits,timeController),layerHourglass=createGraphics(wCanvas,hCanvas),renHourglass=new HourglassRenderer(layerHourglass,traits,timeController);let s=renHourglass.getSandRects(wCanvas,hCanvas),a=renHourglass.getTopLine(),r=renHourM
glass.getBottomLine(),h=createVector(s[0][2],s[0][3]).mag();layerSandTop=createGraphics(h,h),layerSandBottom=createGraphics(h,h),renSandTop=new SandRenderer(layerSandTop,s[0][3],a,e,t,i,traits,timeController),renSandBottom=new SandRenderer(layerSandBottom,s[0][3],r,e,t,i,traits,timeController),imgSandTop=createGraphics(wCanvas,hCanvas),imgSandBottom=createGraphics(wCanvas,hCanvas),renPostProcessing=new PostProcessing(wCanvas,hCanvas,traits),GrainRenderer.setup(wCanvas,hCanvas),prevSpeed=1},draw=()=>{let e=0==showMoM
de||1==showMode,t=0==showMode||2==showMode,{time:i,state:s,speed:a,paused:r,isLive:h,realDelta:n}=timeController.step();hourglass.update(i),renSandTop.update(i),renSandBottom.update(i),renBackground.update(i);let o=4==s?1:0,{top:l,rotation:d,flipped:m,timeSinceRotation:p}=hourglass.getState();renHourglass.update(i,d);let g=renSandTop.getChroma(),c=renSandTop.getBaseHSL();if(background(255),renBackground.draw(layerBackground,i,s,c,e),image(layerBackground,0,0),t){let e=renHourglass.getSandRects();renHourglass.draw(lM
ayerHourglass,o,g),renSandTop.draw(layerSandTop,renHourglass.getTopLine(),1-l,!m,p),renSandBottom.draw(layerSandBottom,renHourglass.getBottomLine(),l,m,p),image(layerSandTop,...e[0],(layerSandTop.width-e[0][2])/2,0,e[0][2],e[0][3]),image(layerSandBottom,...e[1],(layerSandBottom.width-e[1][2])/2,0,e[1][2],e[1][3]),image(layerHourglass,0,0)}let u=renHourglass.getSecondTicked();GrainRenderer.applyGrainToMainCanvas(u),renPostProcessing.updateFilter(a,r,h),prevSpeed=a,renPostProcessing.applyToMainCanvas(),currentTime=i}M
,keyPressed=()=>{"+"!=key&&"="!=key||timeController.setFasterSpeed(),"-"==key&&timeController.setSlowerSpeed(),keyCode==LEFT_ARROW&&timeController.jumpBackward(),keyCode==RIGHT_ARROW&&timeController.jumpForward(),keyCode==ESCAPE&&timeController.resumeLive()," "==key&&timeController.togglePause(),"T"!=key&&"t"!=key||(showMode=(showMode+1)%3),"S"!=key&&"s"!=key||saveCanvasAtCurrentTime()},saveCanvasAtCurrentTime=()=>{let e=60*new Date(currentTime).getTimezoneOffset()*1e3,t=new Date(currentTime-e).toISOString().slice(M
0,-1);save(t+".png")};const EvolvePeriod={HOURLY:"HOURLY",DAILY:"DAILY",MONTHLY:"MONTHLY"},AngelNumber=[["11/111/1111",["1:1","1:11","11:1","11:11"],["1/1","11/1","1/11","11/11"]],["22/222/2222",["2:2","2:22","22:2","22:22"],["2/2","22/2"]],["33/333/3333",["3:3","3:33"],["3/3"]],["44/444/4444",["4:4","4:44"],["4/4"]],["55/555/555",["5:5","5:55"],["5/5"]],["66/666/6666",["6:6"],["6/6"]],["77/777/7777",["7:7"],["7/7"]],["88/888/8888",["8:8"],["8/8"]],["99/999/9999",["9:9"],["9/9"]],["1212",["12:12"],["12/12"]],["399/M
339",["3:39"],["3/3","9/3","3/9","9/9"]],["83/8833",["8:3"],["8/3","3/8"]],["72/7722",["7:2"],["7/2","2/7"]],["633/6363",["6:3","6:33"],["6/3","3/6"]],["588",["5:8","8:58"],["8/5","5/8","8/8"]],["446/4646",["4:6","4:46"],["4/4","6/4","4/6"]],["000",[],[]],["1010",["10:10"],["10/10"]],["1017",["10:17","17:10"],["17/10"]],["1022",["10:22","22:10"],["22/10"]],["1313",["13:13"],["1/3","3/1"]],["1444",["14:44"],["4/1","1/4","4/4"]],["2020",["20:20"],["2/2"]]],BlissLimit=[["Forever",-1,3],["2",2,40],["5",5,30],["10",10,2M
0],["20",20,7]];class TimeController{constructor(e){this.speeds=[-3600,-60,-10,-3,1,3,10,60,3600],this.defaultSpeedLevel=4,this.evolvePeriod=e.evolvePeriod,this.angelNumber=e.angelNumber,this.blissLimit=e.blissLimit,this.timestamp=Date.now(),this.prevRealTimestamp=this.timestamp,this.paused=!1,this.speedLevel=this.defaultSpeedLevel;let t=new Date(this.timestamp);this.iteration=this.getIteration(t),this.prevBliss=this.getPrevBliss(t,1),this.iterationChangeHandlers=[]}getCurrentIteration=()=>this.iteration;getIteratiM
on(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(e.getFullYear()-1970)+e.getMonth()),t}registerIterationChangeEvent(e){this.iterationChangeHandlers.push(e)}unregisterIterationChangeEvent(e){this.iterationChangeHandlers=this.iterationChangeHandlers.filter((t=>t!=e))}step(){let e=Date.now(),t=e-this.prevRealTimestamp,i=this.speeds[this.speedLevel],sM
=this.paused?0:i;this.timestamp+=t*s,this.timestamp=this.limitTimestamp(this.timestamp);let a=new Date(this.timestamp),r=this.getStateFromTime(a);this.updateIteration(a),this.prevRealTimestamp=e;let h=this.timestamp==e;return{time:a,state:r,speed:i,paused:this.paused,isLive:h,realDelta:t}}updateIteration(e){let t=this.getIteration(e);t!=this.iteration&&(this.iterationChangeHandlers.forEach((e=>e(t))),this.iteration=t)}getStateFromTime(e){let t,i,s=e.getHours(),a=e.getMinutes(),r=e.getDate(),h=e.getMonth()+1;if("000M
"==this.angelNumber)i=0==s&&0==a,t=i&&1==r&&1==h;else{let e=`${s}:${a}`,n=`${h}/${r}`,o=AngelNumber.filter((e=>e[0]==this.angelNumber))[0];i=o[1].includes(e),t=o[2].includes(n)}return i&&t?4:t?3:i?2:1}limitTimestamp(e){let t=BlissLimit.filter((e=>e[0]==this.blissLimit))[0][1],i=Date.now(),s=this.getPrevBliss(new Date,t);return e>i?(e=i,this.resetSpeed()):e<s&&(e=s,this.resetSpeed()),e}getPrevBliss(e,t){if(-1==t)return 0;let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i-=6e4;let e=this.getStateFrM
omTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}getNextBliss(e,t){if(-1==t)return Date.now();let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i+=6e4;let e=this.getStateFromTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}togglePause(){this.paused=!this.paused}setFasterSpeed(){this.speedLevel=min(this.speedLevel+1,this.speeds.length-1),this.paused=!1}setSlowerSpeed(){this.speedLevel=max(this.speedLevel-1,0),this.paused=!1}jumpForward(){let e=new Date(this.timestamp);this.timestamp=this.getNextBliss(eM
,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}jumpBackward(){let e=new Date(this.timestamp);this.timestamp=this.getPrevBliss(e,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}resetSpeed(){this.speedLevel=this.defaultSpeedLevel,this.paused=!1}resumeLive(){this.timestamp=Date.now(),this.resetSpeed()}}
/http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotosM
hop 23.4 (Windows)" xmpMM:InstanceID="xmp.iid:C283A17DABD011ED8E688DE700A6664B" xmpMM:DocumentID="xmp.did:C283A17EABD011ED8E688DE700A6664B"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:C283A17BABD011ED8E688DE700A6664B" stRef:documentID="xmp.did:C283A17CABD011ED8E688DE700A6664B"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
text/plain;charset=utf-8
@ImmortalPepes on Twitter
https://twitter.com/immortalpepes
Immortal Pepes Inscription IDs:
{"Immortal Pepes": "1", "inscription": "160b009bc9d319c37a3619539104664431bae73ec1b65ae030d4caf467d03e83i0"}
{"Immortal Pepes": "2", "inscription": "19ac04e672e0bf06460b8cbf1cdb6028710d49f7b19017dbbd84cb9ce489dbc6i0"}
{"Immortal Pepes": "3", "inscription": "0998b23e842c84c774109f33f3fccffb7815dd0fedc4ebe0248faff2f79d3208i0"}
{"Immortal Pepes": "4", "inscription": "06cbbacd052abdf68M
9e6ce8982e4d50263935a963731194c49606e9c8d0ad715i0"}
{"Immortal Pepes": "5", "inscription": "a8911353adbecfe523d1a562af7ede74a53ea56221bf6a4cf6bb96fab42f727di0"}
{"Immortal Pepes": "6", "inscription": "e7c5b3461d2bd539febb4701e00b5ffa8f9233ebecdad3e8cb194b2d290c50a9i0"}
{"Immortal Pepes": "7", "inscription": "89429ac1e5d6173c9b5002e0003fc2e27af0b2ad2734c3da2138961ef9a3c2d0i0"}
{"Immortal Pepes": "8", "inscription": "fb0400ded5cfce4bea1975bd246be58f4cfc06f8da29e94622e640976c231bd8i0"}
{"Immortal Pepes": "9", "inM
scription": "c5bed91f4899394523a6cd78439ec94f9ad18fe0f0fb6eb10703de94e4c4e61ei0"}
{"Immortal Pepes": "10", "inscription": "4f92099d9531de6e729521f28bde6161aa591cdd8e889e28756b6057fc5855a9i0"}
{"Immortal Pepes": "11", "inscription": "92d30eaf4ef10ccfa23689c8aabd7449481153f5240acea1df33823ee263c8f7i0"}
{"Immortal Pepes": "12", "inscription": "ad4f104c5c43ce231eee732e6df2a6aeefec6fb1326eb12b8532a664c3942a8ai0"}
{"Immortal Pepes": "13", "inscription": "b780a22ae9ada8e78342ba8ea0444ef455b56f8cdefa11533c44cc08824f219M
{"Immortal Pepes": "14", "inscription": "0d1a07622cc5ed2bd4e5947ae9b597c9efb0b0c63ba24f5620e9830a7695be9ai0"}
{"Immortal Pepes": "15", "inscription": "10869bfa1a4a472f46656630232853f6305414c4dcf4a76d9f643c8cf379007ei0"}
{"Immortal Pepes": "16", "inscription": "e8701e44011defcad3ee1c82b9229031d4ca89caf67ce0063beea3d851dcf31ai0"}
{"Immortal Pepes": "17", "inscription": "40f92b35f9130e7859dd69537d06d1d147604d0d26afb291a626f1153e080728i0"}
{"Immortal Pepes": "18", "inscription": "da21a0e4e92ce1eedcbe514cc0acM
0261f26657c2d704014d59284c166abc9dd1i0"}
{"Immortal Pepes": "19", "inscription": "4697d28ca1f959f386427aeb09dbb6b8d088a6a3fc5c2843974607848af10eebi0"}
{"Immortal Pepes": "20", "inscription": "0e22327265898ba6e0238eab3271c671ea25d160c29c33f1d9cd0ee2226afdfdi0"}
{"Immortal Pepes": "21", "inscription": "4734d28e8d7d28035ae78e580bb93a137f6cc8f454ff30d5be3374d2e2855e10i0"}
{"Immortal Pepes": "22", "inscription": "e5cc4c7d4f6dd775f0a69fdb21617b31e0e4c324cb12b75a091e2baf1033112ci0"}
{"Immortal Pepes": "23", "inscriptM
ion": "10abdb1710e53482c87fafaf6b4635ca17aeee576e58db499303a16b180d2476i0"}
{"Immortal Pepes": "24", "inscription": "d8bcc92a962f2b86844a619741cea662f92e4cb1206e89da02fcb6cab2fcaec1i0"}
{"Immortal Pepes": "25", "inscription": "2707ba17d266ef3aec64e8f9751e286bb93c0c86bde2d139f0956d00d31b80c3i0"}
{"Immortal Pepes": "26", "inscription": "183de8cc4d12e88daa2dd2229f300865c84d2d91b063a8df17a6aa4a79a23665i0"}
{"Immortal Pepes": "27", "inscription": "614ae27792b2cc5fc6990229ed23d9546f8a823e264e8162dfd7eaf9398e0c91i0"}
{"Immortal Pepes": "28", "inscription": "8d06e4657b87369b2ad7db9fe1352541617c68fb3ff315afbd3373d3aba21899i0"}
{"Immortal Pepes": "29", "inscription": "169c1e2b592196da1118d344c9419bc1eeb5363033d6162ed219c9369c0c16d4i0"}
{"Immortal Pepes": "30", "inscription": "74f9012dc117861aa0d2460fdefbf6e7040175ce86f60a946c6cc47d9bda05dfi0"}
{"Immortal Pepes": "31", "inscription": "8af4cc52dfe47c840ed40db53f9fb18e939ab10adf0fbb699ddf4b7f344c9d76i0"}
{"Immortal Pepes": "32", "inscription": "26d698cffc689948e0bf503cccf55628f8M
be312c4e54696f825cc4497ef10c9fi0"}
{"Immortal Pepes": "33", "inscription": "b2a0d76d42d8152bfc51a849e8f45f124b0ffa1df65d9f7f2ff0e1ae43a475d4i0"}
{"Immortal Pepes": "34", "inscription": "fcaad3deb5330b6482c3a3c4eb87d7553b6d732fdd40db5a497587892b8ba8f4i0"}
{"Immortal Pepes": "35", "inscription": "dd930fa7d565f0b8d6013aa2ee069ab7fc3a9db023765d467e44d89e5d9e60fdi0"}
{"Immortal Pepes": "36", "inscription": "0f2bf2875d2f02bc5ac196d65bf1e8710df906a36d921c8c8c0ced2647f1650bi0"}
{"Immortal Pepes": "37", "inscription": M
"7587693335b0beb0d33c98f8979e531c0a67b0f8a83a6d9602a8ea4d54d5ed1ai0"}
{"Immortal Pepes": "38", "inscription": "c7baf030801648e3cc42bcb3fe439905700605cf94d47186f8767658768b6f29i0"}
{"Immortal Pepes": "39", "inscription": "dcc08776fdeaa6693a8a46fcfae29362377093620a73681889fcf8acd6a3754ci0"}
{"Immortal Pepes": "40", "inscription": "6bc1f54bbcc55ec215aad4e12cfa354aa89447af4d7c38a78387d30710d0e971i0"}
{"Immortal Pepes": "41", "inscription": "d267d32fb81673e35d4c05f584f75fca5ff26eeab6059448266d38a293ff6985i0"}
ortal Pepes": "42", "inscription": "5781e8a52bd9062b64a6d9cf3a75389c4407b570adb12cb83ae45b8325f4368bi0"}
{"Immortal Pepes": "43", "inscription": "a16abacc34fd0c2719fe3e14ddbed103137c731d1f1923da37a6fdd992f1d8cdi0"}
{"Immortal Pepes": "44", "inscription": "97a2bd77aab53822b8dde28be3fed3b2a1f106306a89e8b58e143ba6ef8241e4i0"}
{"Immortal Pepes": "45", "inscription": "03795938c5c5ef9e54136b03d9f314d0888a8a612bbbe844cb467d718b7ec909i0"}
{"Immortal Pepes": "46", "inscription": "105d3185977c3aa4a7228ea4508cd3ce51faa30bM
97e083f382624896e47aa129i0"}
{"Immortal Pepes": "47", "inscription": "54e81779924bffd5d25b84d7e03d0783f8151e1f329943b13a0b8d768897f435i0"}
{"Immortal Pepes": "48", "inscription": "6e9567a4c970192625ece44f3de905c0cdb6612440ed3ee80ad383c62d54883ei0"}
{"Immortal Pepes": "49", "inscription": "cfd2459832180c935e334863f9e6f14d5a59bb6dbf8167b4dff6d7e4517c4b7di0"}
{"Immortal Pepes": "50", "inscription": "89bc2b8f521510783c0bd799f794727bd1cd7f21e62a76a00fcc4c2ac7b0cf8ci0"}
{"Immortal Pepes": "51", "inscription": "e4ebaM
555072c29654d6bd32ca0f0a2b511bf37b7c455577b2582c4a5b558ba8fi0"}
{"Immortal Pepes": "52", "inscription": "de907a76345287feeeca7ab4fccc5164966b8bb863a4177f5e4152910ee9e1a4i0"}
{"Immortal Pepes": "53", "inscription": "ab8d2583943f42c359f456a64d09240d549678cd92429305ac2c919f1b08e7d9i0"}
{"Immortal Pepes": "54", "inscription": "a396268b9dca0a4c3b7dbae99b6b4bbd140a39a0b76356c8cfa837801ba9d709i0"}
{"Immortal Pepes": "55", "inscription": "64f8962251db82250c0e70b31ba9ec5c32ca18ec6d6b3907a785d169fa0ff10fi0"}
Pepes": "56", "inscription": "6b04e6c886ac4c9428c151a80b6899e61219309abf7bcd715397544259fe3141i0"}
{"Immortal Pepes": "57", "inscription": "d7ba526c327d6ab0d188208932f36dfaf65809315c802b75ae799f7e28bec766i0"}
{"Immortal Pepes": "58", "inscription": "0935cfffd79af1a9361e72563bf665ecba68a8fd2bb56a39a902f85cf112d7b7i0"}
{"Immortal Pepes": "59", "inscription": "a82ce1be58e03f226fcc7a91d3803a454687d223a9d74ee4e2b4db2686f200e3i0"}
{"Immortal Pepes": "60", "inscription": "a7de4d1b24487962856fa16b2b894ba2be8e330a5c8ab0M
f11a410bddb49e14e9i0"}
{"Immortal Pepes": "61", "inscription": "25e5a212edb4576b80c5130c5defe10709eb7bc57561b90817be89a4bc38a5eei0"}
{"Immortal Pepes": "62", "inscription": "3131be771b6ed4f2b8db931197b51315a6615eda4ea91dab2cca3fa26785bcf4i0"}
{"Immortal Pepes": "63", "inscription": "c00ea4d71914116cb2c2a734cfe264a2ae62e33c470f49fd0ee2ab5bfbf0a31ci0"}
{"Immortal Pepes": "64", "inscription": "e9aee2f7af816aec47b6f8f15c88ef30a8168f28924e5e1e42af3d6975769484i0"}
{"Immortal Pepes": "65", "inscription": "d77da2fec69M
495dc9caeda910f21b4501560ccdaf19e75475e3c6a44a400c8d9i0"}
{"Immortal Pepes": "66", "inscription": "28d72b9856141ce19c199183334cab63f38704e918344d732903e96147289425i0"}
{"Immortal Pepes": "67", "inscription": "99bc9c242a95d6ec292bcaaa8111e126b42c6fb2e64ef6d5785d34e4eb3fb935i0"}
{"Immortal Pepes": "68", "inscription": "3559577629a6346709a55b2b085540e5faeca11b58b2b2e5ccc3729c468a9b78i0"}
{"Immortal Pepes": "69", "inscription": "663ca3d1e7175265b76877664b70ad6d01bc8133194680d96ad22ee6025ff3a0i0"}h!
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk=M
"XMP Core 4.4.0-Exiv2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:GIMP="http://www.gimp.org/xmp/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:DocumentID="gimp:docid:gimp:8ebf2473-9244-452c-83d6-39a1a5eb60ab" xmpMM:InstanceID="xmp.iid:8b02b0de-0807-418f-a6ee-fc3M
b7453e945" xmpMM:OriginalDocumentID="xmp.did:75db09e8-a72a-42c4-9300-d366f07b99bd" dc:Format="image/webp" GIMP:API="2.0" GIMP:Platform="Windows" GIMP:TimeStamp="1676317363674225" GIMP:Version="2.10.32" tiff:Orientation="1" xmp:CreatorTool="GIMP 2.10" xmp:MetadataDate="2023:02:13T14:42:36-05:00" xmp:ModifyDate="2023:02:13T14:42:36-05:00"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:11915e77-1654-44eb-8c87-ebbeee502e36" stEvt:softwareAgent="Gimp 2.10 (Windows)" sM
tEvt:when="2023-02-13T14:40:58"/> <rdf:li stEvt:action="saved" stEvt:changed="/" stEvt:instanceID="xmp.iid:4d24c548-c09b-46b8-82cb-4543592671cc" stEvt:softwareAgent="Gimp 2.10 (Windows)" stEvt:when="2023-02-13T14:42:43"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta>                                                                                                                                                                                                                                    M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                     <?xpacket end="w"?>h!
<</Linearized 1/L 184622/O 10/E 172142/N 1/T 184348/H [ 1376 281]>>
<</Size 62/Root 9 0 R/Info 7 0 R/ID[<3DD0E233061D449FB063BA7E77878260><C1A115B44BB1B2110A00F03B7537FE7F>]/Prev 184338>>

<</Filter/FlateDecode/I 235/Length 189/O 219/S 40/T 177>>stream
<</Lang(en-US)/Metadata 6 0 R/Outlines 3 0 R/Pages 5 0 R/Type/Catalog/ViewerPreferences<</Direction/L2R>>>>
<</Annots 11 0 R/ArtBox[0.0 0.0 612.0 792.0]/BleedBox[0.0 0.0 612.0 792.0]/Contents[20 0 R 21 0 R 24 0 R 25 0 R 26 0 R 28 0 R 29 0 R 30 0 R]/CropBox[0.0 0.0 612.0 792.0]/MediaBox[0.0 0.0 612.0 792.0]/Parent 5 0 R/PieceInfo<</InDesign<</DocumentID(
Z)/NumberofPages 1/OriginalDocumentID(
6)/PageUIDList<</0 5000>>/PageWidthList<</0 612.0>>>>>>/Resources<</ColorSpace<</CS0 17 0 R/CS1 18 0 R/CS2 19 0 R>>/ExtGState<</GS0 34 0 R/GS1 35 0 R>>/Font<</T1_0 22 0 R/T1_1 23 0 R/T1_2 27 0 R>>/ProcSet[/PDF/Text/ImageC/ImageI]/Properties<</MC0 47 0 R/MC1 49 0 R>>/XObject<</Im0 51 0 R/Im1 53 0 M
R/Im2 55 0 R>>>>/Rotate 0/Tabs/W/Thumb 4 0 R/TrimBox[0.0 0.0 612.0 792.0]/Type/Page>>
[12 0 R 13 0 R 14 0 R 15 0 R 16 0 R]
<</A 56 0 R/BS<</S/S/Type/Border/W 0>>/Border[0 0 0]/H/N/Rect[415.0 380.896 477.71 371.568]/Subtype/Link/Type/Annot>>
<</A 57 0 R/BS<</S/S/Type/Border/W 0>>/Border[0 0 0]/H/N/Rect[415.0 362.896 460.513 353.568]/Subtype/Link/Type/Annot>>
<</A 58 0 R/BS<</S/S/Type/Border/W 0>>/Border[0 0 0]/H/N/Rect[415.0 344.896 480.074 335.568]/SubM
type/Link/Type/Annot>>
<</A 59 0 R/BS<</S/S/Type/Border/W 0>>/Border[0 0 0]/H/N/Rect[415.0 326.896 464.421 317.568]/Subtype/Link/Type/Annot>>
<</A 60 0 R/BS<</S/S/Type/Border/W 0>>/Border[0 0 0]/H/N/Rect[415.0 308.896 448.109 299.568]/Subtype/Link/Type/Annot>>
[/Indexed 17 0 R 61 32 0 R]
[/Indexed 17 0 R 127 33 0 R]
<</Filter/FlateDecode/Length 1061>>stream
<</Filter/FlateDecode/Length 1232>>stream
<</BaseFont/LZYVVA+YanoneKaffeesatz-Regular/Encoding/WinAnsiEncoding/FirstChar 32/FontDescriptor 37 0 R/LastChar 121/Subtype/Type1/ToUnicode 38 0 R/Type/Font/Widths[157 0 0 0 0 0 502 0 0 0 470 0 0 0 0 0 0 0 0 417 0 417 0 0 0 0 0 0 0 0 0 0 0 437 376 339 3M
93 320 312 385 0 0 0 393 0 489 0 0 360 0 373 0 373 0 0 0 0 0 0 0 0 0 0 0 0 354 0 313 386 361 255 0 380 175 0 0 173 563 382 368 383 0 263 345 291 390 0 540 0 356]>>
<</BaseFont/LZYVVA+HelveticaNeueLTStd-Roman/Encoding 39 0 R/FirstChar 31/FontDescriptor 41 0 R/LastChar 176/Subtype/Type1/ToUnicode 42 0 R/Type/Font/Widths[518 278 0 426 0 0 0 630 278 259 259 352 0 278 389 278 333 556 556 556 556 556 556 556 556 556 556 278 0 0 0 0 0 0 648 685 722 704 611 574 759 722 259 0 0 556 871 722 760 648 760 685 64M
8 574 722 611 926 611 648 0 0 0 0 0 0 0 537 593 537 593 537 296 574 556 222 222 519 222 853 556 574 593 0 333 500 315 556 500 758 518 500 480 0 0 0 0 0 0 0 0 0 0 0 556 0 0 0 0 0 0 0 0 0 0 0 278 0 0 0 0 0 0 990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 800 0 0 0 0 800 0 400]>>
<</Filter/FlateDecode/Length 1270>>stream
<</Filter/FlateDecode/Length 1162>>stream
<</Filter/FlateDecode/Length 1166>>stream
<</BaseFont/LZYVVA+HelveticaNeueLTStd-Bd/Encoding/WinAnsiEncoding/FirstM
Char 32/FontDescriptor 44 0 R/LastChar 121/Subtype/Type1/ToUnicode 45 0 R/Type/Font/Widths[278 0 0 0 0 0 0 0 0 0 0 0 0 407 0 0 556 556 0 0 556 556 0 0 0 0 278 0 0 0 0 0 0 685 704 741 741 0 593 0 741 0 0 0 0 907 0 0 667 0 0 649 0 0 0 944 0 0 0 0 0 0 0 0 0 574 611 574 0 574 0 0 593 258 0 0 258 906 593 611 0 0 389 537 0 593 520 0 0 519]>>
<</Filter/FlateDecode/Length 1335>>stream
<</Filter/FlateDecode/Length 1232>>stream
<</Filter/FlateDecode/Length 895>>stream
<</Filter/FlateDecode/Length 2574/N 3>>stream
<</Filter/FlateDecode/Length 113>>stream
<</Filter/FlateDecode/Length 220>>stream
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
<</AIS false/BM/Normal/M
CA 1.0/OP true/OPM 0/SA true/SMask/None/Type/ExtGState/ca 1.0/op true>>
<</Filter/FlateDecode/Length 3089/Subtype/Type1C>>stream
<</Ascent 957/CapHeight 700/CharSet(/space/ampersand/asterisk/three/five/A/B/C/D/E/F/G/K/M/P/R/T/a/c/d/e/f/h/i/l/m/n/o/p/r/s/t/u/w/y)/Descent -206/Flags 32/FontBBox[-107 -206 937 957]/FontFamily(Yanone Kaffeesatz Regular)/FontFile3 36 0 R/FontName/LZYVVA+YanoneKaffeesatz-Regular/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 80/Type/FontDescriptor/XHeight 500>>
<</Filter/FlateDecode/Length 388>>stream
<</BaseEncoding/WinAnsiEncoding/Differences[31/f_i]/TyM
<</Filter/FlateDecode/Length 4891/Subtype/Type1C>>stream
<</Ascent 952/CapHeight 714/CharSet(/f_i/space/quotedbl/ampersand/quotesingle/parenleft/parenright/asterisk/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/A/B/M
C/D/E/F/G/H/I/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z/dagge\
r/quoteright/trademark/copyright/registered/degree)/Descent -214/Flags 32/FontBBox[-166 -214 1076 952]/FontFamily(HelveticaNeueLT Std)/FontFile3 40 0 R/FontName/LZYVVA+HelveticaNeueLTStd-Roman/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 84/Type/FontDescriptor/XHeight 517>>
<</Filter/FlateDecode/Length 576>>stream
<</Filter/FlateDecode/Length 2301/Subtype/Type1C>>stream
<</Ascent 975/CapHeight 714/CharSet(/space/hyphen/zero/one/four/five/colon/A/B/C/D/F/H/M/P/S/W/a/b/c/e/h/i/l/m/n/o/r/s/u/v/y)/Descent -218/Flags 32/FontBBox[-166 -218 1078 975]/FontFamily(HelveticaNeueLT Std)/FM
ontFile3 43 0 R/FontName/LZYVVA+HelveticaNeueLTStd-Bd/FontStretch/Normal/FontWeight 700/ItalicAngle 0/StemV 144/Type/FontDescriptor/XHeight 517>>
<</Filter/FlateDecode/Length 377>>stream
<</Length 8480/Subtype/XML/Type/Metadata>>stream
" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c148 79.164036, 2019/08/13-01:06:57        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
        xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"
            xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
            xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
            xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
            xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
   <dc:format>application/pdf</dc:format>
            <rdf:Alt>
               <rdf:li xml:lang="x-default">Dish_TallTub_BW</rdf:li>
            </rdf:Alt>
         </dc:title>
         <xmp:CreatorTool>Adobe Illustrator 24.0 (Macintosh)</xmp:CreatorTool>
         <xmp:CreateDate>2019-12-27T14:47:35-05:00</xmp:CreateDate>
         <xmp:ModifyDate>2019-12-27T14:47:36-05:00</xmp:ModifyDate>
         <xmp:MetadataDate>2019-12-27T14:47:36-05:00</xmp:MetadataDate>
         <xmpMM:DocumentID>xmp.did:0M
2801174072068118083DBE135E50B2D</xmpMM:DocumentID>
         <xmpMM:InstanceID>uuid:0dda8dd2-9c02-394b-93e6-a3513e6f282f</xmpMM:InstanceID>
         <xmpMM:OriginalDocumentID>uuid:5A44A0B1C55611DEBE58BE8848C34AD2</xmpMM:OriginalDocumentID>
         <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>uuid:f2bc740f-fddd-4897-9a57-a3d3ab13205e</stRef:instanceID>
            <stRef:documentID>xmp.did:74117FE32007116894578E71DAD657C1</M
            <stRef:originalDocumentID>uuid:5A44A0B1C55611DEBE58BE8848C34AD2</stRef:originalDocumentID>
            <stRef:renditionClass>proof:pdf</stRef:renditionClass>
         </xmpMM:DerivedFrom>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:74117FE32007116894578E71DAD657C1</stEvt:instanceID>
                  <stEvt:when>2011-02-10T13:16:43-05:00</M
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:02801174072068118083DBE135E50B2D</stEvt:instanceID>
                  <stEvt:when>2012-03-20T11:41:19-04:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS5.1</stEvt:softwareAgenM
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <illustrator:Type>Document</illustrator:Type>
         <illustrator:CreatorSubTool>AIRobin</illustrator:CreatorSubTool>
         <xmpTPg:NPages>1</xmpTPg:NPages>
         <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
         <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
         <xmpTPg:MaxPageSize rdf:parseType="Resource">
im:w>63.500000</stDim:w>
            <stDim:h>63.500000</stDim:h>
            <stDim:unit>Millimeters</stDim:unit>
         </xmpTPg:MaxPageSize>
         <xmpTPg:PlateNames>
            <rdf:Seq>
               <rdf:li>Cyan</rdf:li>
               <rdf:li>Black</rdf:li>
            </rdf:Seq>
         </xmpTPg:PlateNames>
         <xmpTPg:SwatchGroups>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <xmpG:groupName>Default Swatch Group</xmpG:groupName>
                  <xmM
pG:groupType>0</xmpG:groupType>
                  <xmpG:Colorants>
                     <rdf:Seq>
                        <rdf:li rdf:parseType="Resource">
                           <xmpG:swatchName>White</xmpG:swatchName>
                           <xmpG:type>PROCESS</xmpG:type>
                           <xmpG:tint>100.000000</xmpG:tint>
                           <xmpG:mode>CMYK</xmpG:mode>
                           <xmpG:cyan>0.000000</xmpG:cyan>
                           <xmpG:magenta>0.000000</xmpG:magentaM
                           <xmpG:yellow>0.000000</xmpG:yellow>
                           <xmpG:black>0.000000</xmpG:black>
                        </rdf:li>
                        <rdf:li rdf:parseType="Resource">
                           <xmpG:swatchName>Black</xmpG:swatchName>
                           <xmpG:type>PROCESS</xmpG:type>
                           <xmpG:tint>100.000000</xmpG:tint>
                           <xmpG:mode>CMYK</xmpG:mode>
                           <xmpG:cyan>0.000000</xmpG:cyan>
                          <xmpG:magenta>0.000000</xmpG:magenta>
                           <xmpG:yellow>0.000000</xmpG:yellow>
                           <xmpG:black>100.000000</xmpG:black>
                        </rdf:li>
                        <rdf:li rdf:parseType="Resource">
                           <xmpG:swatchName>6 WP</xmpG:swatchName>
                           <xmpG:type>PROCESS</xmpG:type>
                           <xmpG:tint>100.000000</xmpG:tint>
                           <xmpG:mode>CMYK</xmpG:modM
                           <xmpG:cyan>6.000000</xmpG:cyan>
                           <xmpG:magenta>0.000000</xmpG:magenta>
                           <xmpG:yellow>0.000000</xmpG:yellow>
                           <xmpG:black>0.000000</xmpG:black>
                        </rdf:li>
                        <rdf:li rdf:parseType="Resource">
                           <xmpG:swatchName>10 WP</xmpG:swatchName>
                           <xmpG:type>PROCESS</xmpG:type>
                           <xmpG:tint>100.000000</xM
                           <xmpG:mode>CMYK</xmpG:mode>
                           <xmpG:cyan>10.000000</xmpG:cyan>
                           <xmpG:magenta>0.000000</xmpG:magenta>
                           <xmpG:yellow>0.000000</xmpG:yellow>
                           <xmpG:black>0.000000</xmpG:black>
                        </rdf:li>
                        <rdf:li rdf:parseType="Resource">
                           <xmpG:swatchName>20 WP</xmpG:swatchName>
                           <xmpG:type>PROCESS<M
                           <xmpG:tint>100.000000</xmpG:tint>
                           <xmpG:mode>CMYK</xmpG:mode>
                           <xmpG:cyan>20.000000</xmpG:cyan>
                           <xmpG:magenta>0.000000</xmpG:magenta>
                           <xmpG:yellow>0.000000</xmpG:yellow>
                           <xmpG:black>0.000000</xmpG:black>
                        </rdf:li>
                        <rdf:li rdf:parseType="Resource">
                           <xmpG:swatchName>30 WP</M
                           <xmpG:type>PROCESS</xmpG:type>
                           <xmpG:tint>100.000000</xmpG:tint>
                           <xmpG:mode>CMYK</xmpG:mode>
                           <xmpG:cyan>30.000001</xmpG:cyan>
                           <xmpG:magenta>0.000000</xmpG:magenta>
                           <xmpG:yellow>0.000000</xmpG:yellow>
                           <xmpG:black>0.000000</xmpG:black>
                        </rdf:li>
                        <rdf:li rdf:parseType=M
                           <xmpG:swatchName>42 WP</xmpG:swatchName>
                           <xmpG:type>PROCESS</xmpG:type>
                           <xmpG:tint>100.000000</xmpG:tint>
                           <xmpG:mode>CMYK</xmpG:mode>
                           <xmpG:cyan>41.999999</xmpG:cyan>
                           <xmpG:magenta>0.000000</xmpG:magenta>
                           <xmpG:yellow>0.000000</xmpG:yellow>
                           <xmpG:black>0.000000</xmpG:black>
                     </rdf:Seq>
                  </xmpG:Colorants>
               </rdf:li>
            </rdf:Seq>
         </xmpTPg:SwatchGroups>
         <pdf:Producer>Adobe PDF library 15.00</pdf:Producer>
      </rdf:Description>
<</Metadata 46 0 R>>
<</Length 23474/Subtype/XML/Type/Metadata>>stream
" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMM
P Core 5.6-c148 79.164036, 2019/08/13-01:06:57        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:illustrator="http://ns.adM
obe.com/illustrator/1.0/"
            xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
            xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
            xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
            xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
            xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
         <dc:format>application/pdf</dc:format>
            <rdf:Alt>
               <rdf:li xml:lang="x-default">1480534353025</rdf:li>
            </rdf:Alt>
         <xmp:MetadataDate>2019-09-05T13:43:20-04:00</xmp:MetadataDate>
         <xmp:ModifyDate>2019-09-05T13:43:20-04:00</xmp:ModifyDate>
         <xmp:CreateDate>2016-11-30T14:32:34-05:00</xmp:CreateDate>
         <xmp:CreatorTool>Adobe Illustrator CC 2017 (Macintosh)</xmp:CreatorTool>
         <xmpMM:InstanceID>uuid:4dfbdb1c-325e-7144-86df-cf4b76820618</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:1b6690ed-28a8-c141-9479-b6a9cf6be651</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>uuid:5D2089M
2493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID>
         <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>uuid:69e66311-7171-fc4e-aa90-9826e2d7a0a3</stRef:instanceID>
            <stRef:documentID>xmp.did:34fd856f-18a3-4316-bc70-79ece78f8e18</stRef:documentID>
            <stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID>
            <stRef:renditionClass>proof:pdf</stRef:renditionM
         </xmpMM:DerivedFrom>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:params>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:D27F11740720681191099C3B601C4548</stEvt:instanceID>
                  <sM
tEvt:when>2008-04-17T14:19:15+05:30</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:parM
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:params>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F97F1174072068118D4ED246B3ADB1C6</stEvt:instanceID>
                  <stEvt:when>2008-05-15T16:23:06-07:00</stEvt:when>
             <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:FA7F1174072068118D4ED246B3ADB1C6</stEvt:instanceID>
                  <stEvt:when>2008-05-15T17:M
10:45-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:EF7F117407206811A46CA4519D24356B</stEvt:instanceID>
    <stEvt:when>2008-05-15T22:53:33-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F07F117407206811A46CA4519D24356B</stM
                  <stEvt:when>2008-05-15T23:07:07-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F77F11M
7407206811BDDDFD38D0CF24DD</stEvt:instanceID>
                  <stEvt:when>2008-05-16T10:35:43-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
  <stEvt:params>from application/pdf to &lt;unknown&gt;</stEvt:params>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F97F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
                  <stEvt:when>2008-05-16T10:40:59-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
               <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:params>from application/vnd.adobe.illustrator to &lt;unknown&gt;</stEvt:params>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:FA7F11740720M
6811BDDDFD38D0CF24DD</stEvt:instanceID>
                  <stEvt:when>2008-05-16T11:26:55-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:iM
nstanceID>xmp.iid:FB7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
                  <stEvt:when>2008-05-16T11:29:01-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:actiM
                  <stEvt:instanceID>xmp.iid:FC7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
                  <stEvt:when>2008-05-16T11:29:20-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <M
stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:FD7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
                  <stEvt:when>2008-05-16T11:30:54-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="M
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:FE7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID>
                  <stEvt:when>2008-05-16T11:31:22-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
       <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:B233668C16206811BDDDFD38D0CF24DD</stEvt:instanceID>
                  <stEvt:when>2008-05-16T12:23:46-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
            </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:B333668C16206811BDDDFD38D0CF24DD</stEvt:instanceID>
                  <stEvt:when>2008-05-16T13:27:54-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
          </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:B433668C16206811BDDDFD38D0CF24DD</stEvt:instanceID>
                  <stEvt:when>2008-05-16T13:46:13-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
           </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F77F11740720681197C1BF14D1759E83</stEvt:instanceID>
                  <stEvt:when>2008-05-16T15:47:57-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                       M
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F87F11740720681197C1BF14D1759E83</stEvt:instanceID>
                  <stEvt:when>2008-05-16T15:51:06-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdM
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F97F11740720681197C1BF14D1759E83</stEvt:instanceID>
                  <stEvt:when>2008-05-16T15:52:22-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:chaM
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:M
                  <stEvt:instanceID>xmp.iid:FA7F117407206811B628E3BF27C8C41B</stEvt:instanceID>
                  <stEvt:when>2008-05-22T13:28:01-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
   <stEvt:action>converted</stEvt:action>
                  <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:FF7F117407206811B628E3BF27C8C41B</stEvt:instanceID>
                  <stEvt:when>2008-05-22T16:23:53-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</sM
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
               </rdf:li>
               <rdf:li rdf:parseType="ResourceM
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:07C3BD25102DDD1181B594070CEB88D9</stEvt:instanceID>
                  <stEvt:when>2008-05-28T16:45:26-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F87F1174072068119098B097FDA39BEF</stEvt:instanceID>
                  <stEvt:when>2008-06-02T13:25:25-07:00</stEvt:when>
   <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F77F117407206811BB1DBF8F242B6F84</stEvt:instanceID>
                  <stEvt:when>2008-06-09T14:58:36-07:0M
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F97F117407206811ACAFB8DA80854E76</stEvt:instanceID>
                  <stEvtM
:when>2008-06-11T14:31:27-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:0180117407206811834383CD3A8D2303</stEvt:instanM
                  <stEvt:when>2008-06-11T22:37:35-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:F77F117407206811M
818C85DF6A1A75C3</stEvt:instanceID>
                  <stEvt:when>2008-06-27T14:40:42-07:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent>
                  <stEvt:changed>
                     <rdf:Bag>
                        <rdf:li>/</rdf:li>
                     </rdf:Bag>
                  </stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instaM
nceID>xmp.iid:0580117407206811910989C2A6325BB5</stEvt:instanceID>
                  <stEvt:when>2009-11-26T17:25:36+05:30</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CS5</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:1b6690ed-28a8-c141-9479-b6a9cf6be651</stEvt:instanceID>
                  <stEvtM
:when>2013-03-19T16:43:12+05:30</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CC (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <illustrator:Type>Document</illustrator:Type>
         <illustrator:StartupProfile>Print</illustrator:StartupProfile>
         <xmpTPg:HasVisibleOverprint>True</xmpTPg:HasVisibleOverprint>
         <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisM
         <xmpTPg:NPages>1</xmpTPg:NPages>
         <xmpTPg:MaxPageSize rdf:parseType="Resource">
            <stDim:w>314.999995</stDim:w>
            <stDim:h>99.899595</stDim:h>
            <stDim:unit>Points</stDim:unit>
         </xmpTPg:MaxPageSize>
         <xmpTPg:PlateNames>
            <rdf:Seq>
               <rdf:li>Black</rdf:li>
               <rdf:li>PANTONE 124 C - 0/28/100/6</rdf:li>
            </rdf:Seq>
         </xmpTPg:PlateNames>
         <xmpTPg:SwatchGroups>
               <rdf:li rdf:parseType="Resource">
                  <xmpG:groupName>Default Swatch Group</xmpG:groupName>
                  <xmpG:groupType>0</xmpG:groupType>
                  <xmpG:Colorants>
                     <rdf:Seq>
                        <rdf:li rdf:parseType="Resource">
                           <xmpG:swatchName>White</xmpG:swatchName>
                           <xmpG:mode>CMYK</xmpG:mode>
                           <xmpG:type>PROCESS</xmpG:type>
                           <xmpG:cM
yan>0.000000</xmpG:cyan>
                           <xmpG:magenta>0.000000</xmpG:magenta>
                           <xmpG:yellow>0.000000</xmpG:yellow>
                           <xmpG:black>0.000000</xmpG:black>
                        </rdf:li>
                        <rdf:li rdf:parseType="Resource">
                           <xmpG:swatchName>Black</xmpG:swatchName>
                           <xmpG:mode>CMYK</xmpG:mode>
                           <xmpG:type>PROCESS</xmpG:type>
                           <xmpG:M
cyan>0.000000</xmpG:cyan>
                           <xmpG:magenta>0.000000</xmpG:magenta>
                           <xmpG:yellow>0.000000</xmpG:yellow>
                           <xmpG:black>100.000000</xmpG:black>
                        </rdf:li>
                        <rdf:li rdf:parseType="Resource">
                           <xmpG:swatchName>PANTONE 124 C - 0/28/100/6</xmpG:swatchName>
                           <xmpG:type>SPOT</xmpG:type>
                           <xmpG:tint>100.000000</xmpG:tint>
                     <xmpG:mode>CMYK</xmpG:mode>
                           <xmpG:cyan>0.000000</xmpG:cyan>
                           <xmpG:magenta>28.000000</xmpG:magenta>
                           <xmpG:yellow>100.000000</xmpG:yellow>
                           <xmpG:black>6.000000</xmpG:black>
                        </rdf:li>
                     </rdf:Seq>
                  </xmpG:Colorants>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <xmpG:groupName>Grays</xmpM
                  <xmpG:groupType>1</xmpG:groupType>
                  <xmpG:Colorants>
                     <rdf:Seq>
                        <rdf:li rdf:parseType="Resource">
                           <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName>
                           <xmpG:mode>CMYK</xmpG:mode>
                           <xmpG:type>PROCESS</xmpG:type>
                           <xmpG:cyan>0.000000</xmpG:cyan>
                           <xmpG:magenta>0.000000</xmpG:magenta>
              <xmpG:yellow>0.000000</xmpG:yellow>
                           <xmpG:black>100.000000</xmpG:black>
                        </rdf:li>
                     </rdf:Seq>
                  </xmpG:Colorants>
               </rdf:li>
            </rdf:Seq>
         </xmpTPg:SwatchGroups>
         <pdf:Producer>Adobe PDF library 15.00</pdf:Producer>
         <pdfx:CreatorVersion>21.0.0</pdfx:CreatorVersion>
      </rdf:Description>
<</Length 3615/Subtype/XML/Type/Metadata>>stream
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c148 79.164036, 2019/08/13-01:06:57        ">
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about=""
    xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
    xmlns:aux="http://ns.adobe.com/exif/1.0/aux/"
    xmlns:xmp="http://ns.adobe.com/xap/1.0/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:xmpMM="http://ns.adoM
    xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
    xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
   photoshop:DateCreated="2014-05-09T15:14:23-04:00"
   photoshop:LegacyIPTCDigest="803E6E6263F433A2BA143AB42516428A"
   photoshop:ColorMode="3"
   photoshop:ICCProfile="Adobe RGB (1998)"
   aux:SerialNumber="CC001514"
   aux:Firmware="H25, Firmware: Main=1.1.2, Boot=1.0.1d3, FPGA=1.0.1, CPLD=1.0.1"
   xmp:CreatorTool="Adobe Photoshop CS6 (Macintosh)"
ate="2014-05-09T15:14:23"
   xmp:ModifyDate="2014-06-11T09:46:53-04:00"
   xmp:MetadataDate="2014-06-11T09:46:53-04:00"
   dc:format="image/tiff"
   xmpMM:InstanceID="xmp.iid:06801174072068118C14E26770E7E842"
   xmpMM:DocumentID="xmp.did:7A972BC151206811822AA0160B4075D2"
   xmpMM:OriginalDocumentID="xmp.did:7A972BC151206811822AA0160B4075D2">
   <photoshop:DocumentAncestors>
     <rdf:li>xmp.did:7A972BC151206811822AA0160B4075D2</rdf:li>
     <rdf:li>xmp.did:F9DE9567382068118083ABEA68AC51C9</rdf:li>
  <rdf:li>xmp.did:FF7F1174072068118083ABEA68AC51C9</rdf:li>
   </photoshop:DocumentAncestors>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:7A972BC151206811822AA0160B4075D2"
      stEvt:when="2014-05-09T16:53:28-04:00"
      stEvt:softwareAgent="Adobe Photoshop CS6 (Macintosh)"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:F97F1174072068118083ABEA68AC51C9"
      stEvt:when="2014-05-12T09:57:M
      stEvt:softwareAgent="Adobe Photoshop CS6 (Macintosh)"
      stEvt:changed="/"/>
      stEvt:action="converted"
      stEvt:parameters="from image/tiff to application/vnd.adobe.photoshop"/>
      stEvt:action="derived"
      stEvt:parameters="converted from image/tiff to application/vnd.adobe.photoshop"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:FA7F1174072068118083ABEA68AC51C9"
      stEvt:when="2014-05-12T09:57:47-04:00"
      stEvt:softwareAM
gent="Adobe Photoshop CS6 (Macintosh)"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:05801174072068118C14E26770E7E842"
      stEvt:when="2014-06-11T09:46:53-04:00"
      stEvt:softwareAgent="Adobe Photoshop CS6 (Macintosh)"
      stEvt:changed="/"/>
      stEvt:action="converted"
      stEvt:parameters="from application/vnd.adobe.photoshop to image/tiff"/>
      stEvt:action="derived"
      stEvt:parameters="converted from application/vndM
.adobe.photoshop to image/tiff"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:06801174072068118C14E26770E7E842"
      stEvt:when="2014-06-11T09:46:53-04:00"
      stEvt:softwareAgent="Adobe Photoshop CS6 (Macintosh)"
      stEvt:changed="/"/>
   <xmpMM:DerivedFrom
    stRef:instanceID="xmp.iid:05801174072068118C14E26770E7E842"
    stRef:documentID="xmp.did:7A972BC151206811822AA0160B4075D2"
    stRef:originalDocumentID="xmp.did:7A972BC151206811822AA0160BM
  </rdf:Description>
<</BitsPerComponent 8/ColorSpace 17 0 R/Filter/DCTDecode/Height 862/Intent/RelativeColorimetric/Length 63520/Metadata 50 0 R/Name/X/Subtype/Image/Type/XObject/Width 633>>stream
&'()*89:CFHIJVXYZcdefghijuvwxyz
"#$%&'()*3456789:BCDEFGHIJRSTUVWXYZbcdefghijrstuvwxyz
<</Length 17493/Subtype/XML/Type/Metadata>>stream
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c148 79.164036, 2019/08/13-01:06:57  M
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about=""
    xmlns:xmp="http://ns.adobe.com/xap/1.0/"
    xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
    xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
    xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
    xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/"
    xmlns:exifEX="httpM
://cipa.jp/exif/1.0/"
   xmp:ModifyDate="2018-06-20T08:14:05-04:00"
   xmp:CreatorTool="Adobe Photoshop CC 2018 (Macintosh)"
   xmp:CreateDate="2005-12-07T10:29:59"
   xmp:MetadataDate="2018-06-20T08:14:05-04:00"
   xmpMM:DocumentID="adobe:docid:photoshop:87c4359f-3f8e-ce4c-8c3c-084015f3257b"
   xmpMM:InstanceID="xmp.iid:d94f768b-dac0-4200-8c54-8b7072482954"
   xmpMM:OriginalDocumentID="uuid:AD5D526415DE11DC8C55DCA48C543919"
   dc:format="image/jpeg"
   photoshop:ColorMode="4"
   photoshop:ICCProfile="U.S. Web CoatM
   photoshop:DateCreated="2005-12-07T10:29:59"
   xmpRights:Marked="False"
   exifEX:PhotographicSensitivity="50">
   <xmpMM:DerivedFrom
    stRef:instanceID="xmp.iid:78515218-8c48-4f3f-9fd4-373835bb2d9d"
    stRef:documentID="adobe:docid:photoshop:35474797-39a9-1f48-b438-5c52062237e4"
    stRef:originalDocumentID="uuid:AD5D526415DE11DC8C55DCA48C543919"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:16B27FB6212068118DBBAE0FE23BD944"
vt:when="2012-04-30T13:05:41-04:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Macintosh"
      stEvt:changed="/"/>
      stEvt:action="converted"
      stEvt:parameters="from image/tiff to application/vnd.adobe.photoshop"/>
      stEvt:action="derived"
      stEvt:parameters="converted from image/tiff to application/vnd.adobe.photoshop"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:17B27FB6212068118DBBAE0FE23BD944"
      stEvt:when="2012-04-30T13:05:41-04:0M
      stEvt:softwareAgent="Adobe Photoshop CS5 Macintosh"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:18B27FB6212068118DBBAE0FE23BD944"
      stEvt:when="2012-04-30T13:05:56-04:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Macintosh"
      stEvt:changed="/"/>
      stEvt:action="converted"
      stEvt:parameters="from application/vnd.adobe.photoshop to image/tiff"/>
      stEvt:action="derived"
      stEvt:parameters="converted M
from application/vnd.adobe.photoshop to image/tiff"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:19B27FB6212068118DBBAE0FE23BD944"
      stEvt:when="2012-04-30T13:05:56-04:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Macintosh"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:78515218-8c48-4f3f-9fd4-373835bb2d9d"
      stEvt:when="2018-06-20T08:14:05-04:00"
      stEvt:softwareAgent="Adobe Photoshop CC 2018 (Macintosh)"
      stEvt:action="converted"
      stEvt:parameters="from image/tiff to image/jpeg"/>
      stEvt:action="derived"
      stEvt:parameters="converted from image/tiff to image/jpeg"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:d94f768b-dac0-4200-8c54-8b7072482954"
      stEvt:when="2018-06-20T08:14:05-04:00"
      stEvt:softwareAgent="Adobe Photoshop CC 2018 (Macintosh)"
      stEvt:changed="/"/>
     <rdf:li>adobe:docid:photoshop:00f7eb43-7e42-117a-865e-cde42b56f534</rdf:li>
     <rdf:li>adobe:docid:photoshop:0205bac1-285b-117a-8048-cd333b6609d6</rdf:li>
     <rdf:li>adobe:docid:photoshop:0359ef07-2a33-117a-b0b2-a4bb0a5ed692</rdf:li>
     <rdf:li>adobe:docid:photoshop:040276ef-1967-1178-85a6-887f6d913a66</rdf:li>
     <rdf:li>adobe:docid:photoshop:06d16918-1a00-1178-82b9-d46b6dd03660</rdf:li>
     <rdf:li>adobe:docid:photoshop:09681107-27fe-117a-8048-cd333b6609d6</rdf:li>
  <rdf:li>adobe:docid:photoshop:0b091329-7e0f-117a-b461-d68a70f37929</rdf:li>
     <rdf:li>adobe:docid:photoshop:0b9761b8-2bda-374a-be6c-19aa1d4ed957</rdf:li>
     <rdf:li>adobe:docid:photoshop:0f9a2bd9-9b30-5c44-940d-2e3b25dccfbc</rdf:li>
     <rdf:li>adobe:docid:photoshop:13712ca0-0c40-11e8-bfc7-fe516ffc5eaa</rdf:li>
     <rdf:li>adobe:docid:photoshop:147260d6-19e1-1178-82b9-d46b6dd03660</rdf:li>
     <rdf:li>adobe:docid:photoshop:14b8a6ae-d844-1179-a70d-a9c2931c7bb6</rdf:li>
     <rdf:li>adobe:docid:photoshop:15M
09e69e-75fe-11e6-8e71-ccca60a3940a</rdf:li>
     <rdf:li>adobe:docid:photoshop:179c006e-190e-1178-a3a3-840030d0eca2</rdf:li>
     <rdf:li>adobe:docid:photoshop:1af6b8f2-17a6-1178-a555-c5050d7505b6</rdf:li>
     <rdf:li>adobe:docid:photoshop:1f670d8a-27ff-117a-9788-9c2db91f2698</rdf:li>
     <rdf:li>adobe:docid:photoshop:2271ebae-3284-4942-97ba-87d38039351a</rdf:li>
     <rdf:li>adobe:docid:photoshop:2427513c-23a7-117a-a15a-f472fc08574b</rdf:li>
     <rdf:li>adobe:docid:photoshop:289d9241-483e-11e6-9245-a13bfdc9b13eM
     <rdf:li>adobe:docid:photoshop:28e1a34d-78fa-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:2aa9204a-139b-1178-bd43-babcb6f4b73f</rdf:li>
     <rdf:li>adobe:docid:photoshop:31cfcdc5-f85a-11e5-a815-85c176b77930</rdf:li>
     <rdf:li>adobe:docid:photoshop:34e94c4f-1db8-117a-be8f-fdd5de8ed172</rdf:li>
     <rdf:li>adobe:docid:photoshop:3e98092c-1589-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:3ee8609c-ee90-f14c-8ab3-6d53ba36a6a0</rdf:li>
     <rdf:li>adobe:docidM
:photoshop:430ec9c6-79db-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:458ec56c-f05b-11e5-8134-d374b6cca590</rdf:li>
     <rdf:li>adobe:docid:photoshop:465325f4-1435-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:4b38b7ea-0d81-11e6-a790-ab313397c041</rdf:li>
     <rdf:li>adobe:docid:photoshop:4cae8a47-76e4-11e6-a246-fbbefe6142be</rdf:li>
     <rdf:li>adobe:docid:photoshop:511f8dc2-904c-117a-bace-f68dae9a25d5</rdf:li>
     <rdf:li>adobe:docid:photoshop:53282af2-78f1-11e6-bb44M
-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:534c7a3f-13ef-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:598506cf-1454-1178-9aef-91c5828ca154</rdf:li>
     <rdf:li>adobe:docid:photoshop:5ba62965-79db-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:5dee3b7c-1588-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:5eb28879-1e45-117a-be8f-fdd5de8ed172</rdf:li>
     <rdf:li>adobe:docid:photoshop:60068c96-8418-1179-95d1-fb93057029c3</rdf:li>
i>adobe:docid:photoshop:696ac39c-1495-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:6ae28e44-1494-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:7197be1d-634f-11e6-86e6-c5734a339616</rdf:li>
     <rdf:li>adobe:docid:photoshop:745d7726-243a-117a-b57f-988007e5ff72</rdf:li>
     <rdf:li>adobe:docid:photoshop:7e6c7a42-7a99-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:7efb2a7c-1589-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:7ff0e896-1M
434-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:80c57c1b-5e40-11e6-bcda-a54d3d67eef1</rdf:li>
     <rdf:li>adobe:docid:photoshop:858ab234-ec72-11e5-a8ca-efa88af7eb8f</rdf:li>
     <rdf:li>adobe:docid:photoshop:85dde473-27cf-7b4f-a6e5-e1d7f58a5814</rdf:li>
     <rdf:li>adobe:docid:photoshop:8aceeddf-d43f-11e6-a6c6-88600a4f7d84</rdf:li>
     <rdf:li>adobe:docid:photoshop:8e8bc2a5-31ca-6d49-aa0a-6bc9848fc382</rdf:li>
     <rdf:li>adobe:docid:photoshop:8f0bf4db-7a12-11e6-bb44-e35d217881a2</rdf:liM
     <rdf:li>adobe:docid:photoshop:9358e98e-1972-1178-85a6-887f6d913a66</rdf:li>
     <rdf:li>adobe:docid:photoshop:97b6bb21-e593-11e5-95a7-870e9a188652</rdf:li>
     <rdf:li>adobe:docid:photoshop:9a5abd49-90be-117a-bace-f68dae9a25d5</rdf:li>
     <rdf:li>adobe:docid:photoshop:9f1fa618-7544-11e6-84a2-b801ee9ad17c</rdf:li>
     <rdf:li>adobe:docid:photoshop:a3dd233f-9012-117a-b0e8-e7c7471bd025</rdf:li>
     <rdf:li>adobe:docid:photoshop:aa21b61d-fdc1-11e5-aad4-e4d651a551fa</rdf:li>
     <rdf:li>adobe:docid:photoshM
op:aa75f4b2-186f-1178-bfa8-d846b8df7175</rdf:li>
     <rdf:li>adobe:docid:photoshop:aac9e0c6-7e08-117a-865e-cde42b56f534</rdf:li>
     <rdf:li>adobe:docid:photoshop:abc788c9-90b2-117a-bace-f68dae9a25d5</rdf:li>
     <rdf:li>adobe:docid:photoshop:ac0ec88f-3191-1179-9b0a-84471e40f897</rdf:li>
     <rdf:li>adobe:docid:photoshop:af31c5b6-7a13-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:b217f07f-5e40-11e6-bcda-a54d3d67eef1</rdf:li>
     <rdf:li>adobe:docid:photoshop:b3c21360-8ff0-1179-94c5-f762bbbM
     <rdf:li>adobe:docid:photoshop:b3fa43a6-8013-11e6-93bb-aaf4580ad4d3</rdf:li>
     <rdf:li>adobe:docid:photoshop:b58409db-190e-1178-a3a3-840030d0eca2</rdf:li>
     <rdf:li>adobe:docid:photoshop:b793aa0b-ed6c-11e5-a459-f2bc2d1e9758</rdf:li>
     <rdf:li>adobe:docid:photoshop:b7e7a8d0-144a-1178-9aef-91c5828ca154</rdf:li>
     <rdf:li>adobe:docid:photoshop:b9e6ca3a-7e2a-117a-865e-cde42b56f534</rdf:li>
     <rdf:li>adobe:docid:photoshop:ba8b1a51-7a3c-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:M
docid:photoshop:bd019e0e-d440-11e6-a6c6-88600a4f7d84</rdf:li>
     <rdf:li>adobe:docid:photoshop:bdf23ef8-4ec4-11e6-b20a-c6d350ff4709</rdf:li>
     <rdf:li>adobe:docid:photoshop:bf86a3a3-1405-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:c14a6015-3b30-117a-b164-f7c7216a96c3</rdf:li>
     <rdf:li>adobe:docid:photoshop:c2e4cf9c-4dfa-11e6-b20a-c6d350ff4709</rdf:li>
     <rdf:li>adobe:docid:photoshop:c5a1f5d5-064b-2144-a47b-49c43ab35229</rdf:li>
     <rdf:li>adobe:docid:photoshop:c7438721-8013-11e6M
-93bb-aaf4580ad4d3</rdf:li>
     <rdf:li>adobe:docid:photoshop:cc1039a7-79ce-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:cdfa35dc-1431-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:d0dd31a7-1415-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:d6b95245-7e18-117a-b461-d68a70f37929</rdf:li>
     <rdf:li>adobe:docid:photoshop:d7c6744a-8013-11e6-93bb-aaf4580ad4d3</rdf:li>
     <rdf:li>adobe:docid:photoshop:decc4f3b-1e83-117a-be8f-fdd5de8ed172</rdf:li>
rdf:li>adobe:docid:photoshop:e0f459de-0d7c-11e6-a790-ab313397c041</rdf:li>
     <rdf:li>adobe:docid:photoshop:e66ec657-b50f-8944-b80e-69f1cefa89a8</rdf:li>
     <rdf:li>adobe:docid:photoshop:e864d911-8013-11e6-93bb-aaf4580ad4d3</rdf:li>
     <rdf:li>adobe:docid:photoshop:e8e20641-337c-117a-bee0-d086e8cd2729</rdf:li>
     <rdf:li>adobe:docid:photoshop:eb19f1ad-13ef-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:ec4cdd5e-7a95-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:ed563M
e80-4e9b-11e6-b20a-c6d350ff4709</rdf:li>
     <rdf:li>adobe:docid:photoshop:edd9a543-7e0f-117a-b461-d68a70f37929</rdf:li>
     <rdf:li>adobe:docid:photoshop:ee4c9845-599e-11e6-8afe-a3c438ecac9d</rdf:li>
     <rdf:li>adobe:docid:photoshop:ee69d49f-0024-11e6-8c2f-b087d702c36e</rdf:li>
     <rdf:li>adobe:docid:photoshop:eea73e0f-7e11-117a-b461-d68a70f37929</rdf:li>
     <rdf:li>adobe:docid:photoshop:f04af9fb-d444-11e6-a6c6-88600a4f7d84</rdf:li>
     <rdf:li>adobe:docid:photoshop:f55de4ad-1432-117a-a648-e748c32885c2</rM
     <rdf:li>adobe:docid:photoshop:f56863e4-5a27-d343-a2a3-00f84bb3374d</rdf:li>
     <rdf:li>adobe:docid:photoshop:f86c6936-4e94-11e6-b20a-c6d350ff4709</rdf:li>
     <rdf:li>adobe:docid:photoshop:f8c8088e-f03b-11e5-8134-d374b6cca590</rdf:li>
     <rdf:li>uuid:28ce3d11-e446-4e74-b504-68b6bd547bf1</rdf:li>
     <rdf:li>uuid:35E394C1215BDD118BD5AF32048ED772</rdf:li>
     <rdf:li>uuid:4360103d-b667-4864-ad4b-efab57ecfd05</rdf:li>
     <rdf:li>uuid:5C69602CA5B0DD118C33DD90C3BAA1BA</rdf:li>
     <rdf:li>uuid:7735M
495D69EB11DFA0CE945DB889DFA7</rdf:li>
     <rdf:li>uuid:8D4476583150DE119A18E6960CA3AFBD</rdf:li>
     <rdf:li>uuid:94570D3ECE97DE119227821D63F29C99</rdf:li>
     <rdf:li>uuid:9B0E6C1FE2F4DA11815BE009F33CC46F</rdf:li>
     <rdf:li>uuid:EF8E058ADBB511DCBFAEBA908EE3C948</rdf:li>
     <rdf:li>uuid:ad5671f3-4b51-4492-8ded-c9b503dfa83d</rdf:li>
     <rdf:li>uuid:b2040c03-13d9-46be-805a-49393f795d43</rdf:li>
     <rdf:li>xmp.did:01084b69-84f3-49a1-927f-367af15396b3</rdf:li>
     <rdf:li>xmp.did:0180117407206811871FBE8572M
     <rdf:li>xmp.did:01801174072068118DBBE066DC6FBE84</rdf:li>
     <rdf:li>xmp.did:02801174072068118083D7AD7859F6D2</rdf:li>
     <rdf:li>xmp.did:0380117407206811822ACA20C111A7C8</rdf:li>
     <rdf:li>xmp.did:0380117407206811871FBE85724EB2B4</rdf:li>
     <rdf:li>xmp.did:03d2b8bf-0c7f-1440-a16c-dc3f3fafbb4c</rdf:li>
     <rdf:li>xmp.did:05801174072068118083A5C130DEFB9E</rdf:li>
     <rdf:li>xmp.did:0580117407206811871FBE85724EB2B4</rdf:li>
     <rdf:li>xmp.did:0680117407206811994CF98C664213F1</rdf:M
     <rdf:li>xmp.did:07801174072068118C14BCDE88F8DB81</rdf:li>
     <rdf:li>xmp.did:08801174072068118C14C5D41485056E</rdf:li>
     <rdf:li>xmp.did:088011740720681197A5B926F9A3262B</rdf:li>
     <rdf:li>xmp.did:09801174072068118083D7AD7859F6D2</rdf:li>
     <rdf:li>xmp.did:0A8011740720681183D1FE24C578B30B</rdf:li>
     <rdf:li>xmp.did:0A801174072068118C14AC6C23AA9A29</rdf:li>
     <rdf:li>xmp.did:1371AFE7A926E311A29FDD87296B9FC2</rdf:li>
     <rdf:li>xmp.did:14E6BD0C57ADE01182289E87FDE00471</rdf:li>
>xmp.did:171D8CFAF820E61185B1A0ED451D2520</rdf:li>
     <rdf:li>xmp.did:17498E793C2068118083A5C130DEFB9E</rdf:li>
     <rdf:li>xmp.did:18477E972021681194579B9D89B17B72</rdf:li>
     <rdf:li>xmp.did:1ad00be7-767d-1b42-9936-c76b0d4bf898</rdf:li>
     <rdf:li>xmp.did:230C9D251C216811822AA93596ABFA29</rdf:li>
     <rdf:li>xmp.did:23B3C6EC28236811822A93E5494BD29C</rdf:li>
     <rdf:li>xmp.did:260A05805F74E11195F984841F8100A5</rdf:li>
     <rdf:li>xmp.did:270A05805F74E11195F984841F8100A5</rdf:li>
     <rdf:li>xmp.did:27bM
4ebca-9595-4d29-84c2-ef1ab9805a49</rdf:li>
     <rdf:li>xmp.did:2D5508FE2323681188C6CBB3567F64D3</rdf:li>
     <rdf:li>xmp.did:2b85d5fc-c967-4a79-a30a-088fda2ae206</rdf:li>
     <rdf:li>xmp.did:37ebc5b3-2dce-497c-aebf-fa5090ff2baa</rdf:li>
     <rdf:li>xmp.did:383037C1C3206811871FBE85724EB2B4</rdf:li>
     <rdf:li>xmp.did:3A3037C1C3206811871FBE85724EB2B4</rdf:li>
     <rdf:li>xmp.did:3C9B17A8AF4EE111AA63ACBDD224850B</rdf:li>
     <rdf:li>xmp.did:3a7a1ed1-d820-42f2-924a-3f00cc204f0a</rdf:li>
     <rdf:li>xmp.did:3deM
42d85-5a1c-4265-943e-29be7ba76af2</rdf:li>
     <rdf:li>xmp.did:4014f039-5df4-de40-b27f-efb2882feb31</rdf:li>
     <rdf:li>xmp.did:48fb8ba7-3b8a-044f-a244-a3c1b4b56fe4</rdf:li>
     <rdf:li>xmp.did:4D07BB8972216811994CD96C32D67D6A</rdf:li>
     <rdf:li>xmp.did:54056386-b35b-7d49-b99d-24b3a47b2d87</rdf:li>
     <rdf:li>xmp.did:58C0A93330206811822AB9A1E8784973</rdf:li>
     <rdf:li>xmp.did:5D5A12800F206811A96198B5F7DB75E3</rdf:li>
     <rdf:li>xmp.did:62de2bcb-615a-7544-8f37-019bf43ea97e</rdf:li>
     <rdf:li>xmp.didM
:652671c3-3996-4491-8490-eaa09cc293c1</rdf:li>
     <rdf:li>xmp.did:6BB4A6E8B62068118083D7AD7859F6D2</rdf:li>
     <rdf:li>xmp.did:6FC5D488DC2068118083D6782AA7D6E9</rdf:li>
     <rdf:li>xmp.did:7069A24829206811AFFDF1BBBCAB7A77</rdf:li>
     <rdf:li>xmp.did:75c39aa9-e7f4-4f64-b921-ef5b184a319c</rdf:li>
     <rdf:li>xmp.did:8360e080-603d-2d4c-ab36-ec6dac89c539</rdf:li>
     <rdf:li>xmp.did:881574AD6F21681194579B9D89B17B72</rdf:li>
     <rdf:li>xmp.did:89E3DF341D6DE1118002EA4D08B0CC53</rdf:li>
     <rdf:li>xmp.did:95fM
a4c3c-abc2-4699-b584-285390d3165e</rdf:li>
     <rdf:li>xmp.did:979d4241-bedb-4537-bc3b-127dcdac838c</rdf:li>
     <rdf:li>xmp.did:9AC4463499206811994CE50C75C2EC52</rdf:li>
     <rdf:li>xmp.did:9CBDF773D250E111B5F7AB09216DFFD3</rdf:li>
     <rdf:li>xmp.did:AC6D0B36F37CE21193E79AD6EBE52ECC</rdf:li>
     <rdf:li>xmp.did:B970D19677226811822A93E5494BD29C</rdf:li>
     <rdf:li>xmp.did:B9B5631B182068118C14FDDA38272A46</rdf:li>
     <rdf:li>xmp.did:BE24487DF22068118083DEA52C504518</rdf:li>
     <rdf:li>xmp.did:CCFA3D18352M
068118083D6782AA7D6E9</rdf:li>
     <rdf:li>xmp.did:D1DEE82B1620E111A58EFEA7038DD527</rdf:li>
     <rdf:li>xmp.did:D8C4FDA5B7206811822AB9A1E8784973</rdf:li>
     <rdf:li>xmp.did:DCE14A8C7E206811822AB9A1E8784973</rdf:li>
     <rdf:li>xmp.did:E1C6DA8F8320681188C682B364FA5400</rdf:li>
     <rdf:li>xmp.did:EAD45601462068119109881C0C4CCA31</rdf:li>
     <rdf:li>xmp.did:F4ACBA93EF20681194579B9D89B17B72</rdf:li>
     <rdf:li>xmp.did:F682BD22A1206811822ACA20C111A7C8</rdf:li>
     <rdf:li>xmp.did:F77F1174072068118083C50FBBCM
     <rdf:li>xmp.did:F77F117407206811920CD95510C3895A</rdf:li>
     <rdf:li>xmp.did:F97F1174072068118083C50FBBC530F3</rdf:li>
     <rdf:li>xmp.did:F97F11740720681183D1CDA6483B5EAE</rdf:li>
     <rdf:li>xmp.did:FB7F1174072068118083C50FBBC530F3</rdf:li>
     <rdf:li>xmp.did:FB7F11740720681192B094E1E5016938</rdf:li>
     <rdf:li>xmp.did:FC6A2D990821681183D1C1099BA7BF4E</rdf:li>
     <rdf:li>xmp.did:FE7F117407206811920CD95510C3895A</rdf:li>
     <rdf:li>xmp.did:ad8b8db0-de38-8e45-a929-ee774380af5b</rdf:lM
     <rdf:li>xmp.did:ecb09f95-65ac-584e-be77-26db4767f095</rdf:li>
     <rdf:li>xmp.did:ecfe0885-0f27-4819-a514-9938dd6774ae</rdf:li>
   </photoshop:DocumentAncestors>
  </rdf:Description>
<</BitsPerComponent 8/ColorSpace 18 0 R/Decode[0.0 255.0]/Filter/FlateDecode/Height 77/Intent/RelativeColorimetric/Length 1543/Metadata 52 0 R/Name/X/Subtype/Image/Type/XObject/Width 77>>stream
<</Length 17493/Subtype/XML/Type/Metadata>>stream
pmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c148 79.164036, 2019/08/13-01:06:57        ">
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about=""
    xmlns:xmp="http://ns.adobe.com/xap/1.0/"
    xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
    xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
    xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:photoshop="http://ns.adobe.com/M
    xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/"
    xmlns:exifEX="http://cipa.jp/exif/1.0/"
   xmp:ModifyDate="2018-06-20T08:09:36-04:00"
   xmp:CreatorTool="Adobe Photoshop CC 2018 (Macintosh)"
   xmp:CreateDate="2005-12-07T10:29:59"
   xmp:MetadataDate="2018-06-20T08:09:36-04:00"
   xmpMM:DocumentID="adobe:docid:photoshop:dd5f0e64-715b-e040-aea7-bee7ad7c8509"
   xmpMM:InstanceID="xmp.iid:c829edc4-035c-40e2-a201-2eccd5ab033b"
   xmpMM:OriginalDocumentID="uuid:AD5D526415DE11DC8C55DCA48C543M
   dc:format="image/jpeg"
   photoshop:ColorMode="4"
   photoshop:ICCProfile="U.S. Web Coated (SWOP) v2"
   photoshop:DateCreated="2005-12-07T10:29:59"
   xmpRights:Marked="False"
   exifEX:PhotographicSensitivity="50">
   <xmpMM:DerivedFrom
    stRef:instanceID="xmp.iid:c77da0a9-2518-4712-a995-09502d9888a8"
    stRef:documentID="adobe:docid:photoshop:35474797-39a9-1f48-b438-5c52062237e4"
    stRef:originalDocumentID="uuid:AD5D526415DE11DC8C55DCA48C543919"/>
stEvt:action="saved"
      stEvt:instanceID="xmp.iid:16B27FB6212068118DBBAE0FE23BD944"
      stEvt:when="2012-04-30T13:05:41-04:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Macintosh"
      stEvt:changed="/"/>
      stEvt:action="converted"
      stEvt:parameters="from image/tiff to application/vnd.adobe.photoshop"/>
      stEvt:action="derived"
      stEvt:parameters="converted from image/tiff to application/vnd.adobe.photoshop"/>
      stEvt:action="saved"
instanceID="xmp.iid:17B27FB6212068118DBBAE0FE23BD944"
      stEvt:when="2012-04-30T13:05:41-04:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Macintosh"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:18B27FB6212068118DBBAE0FE23BD944"
      stEvt:when="2012-04-30T13:05:56-04:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Macintosh"
      stEvt:changed="/"/>
      stEvt:action="converted"
      stEvt:parameters="from application/vnd.adobe.photoshM
      stEvt:action="derived"
      stEvt:parameters="converted from application/vnd.adobe.photoshop to image/tiff"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:19B27FB6212068118DBBAE0FE23BD944"
      stEvt:when="2012-04-30T13:05:56-04:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Macintosh"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:c77da0a9-2518-4712-a995-09502d9888a8"
      stEvt:when="2018-06M
      stEvt:softwareAgent="Adobe Photoshop CC 2018 (Macintosh)"
      stEvt:changed="/"/>
      stEvt:action="converted"
      stEvt:parameters="from image/tiff to image/jpeg"/>
      stEvt:action="derived"
      stEvt:parameters="converted from image/tiff to image/jpeg"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:c829edc4-035c-40e2-a201-2eccd5ab033b"
      stEvt:when="2018-06-20T08:09:36-04:00"
      stEvt:softwareAgent="Adobe Photoshop CCM
      stEvt:changed="/"/>
   <photoshop:DocumentAncestors>
     <rdf:li>adobe:docid:photoshop:00f7eb43-7e42-117a-865e-cde42b56f534</rdf:li>
     <rdf:li>adobe:docid:photoshop:0205bac1-285b-117a-8048-cd333b6609d6</rdf:li>
     <rdf:li>adobe:docid:photoshop:0359ef07-2a33-117a-b0b2-a4bb0a5ed692</rdf:li>
     <rdf:li>adobe:docid:photoshop:040276ef-1967-1178-85a6-887f6d913a66</rdf:li>
     <rdf:li>adobe:docid:photoshop:06d16918-1a00-1178-82b9-d46b6dd036M
     <rdf:li>adobe:docid:photoshop:09681107-27fe-117a-8048-cd333b6609d6</rdf:li>
     <rdf:li>adobe:docid:photoshop:0b091329-7e0f-117a-b461-d68a70f37929</rdf:li>
     <rdf:li>adobe:docid:photoshop:0b9761b8-2bda-374a-be6c-19aa1d4ed957</rdf:li>
     <rdf:li>adobe:docid:photoshop:0f9a2bd9-9b30-5c44-940d-2e3b25dccfbc</rdf:li>
     <rdf:li>adobe:docid:photoshop:13712ca0-0c40-11e8-bfc7-fe516ffc5eaa</rdf:li>
     <rdf:li>adobe:docid:photoshop:147260d6-19e1-1178-82b9-d46b6dd03660</rdf:li>
     <rdf:li>adobe:docM
id:photoshop:14b8a6ae-d844-1179-a70d-a9c2931c7bb6</rdf:li>
     <rdf:li>adobe:docid:photoshop:1509e69e-75fe-11e6-8e71-ccca60a3940a</rdf:li>
     <rdf:li>adobe:docid:photoshop:179c006e-190e-1178-a3a3-840030d0eca2</rdf:li>
     <rdf:li>adobe:docid:photoshop:1af6b8f2-17a6-1178-a555-c5050d7505b6</rdf:li>
     <rdf:li>adobe:docid:photoshop:1f670d8a-27ff-117a-9788-9c2db91f2698</rdf:li>
     <rdf:li>adobe:docid:photoshop:2271ebae-3284-4942-97ba-87d38039351a</rdf:li>
     <rdf:li>adobe:docid:photoshop:2427513c-23a7-117a-a1M
5a-f472fc08574b</rdf:li>
     <rdf:li>adobe:docid:photoshop:289d9241-483e-11e6-9245-a13bfdc9b13e</rdf:li>
     <rdf:li>adobe:docid:photoshop:28e1a34d-78fa-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:2aa9204a-139b-1178-bd43-babcb6f4b73f</rdf:li>
     <rdf:li>adobe:docid:photoshop:31cfcdc5-f85a-11e5-a815-85c176b77930</rdf:li>
     <rdf:li>adobe:docid:photoshop:34e94c4f-1db8-117a-be8f-fdd5de8ed172</rdf:li>
     <rdf:li>adobe:docid:photoshop:3e98092c-1589-117a-a648-e748c32885c2</rdf:li>
:li>adobe:docid:photoshop:3ee8609c-ee90-f14c-8ab3-6d53ba36a6a0</rdf:li>
     <rdf:li>adobe:docid:photoshop:430ec9c6-79db-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:458ec56c-f05b-11e5-8134-d374b6cca590</rdf:li>
     <rdf:li>adobe:docid:photoshop:465325f4-1435-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:4b38b7ea-0d81-11e6-a790-ab313397c041</rdf:li>
     <rdf:li>adobe:docid:photoshop:4cae8a47-76e4-11e6-a246-fbbefe6142be</rdf:li>
     <rdf:li>adobe:docid:photoshop:511f8dc2M
-904c-117a-bace-f68dae9a25d5</rdf:li>
     <rdf:li>adobe:docid:photoshop:53282af2-78f1-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:534c7a3f-13ef-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:598506cf-1454-1178-9aef-91c5828ca154</rdf:li>
     <rdf:li>adobe:docid:photoshop:5ba62965-79db-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:5dee3b7c-1588-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:5eb28879-1e45-117a-be8f-fdd5de8ed172</rdf:M
     <rdf:li>adobe:docid:photoshop:60068c96-8418-1179-95d1-fb93057029c3</rdf:li>
     <rdf:li>adobe:docid:photoshop:696ac39c-1495-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:6ae28e44-1494-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:7197be1d-634f-11e6-86e6-c5734a339616</rdf:li>
     <rdf:li>adobe:docid:photoshop:745d7726-243a-117a-b57f-988007e5ff72</rdf:li>
     <rdf:li>adobe:docid:photoshop:7e6c7a42-7a99-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoM
shop:7efb2a7c-1589-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:7ff0e896-1434-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:80c57c1b-5e40-11e6-bcda-a54d3d67eef1</rdf:li>
     <rdf:li>adobe:docid:photoshop:858ab234-ec72-11e5-a8ca-efa88af7eb8f</rdf:li>
     <rdf:li>adobe:docid:photoshop:85dde473-27cf-7b4f-a6e5-e1d7f58a5814</rdf:li>
     <rdf:li>adobe:docid:photoshop:8aceeddf-d43f-11e6-a6c6-88600a4f7d84</rdf:li>
     <rdf:li>adobe:docid:photoshop:8e8bc2a5-31ca-6d49-aa0a-6bc98M
     <rdf:li>adobe:docid:photoshop:8f0bf4db-7a12-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:9358e98e-1972-1178-85a6-887f6d913a66</rdf:li>
     <rdf:li>adobe:docid:photoshop:97b6bb21-e593-11e5-95a7-870e9a188652</rdf:li>
     <rdf:li>adobe:docid:photoshop:9a5abd49-90be-117a-bace-f68dae9a25d5</rdf:li>
     <rdf:li>adobe:docid:photoshop:9f1fa618-7544-11e6-84a2-b801ee9ad17c</rdf:li>
     <rdf:li>adobe:docid:photoshop:a3dd233f-9012-117a-b0e8-e7c7471bd025</rdf:li>
e:docid:photoshop:aa21b61d-fdc1-11e5-aad4-e4d651a551fa</rdf:li>
     <rdf:li>adobe:docid:photoshop:aa75f4b2-186f-1178-bfa8-d846b8df7175</rdf:li>
     <rdf:li>adobe:docid:photoshop:aac9e0c6-7e08-117a-865e-cde42b56f534</rdf:li>
     <rdf:li>adobe:docid:photoshop:abc788c9-90b2-117a-bace-f68dae9a25d5</rdf:li>
     <rdf:li>adobe:docid:photoshop:ac0ec88f-3191-1179-9b0a-84471e40f897</rdf:li>
     <rdf:li>adobe:docid:photoshop:af31c5b6-7a13-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:b217f07f-5e40-11M
e6-bcda-a54d3d67eef1</rdf:li>
     <rdf:li>adobe:docid:photoshop:b3c21360-8ff0-1179-94c5-f762bbb4effd</rdf:li>
     <rdf:li>adobe:docid:photoshop:b3fa43a6-8013-11e6-93bb-aaf4580ad4d3</rdf:li>
     <rdf:li>adobe:docid:photoshop:b58409db-190e-1178-a3a3-840030d0eca2</rdf:li>
     <rdf:li>adobe:docid:photoshop:b793aa0b-ed6c-11e5-a459-f2bc2d1e9758</rdf:li>
     <rdf:li>adobe:docid:photoshop:b7e7a8d0-144a-1178-9aef-91c5828ca154</rdf:li>
     <rdf:li>adobe:docid:photoshop:b9e6ca3a-7e2a-117a-865e-cde42b56f534</rdf:li>
 <rdf:li>adobe:docid:photoshop:ba8b1a51-7a3c-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:bd019e0e-d440-11e6-a6c6-88600a4f7d84</rdf:li>
     <rdf:li>adobe:docid:photoshop:bdf23ef8-4ec4-11e6-b20a-c6d350ff4709</rdf:li>
     <rdf:li>adobe:docid:photoshop:bf86a3a3-1405-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:c14a6015-3b30-117a-b164-f7c7216a96c3</rdf:li>
     <rdf:li>adobe:docid:photoshop:c2e4cf9c-4dfa-11e6-b20a-c6d350ff4709</rdf:li>
     <rdf:li>adobe:docid:photoshop:c5aM
1f5d5-064b-2144-a47b-49c43ab35229</rdf:li>
     <rdf:li>adobe:docid:photoshop:c7438721-8013-11e6-93bb-aaf4580ad4d3</rdf:li>
     <rdf:li>adobe:docid:photoshop:cc1039a7-79ce-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:cdfa35dc-1431-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:d0dd31a7-1415-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:d6b95245-7e18-117a-b461-d68a70f37929</rdf:li>
     <rdf:li>adobe:docid:photoshop:d7c6744a-8013-11e6-93bb-aaf4580ad4d3<M
     <rdf:li>adobe:docid:photoshop:decc4f3b-1e83-117a-be8f-fdd5de8ed172</rdf:li>
     <rdf:li>adobe:docid:photoshop:e0f459de-0d7c-11e6-a790-ab313397c041</rdf:li>
     <rdf:li>adobe:docid:photoshop:e66ec657-b50f-8944-b80e-69f1cefa89a8</rdf:li>
     <rdf:li>adobe:docid:photoshop:e864d911-8013-11e6-93bb-aaf4580ad4d3</rdf:li>
     <rdf:li>adobe:docid:photoshop:e8e20641-337c-117a-bee0-d086e8cd2729</rdf:li>
     <rdf:li>adobe:docid:photoshop:eb19f1ad-13ef-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:M
photoshop:ec4cdd5e-7a95-11e6-bb44-e35d217881a2</rdf:li>
     <rdf:li>adobe:docid:photoshop:ed563e80-4e9b-11e6-b20a-c6d350ff4709</rdf:li>
     <rdf:li>adobe:docid:photoshop:edd9a543-7e0f-117a-b461-d68a70f37929</rdf:li>
     <rdf:li>adobe:docid:photoshop:ee4c9845-599e-11e6-8afe-a3c438ecac9d</rdf:li>
     <rdf:li>adobe:docid:photoshop:ee69d49f-0024-11e6-8c2f-b087d702c36e</rdf:li>
     <rdf:li>adobe:docid:photoshop:eea73e0f-7e11-117a-b461-d68a70f37929</rdf:li>
     <rdf:li>adobe:docid:photoshop:f04af9fb-d444-11e6-a6c6-M
88600a4f7d84</rdf:li>
     <rdf:li>adobe:docid:photoshop:f55de4ad-1432-117a-a648-e748c32885c2</rdf:li>
     <rdf:li>adobe:docid:photoshop:f56863e4-5a27-d343-a2a3-00f84bb3374d</rdf:li>
     <rdf:li>adobe:docid:photoshop:f86c6936-4e94-11e6-b20a-c6d350ff4709</rdf:li>
     <rdf:li>adobe:docid:photoshop:f8c8088e-f03b-11e5-8134-d374b6cca590</rdf:li>
     <rdf:li>uuid:28ce3d11-e446-4e74-b504-68b6bd547bf1</rdf:li>
     <rdf:li>uuid:35E394C1215BDD118BD5AF32048ED772</rdf:li>
     <rdf:li>uuid:4360103d-b667-4864-ad4b-efab57ecM
     <rdf:li>uuid:5C69602CA5B0DD118C33DD90C3BAA1BA</rdf:li>
     <rdf:li>uuid:7735495D69EB11DFA0CE945DB889DFA7</rdf:li>
     <rdf:li>uuid:8D4476583150DE119A18E6960CA3AFBD</rdf:li>
     <rdf:li>uuid:94570D3ECE97DE119227821D63F29C99</rdf:li>
     <rdf:li>uuid:9B0E6C1FE2F4DA11815BE009F33CC46F</rdf:li>
     <rdf:li>uuid:EF8E058ADBB511DCBFAEBA908EE3C948</rdf:li>
     <rdf:li>uuid:ad5671f3-4b51-4492-8ded-c9b503dfa83d</rdf:li>
     <rdf:li>uuid:b2040c03-13d9-46be-805a-49393f795d43</rdf:li>
id:01084b69-84f3-49a1-927f-367af15396b3</rdf:li>
     <rdf:li>xmp.did:0180117407206811871FBE85724EB2B4</rdf:li>
     <rdf:li>xmp.did:01801174072068118DBBE066DC6FBE84</rdf:li>
     <rdf:li>xmp.did:02801174072068118083D7AD7859F6D2</rdf:li>
     <rdf:li>xmp.did:0380117407206811822ACA20C111A7C8</rdf:li>
     <rdf:li>xmp.did:0380117407206811871FBE85724EB2B4</rdf:li>
     <rdf:li>xmp.did:03d2b8bf-0c7f-1440-a16c-dc3f3fafbb4c</rdf:li>
     <rdf:li>xmp.did:05801174072068118083A5C130DEFB9E</rdf:li>
     <rdf:li>xmp.did:05801M
17407206811871FBE85724EB2B4</rdf:li>
     <rdf:li>xmp.did:0680117407206811994CF98C664213F1</rdf:li>
     <rdf:li>xmp.did:07801174072068118C14BCDE88F8DB81</rdf:li>
     <rdf:li>xmp.did:08801174072068118C14C5D41485056E</rdf:li>
     <rdf:li>xmp.did:088011740720681197A5B926F9A3262B</rdf:li>
     <rdf:li>xmp.did:09801174072068118083D7AD7859F6D2</rdf:li>
     <rdf:li>xmp.did:0A8011740720681183D1FE24C578B30B</rdf:li>
     <rdf:li>xmp.did:0A801174072068118C14AC6C23AA9A29</rdf:li>
     <rdf:li>xmp.did:1371AFE7A926E311A29FDM
D87296B9FC2</rdf:li>
     <rdf:li>xmp.did:14E6BD0C57ADE01182289E87FDE00471</rdf:li>
     <rdf:li>xmp.did:171D8CFAF820E61185B1A0ED451D2520</rdf:li>
     <rdf:li>xmp.did:17498E793C2068118083A5C130DEFB9E</rdf:li>
     <rdf:li>xmp.did:18477E972021681194579B9D89B17B72</rdf:li>
     <rdf:li>xmp.did:1ad00be7-767d-1b42-9936-c76b0d4bf898</rdf:li>
     <rdf:li>xmp.did:230C9D251C216811822AA93596ABFA29</rdf:li>
     <rdf:li>xmp.did:23B3C6EC28236811822A93E5494BD29C</rdf:li>
     <rdf:li>xmp.did:260A05805F74E11195F984841F8100A5<M
     <rdf:li>xmp.did:270A05805F74E11195F984841F8100A5</rdf:li>
     <rdf:li>xmp.did:27b4ebca-9595-4d29-84c2-ef1ab9805a49</rdf:li>
     <rdf:li>xmp.did:2D5508FE2323681188C6CBB3567F64D3</rdf:li>
     <rdf:li>xmp.did:2b85d5fc-c967-4a79-a30a-088fda2ae206</rdf:li>
     <rdf:li>xmp.did:37ebc5b3-2dce-497c-aebf-fa5090ff2baa</rdf:li>
     <rdf:li>xmp.did:383037C1C3206811871FBE85724EB2B4</rdf:li>
     <rdf:li>xmp.did:3A3037C1C3206811871FBE85724EB2B4</rdf:li>
     <rdf:li>xmp.did:3C9B17A8AF4EE111AA63ACBDD224850B</rdfM
     <rdf:li>xmp.did:3a7a1ed1-d820-42f2-924a-3f00cc204f0a</rdf:li>
     <rdf:li>xmp.did:3de42d85-5a1c-4265-943e-29be7ba76af2</rdf:li>
     <rdf:li>xmp.did:4014f039-5df4-de40-b27f-efb2882feb31</rdf:li>
     <rdf:li>xmp.did:48fb8ba7-3b8a-044f-a244-a3c1b4b56fe4</rdf:li>
     <rdf:li>xmp.did:4D07BB8972216811994CD96C32D67D6A</rdf:li>
     <rdf:li>xmp.did:54056386-b35b-7d49-b99d-24b3a47b2d87</rdf:li>
     <rdf:li>xmp.did:58C0A93330206811822AB9A1E8784973</rdf:li>
     <rdf:li>xmp.did:5D5A12800F206811A96198B5F7DB75E3<M
     <rdf:li>xmp.did:62de2bcb-615a-7544-8f37-019bf43ea97e</rdf:li>
     <rdf:li>xmp.did:652671c3-3996-4491-8490-eaa09cc293c1</rdf:li>
     <rdf:li>xmp.did:6BB4A6E8B62068118083D7AD7859F6D2</rdf:li>
     <rdf:li>xmp.did:6FC5D488DC2068118083D6782AA7D6E9</rdf:li>
     <rdf:li>xmp.did:7069A24829206811AFFDF1BBBCAB7A77</rdf:li>
     <rdf:li>xmp.did:75c39aa9-e7f4-4f64-b921-ef5b184a319c</rdf:li>
     <rdf:li>xmp.did:8360e080-603d-2d4c-ab36-ec6dac89c539</rdf:li>
     <rdf:li>xmp.did:881574AD6F21681194579B9D89B17B72<M
     <rdf:li>xmp.did:89E3DF341D6DE1118002EA4D08B0CC53</rdf:li>
     <rdf:li>xmp.did:95fa4c3c-abc2-4699-b584-285390d3165e</rdf:li>
     <rdf:li>xmp.did:979d4241-bedb-4537-bc3b-127dcdac838c</rdf:li>
     <rdf:li>xmp.did:9AC4463499206811994CE50C75C2EC52</rdf:li>
     <rdf:li>xmp.did:9CBDF773D250E111B5F7AB09216DFFD3</rdf:li>
     <rdf:li>xmp.did:AC6D0B36F37CE21193E79AD6EBE52ECC</rdf:li>
     <rdf:li>xmp.did:B970D19677226811822A93E5494BD29C</rdf:li>
     <rdf:li>xmp.did:B9B5631B182068118C14FDDA38272A46</rdf:li>M
     <rdf:li>xmp.did:BE24487DF22068118083DEA52C504518</rdf:li>
     <rdf:li>xmp.did:CCFA3D18352068118083D6782AA7D6E9</rdf:li>
     <rdf:li>xmp.did:D1DEE82B1620E111A58EFEA7038DD527</rdf:li>
     <rdf:li>xmp.did:D8C4FDA5B7206811822AB9A1E8784973</rdf:li>
     <rdf:li>xmp.did:DCE14A8C7E206811822AB9A1E8784973</rdf:li>
     <rdf:li>xmp.did:E1C6DA8F8320681188C682B364FA5400</rdf:li>
     <rdf:li>xmp.did:EAD45601462068119109881C0C4CCA31</rdf:li>
     <rdf:li>xmp.did:F4ACBA93EF20681194579B9D89B17B72</rdf:li>
p.did:F682BD22A1206811822ACA20C111A7C8</rdf:li>
     <rdf:li>xmp.did:F77F1174072068118083C50FBBC530F3</rdf:li>
     <rdf:li>xmp.did:F77F117407206811920CD95510C3895A</rdf:li>
     <rdf:li>xmp.did:F97F1174072068118083C50FBBC530F3</rdf:li>
     <rdf:li>xmp.did:F97F11740720681183D1CDA6483B5EAE</rdf:li>
     <rdf:li>xmp.did:FB7F1174072068118083C50FBBC530F3</rdf:li>
     <rdf:li>xmp.did:FB7F11740720681192B094E1E5016938</rdf:li>
     <rdf:li>xmp.did:FC6A2D990821681183D1C1099BA7BF4E</rdf:li>
     <rdf:li>xmp.did:FE7F117407M
206811920CD95510C3895A</rdf:li>
     <rdf:li>xmp.did:ad8b8db0-de38-8e45-a929-ee774380af5b</rdf:li>
     <rdf:li>xmp.did:ecb09f95-65ac-584e-be77-26db4767f095</rdf:li>
     <rdf:li>xmp.did:ecfe0885-0f27-4819-a514-9938dd6774ae</rdf:li>
   </photoshop:DocumentAncestors>
  </rdf:Description>
<</BitsPerComponent 8/ColorSpace 19 0 R/Decode[0.0 255.0]/Filter/FlateDecode/Height 77/Intent/RelativeColorimetric/Length 2898/Metadata 54 0 R/Name/X/Subtype/Image/TM
ype/XObject/Width 77>>stream
<</IsMap false/S/URI/URI(http://access.whirlpool.com/mr/getMediaType.do?mediaType=Dimension Guide&sku=WDF540PADM&language=EN)>>
<</IsMap false/S/URI/M
URI(http://access.whirlpool.com/mr/getMediaType.do?mediaType=Installation Instruction&sku=WDF540PADM&language=EN)>>
<</IsMap false/S/URI/URI(http://access.whirlpool.com/mr/getMediaType.do?mediaType=Use and Care&sku=WDF540PADM&language=EN)>>
<</IsMap false/S/URI/URI(http://access.whirlpool.com/mr/getMediaType.do?mediaType=Energy Guide&sku=WDF540PADM&language=EN)>>
<</IsMap false/S/URI/URI(http://access.whirlpool.com/mr/getMediaType.do?mediaType=Warranty&sku=WDF540PADM&M
[/Indexed/DeviceRGB 255 2 0 R]
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0nM
l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
<</Count 0/Type/Outlines>>
<</BitsPerComponent 8/ColorSpace 1 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 99/Length 1694/Width 76>>stream
8;Z\74-JV`$t\!G<tR9GI?oV^\]@/J7G_g%b`:fq*B?$]1\gGi;7>9RDUh]<=L;Y^
JfZ#M#;ChGa$)\=T;UTpq=.C=r.4;-nU@q8EMN\rUW:9q@@YB+^LqG>Bmc?EhDH)O
30=,bro@DrJgWe.LQe?ES7n@)Zo3c9BtOe.h,o"gb9p)DI.6@gS!7(Ab-;le!d"5b
BCBJV'jUNsK8#j\chSIkiVrg9L;2M'9R@PdULT<G0,Eiu2Y$S?1+leh^rP@8dUG<W
6#?lQc@B8f4$T6=1Hq,pjGQhN<Z2U6mQM
'_qB%\iZEYIS*]L+&rZ]45F5?,1V8Wm/1
2Hf&j)CQO_l4YK7&KdjrECGJX30T3Arts?`$CMn=&hQNDfQY?-5#NJ;<YinbXQu($
>/''CSRgd)GMCPHj$"V"=,@Z21([S<IGiM(OsJ3IO[=c&4%[03'<#lh=NiKB:Ys#Y
NZ1QK5UFW@2U`1WO!L52PLR)q\:QAPe@4.6Ke$:39BuDa6sYqC_3V?^CPY:81S_R$
Fnj+X2K0sT3@$lc=p4qF[d"ZIQ3CX7<UHm#]WlX]LW^O86=Lg6V)OF$j'>n^1/c;]
=(1$d1BEVp9thh)2TF@8Fg/=/BskM23`[aK9W(:UGQCngo,;jQ9hW5)Af"N\9ZQp[
K(b9_WaMgJn&8?i8`n2^LG99I!LBO#+0Ik5N*Y_Vmd!r^N>*0gL?54-$(Js76>!U_
ZF#b"&@]SN-n-bf.thS:9HJT/._b[s\O"0=R[V:RIU"-/U(jP+=qHtWbX<)Lc8(tB
6e3ni<ND;=2'Z%#j"OTIXV5%M
5;`.NAe)HIq3`jecn#Ihs>u#'_KsJ+UC8'?2OtRVq
lZtnAEaBc-=G`@t'ua51]P;RCpoLX(:O+[8e\MirOal1ePC;@@l'0d2bX2;`;"CBI
i#LL]eDk/X^8tB\[u-)]iEA3Il;X2LV2Y#SNuAn+7V(;&^>=Q<r?Y6Q_?4CTE91/W
I[",FhCQ^I&j8[uplMj'?Q3SUA-]hT]kYmO3kf-CV*(CuL_qU9r)A&LM_Fp,:GHML
<kk#m7)89[Vti.k^R_M\f"u2#8uh<s1"fjHrdB,C.fZ!mF'K`X8XQ[DF-(eikL8tN
#IRIN[8&W'r-nPj^$@3%1p-LR+4iaK`kCW$li+*rf+1@DUOTJZ]<:)gY=oFGN]I@8
=+%8Jl=j;!:d))=aA:E8l&eIl#Wd*_n7@]Q<RT0!hP]i9+)W`047m!bEJ>3T%Yh[B
UfuoL=fYK3?5tn+<Sb(*E.KS'\9/PM^^=D^g>`NnFTC^f,K>qIB<<%qi9K54)t`*V
`r_Y:K+_pp,4D&7-u*sRbVm<[5>^*$fIkseKQq)@Et!=,UPpk
E!>gC<,9`)g3""E/n\Am"u<==SlHJqJ=]LqgJEa)*Ot/mL8GJ0:@3;Qi/4[]XJ<lH
q\[u1:p&ahq&1H[iO1Dho.-Qp@k#;0\1:fGJg-cm/c%,S3+qQ(#@H6:i7\uSS&RND
`>?X6I)m1$96!fi><_%>okT&Um_B$fdGEOFki<Y/(97D:0p*FueI&2hO&OTeK#Q5l
^JU.$Ju4iI<dp^=kF?=h1r7sEoYNXgA,N?.Vb+nR?V$LMPK$!u!2,CADNVMZ'qB25
YK55tLlW]jKt9(%2H0BeFeuFEI%GH.fP,g>!3@1N*r~>
<</Count 1/Kids[10 0 R]/Type/Pages>>
<</Length 9438/Subtype/XML/Type/Metadata>>stream
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c148 79.164050, 2019/10/01-18:03:16        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:ns3="http://ns.whirlpool.com/wp/1.0/"
            xmlns:dam="http://www.day.com/dam/1.0"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
 xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
            xmlns:ExtensisFontSense="http://www.extensis.com/meta/FontSense/"
            xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/">
         <ns3:localizedData>{"language":"fr_ca","title":"Fiche technique","description":""}</ns3:localizedData>
         <ns3:litPartNumber>wdf540padspecsheetv01</ns3:litPartM
         <ns3:modelNumber>WDF540PADB,WDF540PADM,WDF540PADT,WDF540PADW</ns3:modelNumber>
         <ns3:noIndex>false</ns3:noIndex>
         <ns3:category>
            <rdf:Bag>
               <rdf:li>category:cleaning</rdf:li>
            </rdf:Bag>
         </ns3:category>
         <ns3:brand>
            <rdf:Bag>
               <rdf:li>brand:whirlpool</rdf:li>
            </rdf:Bag>
         </ns3:brand>
         <ns3:imageType>
            <rdf:Bag>
               <rdf:li>asset-type:feature-sheet</rdf:liM
            </rdf:Bag>
         </ns3:imageType>
         <ns3:product>
            <rdf:Bag>
               <rdf:li>products:wdf540padm</rdf:li>
               <rdf:li>products:wdf540padt</rdf:li>
               <rdf:li>products:wdf540padw</rdf:li>
               <rdf:li>products:wdf540padb</rdf:li>
            </rdf:Bag>
         </ns3:product>
         <dam:Trapped>False</dam:Trapped>
         <dam:Physicalheightininches>11.0</dam:Physicalheightininches>
         <dam:Physicalwidthininches>8.5</dam:PhysicalwidM
         <dam:numPages>1</dam:numPages>
         <dam:extracted>2020-01-29T16:00:05.427-05:00</dam:extracted>
         <dam:Producer>Adobe PDF Library 15.0</dam:Producer>
         <dam:sha1>1605aff590a18a1d65829a89fc34ebdfd5a94363</dam:sha1>
         <dam:size>180786</dam:size>
         <xmp:CreatorTool>Adobe InDesign 15.0 (Macintosh)</xmp:CreatorTool>
         <xmp:MetadataDate>2020-01-24T12:42:32.000-05:00</xmp:MetadataDate>
         <xmp:ModifyDate>2020-01-24T12:42:32.000-05:00</xmp:ModifyDate>
    <xmp:CreateDate>2020-01-24T12:42:28.000-05:00</xmp:CreateDate>
         <dc:format>application/pdf</dc:format>
         <dc:modified>2021-05-20T10:19:00.004Z</dc:modified>
            <rdf:Alt>
               <rdf:li xml:lang="x-default">Feature Sheet</rdf:li>
            </rdf:Alt>
         </dc:title>
         <xmpMM:DocumentID>xmp.id:f450a171-598c-4b96-a5d4-ce498dbd51de</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:2b438359-5770-4808-8117-61c0f63fb8a6</xmpMM:OriginalDocumeM
         <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
         <xmpMM:InstanceID>uuid:451e9ac6-4a58-6044-b271-248c64a2a05c</xmpMM:InstanceID>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>xmp.iid:ad4ab5df-e9c0-497f-b485-d997289c7a22</stRef:instanceID>
            <stRef:originalDocumentID>xmp.did:2b438359-5770-4808-8117-61c0f63fb8a6</stRef:originalDocumentID>
            <stRef:renditionClass>default</stRef:renditionClass>
            <stRef:documentID>xmp.did:eM
b02b458-318a-4768-82ec-d505e0a41416</stRef:documentID>
         </xmpMM:DerivedFrom>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:softwareAgent>Adobe InDesign 15.0 (Macintosh)</stEvt:softwareAgent>
                  <stEvt:when>2020-01-24T12:42:28.000-05:00</stEvt:when>
                  <stEvt:parameters>from application/x-indesign to application/pdf</stEvt:parameters>
    <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <pdf:Producer>Adobe PDF Library 15.0</pdf:Producer>
         <pdf:Trapped>false</pdf:Trapped>
         <ExtensisFontSense:slug>
            <rdf:Bag>
               <rdf:li rdf:parseType="Resource">
                  <ExtensisFontSense:Foundry>Adobe Systems</ExtensisFontSense:Foundry>
                  <ExtensisFontSense:PostScriptName>HelveticaNeueLTStd-Roman</ExtensisFontSense:PostScriptName>
                <ExtensisFontSense:KerningChecksum>0</ExtensisFontSense:KerningChecksum>
                  <ExtensisFontSense:FontKind>OpenType - PS</ExtensisFontSense:FontKind>
                  <ExtensisFontSense:Version>2.100</ExtensisFontSense:Version>
                  <ExtensisFontSense:Family>Helvetica Neue LT Std</ExtensisFontSense:Family>
                  <ExtensisFontSense:Checksum>2129167444</ExtensisFontSense:Checksum>
                  <ExtensisFontSense:FontSense_1.2_Checksum>2129167444</ExtensisFontM
Sense:FontSense_1.2_Checksum>
                  <ExtensisFontSense:OutlineFileSize>0</ExtensisFontSense:OutlineFileSize>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <ExtensisFontSense:Foundry>Adobe Systems</ExtensisFontSense:Foundry>
                  <ExtensisFontSense:PostScriptName>HelveticaNeueLTStd-Bd</ExtensisFontSense:PostScriptName>
                  <ExtensisFontSense:KerningChecksum>0</ExtensisFontSense:KerningChecksum>
                  <ExtensisFontSense:FM
ontKind>OpenType - PS</ExtensisFontSense:FontKind>
                  <ExtensisFontSense:Version>2.100</ExtensisFontSense:Version>
                  <ExtensisFontSense:Family>Helvetica Neue LT Std</ExtensisFontSense:Family>
                  <ExtensisFontSense:Checksum>4218679263</ExtensisFontSense:Checksum>
                  <ExtensisFontSense:FontSense_1.2_Checksum>4218679263</ExtensisFontSense:FontSense_1.2_Checksum>
                  <ExtensisFontSense:OutlineFileSize>0</ExtensisFontSense:OutlineFileSize>
               <rdf:li rdf:parseType="Resource">
                  <ExtensisFontSense:Foundry>--</ExtensisFontSense:Foundry>
                  <ExtensisFontSense:PostScriptName>YanoneKaffeesatz-Regular</ExtensisFontSense:PostScriptName>
                  <ExtensisFontSense:KerningChecksum>0</ExtensisFontSense:KerningChecksum>
                  <ExtensisFontSense:FontKind>OpenType - TT</ExtensisFontSense:FontKind>
                  <ExtensisFontSense:Version>1.003</ExtensisFontSense:Version>
             <ExtensisFontSense:Family>Yanone Kaffeesatz</ExtensisFontSense:Family>
                  <ExtensisFontSense:Checksum>161879921</ExtensisFontSense:Checksum>
                  <ExtensisFontSense:FontSense_1.2_Checksum>161879921</ExtensisFontSense:FontSense_1.2_Checksum>
                  <ExtensisFontSense:OutlineFileSize>0</ExtensisFontSense:OutlineFileSize>
               </rdf:li>
            </rdf:Bag>
         </ExtensisFontSense:slug>
         <Iptc4xmpCore:CreatorContactInfo rdf:parseType="ResourcM
      </rdf:Description>




                                                           M





                                                                          M





                                                                                         M






<</CreationDate(D:20200124124228-05'00')/Creator(Adobe InDesign 15.0 \(Macintosh\))/ModDate(D:20210520101904Z)/Producer(Adobe PDF Library 15.0)/Title(Feature Sheet)/Trapped/false>>
<</Size 8/ID[<3DD0E233061D449FB063BA7E77878260><C1A115B44BB1B2110A00F03B7537FE7F>]>
uiCCPkCGColorSpaceDisplayP3
CjA=:BNB.BNB:bnb1hv643vu0tzwdx07tguz8lsjnevd6xmd3zp5v53:2953052:te:0
/http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotosM
hop 24.1 (Windows)" xmpMM:InstanceID="xmp.iid:E1CB2F07ABCE11EDB8F9D20751092671" xmpMM:DocumentID="xmp.did:E1CB2F08ABCE11EDB8F9D20751092671"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:E1CB2F05ABCE11EDB8F9D20751092671" stRef:documentID="xmp.did:E1CB2F06ABCE11EDB8F9D20751092671"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
/http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c000 79.da4a7e5ef, 2022/11/22-13:50:07        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotosM
hop 24.1 (Windows)" xmpMM:InstanceID="xmp.iid:B1640E82ABCD11ED9CEBA42C26DFAC06" xmpMM:DocumentID="xmp.did:B1640E83ABCD11ED9CEBA42C26DFAC06"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:B1640E80ABCD11ED9CEBA42C26DFAC06" stRef:documentID="xmp.did:B1640E81ABCD11ED9CEBA42C26DFAC06"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
iCCPkCGColorSpaceITUR_709
iTXtXML:com.adobe.xmp
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/">
         <exif:PixelXDimension>306</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
     <exif:PixelYDimension>298</exif:PixelYDimension>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <tiff:YResolution>144</tiff:YResolution>
         <tiff:XResolution>144</tiff:XResolution>
         <tiff:Orientation>1</tiff:Orientation>
      </rdf:Description>
/ViaBTC/Mined by denga/,
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
/http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotosM
hop 23.4 (Windows)" xmpMM:InstanceID="xmp.iid:D75ADE20ABD011ED9DACAE87F50BA35C" xmpMM:DocumentID="xmp.did:D75ADE21ABD011ED9DACAE87F50BA35C"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:D75ADE1EABD011ED9DACAE87F50BA35C" stRef:documentID="xmp.did:D75ADE1FABD011ED9DACAE87F50BA35C"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
Aj?=:BNB.BNB:bnb1hgh8ht2p534tvyema05upycm0tg5qsygc5zfqv:1168654::0
KjI=:BNB.BUSD-BD1:bnb1dp6d9zsswmcz9te9a8arx5qet5wulawyf7u4vv:1218198271:te:0
g!w!w!w!w!w!w!w!w!w!
&j$Julia Dirks + Sven Neubauer =
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 225 150" width="1350" height="900"><rect width="225" height="150" fill="#f93"/><rect width="225" height="50" y="50" fill="#fff"/><rect width="225" height="50" y="100" fill="#128807"/><g transform="translate(112.5,75)"><circle r="20" fill="#008"/><circle r="17.5" fill="#fff"/><circle r="3.5" fill="#008"/><g id="d"><g id="c"><g id="b"><g id="a"><circle r="0.875" fill="#008" transform="rotate(7.5) translate(17.5)"/><path fiMI
ll="#008" d="M 0,17.5 0.6,7 C 0.6,7 0,2 0,2 0,2 -0.6,7 -0.6,7 L 0,17.5 z"/></g><use xlink:href="#a" transform="rotate(15)"/></g><use xlink:href="#b" transform="rotate(30)"/></g><use xlink:href="#c" transform="rotate(60)"/></g><use xlink:href="#d" transform="rotate(120)"/><use xlink:href="#d" transform="rotate(-120)"/></g></svg>h!
text/plain;charset=utf-8
&iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.1b65a79b4, 2022/06/13-22:01:01        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop 23.5 (WindowsM
)" xmpMM:InstanceID="xmp.iid:A0BFA7A3ABC811ED9B7A9995B800D2EC" xmpMM:DocumentID="xmp.did:A0BFA7A4ABC811ED9B7A9995B800D2EC"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:A0BFA7A1ABC811ED9B7A9995B800D2EC" stRef:documentID="xmp.did:A0BFA7A2ABC811ED9B7A9995B800D2EC"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
text/html;charset=utf-8
        <meta charset="utf-8">
        <meta http-equiv="Cache-Control" content="no-cache">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
        <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="mobile-web-app-capable" content="yes">
        <link rel="apple-touch-icon" href="logo.png">
        <link rel="M
icon" href="logo.png">
        <title>WebGL Fluid Simulation</title>
        <meta name="description" content="A WebGL fluid simulation that works in mobile browsers.">
        <meta property="og:type" content="website">
        <meta property="og:title" content="Webgl Fluid Simulation">
        <meta property="og:description" content="A WebGL fluid simulation that works in mobile browsers.">
        <meta property="og:url" content="https://paveldogreat.github.io/WebGL-Fluid-Simulation/">
        <meta property="M
og:image" content="https://paveldogreat.github.io/WebGL-Fluid-Simulation/logo.png">
            @font-face {
                font-family: 'iconfont';
                src: url('iconfont.ttf') format('truetype');
                user-select: none;
            html, body {
                overflow: hidden;
                background-color: #000;
                margin: 0;
                position: fixed;
                height: 100%;
            canvas {
                width: 100%;
                height: 100%;
            window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
            ga('create', 'UA-105392568-1', 'auto');
            ga('send', 'pageview');
        <canvas></canvas>
        <script> //Credit to Pavel Dobyakov for original fluid simulation httpM
s://github.com/PavelDoGreat/
           'use strict';const canvas=document.getElementsByTagName("canvas")[0];resizeCanvas();let config={SIM_RESOLUTION:256,DYE_RESOLUTION:1024,CAPTURE_RESOLUTION:512,DENSITY_DISSIPATION:1,VELOCITY_DISSIPATION:.2,PRESSURE:.2,PRESSURE_ITERATIONS:20,CURL:30,SPLAT_RADIUS:.25,SPLAT_FORCE:6e3,SHADING:!0,COLORFUL:!0,COLOR_UPDATE_SPEED:.1,PAUSED:!1,BACK_COLOR:{r:0,g:0,b:0},TRANSPARENT:!1,BLOOM:!0,BLOOM_ITERATIONS:8,BLOOM_RESOLUTION:256,BLOOM_INTENSITY:.5,BLOOM_THRESHOLD:.6,BLOOM_SOFT_KNEE:.7M
,SUNRAYS:!0,SUNRAYS_RESOLUTION:196,SUNRAYS_WEIGHT:.7};function pointerPrototype(){this.id=-1,this.texcoordX=0,this.texcoordY=0,this.prevTexcoordX=0,this.prevTexcoordY=0,this.deltaX=0,this.deltaY=0,this.down=!1,this.moved=!1,this.color=[30,0,300]}let currentFrame=0,pointers=[],splatStack=[];pointers.push(new pointerPrototype);let animationPointer=new pointerPrototype,animationHue=.5;const maxFrameSkip=160;let frameSkip=160,splatFrequencyReducing=!0;const splatFrequencyIncrement=.1;let timeSinceSplatFrequencyChange=0M
;const startingSplatFrequency=.42857;let splatFrequency=.42857,timeSinceSplat=0;const{gl,ext}=getWebGLContext(canvas),audioContext=new AudioContext;var droneOscillator=audioContext.createOscillator();isMobile()&&(config.DYE_RESOLUTION=1024),ext.supportLinearFiltering||(config.DYE_RESOLUTION=512,config.SHADING=!1,config.BLOOM=!1,config.SUNRAYS=!1);function getWebGLContext(a){const b={alpha:!0,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!1};let c=a.getContext("webgl2",b);const d=!!c;d||(c=a.getContext("webM
gl",b)||a.getContext("experimental-webgl",b));let e,f;d?(c.getExtension("EXT_color_buffer_float"),f=c.getExtension("OES_texture_float_linear")):(e=c.getExtension("OES_texture_half_float"),f=c.getExtension("OES_texture_half_float_linear")),c.clearColor(0,0,0,1);const g=d?c.HALF_FLOAT:e.HALF_FLOAT_OES;let h,i,j;return d?(h=getSupportedFormat(c,c.RGBA16F,c.RGBA,g),i=getSupportedFormat(c,c.RG16F,c.RG,g),j=getSupportedFormat(c,c.R16F,c.RED,g)):(h=getSupportedFormat(c,c.RGBA,c.RGBA,g),i=getSupportedFormat(c,c.RGBA,c.RGBAM
,g),j=getSupportedFormat(c,c.RGBA,c.RGBA,g)),ga("send","event",d?"webgl2":"webgl",null==h?"not supported":"supported"),{gl:c,ext:{formatRGBA:h,formatRG:i,formatR:j,halfFloatTexType:g,supportLinearFiltering:f}}}function getSupportedFormat(a,b,c,d){return supportRenderTextureFormat(a,b,c,d)?{internalFormat:b,format:c}:b===a.R16F?getSupportedFormat(a,a.RG16F,a.RG,d):b===a.RG16F?getSupportedFormat(a,a.RGBA16F,a.RGBA,d):null}function supportRenderTextureFormat(a,b,c,d){let e=a.createTexture();a.bindTexture(a.TEXTURE_2D,M
e),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texImage2D(a.TEXTURE_2D,0,b,4,4,0,c,d,null);let f=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,f),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e,0);let g=a.checkFramebufferStatus(a.FRAMEBUFFER);return g==a.FRAMEBUFFER_COMPLETE}functiM
on isMobile(){return /Mobi|Android/i.test(navigator.userAgent)}function clamp01(a){return Math.min(Math.max(a,0),1)}class Material{constructor(a,b){this.vertexShader=a,this.fragmentShaderSource=b,this.programs=[],this.activeProgram=null,this.uniforms=[]}setKeywords(a){let b=0;for(let c=0;c<a.length;c++)b+=hashCode(a[c]);let c=this.programs[b];if(null==c){let d=compileShader(gl.FRAGMENT_SHADER,this.fragmentShaderSource,a);c=createProgram(this.vertexShader,d),this.programs[b]=c}c==this.activeProgram||(this.uniforms=gM
etUniforms(c),this.activeProgram=c)}bind(){gl.useProgram(this.activeProgram)}}class Program{constructor(a,b){this.uniforms={},this.program=createProgram(a,b),this.uniforms=getUniforms(this.program)}bind(){gl.useProgram(this.program)}}function createProgram(a,b){let c=gl.createProgram();return gl.attachShader(c,a),gl.attachShader(c,b),gl.linkProgram(c),gl.getProgramParameter(c,gl.LINK_STATUS)||console.trace(gl.getProgramInfoLog(c)),c}function getUniforms(a){let b=[],c=gl.getProgramParameter(a,gl.ACTIVE_UNIFORMS);forM
(let d,e=0;e<c;e++)d=gl.getActiveUniform(a,e).name,b[d]=gl.getUniformLocation(a,d);return b}function compileShader(a,b,c){b=addKeywords(b,c);const d=gl.createShader(a);return gl.shaderSource(d,b),gl.compileShader(d),gl.getShaderParameter(d,gl.COMPILE_STATUS)||console.trace(gl.getShaderInfoLog(d)),d}function addKeywords(a,b){if(null==b)return a;let c="";return b.forEach(a=>{c+="#define "+a+"\n"}),c+a}const baseVertexShader=compileShader(gl.VERTEX_SHADER,`
    precision highp float;
    attribute vec2 aPosition;
    varying vec2 vL;
    varying vec2 vR;
    varying vec2 vT;
    varying vec2 vB;
    uniform vec2 texelSize;
        vUv = aPosition * 0.5 + 0.5;
        vL = vUv - vec2(texelSize.x, 0.0);
        vR = vUv + vec2(texelSize.x, 0.0);
        vT = vUv + vec2(0.0, texelSize.y);
        vB = vUv - vec2(0.0, texelSize.y);
        gl_Position = vec4(aPosition, 0.0, 1.0);
`),blurVertexShader=compileShader(gl.VERTEX_SHADER,`
    precision highp float;
    attribute vec2 aPosiM
    varying vec2 vUv;
    varying vec2 vL;
    varying vec2 vR;
    uniform vec2 texelSize;
        vUv = aPosition * 0.5 + 0.5;
        float offset = 1.33333333;
        vL = vUv - texelSize * offset;
        vR = vUv + texelSize * offset;
        gl_Position = vec4(aPosition, 0.0, 1.0);
`),blurShader=compileShader(gl.FRAGMENT_SHADER,`
    precision mediump float;
    precision mediump sampler2D;
    varying vec2 vUv;
    varying vec2 vL;
    varying vec2 vR;
    uniform sampler2DM
        vec4 sum = texture2D(uTexture, vUv) * 0.29411764;
        sum += texture2D(uTexture, vL) * 0.35294117;
        sum += texture2D(uTexture, vR) * 0.35294117;
        gl_FragColor = sum;
`),copyShader=compileShader(gl.FRAGMENT_SHADER,`
    precision mediump float;
    precision mediump sampler2D;
    varying highp vec2 vUv;
    uniform sampler2D uTexture;
        gl_FragColor = texture2D(uTexture, vUv);
`),clearShader=compileShader(gl.FRAGMENT_SHAM
    precision mediump float;
    precision mediump sampler2D;
    varying highp vec2 vUv;
    uniform sampler2D uTexture;
    uniform float value;
        gl_FragColor = value * texture2D(uTexture, vUv);
`),colorShader=compileShader(gl.FRAGMENT_SHADER,`
    precision mediump float;
    uniform vec4 color;
        gl_FragColor = color;
`),checkerboardShader=compileShader(gl.FRAGMENT_SHADER,`
    precision highp float;
    precision highp sampler2D;
    uniform sampler2D uTexture;
    uniform float aspectRatio;
    #define SCALE 25.0
        vec2 uv = floor(vUv * SCALE * vec2(aspectRatio, 1.0));
        float v = mod(uv.x + uv.y, 2.0);
        v = v * 0.1 + 0.8;
        gl_FragColor = vec4(vec3(v), 1.0);
`),displayShaderSource=`
    precision highp float;
    precision highp sampler2D;
    varying vec2 vUv;
    varying vec2 vL;
    varying vec2 vR;
    varying vec2 vT;
    varying vec2 vB;
    uniform sampler2D uTextuM
    uniform sampler2D uBloom;
    uniform sampler2D uSunrays;
    uniform sampler2D uDithering;
    uniform vec2 ditherScale;
    uniform vec2 texelSize;
    vec3 linearToGamma (vec3 color) {
        color = max(color, vec3(0));
        return max(1.055 * pow(color, vec3(0.416666667)) - 0.055, vec3(0));
        vec3 c = texture2D(uTexture, vUv).rgb;
        vec3 lc = texture2D(uTexture, vL).rgb;
        vec3 rc = texture2D(uTexture, vR).rgb;
        vec3 tc = textuM
re2D(uTexture, vT).rgb;
        vec3 bc = texture2D(uTexture, vB).rgb;
        float dx = length(rc) - length(lc);
        float dy = length(tc) - length(bc);
        vec3 n = normalize(vec3(dx, dy, length(texelSize)));
        vec3 l = vec3(0.0, 0.0, 1.0);
        float diffuse = clamp(dot(n, l) + 0.7, 0.7, 1.0);
        c *= diffuse;
        vec3 bloom = texture2D(uBloom, vUv).rgb;
        float sunrays = texture2D(uSunrays, vUv).r;
        bloom *= sunrays;
        float noise = texture2D(uDithering, vUv * ditherScale).r;
        noise = noise * 2.0 - 1.0;
        bloom += noise / 255.0;
        bloom = linearToGamma(bloom);
        float a = max(c.r, max(c.g, c.b));
        gl_FragColor = vec4(c, a);
`,bloomPrefilterShader=compileShader(gl.FRAGMENT_SHADER,`
    precision mediump float;
    precision mediump sampler2D;
    varying vec2 vUv;
 uniform sampler2D uTexture;
    uniform vec3 curve;
    uniform float threshold;
        vec3 c = texture2D(uTexture, vUv).rgb;
        float br = max(c.r, max(c.g, c.b));
        float rq = clamp(br - curve.x, 0.0, curve.y);
        rq = curve.z * rq * rq;
        c *= max(rq, br - threshold) / max(br, 0.0001);
        gl_FragColor = vec4(c, 0.0);
`),bloomBlurShader=compileShader(gl.FRAGMENT_SHADER,`
    precision mediump float;
    precision mediump sampler2D;
    varying vec2 vL;
    varying vec2 vT;
    varying vec2 vB;
    uniform sampler2D uTexture;
        vec4 sum = vec4(0.0);
        sum += texture2D(uTexture, vL);
        sum += texture2D(uTexture, vR);
        sum += texture2D(uTexture, vT);
        sum += texture2D(uTexture, vB);
        sum *= 0.25;
        gl_FragColor = sum;
`),bloomFinalShader=compileShader(gl.FRAGMENT_SHADER,`
    precision mediump float;
    precision mediump sampler2D;
    varying vec2 vL;
    varying vec2 vR;
    varying vec2 vB;
    uniform sampler2D uTexture;
    uniform float intensity;
        vec4 sum = vec4(0.0);
        sum += texture2D(uTexture, vL);
        sum += texture2D(uTexture, vR);
        sum += texture2D(uTexture, vT);
        sum += texture2D(uTexture, vB);
        sum *= 0.25;
        gl_FragColor = sum * intensity;
`),sunraysMaskShader=compileShader(gl.FRAGMENT_SHADER,`
    precision highp float;
    precision highp sampler2D;
    varying vec2 vUv;
form sampler2D uTexture;
        vec4 c = texture2D(uTexture, vUv);
        float br = max(c.r, max(c.g, c.b));
        c.a = 1.0 - min(max(br * 20.0, 0.0), 0.8);
        gl_FragColor = c;
`),sunraysShader=compileShader(gl.FRAGMENT_SHADER,`
    precision highp float;
    precision highp sampler2D;
    varying vec2 vUv;
    uniform sampler2D uTexture;
    uniform float weight;
    #define ITERATIONS 16
        float Density = 0.3;
        float Decay = 0.95;
        vec2 coord = vUv;
        vec2 dir = vUv - 0.5;
        dir *= 1.0 / float(ITERATIONS) * Density;
        float illuminationDecay = 1.0;
        float color = texture2D(uTexture, vUv).a;
        for (int i = 0; i < ITERATIONS; i++)
            coord -= dir;
            float col = texture2D(uTexture, coord).a;
            color += col * illuminationDecay * weight;
            illuminationDecay *= Decay;
        gl_FragColor = vec4(color * Exposure, 0.0, 0.0, 1.0)M
`),splatShader=compileShader(gl.FRAGMENT_SHADER,`
    precision highp float;
    precision highp sampler2D;
    varying vec2 vUv;
    uniform sampler2D uTarget;
    uniform float aspectRatio;
    uniform vec3 color;
    uniform vec2 point;
    uniform float radius;
        vec2 p = vUv - point.xy;
        p.x *= aspectRatio;
        vec3 splat = exp(-dot(p, p) / radius) * color;
        vec3 base = texture2D(uTarget, vUv).xyz;
        gl_FragColor = vec4(base + splat, 1.0);
ectionShader=compileShader(gl.FRAGMENT_SHADER,`
    precision highp float;
    precision highp sampler2D;
    varying vec2 vUv;
    uniform sampler2D uVelocity;
    uniform sampler2D uSource;
    uniform vec2 texelSize;
    uniform vec2 dyeTexelSize;
    uniform float dt;
    uniform float dissipation;
    vec4 bilerp (sampler2D sam, vec2 uv, vec2 tsize) {
        vec2 st = uv / tsize - 0.5;
        vec2 iuv = floor(st);
        vec2 fuv = fract(st);
        vec4 a = texture2D(sam, (iuv + vec2(0.5, 0.5)) * tsizM
        vec4 b = texture2D(sam, (iuv + vec2(1.5, 0.5)) * tsize);
        vec4 c = texture2D(sam, (iuv + vec2(0.5, 1.5)) * tsize);
        vec4 d = texture2D(sam, (iuv + vec2(1.5, 1.5)) * tsize);
        return mix(mix(a, b, fuv.x), mix(c, d, fuv.x), fuv.y);
    #ifdef MANUAL_FILTERING
        vec2 coord = vUv - dt * bilerp(uVelocity, vUv, texelSize).xy * texelSize;
        vec4 result = bilerp(uSource, coord, dyeTexelSize);
        vec2 coord = vUv - dt * texture2D(uVelocityM
, vUv).xy * texelSize;
        vec4 result = texture2D(uSource, coord);
        float decay = 1.0 + dissipation * dt;
        gl_FragColor = result / decay;
    }`,ext.supportLinearFiltering?null:["MANUAL_FILTERING"]),divergenceShader=compileShader(gl.FRAGMENT_SHADER,`
    precision mediump float;
    precision mediump sampler2D;
    varying highp vec2 vUv;
    varying highp vec2 vL;
    varying highp vec2 vR;
    varying highp vec2 vT;
    varying highp vec2 vB;
    uniform sampler2D uVelocity;
        float L = texture2D(uVelocity, vL).x;
        float R = texture2D(uVelocity, vR).x;
        float T = texture2D(uVelocity, vT).y;
        float B = texture2D(uVelocity, vB).y;
        vec2 C = texture2D(uVelocity, vUv).xy;
        if (vL.x < 0.0) { L = -C.x; }
        if (vR.x > 1.0) { R = -C.x; }
        if (vT.y > 1.0) { T = -C.y; }
        if (vB.y < 0.0) { B = -C.y; }
        float div = 0.5 * (R - L + T - B);
        gl_FragColor = vec4(div, 0.0, 0.0, 1.0);
`),curlShader=compileShaM
der(gl.FRAGMENT_SHADER,`
    precision mediump float;
    precision mediump sampler2D;
    varying highp vec2 vUv;
    varying highp vec2 vL;
    varying highp vec2 vR;
    varying highp vec2 vT;
    varying highp vec2 vB;
    uniform sampler2D uVelocity;
        float L = texture2D(uVelocity, vL).y;
        float R = texture2D(uVelocity, vR).y;
        float T = texture2D(uVelocity, vT).x;
        float B = texture2D(uVelocity, vB).x;
        float vorticity = R - L - T + B;
or = vec4(0.5 * vorticity, 0.0, 0.0, 1.0);
`),vorticityShader=compileShader(gl.FRAGMENT_SHADER,`
    precision highp float;
    precision highp sampler2D;
    varying vec2 vUv;
    varying vec2 vL;
    varying vec2 vR;
    varying vec2 vT;
    varying vec2 vB;
    uniform sampler2D uVelocity;
    uniform sampler2D uCurl;
    uniform float curl;
    uniform float dt;
        float L = texture2D(uCurl, vL).x;
        float R = texture2D(uCurl, vR).x;
        float T = texture2D(uCurl, vT).xM
        float B = texture2D(uCurl, vB).x;
        float C = texture2D(uCurl, vUv).x;
        vec2 force = 0.5 * vec2(abs(T) - abs(B), abs(R) - abs(L));
        force /= length(force) + 0.0001;
        force *= curl * C;
        force.y *= -1.0;
        vec2 velocity = texture2D(uVelocity, vUv).xy;
        velocity += force * dt;
        velocity = min(max(velocity, -1000.0), 1000.0);
        gl_FragColor = vec4(velocity, 0.0, 1.0);
`),pressureShader=compileShader(gl.FRAGMENT_SHADER,`
    precision mediumpM
    precision mediump sampler2D;
    varying highp vec2 vUv;
    varying highp vec2 vL;
    varying highp vec2 vR;
    varying highp vec2 vT;
    varying highp vec2 vB;
    uniform sampler2D uPressure;
    uniform sampler2D uDivergence;
        float L = texture2D(uPressure, vL).x;
        float R = texture2D(uPressure, vR).x;
        float T = texture2D(uPressure, vT).x;
        float B = texture2D(uPressure, vB).x;
        float C = texture2D(uPressure, vUv).x;
        float divergencM
e = texture2D(uDivergence, vUv).x;
        float pressure = (L + R + B + T - divergence) * 0.25;
        gl_FragColor = vec4(pressure, 0.0, 0.0, 1.0);
`),gradientSubtractShader=compileShader(gl.FRAGMENT_SHADER,`
    precision mediump float;
    precision mediump sampler2D;
    varying highp vec2 vUv;
    varying highp vec2 vL;
    varying highp vec2 vR;
    varying highp vec2 vT;
    varying highp vec2 vB;
    uniform sampler2D uPressure;
    uniform sampler2D uVelocity;
 texture2D(uPressure, vL).x;
        float R = texture2D(uPressure, vR).x;
        float T = texture2D(uPressure, vT).x;
        float B = texture2D(uPressure, vB).x;
        vec2 velocity = texture2D(uVelocity, vUv).xy;
        velocity.xy -= vec2(R - L, T - B);
        gl_FragColor = vec4(velocity, 0.0, 1.0);
`),blit=(()=>(gl.bindBuffer(gl.ARRAY_BUFFER,gl.createBuffer()),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),gl.STATIC_DRAW),gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,gl.createBuffeM
r()),gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),gl.STATIC_DRAW),gl.vertexAttribPointer(0,2,gl.FLOAT,!1,0,0),gl.enableVertexAttribArray(0),(a,b=!1)=>{null==a?(gl.viewport(0,0,gl.drawingBufferWidth,gl.drawingBufferHeight),gl.bindFramebuffer(gl.FRAMEBUFFER,null)):(gl.viewport(0,0,a.width,a.height),gl.bindFramebuffer(gl.FRAMEBUFFER,a.fbo)),b&&(gl.clearColor(0,0,0,1),gl.clear(gl.COLOR_BUFFER_BIT)),gl.drawElements(gl.TRIANGLES,6,gl.UNSIGNED_SHORT,0)}))();function CHECK_FRAMEBUFFER_STATUS(){let aM
=gl.checkFramebufferStatus(gl.FRAMEBUFFER);a!=gl.FRAMEBUFFER_COMPLETE&&console.trace("Framebuffer error: "+a)}let dye,velocity,divergence,curl,pressure,bloom,sunrays,sunraysTemp,bloomFramebuffers=[],ditheringTexture=null;const blurProgram=new Program(blurVertexShader,blurShader),copyProgram=new Program(baseVertexShader,copyShader),clearProgram=new Program(baseVertexShader,clearShader),colorProgram=new Program(baseVertexShader,colorShader),checkerboardProgram=new Program(baseVertexShader,checkerboardShader),bloomPreM
filterProgram=new Program(baseVertexShader,bloomPrefilterShader),bloomBlurProgram=new Program(baseVertexShader,bloomBlurShader),bloomFinalProgram=new Program(baseVertexShader,bloomFinalShader),sunraysMaskProgram=new Program(baseVertexShader,sunraysMaskShader),sunraysProgram=new Program(baseVertexShader,sunraysShader),splatProgram=new Program(baseVertexShader,splatShader),advectionProgram=new Program(baseVertexShader,advectionShader),divergenceProgram=new Program(baseVertexShader,divergenceShader),curlProgram=new PrM
ogram(baseVertexShader,curlShader),vorticityProgram=new Program(baseVertexShader,vorticityShader),pressureProgram=new Program(baseVertexShader,pressureShader),gradienSubtractProgram=new Program(baseVertexShader,gradientSubtractShader),displayMaterial=new Material(baseVertexShader,displayShaderSource);function initFramebuffers(){let a=getResolution(config.SIM_RESOLUTION),b=getResolution(config.DYE_RESOLUTION);const c=ext.halfFloatTexType,d=ext.formatRGBA,e=ext.formatRG,f=ext.formatR,g=ext.supportLinearFiltering?gl.LM
INEAR:gl.NEAREST;gl.disable(gl.BLEND),dye=null==dye?createDoubleFBO(b.width,b.height,d.internalFormat,d.format,c,g):resizeDoubleFBO(dye,b.width,b.height,d.internalFormat,d.format,c,g),velocity=null==velocity?createDoubleFBO(a.width,a.height,e.internalFormat,e.format,c,g):resizeDoubleFBO(velocity,a.width,a.height,e.internalFormat,e.format,c,g),divergence=createFBO(a.width,a.height,f.internalFormat,f.format,c,gl.NEAREST),curl=createFBO(a.width,a.height,f.internalFormat,f.format,c,gl.NEAREST),pressure=createDoubleFBO(M
a.width,a.height,f.internalFormat,f.format,c,gl.NEAREST),initBloomFramebuffers(),initSunraysFramebuffers()}function initBloomFramebuffers(){let a=getResolution(config.BLOOM_RESOLUTION);const b=ext.halfFloatTexType,c=ext.formatRGBA,d=ext.supportLinearFiltering?gl.LINEAR:gl.NEAREST;bloom=createFBO(a.width,a.height,c.internalFormat,c.format,b,d),bloomFramebuffers.length=0;for(let e=0;e<config.BLOOM_ITERATIONS;e++){let f=a.width>>e+1,g=a.height>>e+1;if(2>f||2>g)break;let h=createFBO(f,g,c.internalFormat,c.format,b,d);bM
loomFramebuffers.push(h)}}function initSunraysFramebuffers(){let a=getResolution(config.SUNRAYS_RESOLUTION);const b=ext.halfFloatTexType,c=ext.formatR,d=ext.supportLinearFiltering?gl.LINEAR:gl.NEAREST;sunrays=createFBO(a.width,a.height,c.internalFormat,c.format,b,d),sunraysTemp=createFBO(a.width,a.height,c.internalFormat,c.format,b,d)}function createFBO(a,b,c,d,e,f){gl.activeTexture(gl.TEXTURE0);let g=gl.createTexture();gl.bindTexture(gl.TEXTURE_2D,g),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,f),gl.texPaM
rameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,f),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texImage2D(gl.TEXTURE_2D,0,c,a,b,0,d,e,null);let h=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,h),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,g,0),gl.viewport(0,0,a,b),gl.clear(gl.COLOR_BUFFER_BIT);return{texture:g,fbo:h,width:a,height:b,texelSizeX:1/a,texelSizeY:1/b,attach(a){return gl.actiM
veTexture(gl.TEXTURE0+a),gl.bindTexture(gl.TEXTURE_2D,g),a}}}function createDoubleFBO(a,b,c,d,e,f){let g=createFBO(a,b,c,d,e,f),h=createFBO(a,b,c,d,e,f);return{width:a,height:b,texelSizeX:g.texelSizeX,texelSizeY:g.texelSizeY,get read(){return g},set read(a){g=a},get write(){return h},set write(a){h=a},swap(){let a=g;g=h,h=a}}}function resizeFBO(a,b,c,d,e,f,g){let h=createFBO(b,c,d,e,f,g);return copyProgram.bind(),gl.uniform1i(copyProgram.uniforms.uTexture,a.attach(0)),blit(h),h}function resizeDoubleFBO(a,b,c,d,e,f,M
g){return a.width==b&&a.height==c?a:(a.read=resizeFBO(a.read,b,c,d,e,f,g),a.write=createFBO(b,c,d,e,f,g),a.width=b,a.height=c,a.texelSizeX=1/b,a.texelSizeY=1/c,a)}function createTextureAsync(a){let b=gl.createTexture();gl.bindTexture(gl.TEXTURE_2D,b),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.REPEAT),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.REPEAT),gl.texImage2D(gl.TEXTM
URE_2D,0,gl.RGB,1,1,0,gl.RGB,gl.UNSIGNED_BYTE,new Uint8Array([255,255,255]));let c={texture:b,width:1,height:1,attach(a){return gl.activeTexture(gl.TEXTURE0+a),gl.bindTexture(gl.TEXTURE_2D,b),a}},d=new Image;return d.onload=()=>{c.width=d.width,c.height=d.height,gl.bindTexture(gl.TEXTURE_2D,b),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGB,gl.RGB,gl.UNSIGNED_BYTE,d)},d.src=a,c}function initAudio(){console.log(audioContext.sampleRate),console.log(audioContext.destination.channelCount),droneOscillator.frequency.value=40,droneOM
scillator.type="sine";var a=audioContext.createGain();droneOscillator.connect(a),a.connect(audioContext.destination);var b=audioContext.currentTime;a.gain.setValueAtTime(.05,b),droneOscillator.start(0)}function kick(){var a=audioContext.createOscillator(),b=audioContext.createOscillator(),c=audioContext.createGain(),d=audioContext.createGain();a.type="triangle",b.type="sine",c.gain.setValueAtTime(1,audioContext.currentTime),c.gain.exponentialRampToValueAtTime(.001,audioContext.currentTime+.5),d.gain.setValueAtTime(M
1,audioContext.currentTime),d.gain.exponentialRampToValueAtTime(.001,audioContext.currentTime+.5),a.frequency.setValueAtTime(90,audioContext.currentTime),a.frequency.exponentialRampToValueAtTime(.001,audioContext.currentTime+.5),b.frequency.setValueAtTime(20,audioContext.currentTime),b.frequency.exponentialRampToValueAtTime(.001,audioContext.currentTime+.5),a.connect(c),b.connect(d),c.connect(audioContext.destination),d.connect(audioContext.destination),b.start(audioContext.currentTime),b.stop(audioContext.currentTM
ime+.5)}function updateKeywords(){let a=[];config.SHADING&&a.push("SHADING"),config.BLOOM&&a.push("BLOOM"),config.SUNRAYS&&a.push("SUNRAYS"),displayMaterial.setKeywords(a)}updateKeywords(),initFramebuffers(),initAudio();let lastUpdateTime=Date.now(),colorUpdateTimer=0;update();function update(){const a=calcDeltaTime();resizeCanvas()&&initFramebuffers(),updateColors(a),applyAnimation(a),applyInputs(),config.PAUSED||step(a),render(null),requestAnimationFrame(update)}function calcDeltaTime(){let a=Date.now(),b=(a-lastM
UpdateTime)/1e3;return b=Math.min(b,.016666),lastUpdateTime=a,b}function resizeCanvas(){let a=scaleByPixelRatio(canvas.clientWidth),b=scaleByPixelRatio(canvas.clientHeight);return!(canvas.width==a&&canvas.height==b)&&(canvas.width=a,canvas.height=b,!0)}function updateColors(a){config.COLORFUL&&(colorUpdateTimer+=a*config.COLOR_UPDATE_SPEED,1<=colorUpdateTimer&&(colorUpdateTimer=wrap(colorUpdateTimer,0,1),pointers.forEach(a=>{a.color=generateColor()})))}function applyInputs(){0<splatStack.length&&multipleSplats(splaM
tStack.pop()),pointers.forEach(a=>{a.moved&&(a.moved=!1,console.log(a),splatPointer(a))})}function applyAnimation(a){timeSinceSplat+=a,timeSinceSplat>=splatFrequency&&(performSplat(a),kick(),timeSinceSplat=0,console.log("Splat Frequency: "+splatFrequency),console.log("Time since Splat Frequency Change: "+timeSinceSplatFrequencyChange),splatFrequencyReducing?0<splatFrequency?(droneOscillator.frequency.value+=.33,timeSinceSplatFrequencyChange>=splatFrequency?(splatFrequency-=splatFrequencyIncrement,timeSinceSplatFreqM
uencyChange=0):timeSinceSplatFrequencyChange+=a):splatFrequencyReducing=!1:splatFrequency<startingSplatFrequency?(droneOscillator.frequency.value-=.33,timeSinceSplatFrequencyChange>=splatFrequency?(splatFrequency+=splatFrequencyIncrement,timeSinceSplatFrequencyChange=0):timeSinceSplatFrequencyChange+=a):splatFrequencyReducing=!0)}function performSplat(){let a=animationHue+=config.COLOR_UPDATE_SPEED;1<=animationHue&&(animationHue=0);const b=generateColorFromHue(a);b.r*=10,b.g*=10,b.b*=10;const c=.5+.1*Math.sin(curreM
ntFrame),d=.5+.1*Math.cos(currentFrame),e=250*Math.sin(currentFrame),f=250*Math.cos(currentFrame);splat(c,d,e,f,b)}function step(a){gl.disable(gl.BLEND),curlProgram.bind(),gl.uniform2f(curlProgram.uniforms.texelSize,velocity.texelSizeX,velocity.texelSizeY),gl.uniform1i(curlProgram.uniforms.uVelocity,velocity.read.attach(0)),blit(curl),vorticityProgram.bind(),gl.uniform2f(vorticityProgram.uniforms.texelSize,velocity.texelSizeX,velocity.texelSizeY),gl.uniform1i(vorticityProgram.uniforms.uVelocity,velocity.read.attachM
(0)),gl.uniform1i(vorticityProgram.uniforms.uCurl,curl.attach(1)),gl.uniform1f(vorticityProgram.uniforms.curl,config.CURL),gl.uniform1f(vorticityProgram.uniforms.dt,a),blit(velocity.write),velocity.swap(),divergenceProgram.bind(),gl.uniform2f(divergenceProgram.uniforms.texelSize,velocity.texelSizeX,velocity.texelSizeY),gl.uniform1i(divergenceProgram.uniforms.uVelocity,velocity.read.attach(0)),blit(divergence),clearProgram.bind(),gl.uniform1i(clearProgram.uniforms.uTexture,pressure.read.attach(0)),gl.uniform1f(clearM
Program.uniforms.value,config.PRESSURE),blit(pressure.write),pressure.swap(),pressureProgram.bind(),gl.uniform2f(pressureProgram.uniforms.texelSize,velocity.texelSizeX,velocity.texelSizeY),gl.uniform1i(pressureProgram.uniforms.uDivergence,divergence.attach(0));for(let b=0;b<config.PRESSURE_ITERATIONS;b++)gl.uniform1i(pressureProgram.uniforms.uPressure,pressure.read.attach(1)),blit(pressure.write),pressure.swap();gradienSubtractProgram.bind(),gl.uniform2f(gradienSubtractProgram.uniforms.texelSize,velocity.texelSizeXM
,velocity.texelSizeY),gl.uniform1i(gradienSubtractProgram.uniforms.uPressure,pressure.read.attach(0)),gl.uniform1i(gradienSubtractProgram.uniforms.uVelocity,velocity.read.attach(1)),blit(velocity.write),velocity.swap(),advectionProgram.bind(),gl.uniform2f(advectionProgram.uniforms.texelSize,velocity.texelSizeX,velocity.texelSizeY),ext.supportLinearFiltering||gl.uniform2f(advectionProgram.uniforms.dyeTexelSize,velocity.texelSizeX,velocity.texelSizeY);let b=velocity.read.attach(0);gl.uniform1i(advectionProgram.uniforM
ms.uVelocity,b),gl.uniform1i(advectionProgram.uniforms.uSource,b),gl.uniform1f(advectionProgram.uniforms.dt,a),gl.uniform1f(advectionProgram.uniforms.dissipation,config.VELOCITY_DISSIPATION),blit(velocity.write),velocity.swap(),ext.supportLinearFiltering||gl.uniform2f(advectionProgram.uniforms.dyeTexelSize,dye.texelSizeX,dye.texelSizeY),gl.uniform1i(advectionProgram.uniforms.uVelocity,velocity.read.attach(0)),gl.uniform1i(advectionProgram.uniforms.uSource,dye.read.attach(1)),gl.uniform1f(advectionProgram.uniforms.dM
issipation,config.DENSITY_DISSIPATION),blit(dye.write),dye.swap()}function render(a){currentFrame++,config.BLOOM&&applyBloom(dye.read,bloom),config.SUNRAYS&&(applySunrays(dye.read,dye.write,sunrays),blur(sunrays,sunraysTemp,1)),null!=a&&config.TRANSPARENT?gl.disable(gl.BLEND):(gl.blendFunc(gl.ONE,gl.ONE_MINUS_SRC_ALPHA),gl.enable(gl.BLEND)),config.TRANSPARENT||drawColor(a,normalizeColor(config.BACK_COLOR)),null==a&&config.TRANSPARENT&&drawCheckerboard(a),drawDisplay(a)}function drawColor(a,b){colorProgram.bind(),glM
.uniform4f(colorProgram.uniforms.color,b.r,b.g,b.b,1),blit(a)}function drawCheckerboard(a){checkerboardProgram.bind(),gl.uniform1f(checkerboardProgram.uniforms.aspectRatio,canvas.width/canvas.height),blit(a)}function drawDisplay(a){let b=null==a?gl.drawingBufferWidth:a.width,c=null==a?gl.drawingBufferHeight:a.height;displayMaterial.bind(),config.SHADING&&gl.uniform2f(displayMaterial.uniforms.texelSize,1/b,1/c),gl.uniform1i(displayMaterial.uniforms.uTexture,dye.read.attach(0)),config.BLOOM&&gl.uniform1i(displayMaterM
ial.uniforms.uBloom,bloom.attach(1)),config.SUNRAYS&&gl.uniform1i(displayMaterial.uniforms.uSunrays,sunrays.attach(3)),blit(a)}function applyBloom(a,b){if(2>bloomFramebuffers.length)return;let c=b;gl.disable(gl.BLEND),bloomPrefilterProgram.bind();let d=config.BLOOM_THRESHOLD*config.BLOOM_SOFT_KNEE+1e-4,e=config.BLOOM_THRESHOLD-d;gl.uniform3f(bloomPrefilterProgram.uniforms.curve,e,2*d,.25/d),gl.uniform1f(bloomPrefilterProgram.uniforms.threshold,config.BLOOM_THRESHOLD),gl.uniform1i(bloomPrefilterProgram.uniforms.uTexM
ture,a.attach(0)),blit(c),bloomBlurProgram.bind();for(let d,e=0;e<bloomFramebuffers.length;e++)d=bloomFramebuffers[e],gl.uniform2f(bloomBlurProgram.uniforms.texelSize,c.texelSizeX,c.texelSizeY),gl.uniform1i(bloomBlurProgram.uniforms.uTexture,c.attach(0)),blit(d),c=d;gl.blendFunc(gl.ONE,gl.ONE),gl.enable(gl.BLEND);for(let d,e=bloomFramebuffers.length-2;0<=e;e--)d=bloomFramebuffers[e],gl.uniform2f(bloomBlurProgram.uniforms.texelSize,c.texelSizeX,c.texelSizeY),gl.uniform1i(bloomBlurProgram.uniforms.uTexture,c.attach(0M
)),gl.viewport(0,0,d.width,d.height),blit(d),c=d;gl.disable(gl.BLEND),bloomFinalProgram.bind(),gl.uniform2f(bloomFinalProgram.uniforms.texelSize,c.texelSizeX,c.texelSizeY),gl.uniform1i(bloomFinalProgram.uniforms.uTexture,c.attach(0)),gl.uniform1f(bloomFinalProgram.uniforms.intensity,config.BLOOM_INTENSITY),blit(b)}function applySunrays(a,b,c){gl.disable(gl.BLEND),sunraysMaskProgram.bind(),gl.uniform1i(sunraysMaskProgram.uniforms.uTexture,a.attach(0)),blit(b),sunraysProgram.bind(),gl.uniform1f(sunraysProgram.uniformM
s.weight,config.SUNRAYS_WEIGHT),gl.uniform1i(sunraysProgram.uniforms.uTexture,b.attach(0)),blit(c)}function blur(a,b,c){blurProgram.bind();for(let d=0;d<c;d++)gl.uniform2f(blurProgram.uniforms.texelSize,a.texelSizeX,0),gl.uniform1i(blurProgram.uniforms.uTexture,a.attach(0)),blit(b),gl.uniform2f(blurProgram.uniforms.texelSize,0,a.texelSizeY),gl.uniform1i(blurProgram.uniforms.uTexture,b.attach(0)),blit(a)}function splatPointer(a){if(0==currentFrame%2){let b=a.deltaX*config.SPLAT_FORCE,c=a.deltaY*config.SPLAT_FORCE;spM
lat(a.texcoordX,a.texcoordY,b,c,a.color)}}function multipleSplats(a){for(let b=0;b<a;b++){const a=generateColor();a.r*=10,a.g*=10,a.b*=10;const b=Math.random(),c=Math.random(),d=1e3*(Math.random()-.5),e=1e3*(Math.random()-.5);splat(b,c,d,e,a)}}function splat(a,b,c,d,e){splatProgram.bind(),gl.uniform1i(splatProgram.uniforms.uTarget,velocity.read.attach(0)),gl.uniform1f(splatProgram.uniforms.aspectRatio,canvas.width/canvas.height),gl.uniform2f(splatProgram.uniforms.point,a,b),gl.uniform3f(splatProgram.uniforms.color,M
c,d,0),gl.uniform1f(splatProgram.uniforms.radius,correctRadius(config.SPLAT_RADIUS/100)),blit(velocity.write),velocity.swap(),gl.uniform1i(splatProgram.uniforms.uTarget,dye.read.attach(0)),gl.uniform3f(splatProgram.uniforms.color,e.r,e.g,e.b),blit(dye.write),dye.swap()}function correctRadius(a){let b=canvas.width/canvas.height;return 1<b&&(a*=b),a}canvas.addEventListener("mousedown",a=>{let b=scaleByPixelRatio(a.offsetX),c=scaleByPixelRatio(a.offsetY),d=pointers.find(a=>-1==a.id);null==d&&(d=new pointerPrototype),uM
pdatePointerDownData(d,-1,b,c)}),canvas.addEventListener("mousemove",a=>{let b=pointers[0];if(!b.down)return;let c=scaleByPixelRatio(a.offsetX),d=scaleByPixelRatio(a.offsetY);updatePointerMoveData(b,c,d)}),window.addEventListener("mouseup",()=>{updatePointerUpData(pointers[0])}),canvas.addEventListener("touchstart",a=>{a.preventDefault();const b=a.targetTouches;for(;b.length>=pointers.length;)pointers.push(new pointerPrototype);for(let c=0;c<b.length;c++){let a=scaleByPixelRatio(b[c].pageX),d=scaleByPixelRatio(b[c]M
.pageY);updatePointerDownData(pointers[c+1],b[c].identifier,a,d)}}),canvas.addEventListener("touchmove",a=>{a.preventDefault();const b=a.targetTouches;for(let c,d=0;d<b.length;d++){if(c=pointers[d+1],!c.down)continue;let a=scaleByPixelRatio(b[d].pageX),e=scaleByPixelRatio(b[d].pageY);updatePointerMoveData(c,a,e)}},!1),window.addEventListener("touchend",a=>{const b=a.changedTouches;for(let c,d=0;d<b.length;d++)c=pointers.find(a=>a.id==b[d].identifier),null!=c&&updatePointerUpData(c)}),window.addEventListener("keydowM
n",a=>{"KeyP"===a.code&&(config.PAUSED=!config.PAUSED)," "===a.key&&splatStack.push(parseInt(20*Math.random())+5)});function updatePointerDownData(a,b,c,d){a.id=b,a.down=!0,a.moved=!1,a.texcoordX=c/canvas.width,a.texcoordY=1-d/canvas.height,a.prevTexcoordX=a.texcoordX,a.prevTexcoordY=a.texcoordY,a.deltaX=0,a.deltaY=0,a.color=generateColor()}function updatePointerMoveData(a,b,c){a.prevTexcoordX=a.texcoordX,a.prevTexcoordY=a.texcoordY,a.texcoordX=b/canvas.width,a.texcoordY=1-c/canvas.height,a.deltaX=correctDeltaX(a.tM
excoordX-a.prevTexcoordX),a.deltaY=correctDeltaY(a.texcoordY-a.prevTexcoordY),a.moved=0<Math.abs(a.deltaX)||0<Math.abs(a.deltaY)}function updatePointerUpData(a){a.down=!1}function correctDeltaX(a){let b=canvas.width/canvas.height;return 1>b&&(a*=b),a}function correctDeltaY(a){let b=canvas.width/canvas.height;return 1<b&&(a/=b),a}function generateColor(){let a=HSVtoRGB(Math.random(),1,1);return a.r*=.15,a.g*=.15,a.b*=.15,a}function generateColorFromHue(a){let b=HSVtoRGB(a,1,1);return b.r*=.15,b.g*=.15,b.b*=.15,b}funM
ction HSVtoRGB(a,c,d){let e,h,j,k,l,m,n,o;switch(k=Math.floor(6*a),l=6*a-k,m=d*(1-c),n=d*(1-l*c),o=d*(1-(1-l)*c),k%6){case 0:e=d,h=o,j=m;break;case 1:e=n,h=d,j=m;break;case 2:e=m,h=d,j=o;break;case 3:e=m,h=n,j=d;break;case 4:e=o,h=m,j=d;break;case 5:e=d,h=m,j=n;}return{r:e,g:h,b:j}}function normalizeColor(a){let b={r:a.r/255,g:a.g/255,b:a.b/255};return b}function wrap(a,b,c){let d=c-b;return 0==d?b:(a-b)%d+b}function getResolution(a){let b=gl.drawingBufferWidth/gl.drawingBufferHeight;1>b&&(b=1/b);let c=Math.round(aM
),d=Math.round(a*b);return gl.drawingBufferWidth>gl.drawingBufferHeight?{width:d,height:c}:{width:c,height:d}}function getTextureScale(a,b,c){return{x:b/a.width,y:c/a.height}}function scaleByPixelRatio(a){let b=window.devicePixelRatio||1;return Math.floor(a*b)}function hashCode(a){if(0==a.length)return 0;let b=0;for(let c=0;c<a.length;c++)b=(b<<5)-b+a.charCodeAt(c),b|=0;return b}
iCCPkCGColorSpaceITUR_709
iTXtXML:com.adobe.xmp
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/">
         <exif:PixelXDimension>362</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
     <exif:PixelYDimension>362</exif:PixelYDimension>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <tiff:YResolution>144</tiff:YResolution>
         <tiff:XResolution>144</tiff:XResolution>
         <tiff:Orientation>1</tiff:Orientation>
      </rdf:Description>
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
/http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotosM
hop 23.4 (Windows)" xmpMM:InstanceID="xmp.iid:DC17445CABD011ED80DAEE0961D6997B" xmpMM:DocumentID="xmp.did:DC17445DABD011ED80DAEE0961D6997B"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:DC17445AABD011ED80DAEE0961D6997B" stRef:documentID="xmp.did:DC17445BABD011ED80DAEE0961D6997B"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
/cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc
	!http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about=""/> </rdf:RDF> </x:xmpmeta>                                                                      M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                   <?xpacket end="w"?>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
!!!!!!''''',,,,,,,,,,
--------------------------------------------------
1http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.1b65a79b4, 2022/06/13-22:01:01        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotosM
hop 23.5 (Macintosh)" xmpMM:InstanceID="xmp.iid:0E25D7FDA07D11ED8BCB8E95E8B078D3" xmpMM:DocumentID="xmp.did:0E25D7FEA07D11ED8BCB8E95E8B078D3"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:0E25D7FBA07D11ED8BCB8E95E8B078D3" stRef:documentID="xmp.did:0E25D7FCA07D11ED8BCB8E95E8B078D3"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
1http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.1b65a79b4, 2022/06/13-22:01:01        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotosM
hop 23.5 (Macintosh)" xmpMM:InstanceID="xmp.iid:F9531359A07C11ED8BCB8E95E8B078D3" xmpMM:DocumentID="xmp.did:F953135AA07C11ED8BCB8E95E8B078D3"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:F9531357A07C11ED8BCB8E95E8B078D3" stRef:documentID="xmp.did:F9531358A07C11ED8BCB8E95E8B078D3"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
|http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 6.0-c002 79.164488, 2020/07/10-22:06:53        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.diM
d:e0d18448-e896-5e43-a0da-1b9382b0ded8" xmpMM:DocumentID="xmp.did:D4C223CEA8AC11ED8C95993D068D0D43" xmpMM:InstanceID="xmp.iid:D4C223CDA8AC11ED8C95993D068D0D43" xmp:CreatorTool="Adobe Photoshop 22.0 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:e0d18448-e896-5e43-a0da-1b9382b0ded8" stRef:documentID="xmp.did:e0d18448-e896-5e43-a0da-1b9382b0ded8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD
&6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
text/plain;charset=utf-8
1No tengo paz, si no te tengo a vos! - OrdinalPoeth!
Bj@69be9b199c542c56183c408a23d7fd41fc878ec2634be6583db1659fb0e91063*
FPUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
k!""""""""""""""""""""""""
	!http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about=""/> </rdf:RDF> </x:xmpmeta>                                                                            M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                             <?xpacket end="w"?>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&&&&&&,,,,,1111111111
#44444444444444444444444444444444444444444444444444
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 6.0-c002 79.164488, 2020/07/10-22:06:53        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.diM
d:e0d18448-e896-5e43-a0da-1b9382b0ded8" xmpMM:DocumentID="xmp.did:DB1872D3AA1211ED8D56C946E08738D3" xmpMM:InstanceID="xmp.iid:DB1872D2AA1211ED8D56C946E08738D3" xmp:CreatorTool="Adobe Photoshop 22.0 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:5b588711-b116-814c-91d5-351258d52ed1" stRef:documentID="adobe:docid:photoshop:a1abe87c-c128-284f-beb5-9705e8f093f5"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDDM
&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
\.\...\...\...\.\...\\...\.........\...\\.....\...\...\.....\...
............\..\..\..\..\\.\\.\\..\..\..\..\..\.................
\.......\..\...\...\....\.\....\...\....\.\....\...\......\.\...
....\.\.\.\...........\.\......\.\.........\.\.\.\.\.........\.\
...\.......\\..\.....\...\........\........\...\.....\..\\......
..........\....\\..\\\...\..........\...\\...\\..............\..
\..\.........\\..\........\..\\.........\.\\.........\..\\.\....
.........\.\.\.\\.\.\.............\.\.\\.................\.\....
..\\....\\....\\....\\....\\....\\....\\....\\..................
.......\\..\.......\..\......\..\......\..\\......\..\\........\
\..\.\.........\.\..\.\..\......\.\..\..\.\......\.\\.\..\.\....
..\.\..\.\.....\............\.\.....\.\..\.\.....\.\.\..........
.\..\.......\.....\..\.....\.\.....\..\.....\.......\\......\\..
......\\.......\....\.......\\...\.......\\......\\...\........\
\.....\.\......\.\.....\.\.........\......\\.\....\.\\......\...
.\\.\\.\\.\\.\\.\\..\..\........................................
\....\.\.......\....\.\......\\\....\.......\\\............\\\..
......\...\...\\......\...\...\\..........\...\\..........\...\\
.\.....\....\.......\....\.....\....\.......\..\.\.....\..\.\...
..\..\...\.........\...\...\.\...\...\...\...\.\...\...\........
\....\.\\.\..\.\\.\....\.........................\..\.\..\.\\.\.
\\..\\..\...\.........................\...\...\..\\..\\..\...\..
...\.....\\.....\\.....\.....\\.....\.......\.....\.\.....\.....
..............\\...\\.\\\..\....\....................\...\\..\\\
.\\\...................\\\......\\\...................\\\......\
\\..\\....\...\...\.....\...\...\.....\...\........\\..\\.......
..\...\.\........\........\........\........\........\........\.
.\......\...\......\...\......\...\......\...\.\....\...\.\.....
.\.........\.\...........\...........\...........\.\.........\.\
......\..\..\\..\..\..\..........\..\..\.............\..\..\..\.
.\....\....\....\\....\....\......\....\....\.....\....\....\...
.\\\............\\\............\......\\\............\\\........
.\\\............\\\............\......\\\............\\\........
.\....\....\....\\....\....\......\....\....\.....\....\....\...
......\..\..\\..\..\..\..........\..\..\.............\..\..\..\.
.\.........\.\...........\...........\...........\.\.........\.\
.\......\...\......\...\......\...\......\...\.\....\...\.\.....
..\...\.\........\........\........\........\........\........\.
\\..\\....\...\...\.....\...\...\.....\...\........\\..\\.......
.\\\...................\\\......\\\...................\\\......\
..............\\...\\.\\\..\....\....................\...\\..\\\
...\.....\\.....\\.....\.....\\.....\.......\.....\.\.....\.....
\\..\\..\...\.........................\...\...\..\\..\\..\...\..
\....\.\\.\..\.\\.\....\.........................\..\.\..\.\\.\.
..\..\...\.........\...\...\.\...\...\...\...\.\...\...\........
.\.....\....\.......\....\.....\....\.......\..\.\.....\..\.\...
......\...\...\\......\...\...\\..........\...\\..........\...\\
\....\.\.......\....\.\......\\\....\.......\\\............\\\..
.\\.\\.\\.\\.\\.\\..\..\........................................
\.....\.\......\.\.....\.\.........\......\\.\....\.\\......\...
......\\.......\....\.......\\...\.......\\......\\...\........\
.\..\.......\.....\..\.....\.\.....\..\.....\.......\\......\\..
..\.\..\.\.....\............\.\.....\.\..\.\.....\.\.\..........
\..\.\.........\.\..\.\..\......\.\..\..\.\......\.\\.\..\.\....
.......\\..\.......\..\......\..\......\..\\......\..\\........\
..\\....\\....\\....\\....\\....\\....\\....\\..................
.........\.\.\.\\.\.\.............\.\.\\.................\.\....
\..\.........\\..\........\..\\.........\.\\.........\..\\.\....
..........\....\\..\\\...\..........\...\\...\\..............\..
...\.......\\..\.....\...\........\........\...\.....\..\\......
....\.\.\.\...........\.\......\.\.........\.\.\.\.\.........\.\
\.......\..\...\...\....\.\....\...\....\.\....\...\......\.\...
............\..\..\..\..\\.\\.\\..\..\..\..\..\.................
\.\...\...\...\.\...\\...\.........\...\\.....\...\...\.....\...
((((((((((((((((((((((((((((((((((((((((((((((((((
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
:CDEFGHIJSTUVWXYZcdefghijstuvwxyz

%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
	!http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about=""/> </rdf:RDF> </x:xmpmeta>                                                                            M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                             <?xpacket end="w"?>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
	!http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about=""/> </rdf:RDF> </x:xmpmeta>                                                                            M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                             <?xpacket end="w"?>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
	!http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about=""/> </rdf:RDF> </x:xmpmeta>                                                                            M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                             <?xpacket end="w"?>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
""""""""""""""""""""""""""""""""""""""""""""""""""
	!http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about=""/> </rdf:RDF> </x:xmpmeta>                                                                            M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                             <?xpacket end="w"?>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
	!http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about=""/> </rdf:RDF> </x:xmpmeta>                                                                            M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                             <?xpacket end="w"?>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
FjDOUT:F246185798808873A47B4DF128244140250636FEA98C58797C86D52AC02E6B20
/http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.566ebc5b4, 2022/05/09-08:25:55        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe PhotosM
hop 23.4 (Windows)" xmpMM:InstanceID="xmp.iid:DFD35DCCABD011ED91F899236335FCF0" xmpMM:DocumentID="xmp.did:DFD35DCDABD011ED91F899236335FCF0"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:DFD35DCAABD011ED91F899236335FCF0" stRef:documentID="xmp.did:DFD35DCBABD011ED91F899236335FCF0"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FjDOUT:3FE3F1F87221D1C00C5BB92E603F42583283DC5E22CA0A440FFB9EE2EADCD0EE
@j>=:ETH.ETH:0x3d8A30E206F56A7857b9F142662D5BF006b030c3:842252::0
Bj@=:ETH.ETH:0x5BE75Eb25fd73adD2696BF8Db3Cd25e83388FBb3:534918:te:0
text/plain;charset=utf-8
00000000   01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000010   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000020   00 00 00 00 3B A3 ED FD  7A 7B 12 B2 7A C7 2C 3E   ....;
00000030   67 76 8F 61 7F C8 1B C3  88 8A 51 32 3A 9F B8 AA   gv.a.
00000040   4B 1E 5E 4A 29 AB 5F 49  FF FF 00 1D 1D AC 2B 7C   K.^J)
00000050   01 01 00 00 00 01 00 00  00 00 00 00 00 00 00 00   ................
00000060   00 00 00 00 00 00 0M
0 00  00 00 00 00 00 00 00 00   ................
00000070   00 00 00 00 00 00 FF FF  FF FF 4D 04 FF FF 00 1D   ......
00000080   01 04 45 54 68 65 20 54  69 6D 65 73 20 30 33 2F   ..EThe Times 03/
00000090   4A 61 6E 2F 32 30 30 39  20 43 68 61 6E 63 65 6C   Jan/2009 Chancel
000000A0   6C 6F 72 20 6F 6E 20 62  72 69 6E 6B 20 6F 66 20   lor on brink of
000000B0   73 65 63 6F 6E 64 20 62  61 69 6C 6F 75 74 20 66   second bailout f
000000C0   6F 72 20 62 61 6E 6B 73  FF FF FF FF 01 00 F2 05   or banksM
000000D0   2A 01 00 00 00 43 41 04  67 8A FD B0 FE 55 48 27   *....CA.g
000000E0   19 67 F1 A6 71 30 B7 10  5C D6 A8 28 E0 39 09 A6   .g
000000F0   79 62 E0 EA 1F 61 DE B6  49 F6 BC 3F 4C EF 38 C4   yb
00000100   F3 55 04 E5 1E C1 12 DE  5C 38 4D F7 BA 0B 8D 57
00000110   8A 4C 70 2B 6B F1 1D 5F  AC 00 00 00 00
CjA=:BNB.BNB:bnb1l0wxussgjdcx783e4d9hk2hfwxl2jv43q8hlaj:7975381:te:0
text/plain;charset=utf-8
\.\...\...\...\.\...\\...\.........\...\\.....\...\...\.....\...
............\..\..\..\..\\.\\.\\..\..\..\..\..\.................
\.......\..\...\...\....\.\....\...\....\.\....\...\......\.\...
....\.\.\.\...........\.\......\.\.........\.\.\.\.\.........\.\
...\.......\\..\.....\...\........\........\...\.....\..\\......
..........\....\\..\\\...\..........\...\\...\\..............\..
\..\.........\\..\........\..\\.........\.\\.........\..\\.\....
.........\.\.\.\\.\.\.............\.\.\\.................\.\....
..\\....\\....\\....\\....\\....\\....\\....\\..................
.......\\..\.......\..\......\..\......\..\\......\..\\........\
\..\.\.........\.\..\.\..\......\.\..\..\.\......\.\\.\..\.\....
..\.\..\.\.....\............\.\.....\.\..\.\.....\.\.\..........
.\..\.......\.....\..\.....\.\.....\..\.....\.......\\......\\..
......\\.......\....\.......\\...\.......\\......\\...\........\
\.....\.\......\.\.....\.\.........\......\\.\....\.\\......\...
.\\.\\.\\.\\.\\.\\..\..\........................................
\....\.\.......\....\.\......\\\....\.......\\\............\\\..
......\...\...\\......\...\...\\..........\...\\..........\...\\
.\.....\....\.......\....\.....\....\.......\..\.\.....\..\.\...
..\..\...\.........\...\...\.\...\...\...\...\.\...\...\........
\....\.\\.\..\.\\.\....\.........................\..\.\..\.\\.\.
\\..\\..\...\.........................\...\...\..\\..\\..\...\..
...\.....\\.....\\.....\.....\\.....\.......\.....\.\.....\.....
..............\\...\\.\\\..\....\....................\...\\..\\\
.\\\...................\\\......\\\...................\\\......\
\\..\\....\...\...\.....\...\...\.....\...\........\\..\\.......
..\...\.\........\........\........\........\........\........\.
.\......\...\......\...\......\...\......\...\.\....\...\.\.....
.\.........\.\...........\...........\...........\.\.........\.\
......\..\..\\..\..\..\..........\..\..\.............\..\..\..\.
.\....\....\....\\....\....\......\....\....\.....\....\....\...
.\\\............\\\............\......\\\............\\\........
.\\\............\\\............\......\\\............\\\........
.\....\....\....\\....\....\......\....\....\.....\....\....\...
......\..\..\\..\..\..\..........\..\..\.............\..\..\..\.
.\.........\.\...........\...........\...........\.\.........\.\
.\......\...\......\...\......\...\......\...\.\....\...\.\.....
..\...\.\........\........\........\........\........\........\.
\\..\\....\...\...\.....\...\...\.....\...\........\\..\\.......
.\\\...................\\\......\\\...................\\\......\
..............\\...\\.\\\..\....\....................\...\\..\\\
...\.....\\.....\\.....\.....\\.....\.......\.....\.\.....\.....
\\..\\..\...\.........................\...\...\..\\..\\..\...\..
\....\.\\.\..\.\\.\....\.........................\..\.\..\.\\.\.
..\..\...\.........\...\...\.\...\...\...\...\.\...\...\........
.\.....\....\.......\....\.....\....\.......\..\.\.....\..\.\...
......\...\...\\......\...\...\\..........\...\\..........\...\\
\....\.\.......\....\.\......\\\....\.......\\\............\\\..
.\\.\\.\\.\\.\\.\\..\..\........................................
\.....\.\......\.\.....\.\.........\......\\.\....\.\\......\...
......\\.......\....\.......\\...\.......\\......\\...\........\
.\..\.......\.....\..\.....\.\.....\..\.....\.......\\......\\..
..\.\..\.\.....\............\.\.....\.\..\.\.....\.\.\..........
\..\.\.........\.\..\.\..\......\.\..\..\.\......\.\\.\..\.\....
.......\\..\.......\..\......\..\......\..\\......\..\\........\
..\\....\\....\\....\\....\\....\\....\\....\\..................
.........\.\.\.\\.\.\.............\.\.\\.................\.\....
\..\.........\\..\........\..\\.........\.\\.........\..\\.\....
..........\....\\..\\\...\..........\...\\...\\..............\..
...\.......\\..\.....\...\........\........\...\.....\..\\......
....\.\.\.\...........\.\......\.\.........\.\.\.\.\.........\.\
\.......\..\...\...\....\.\....\...\....\.\....\...\......\.\...
............\..\..\..\..\\.\\.\\..\..\..\..\..\.................
\.\...\...\...\.\...\\...\.........\...\\.....\...\...\.....\...
&iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.2-c000 79.1b65a79b4, 2022/06/13-22:01:01        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTool="Adobe Photoshop 23.5 (WindowsM
)" xmpMM:InstanceID="xmp.iid:A87A2DA2ABC811ED86BFC2E1E4590150" xmpMM:DocumentID="xmp.did:A87A2DA3ABC811ED86BFC2E1E4590150"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:A87A2DA0ABC811ED86BFC2E1E4590150" stRef:documentID="xmp.did:A87A2DA1ABC811ED86BFC2E1E4590150"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
9j7CARRIE YOUR HEART IS PRECIOUS AND I WILL NEVER BREAK IT
|http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 6.0-c002 79.164488, 2020/07/10-22:06:53        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.diM
d:e0d18448-e896-5e43-a0da-1b9382b0ded8" xmpMM:DocumentID="xmp.did:9C516D1FA8C311ED8DFEE2F9EE2355BE" xmpMM:InstanceID="xmp.iid:9C516D1EA8C311ED8DFEE2F9EE2355BE" xmp:CreatorTool="Adobe Photoshop 22.0 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:e0d18448-e896-5e43-a0da-1b9382b0ded8" stRef:documentID="xmp.did:e0d18448-e896-5e43-a0da-1b9382b0ded8"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD
&6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
text/html;charset=utf-8
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Magic Crypto Ball</title>
		var answers=["It is certain","Crypto says yes!","Blockchain confirms it","Crypto is the future!","Trust the ledger","As I see it, yes","Highly likely","Outlook promising","Yes","The market points to yes","Price is uncertain, try again","Check the hash rate later","It's too volatile to tell now","Cannot predict the market M
now","Study the charts and ask again","Don't invest in it","My reply is no","The miners say no","Outlook not so good","Very doubtful","The miners are optimistic","Outlook is bright for crypto!","The market sees potential","It's a great opportunity!","Cannot trust the market now","Outlook not so promising","The market points to no","Outlook is grim","Crypto is unstoppable!","Crypto is here to stay!"];
		var answerFinishedAt=new Date().getTime();
		function magicBall(){
			if (!isAnswerFinished()) return;
randomAnswer=answers[Math.floor(Math.random()*answers.length)];
			document.getElementById("answer").innerHTML="";
			for (let i=0;i<randomAnswer.length;i++){
			  setTimeout(()=>{
				document.getElementById("answer").innerHTML+=randomAnswer[i];
			answerFinishedAt=new Date().getTime()+randomAnswer.length*30;
		function isAnswerFinished(){
			return new Date().getTime()>answerFinishedAt;
		body {overflow:hidden;margin:0;}
		.textArea {position:absoluM
te;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;}
		.text {font-size:calc(6vw);font-weight:bold;margin:0 30%;text-align:center;-webkit-user-select:none;user-select:none;text-shadow: 0px 0px 5px #000000;}
		.fade {animation: 10s anim-fade ease-out infinite;}
		@keyframes anim-fade {
		  0% {opacity:1;transform:scale(1);}
		  50% {opacity:0.3;transform:scale(0.95);}
		  100% {opacity:1;transform:scale(1);}
    <div onclick="magiM
		<svg width="100vw" height="100vh" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
				<circle r="49%" cy="50%" cx="50%" fill="#000000" filter="url(#shadow)"/>
				<circle r="47.5%" cy="50%" cx="50%" fill="#222222"/>
				<circle r="47.5%" cy="51.5%" cx="51.5%" fill="#000000"/>
				<circle r="47.5%" cy="50%" cx="50%" fill="url(#shiny-gradient)"/>
				<circle r="28.5%" cy="50%" cx="50%" stroke-width="3px" stroke="#EEEEEE" fill="none" filter="url(#shadow)"/>
rcle r="27%" cy="50%" cx="50%" stroke-width="2px" stroke="#666666" fill="url(#gloss)" filter="url(#shadow)"/>
			<radialGradient id="shiny-gradient">
				<stop offset="20%" stop-color="#FFFFFF" stop-opacity="1"/>
				<stop offset="65%" stop-color="#FFFFFF" stop-opacity="0.4"/>
				<stop offset="90%" stop-color="#FFFFFF" stop-opacity="0.2"/>
				<stop offset="99%" stop-color="#FFFFFF" stop-opacity="0.05"/>
				<stop offset="100%" stop-color="#FFFFFF" stop-opacity="0"/>
			</radialGradient>
rGradient id="gloss" x1="0%" y1="0%" x2="0%" y2="100%">
				<stop offset="0%" stop-color="#ffffff"/>
				<stop offset="100%" stop-color="#aaaaaa"/>
			</linearGradient>
			<filter id="shadow">
			<feDropShadow dx="0" dy="0" stdDeviation="3" flood-color="#000000"/>
		<div class="textArea">
			<p id="answer" class="text fade">Ask me a question and click</p>
text/html;charset=utf-8
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Magic Crypto Ball</title>
		var answers = ["It is certain","That's a ridiculous question!","Crypto is the future!","Highly likely","Outlook promising","Yes","Price is uncertain, try again","That's none of your business!","Go ask someone else!","Go away!","Study the charts and ask again","Don't invest in it","I'm not telling you!","No, and don't ask M
me again!","Outlook not so good","Very doubtful","That's not my problem!","Outlook is bright for crypto!","The market sees potential","It's a great opportunity!","Cannot trust the market now","Outlook not so promising","Outlook is grim"];
		var complains=["Stop talking over me","Shut up and let me talk!","Keep quiet and let me finish","Zip it, I'm not done yet","Keep quiet until I'm done","Shut up and let me finish","Sit down and be quiet"];
		var answerFinishedAt=new Date().getTime();
		var interrupted=0;
nction magicBall() {
			if (interrupted==1) return;
			if (!isAnswerFinished())
				getInterruptReply();
			var randomAnswer = answers[Math.floor(Math.random() * answers.length)];
			document.getElementById("answer").innerHTML = "";
			for (let i=0;i<randomAnswer.length;i++){
			  setTimeout(()=>{
				if (interrupted==0) document.getElementById("answer").innerHTML+=randomAnswer[i];
			answerFinishedAt=new Date().getTime()+randomAnswer.length*80;
n getInterruptReply(){
			var randomComplain=complains[Math.floor(Math.random()*complains.length)];
			document.getElementById("answer").innerHTML="";
			for (let i=0;i<randomComplain.length;i++){
			  setTimeout(()=>{
				document.getElementById("answer").innerHTML+=randomComplain[i];
		function isAnswerFinished(){
			return new Date().getTime()>=answerFinishedAt;
		body {overflow:hidden;margin:0;}
		.textArea {position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;}
		.text {font-size:calc(6vw);font-weight:bold;margin:0 30%;text-align:center;-webkit-user-select:none;user-select:none;color:#228B22;text-shadow: 0px 0px 5px #228B22;}
		.fade {animation: 15s anim-fade ease-out infinite;}
		@keyframes anim-fade {
		  0% {opacity:1;transform:scale(1);}
		  50% {opacity:0.3;transform:scale(0.95);}
:1;transform:scale(1);}
    <div onclick="magicBall()">
		<svg width="100vw" height="100vh" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
				<circle r="49%" cy="50%" cx="50%" fill="#228B22" filter="url(#shadow)"/>
				<circle r="47.5%" cy="50%" cx="50%" fill="#2E9E2E"/>
				<circle r="47.5%" cy="51.5%" cx="51.5%" fill="#228B22"/>
				<circle r="47.5%" cy="50%" cx="50%" fill="url(#shiny-gradient)"/>
				<circle r="28.5%" cy="50%" cx="5M
0%" stroke-width="3px" stroke="#EEEEEE" fill="none" filter="url(#shadow)"/>
				<circle r="27%" cy="50%" cx="50%" stroke-width="2px" stroke="#32CD32" fill="url(#gloss)" filter="url(#shadow)"/>
			<radialGradient id="shiny-gradient">
				<stop offset="20%" stop-color="#FFFFFF" stop-opacity="1"/>
				<stop offset="65%" stop-color="#FFFFFF" stop-opacity="0.4"/>
				<stop offset="90%" stop-color="#FFFFFF" stop-opacity="0.2"/>
				<stop offset="99%" stop-color="#FFFFFF" stop-opacity="0.05"/>
fset="100%" stop-color="#FFFFFF" stop-opacity="0"/>
			</radialGradient>
			<linearGradient id="gloss" x1="0%" y1="0%" x2="0%" y2="100%">
				<stop offset="0%" stop-color="#ffffff"/>
				<stop offset="100%" stop-color="#aaaaaa"/>
			</linearGradient>
			<filter id="shadow">
			<feDropShadow dx="0" dy="0" stdDeviation="3" flood-color="#127B12"/>
		<div class="textArea">
			<p id="answer" class="text fade">Ask me a question and click</p>
text/html;charset=utf-8
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Magic Crypto Ball</title>
		var answers = ["It is certain","That's a ridiculous question!","Crypto is the future!","Highly likely","Outlook promising","Yes","Price is uncertain, try again","That's none of your business!","Go ask someone else!","Go away!","Study the charts and ask again","Don't invest in it","I'm not telling you!","No, and don't ask M
me again!","Outlook not so good","Very doubtful","That's not my problem!","Outlook is bright for crypto!","The market sees potential","It's a great opportunity!","Cannot trust the market now","Outlook not so promising","Outlook is grim"];
		var complains=["Stop talking over me","Shut up and let me talk!","Keep quiet and let me finish","Zip it, I'm not done yet","Keep quiet until I'm done","Shut up and let me finish","Sit down and be quiet"];
		var answerFinishedAt=new Date().getTime();
		var interrupted=0;
nction magicBall() {
			if (interrupted==1) return;
			if (!isAnswerFinished())
				getInterruptReply();
			var randomAnswer = answers[Math.floor(Math.random() * answers.length)];
			document.getElementById("answer").innerHTML = "";
			for (let i=0;i<randomAnswer.length;i++){
			  setTimeout(()=>{
				if (interrupted==0) document.getElementById("answer").innerHTML+=randomAnswer[i];
			answerFinishedAt=new Date().getTime()+randomAnswer.length*80;
n getInterruptReply(){
			var randomComplain=complains[Math.floor(Math.random()*complains.length)];
			document.getElementById("answer").innerHTML="";
			for (let i=0;i<randomComplain.length;i++){
			  setTimeout(()=>{
				document.getElementById("answer").innerHTML+=randomComplain[i];
		function isAnswerFinished(){
			return new Date().getTime()>=answerFinishedAt;
		body {overflow:hidden;margin:0;}
		.textArea {position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;}
		.text {font-size:calc(6vw);font-weight:bold;margin:0 30%;text-align:center;-webkit-user-select:none;user-select:none;color:#228B22;text-shadow: 0px 0px 5px #228B22;}
		.fade {animation: 15s anim-fade ease-out infinite;}
		@keyframes anim-fade {
		  0% {opacity:1;transform:scale(1);}
		  50% {opacity:0.3;transform:scale(0.95);}
:1;transform:scale(1);}
    <div onclick="magicBall()">
		<svg width="100vw" height="100vh" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
				<circle r="49%" cy="50%" cx="50%" fill="#228B22" filter="url(#shadow)"/>
				<circle r="47.5%" cy="50%" cx="50%" fill="#2E9E2E"/>
				<circle r="47.5%" cy="51.5%" cx="51.5%" fill="#228B22"/>
				<circle r="47.5%" cy="50%" cx="50%" fill="url(#shiny-gradient)"/>
				<circle r="28.5%" cy="50%" cx="5M
0%" stroke-width="3px" stroke="#EEEEEE" fill="none" filter="url(#shadow)"/>
				<circle r="27%" cy="50%" cx="50%" stroke-width="2px" stroke="#32CD32" fill="url(#gloss)" filter="url(#shadow)"/>
			<radialGradient id="shiny-gradient">
				<stop offset="20%" stop-color="#FFFFFF" stop-opacity="1"/>
				<stop offset="65%" stop-color="#FFFFFF" stop-opacity="0.4"/>
				<stop offset="90%" stop-color="#FFFFFF" stop-opacity="0.2"/>
				<stop offset="99%" stop-color="#FFFFFF" stop-opacity="0.05"/>
fset="100%" stop-color="#FFFFFF" stop-opacity="0"/>
			</radialGradient>
			<linearGradient id="gloss" x1="0%" y1="0%" x2="0%" y2="100%">
				<stop offset="0%" stop-color="#ffffff"/>
				<stop offset=&