;; stx-defi-szn-defi-loops
;; contractType: editions
(impl-trait 'SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.nft-trait.nft-trait)
(define-non-fungible-token stx-defi-szn-defi-loops uint)
;; Constants
(define-constant DEPLOYER tx-sender)
(define-constant COMM u1000)
(define-constant COMM-ADDR 'SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S)
(define-constant ERR-NO-MORE-NFTS u100)
(define-constant ERR-NOT-ENOUGH-PASSES u101)
(define-constant ERR-PUBLIC-SALE-DISABLED u102)
(define-constant ERR-CONTRACT-INITIALIZED u103)
(define-constant ERR-NOT-AUTHORIZED u104)
(define-constant ERR-INVALID-USER u105)
(define-constant ERR-LISTING u106)
(define-constant ERR-WRONG-COMMISSION u107)
(define-constant ERR-NOT-FOUND u108)
(define-constant ERR-PAUSED u109)
(define-constant ERR-MINT-LIMIT u110)
(define-constant ERR-METADATA-FROZEN u111)
(define-constant ERR-AIRDROP-CALLED u112)
(define-constant ERR-NO-MORE-MINTS u113)
(define-constant ERR-INVALID-PERCENTAGE u114)
(define-constant ERR-CONTRACT-LOCKED u115)
;; Internal variables
(define-data-var mint-limit uint u0)
(define-data-var last-id uint u1)
(define-data-var total-price uint u0)
(define-data-var artist-address principal 'SP3M33RCWQ62K930ACHRARHPDD83E8B20SH4MMFA9)
(define-data-var ipfs-root (string-ascii 80) "ipfs://ipfs/QmQVrzDgCvcW7Xe5qj6hUhP5zok3LwZECxtmFrHt4fa2Vo/")
(define-data-var mint-paused bool true)
(define-data-var premint-enabled bool false)
(define-data-var sale-enabled bool false)
(define-data-var metadata-frozen bool false)
(define-data-var airdrop-called bool false)
(define-data-var mint-cap uint u1)
(define-data-var locked bool false)
(define-map mints-per-user principal uint)
(define-map mint-passes principal uint)
(define-public (lock-contract)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(var-set locked true)
(ok true)))
(define-public (claim)
(mint (list true)))
;; Mintpass Minting
(define-private (mint (orders (list 25 bool)))
(let
(
(passes (get-passes tx-sender))
)
(if (var-get premint-enabled)
(begin
(asserts! (>= passes (len orders)) (err ERR-NOT-ENOUGH-PASSES))
(map-set mint-passes tx-sender (- passes (len orders)))
(mint-many orders)
)
(begin
(asserts! (var-get sale-enabled) (err ERR-PUBLIC-SALE-DISABLED))
(mint-many orders)
)
)))
(define-private (mint-many (orders (list 25 bool )))
(let
(
(last-nft-id (var-get last-id))
(enabled (asserts! (or (is-eq (var-get mint-limit) u0) (<= last-nft-id (var-get mint-limit))) (err ERR-NO-MORE-NFTS)))
(art-addr (var-get artist-address))
(id-reached (fold mint-many-iter orders last-nft-id))
(price (* (var-get total-price) (- id-reached last-nft-id)))
(total-commission (/ (* price COMM) u10000))
(current-balance (get-balance tx-sender))
(total-artist (- price total-commission))
(capped (> (var-get mint-cap) u0))
(user-mints (get-mints tx-sender))
)
(asserts! (or (is-eq false (var-get mint-paused)) (is-eq tx-sender DEPLOYER)) (err ERR-PAUSED))
(asserts! (is-eq (var-get locked) false) (err ERR-CONTRACT-LOCKED))
(asserts! (or (not capped) (is-eq tx-sender DEPLOYER) (is-eq tx-sender art-addr) (>= (var-get mint-cap) (+ (len orders) user-mints))) (err ERR-NO-MORE-MINTS))
(map-set mints-per-user tx-sender (+ (len orders) user-mints))
(if (or (is-eq tx-sender art-addr) (is-eq tx-sender DEPLOYER) (is-eq (var-get total-price) u0000000))
(begin
(var-set last-id id-reached)
(map-set token-count tx-sender (+ current-balance (- id-reached last-nft-id)))
)
(begin
(var-set last-id id-reached)
(map-set token-count tx-sender (+ current-balance (- id-reached last-nft-id)))
(try! (stx-transfer? total-artist tx-sender (var-get artist-address)))
(try! (stx-transfer? total-commission tx-sender COMM-ADDR))
)
)
(ok id-reached)))
(define-private (mint-many-iter (ignore bool) (next-id uint))
(if (or (is-eq (var-get mint-limit) u0) (<= next-id (var-get mint-limit)))
(begin
(unwrap! (nft-mint? stx-defi-szn-defi-loops next-id tx-sender) next-id)
(+ next-id u1)
)
next-id))
(define-public (set-artist-address (address principal))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(ok (var-set artist-address address))))
(define-public (set-price (price uint))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(ok (var-set total-price price))))
(define-public (toggle-pause)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(ok (var-set mint-paused (not (var-get mint-paused))))))
(define-public (set-mint-limit (limit uint))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(asserts! (< limit (var-get mint-limit)) (err ERR-MINT-LIMIT))
(ok (var-set mint-limit limit))))
(define-public (burn (token-id uint))
(begin
(asserts! (is-owner token-id tx-sender) (err ERR-NOT-AUTHORIZED))
(asserts! (is-none (map-get? market token-id)) (err ERR-LISTING))
(nft-burn? stx-defi-szn-defi-loops token-id tx-sender)))
(define-private (is-owner (token-id uint) (user principal))
(is-eq user (unwrap! (nft-get-owner? stx-defi-szn-defi-loops token-id) false)))
(define-public (set-base-uri (new-base-uri (string-ascii 80)))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(asserts! (not (var-get metadata-frozen)) (err ERR-METADATA-FROZEN))
(print { notification: "token-metadata-update", payload: { token-class: "nft", contract-id: (as-contract tx-sender) }})
(var-set ipfs-root new-base-uri)
(ok true)))
(define-public (freeze-metadata)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(var-set metadata-frozen true)
(ok true)))
;; Non-custodial SIP-009 transfer function
(define-public (transfer (id uint) (sender principal) (recipient principal))
(begin
(asserts! (is-eq tx-sender sender) (err ERR-NOT-AUTHORIZED))
(asserts! (is-none (map-get? market id)) (err ERR-LISTING))
(trnsfr id sender recipient)))
;; read-only functions
(define-read-only (get-owner (token-id uint))
(ok (nft-get-owner? stx-defi-szn-defi-loops token-id)))
(define-read-only (get-last-token-id)
(ok (- (var-get last-id) u1)))
(define-read-only (get-token-uri (token-id uint))
(ok (some (var-get ipfs-root))))
(define-read-only (get-paused)
(ok (var-get mint-paused)))
(define-read-only (get-price)
(ok (var-get total-price)))
(define-read-only (get-artist-address)
(ok (var-get artist-address)))
(define-read-only (get-locked)
(ok (var-get locked)))
(define-read-only (get-mints (caller principal))
(default-to u0 (map-get? mints-per-user caller)))
(define-read-only (get-mint-limit)
(ok (var-get mint-limit)))
(define-data-var license-uri (string-ascii 80) "")
(define-data-var license-name (string-ascii 40) "")
(define-read-only (get-license-uri)
(ok (var-get license-uri)))
(define-read-only (get-license-name)
(ok (var-get license-name)))
(define-public (set-license-uri (uri (string-ascii 80)))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(ok (var-set license-uri uri))))
(define-public (set-license-name (name (string-ascii 40)))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(ok (var-set license-name name))))
;; Non-custodial marketplace extras
(use-trait commission-trait 'SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335.commission-trait.commission)
(define-map token-count principal uint)
(define-map market uint {price: uint, commission: principal, royalty: uint})
(define-read-only (get-balance (account principal))
(default-to u0
(map-get? token-count account)))
(define-private (trnsfr (id uint) (sender principal) (recipient principal))
(match (nft-transfer? stx-defi-szn-defi-loops id sender recipient)
success
(let
((sender-balance (get-balance sender))
(recipient-balance (get-balance recipient)))
(map-set token-count
sender
(- sender-balance u1))
(map-set token-count
recipient
(+ recipient-balance u1))
(ok success))
error (err error)))
(define-private (is-sender-owner (id uint))
(let ((owner (unwrap! (nft-get-owner? stx-defi-szn-defi-loops id) false)))
(or (is-eq tx-sender owner) (is-eq contract-caller owner))))
(define-read-only (get-listing-in-ustx (id uint))
(map-get? market id))
(define-public (list-in-ustx (id uint) (price uint) (comm-trait <commission-trait>))
(let ((listing {price: price, commission: (contract-of comm-trait), royalty: (var-get royalty-percent)}))
(asserts! (is-sender-owner id) (err ERR-NOT-AUTHORIZED))
(map-set market id listing)
(print (merge listing {a: "list-in-ustx", id: id}))
(ok true)))
(define-public (unlist-in-ustx (id uint))
(begin
(asserts! (is-sender-owner id) (err ERR-NOT-AUTHORIZED))
(map-delete market id)
(print {a: "unlist-in-ustx", id: id})
(ok true)))
(define-public (buy-in-ustx (id uint) (comm-trait <commission-trait>))
(let ((owner (unwrap! (nft-get-owner? stx-defi-szn-defi-loops id) (err ERR-NOT-FOUND)))
(listing (unwrap! (map-get? market id) (err ERR-LISTING)))
(price (get price listing))
(royalty (get royalty listing)))
(asserts! (is-eq (contract-of comm-trait) (get commission listing)) (err ERR-WRONG-COMMISSION))
(try! (stx-transfer? price tx-sender owner))
(try! (pay-royalty price royalty))
(try! (contract-call? comm-trait pay id price))
(try! (trnsfr id owner tx-sender))
(map-delete market id)
(print {a: "buy-in-ustx", id: id})
(ok true)))
(define-data-var royalty-percent uint u500)
(define-read-only (get-royalty-percent)
(ok (var-get royalty-percent)))
(define-public (set-royalty-percent (royalty uint))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(asserts! (and (>= royalty u0) (<= royalty u1000)) (err ERR-INVALID-PERCENTAGE))
(ok (var-set royalty-percent royalty))))
(define-private (pay-royalty (price uint) (royalty uint))
(let (
(royalty-amount (/ (* price royalty) u10000))
)
(if (and (> royalty-amount u0) (not (is-eq tx-sender (var-get artist-address))))
(try! (stx-transfer? royalty-amount tx-sender (var-get artist-address)))
(print false)
)
(ok true)))
;; Extra functionality required for mintpass
(define-public (toggle-sale-state)
(let
(
;; (premint (not (var-get premint-enabled)))
(sale (not (var-get sale-enabled)))
)
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(var-set premint-enabled false)
(var-set sale-enabled sale)
(print { sale: sale })
(ok true)))
(define-public (enable-premint)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(ok (var-set premint-enabled true))))
(define-public (disable-premint)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(ok (var-set premint-enabled false))))
(define-read-only (get-passes (caller principal))
(default-to u0 (map-get? mint-passes caller)))
(define-read-only (get-premint-enabled)
(ok (var-get premint-enabled)))
(define-read-only (get-sale-enabled)
(ok (var-get sale-enabled)))
(define-public (clear-mintpasses (addresses (list 2000 principal)))
(let
(
(index-reached (fold clear-mintpasses-iter addresses u0))
)
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(print {
total-mintpasses-cleared: index-reached,
})
(ok true)))
(define-public (add-mintpasses (addresses (list 2000 principal)))
(let
(
(index-reached (fold add-mintpasses-iter addresses u0))
)
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(print {
total-mintpasses-added: index-reached,
})
(ok true)))
(define-private (clear-mintpasses-iter (address principal) (next-index uint))
(begin
(map-delete mint-passes address)
(+ next-index u1)))
(define-private (add-mintpasses-iter (address principal) (next-index uint))
(let
(
(mintpass-count (get-passes address))
)
(map-set mint-passes address (+ mintpass-count u1))
(+ next-index u1)))
(map-set mint-passes 'SP2P427FR37K1Q0XH6134X9TKRDV2G2T6XMD5VD1Z u1)
(map-set mint-passes 'SP3EX5ZQDWSEZNHMWBXSST2WPP68RY5AJ3D7N85ZT u1)
(map-set mint-passes 'SP121V1K1Z53EFZA6MS4C48B03PW09C29Z000FGF7 u1)
(map-set mint-passes 'SP9CE0T02BRP75JDERC62ZX7KHR847VT5DBDDCXB u1)
(map-set mint-passes 'SP1EQGZT0WN75N5AMJH2C40N5GBJTEVY9E6ZY8EH3 u1)
(map-set mint-passes 'SP1KKX4BMTTAK18YJWC1BYMHG903K0H1T6ERTADEV u1)
(map-set mint-passes 'SPV5PGCD95BP0MGEMRXWPB799V5A02C3ZRMEF23R u1)
(map-set mint-passes 'SP1PJG5D4D0PW6ZKZ5TENQE4BB8QR5VQ4MG5PB93M u1)
(map-set mint-passes 'SP399V6B6B3BHD0K2BVDAQTCKQSYDSN1MV8M00045 u1)
(map-set mint-passes 'SP3SX2P3DHZ8JBSQS8VD77MBXMW5ABKW5QTTS8RZB u1)
(map-set mint-passes 'SPZHTQ30Z1WKFB40B64YP337ADRDD5QSGTTDJE0R u1)
(map-set mint-passes 'SP2V7K64E1N4ZKA6K575QVPC5R2RK9PY2WMG9HCKK u1)
(map-set mint-passes 'SP1JB1SF9WT7G76T5FWKXJ2WSTF4B3R94Q23FGS0X u1)
(map-set mint-passes 'SP3KE09BN6QG232KYT30JYTBGX0ZWRFEQQ0ERGY37 u1)
(map-set mint-passes 'SP1F1VSNF6MDSQYRN0BMY1AKKZHJTF5Y0J97RJYDS u1)
(map-set mint-passes 'SP3NRENKDA68JVD9B38QQ0CFYSX107NV0108GJHMD u1)
(map-set mint-passes 'SP1BF78X4ENENFDDVXQ7CEGARDHQQ378D76JZXZT0 u1)
(map-set mint-passes 'SP1NV342WPXGHSTW5J8WEFVQAPZJBS359D689G5RJ u1)
(map-set mint-passes 'SP34WNPZCM1J4JE5JSE2F7VEZ0VN0PPG491Q1X0XC u1)
(map-set mint-passes 'SP0B1X0HSZP2QC47SZMDH9SPR314ENGX940XXVGP u1)
(map-set mint-passes 'SP16WKD33RD1K7H01S2FNHQ1T4XVS9GNZS01NVJ8D u1)
(map-set mint-passes 'SPBHY262JEPX2TP737NCXZ8ZQY3QC1KN5PWYD1Z0 u1)
(map-set mint-passes 'SP39EM7KPF78ETK05CAS3G950ZPK19T86RBTB3F3G u1)
(map-set mint-passes 'SPZEZ67YV0ERV0KS2M5206PE51QN1AW1SCRR9YYY u1)
(map-set mint-passes 'SP1KKA7KDY54ZF5BQWVKGQ2AEC91EZNA2GJQR6CXG u1)
(map-set mint-passes 'SP3P9YMQ98M7MDNN84N908YGFTSYGJ0SF5WHZSZM7 u1)
(map-set mint-passes 'SP24Y8P0BZH1EEYQ7ZS07ST6M1M6ZBKGY4RS0DCV u1)
(map-set mint-passes 'SP33KJGEJB2VWTKGC7XHEW78WZ333J763A9NT79J4 u1)
(map-set mint-passes 'SP3FSNTX8WHBAFMBQ7GA52T4CBP8X78QGT06Z04N8 u1)
(map-set mint-passes 'SP3SK1BGXM2ZHWXZTNQY3EEKBH4FV1YJYW8JDNN20 u1)
(map-set mint-passes 'SP2KR5R6C0RA6YE4Y13W378R6CCS6XZX8QWWQVNZW u1)
(map-set mint-passes 'SP248PDRV48PFKYTMJNBPQGWHKNH1J9WATF2C7WR0 u1)
(map-set mint-passes 'SP29BRYGWCDS1XF2Z837E28P0310S4377VDNZFHHF u1)
(map-set mint-passes 'SP1V452VD8QB2EXWSSFQM27Q3MFJDC8J5J2QC1E28 u1)
(map-set mint-passes 'SPY8WG7E7XMS1MYQM7ACTDASM9PQKR3GKXNXQRKH u1)
(map-set mint-passes 'SP2PB9XEH4EY0M6VVDXQSXERGC5BW2FJK4NCA760T u1)
(map-set mint-passes 'SP164V8JJQBEREMT3CMKFCNCSZY31FWEB3SWZ9Q6C u1)
(map-set mint-passes 'SP38FTGK7BV5C36VDZDM5RKDD9G56HRHZ0AWMBJ0Z u1)
(map-set mint-passes 'SP1PDSVYRZF7KZHNCXSNXHGRAJQ5ZRRD1J75KJG86 u1)
(map-set mint-passes 'SP231E8SN4X8NKSB3FX9TXFMXGG4ZZQEY9CMM8DX4 u1)
(map-set mint-passes 'SP2SR8RAQRTBAQJWDTC1VNWWK9SQQ5AYM8G5Z1Z60 u1)
(map-set mint-passes 'SP2TFXJACXXYGDBQ5ZD17R4BCXQP9GREATHK7M7QN u1)
(map-set mint-passes 'SP2N0KAWE4W5B83B3MY58FMFV7QBYYWQGDJ7PFRBD u1)
(map-set mint-passes 'SP25B0PCXSGX97SVDSZFGJE9394C3PW7V8350BV7Y u1)
(map-set mint-passes 'SP6X86VF1NZVSFC0PV4N5HTW6171A8DV9METHXTS u1)
(map-set mint-passes 'SP12CNJH71HH691MGC5F2ZA2Y7XSPW8R91YZWJHGY u1)
(map-set mint-passes 'SP1XZGFQRK6EZ7CF16NWPMVTBDBSH123KMYTK969J u1)
(map-set mint-passes 'SP1GAGGDAPC35SEATPK1AR57XX6DPC4MBTNJ28PC2 u1)
(map-set mint-passes 'SP2M95Y1C13TW2BDTJ024H0W8V762RSTW7EFTA2PZ u1)
(map-set mint-passes 'SP18VY33Q0EHFC5HJTED95FQ5M0N8DK6FVCZ25WVD u1)
(map-set mint-passes 'SP1KAVMBCAHJQYFZN5TT56XR1RJGCVTDFBMSSBYKW u1)
(map-set mint-passes 'SP151DAMWW1FZZY21029M9K855AMRE3DP45PEQA02 u1)
(map-set mint-passes 'SP72HX064RA2VDMT62MZWZX05CCZJ5BBGV2J98N8 u1)
(map-set mint-passes 'SP2EC3X1K9EFND32VTEDJKGEZ07HDK91VE86RRCJS u1)
(map-set mint-passes 'SPZ5C8C6WFB844Z92FTKF8MB2DZEKVH5E7RAW9SW u1)
(map-set mint-passes 'SPEFWXM2B00MXRXCD1AZQHJM60JMZGW2VH8YXDX8 u1)
(map-set mint-passes 'SP3J04GRJG36QZA2B26PFXQADT7S2HS0DDHW7VFX3 u1)
(map-set mint-passes 'SP3ZFX6JBRE74X8XF1XQ8ZPG336HP9V9E4ZQW91R9 u1)
(map-set mint-passes 'SP1GNAZ0DE4QSBYBJ3MNX7EA4BT9N794J78563VZ4 u1)
(map-set mint-passes 'SPK6527YFZBJ7MT8Y1P8FPZAAFXMGHVNM2JJMFXH u1)
(map-set mint-passes 'SPM7VN4ZYNQVE7TPWKBKNGMZM6YV9VPPVJWBK3XC u1)
(map-set mint-passes 'SPMDHR05354GBN93KRN53VENX9GYP6ZQ6WZZ51Q5 u1)
(map-set mint-passes 'SPXHQZ647J8100NVFDTYRP5ZQJTAR0MQ5WGM951V u1)
(map-set mint-passes 'SP3WGC7W06ENQ6FX753Z5RMCN90TC9M3APWT8BA89 u1)
(map-set mint-passes 'SP2DWYY205V76HJXCKKAX4BAAM668C1CN8ZNAXP4D u1)
(map-set mint-passes 'SP2GKC5HTFYN6C8GDDENTYR2WM9NY9TDEDQT8AASS u1)
(map-set mint-passes 'SP195R88HSEXFCFE9BJRKCDWEBTR6KJM5W9DC40RV u1)
(map-set mint-passes 'SP3DX059YNMYFHRXHXAHJQDJPFXN6JCFZS1C56WA7 u1)
(map-set mint-passes 'SPKNCSED1EA2BQJVBDE9VP6W1AZSGMGR07QT532K u1)
(map-set mint-passes 'SP1BYMCSBR4491N5EDY8D0WBV3CG5B7HZEATG30B1 u1)
(map-set mint-passes 'SP2V25WQQ851R18E8A92DTGNVZDMSK31CKW44WB8T u1)
(map-set mint-passes 'SP1EX4AG5VW576XE3RYEHHRMF5W5H3MNG8HS6ZVVF u1)
(map-set mint-passes 'SP1096Q7D738E9DT52A2FX0Y7ESA3E49HCE3M7JDF u1)
(map-set mint-passes 'SPYZWBKVEZKHMPYG9RC7QJTPQWR28NK6YCWMCMPM u1)
(map-set mint-passes 'SP16BJ7J4VD5ZDW76Q49X1P12C6Q3WPCQ06SW75AV u1)
(map-set mint-passes 'SPY5Y190FX9MJ6F5AGSP3TYDSRA36QYEAHXY9XV6 u1)
(map-set mint-passes 'SP2RBFGAXGJQ43BJ2W4VX8CK04B2B3K98Q5PSJ4MP u1)
(map-set mint-passes 'SP3AXVEB78NAHS72X9TF7Y0X28N62M0BYVJEFJYGA u1)
(map-set mint-passes 'SP3J0Z8YSJD20TGEBE6M992CWFDG18VB0PR599VY9 u1)
(map-set mint-passes 'SP21ZZ1X5479N44N12SHHPTRK1KB20FTJ4NEV1P4 u1)
(map-set mint-passes 'SP2587T3K81EM6F77WEAFDGPTNF14BHG80EFCJM33 u1)
(map-set mint-passes 'SP21VRXC51VJRYT7S3281Q2WMB9H72H76YTBVB9W7 u1)
(map-set mint-passes 'SP2XCX9GYQ0HDCQ38WDCZ3MTMPGNNDNQ5B619C8G4 u1)
(map-set mint-passes 'SPBC3YRKACYYTC686FYTVQVKHT17X7YP9QV18AP4 u1)
(map-set mint-passes 'SP13XA733B4ZJAM031KZEJJ2FDW0A9WY7DB5QANDH u1)
(map-set mint-passes 'SPEVTZ43P1MHQNZJ9GRTE3BBZ1ZFWNRX87WY63FN u1)
(map-set mint-passes 'SP2GAE1FSAS5DK1AAPWYP4JFSBRMAKXWKWWT1EC13 u1)
(map-set mint-passes 'SP38RF2XW7VKAX370C393FTEVB003HXT8YRS1Q6AB u1)
(map-set mint-passes 'SP1TVWWMFWWMST6YCN8ZT39WASBSQKPJ9MMGE4TPS u1)
(map-set mint-passes 'SP3W6AZ9C08XWQSXM7C9X7XZ6HJ3G0HHDAJ57PZVH u1)
(map-set mint-passes 'SP25NF9BX5QZXS35P0DCJZ7GK2XR5YCME3M443HPE u1)
(map-set mint-passes 'SP16CPK20R7JZJ6S3H0ME63H31658C24H9H306PE u1)
(map-set mint-passes 'SP30QVK8X4BNPYT2SA8MBR295HEXGCJMNQFHEC2HR u1)
(map-set mint-passes 'SP10P477N9V60C2NXEAW5Y8APPS64N0G43JNHRP47 u1)
(map-set mint-passes 'SPM942AQAYEX6GVMRN3TZRWRETGEE2YN3RCYY03A u1)
(map-set mint-passes 'SP2JSNPBPT9W2Z2XEG54N8QYPS7V1XZBQZ6XN4MY4 u1)
(map-set mint-passes 'SP3FBGT4TNHK35ZABJMHPVMH2JHBSWHQ91ES4EDG8 u1)
(map-set mint-passes 'SP203R754F81QE1518GK1S5TS6CCFSXXSEZBYB9R1 u1)
(map-set mint-passes 'SPJBMY5X1XW65XR67DWWVMHEVVKY6JVCGDSMQQDY u1)
(map-set mint-passes 'SP37J02C46VWT6D2VAMAZSBACRVPYKB956E3878SS u1)
(map-set mint-passes 'SP1C5JQBGTDYJVDJM04G9BJ1B2M84FMXGCBHQAFH6 u1)
(map-set mint-passes 'SP1WRWMED416DH5AWV86JAKCTFBQ56Y9QVHXEN3GK u1)
(map-set mint-passes 'SP38GDHXKGGK7ZH3V10113XXMKKTK3Q3G32YV28QD u1)
(map-set mint-passes 'SP66H3PY2Q74QG4VRRYJMDMRTY1845RRWAZFA4H4 u1)
(map-set mint-passes 'SP16T1DDNHE0GW2JY96MSRXPDCM6630Y6654FPKW8 u1)
(map-set mint-passes 'SPBHJ5YX2GR7ZRH18294JZMVG97FM01EQY5PGM7J u1)
(map-set mint-passes 'SPVQH021H69C41XAS08NE3WNGQE41KK7TEGJ3N8J u1)
(map-set mint-passes 'SP360GNNNZZ7VA4QPC3Z2BQPRGCR033AEJN0FHFV0 u1)
(map-set mint-passes 'SP38S2KKKHZ9HZADVWGTSH1T4S67JK23GD0CYNEN7 u1)
(map-set mint-passes 'SP2F5C2R3JCYMYJVZ4MB336CN6BTB53TZBFWSA2FV u1)
(map-set mint-passes 'SP4HNC7YJRC3VQ4RPFZCNKFCZJNYPSVF71AK4DB7 u1)
(map-set mint-passes 'SP36K1QF7EESFXDA99A4GBK7RHB7DH62S6C0PN6CN u1)
(map-set mint-passes 'SP3JNXRDFR9J6MWEWJ6R108EQ93NNGGJSV573DM3J u1)
(map-set mint-passes 'SP1QTFH0BNGWA9FY625A4X3VMRQEA33T5P5SG2P0Y u1)
(map-set mint-passes 'SP1H2W5G9J9NXE2HZ5MXZWBRAA02W1NY9RWQGWQV1 u1)
(map-set mint-passes 'SP3845C9BPVMFYFRN8NDHH0RFAFK3ZWYAAXH7EHAP u1)
(map-set mint-passes 'SPEND8PMG3G267187ZBJ61QYF4KYFVHZKZRWGTXR u1)
(map-set mint-passes 'SPBBB1PG6M2CWFJQ7WXWMQHMCEM52D021QFD4NDG u1)
(map-set mint-passes 'SP3B1PFMEK3PE4GZ5RF10M2M51BQRR2EEMMM81QTF u1)
(map-set mint-passes 'SP1YB33DHF0VEW8QHQZHP0PFJDFXKEZX6NZER7QPQ u1)
(map-set mint-passes 'SP1G0VXPQS3R737217VTDJSMAS81HKZKM8GRHRWHV u1)
(map-set mint-passes 'SP4CECWHGF6696P7VD2ABP52JFT46717M82JJFQR u1)
(map-set mint-passes 'SP1CQ0KPN64TZTPFCHF6K8FCX8H3Q54BPWW5DQ7WF u1)
(map-set mint-passes 'SP36ZD6XED0K6SKVDWVZ01C6XRQPR0K8MJHXWEKD5 u1)
(map-set mint-passes 'SP2HP2ZKFEZPRVQEKM0Z760E14P042ZQSP8J0MFG3 u1)
(map-set mint-passes 'SP3NRQNHCSPVBZM56TSYCTXW5ZRWN2S30HNMFKP2J u1)
(map-set mint-passes 'SP3DQ4P8CTA9S42EVWMVRAYG7CSVKVTZMBTYQ74FV u1)
(map-set mint-passes 'SP1NSBHYKZ4PZ1DBBJA0DXTT05CWJZPM47SR2BWSZ u1)
(map-set mint-passes 'SP178BHN55K20Z8K52JBV87QVV5XACWRMD6S1SREG u1)
(map-set mint-passes 'SP2W7WMZBYCE8H26XF7H9PB3QSPHMNEFXRY54NNYM u1)
(map-set mint-passes 'SP3B21HRFFY540CBJXHBNSVDV5MYK3PNT0Y69XBX8 u1)
(map-set mint-passes 'SP3787E98NVBWME4MBKN441Q885RKS2AA0HHD0AS4 u1)
(map-set mint-passes 'SP2SZWVDWQC32NJKDZE12S0P1V3QQB973M0V9F53G u1)
(map-set mint-passes 'SPAQB6BYXV1FAZJ185HYE7JC4DAT9W9JGVYJVAXH u1)
(map-set mint-passes 'SP2P4CJFK77AKF6A6Y5HN6WV4RFCSBTHP8Q3HR4GV u1)
(map-set mint-passes 'SPBJFB1RA9SA5W85CWY4GWGFKYH59V50KEXER8M9 u1)
(map-set mint-passes 'SP3VC90YZCMBWYFNDTNP7W23D4630TJRF26PRXSSJ u1)
(map-set mint-passes 'SP3PF2YRWZ1JJZEVAHZP90H2899P0CB30N39CPZ7Y u1)
(map-set mint-passes 'SP2ASCC69GQPFWTCCEYXDYQEDN1AQ00Z6SFTQC392 u1)
(map-set mint-passes 'SP8JPV3WDT9NE7EVN6479ZMY2JF238SC7CPRC0S7 u1)
(map-set mint-passes 'SPC4VRQT8TBV877VD15HTM1JZGQ9BER24ZNHCYKH u1)
(map-set mint-passes 'SP36BA7ZZXJN7XNCVPZ1K4N89A1J12VZXFYY2C1NN u1)
(map-set mint-passes 'SP35CH1341K5VT96MZ8BHP1511M3XGV1275PT2HHE u1)
(map-set mint-passes 'SP1RYKCD0Q9M8KF6VGSDGEAS0QSSX58RFAW54G3T5 u1)
(map-set mint-passes 'SP2QZ2S55DJD5CK92NFZMZK1X6B781ZQM0V2HJ9JM u1)
(map-set mint-passes 'SP3MTTY2ZH6RZR5PCQ64722R56ZHDQ6T27HKTEHG9 u1)
(map-set mint-passes 'SP16ATKJZV15WWVQQZ3SV74DBP7HPHRWPSVB1WJ5M u1)
(map-set mint-passes 'SP1R768QHNT5T955VF4EGR5PQXDAJPZH9BMDCKDVK u1)
(map-set mint-passes 'SP2RQ0MJ95W7FTGBP321QN8ET2ZB2Y9AXRMX31FA u1)
(map-set mint-passes 'SP77VBC2TCDY9KPAKHT7J8MW5WJDQPJQGHN8CFGN u1)
(map-set mint-passes 'SPKGAHKK27YPAH9D3PDFZABXK6HFATSCTM156X2C u1)
(map-set mint-passes 'SP27SZSN1XC3849X27YQ0VYR34W8QRPZMA148WPKS u1)
(map-set mint-passes 'SP3ZSH234GTM16C7S3YQBCEGMKAHMDNMX0NW9Z1WA u1)
(map-set mint-passes 'SP37HKRKZVES3S6ZP19NEGEAMQAB7Q173BB9EF7CG u1)
(map-set mint-passes 'SPF0V8KWBS70F0WDKTMY65B3G591NN52PTHHN51D u1)
(map-set mint-passes 'SP39E0J9GDSP0KZ9PS8SKKRSKWC3ZXVPV1NTD7P7K u1)
(map-set mint-passes 'SP2QFPHR0EAJKBSZ1E8PA3PRGVE2SGS7TN1KS1CZ4 u1)
(map-set mint-passes 'SPZVXHP55EAAN3HMQ41DRD6TKJ30897B971GNJHP u1)
(map-set mint-passes 'SP24JYHKNSDKT7KTDW2EJ92R0MM1XFHVKHQRX9F0Y u1)
(map-set mint-passes 'SP3VQ3EV3AD8Q09E3TVH172T7EWEZV1R8PEEBNVRP u1)
(map-set mint-passes 'SP21S6Z86RC717NE2WG09DR0VBZX1SK194PGY4R6H u1)
(map-set mint-passes 'SPTCZT1C1RSM0VZY7GKGT99D82RKM5B8H6T4YM61 u1)
(map-set mint-passes 'SPSK86Q3EP02Q5618EBPH9H4KSWDD1HDBB9SDSK8 u1)
(map-set mint-passes 'SP2DG88NMS982S62GWF2SF34DFMQRC2Q5B6W91243 u1)
(map-set mint-passes 'SP2KGZAMXY5CE2CMF59DY7RAF00KB2RNA708W4GXT u1)
(map-set mint-passes 'SP1G3FCHEZWNXGV9NZ7YG9R6Y168N9RW8HR4VTWTV u1)
(map-set mint-passes 'SP1PMZFE4AP2XP033MEE5A6MAFRN02NBDEA648X5T u1)
(map-set mint-passes 'SP385CENFX0R0E7D5S6QSJ90PDBN50HANR6K9K4X7 u1)
(map-set mint-passes 'SP25F3PJ0E58H0Z49QY8M4TD004AQ73FDQQ1RDM9X u1)
(map-set mint-passes 'SPBE4R18NJMHWEV9R1Z1QJSK00YNBFPR509ATWPW u1)
(map-set mint-passes 'SPKDXGH424M487HTSHGVQ09B2SBJYEXFB87YMFKX u1)
(map-set mint-passes 'SP2YZYQFJAXZCTSKKD2JD4TF043JP4XNAKDZD78S5 u1)
(map-set mint-passes 'SP35Z2QMWD8P16RMVCYZ6F7685GPB5PZFTSVJT0MK u1)
(map-set mint-passes 'SP3E53BWC1RAC8QKFGPGDPHZNSP1X2GP2A8SH457S u1)
(map-set mint-passes 'SP3D2MAQ4Q4QXGZAG64E2E6DGJSRWNG8WM813PM58 u1)
(map-set mint-passes 'SP3PY2KBZXE2PBD532Z16VERQMAP04QZ3TXYDZRZ8 u1)
(map-set mint-passes 'SP11R906JZPRRC663NRE0DN0Y6NYFM7DQSS4YED1E u1)
(map-set mint-passes 'SP3QC4R6M7M0DAZBXSZCW4FWGDCNDD05FV8Y0AY8C u1)
(map-set mint-passes 'SPAP45V7W2HEY59D9QP6WZJ91RZRA4X64SK34R0G u1)
(map-set mint-passes 'SP24HFZK4CCVGWBK5DM7T2K08MEHWCTRDXV5BGKWA u1)
(map-set mint-passes 'SP3EQ4MK35KQYVZA6BVNQDFZB3XGYD11A9D0NK40Y u1)
(map-set mint-passes 'SP1Y6F2J8REJ3ST1ARGFYQGP9AAQ0WQ9XS652PG7A u1)
(map-set mint-passes 'SP2HT2689YMNZFA89GH8RVSAJVM47GWG9YS36R82V u1)
(map-set mint-passes 'SP36FS0EVPCMFCF2S2H88RHYXSK2CG5YQZ4EW2TJY u1)
(map-set mint-passes 'SP2S0Y8EX2YV10Y3BK655GXW8Z5FG1B2VGRDT0C94 u1)
(map-set mint-passes 'SPC0JAKQMEHRXKH56RAK7GFCX3GRWK8ZE77GR4HZ u1)
(map-set mint-passes 'SP1P634TXA9GC4R5CYQFMR7VSNX98BPZE5FCXNKD6 u1)
(map-set mint-passes 'SP1A17CGEJBPEEZAVGBM9B77TA2TT4E6BQ511KQGP u1)
(map-set mint-passes 'SP46VX4JTEMV2GWAJ360NYSA66RF0H94DJYZMAYP u1)
(map-set mint-passes 'SP18JB6MM0R3SW93P5MAP6JGHJE4K41NG28T8GRPP u1)
(map-set mint-passes 'SP1NFT6BYY40QW6F4WG9ZAEX082F0X6CGAKCAHK3G u1)
(map-set mint-passes 'SP7J26QJSAS73W3KHZX0CAENKEESHQ59MP8SC2DQ u1)
(map-set mint-passes 'SP1WP3Y1M610DQWQN5GP9QZNE5WJT3GHE5K6HBYGZ u1)
(map-set mint-passes 'SP2FASB90Y91GWFE0KQMAK3BNNWCF1YGHG35887NF u1)
(map-set mint-passes 'SP2R7KZ6VGARKXEJMF29JHQ1PWR80EWJ8XR9AY9M1 u1)
(map-set mint-passes 'SP1Y5S7Y8R3FBEVD4NFDVYGVXQSKCCQGJEH1XWSF0 u1)
(map-set mint-passes 'SP3SEQY6BMR1KRYYCDQ1EW9MTJ97H3MJZERS1826M u1)
(map-set mint-passes 'SP3NNW6ERCEH72ZNMHAS79QEBTTNRMFSP40AV65B8 u1)
(map-set mint-passes 'SP15347BB2J5GE5M4QJM5W7M5XQT1JKN4F8X0Q0NS u1)
(map-set mint-passes 'SP24FQ37BFPD8MQ63V0Y398CHKT86ADHQWBR1HWTE u1)
(map-set mint-passes 'SP3SC5MMEPKKZSGCS0Q0PGF8Y31WPV539RTVBXTPD u1)
(map-set mint-passes 'SP2VMM4B77S82N3RGJFRQ9C80KP03DAZRMRAWYEKZ u1)
(map-set mint-passes 'SP3BDRTF8ZE009YRRFBVZSM01GZPCK98WXASYV4JD u1)
(map-set mint-passes 'SP1S23PXWKHEM3BD1XDBBXQSBC3RAZGKC1WE8N3A3 u1)
(map-set mint-passes 'SP1MWVQ9PF33M6WF4ZTYPEJMTEDG8HZXQKPAFDFTG u1)
(map-set mint-passes 'SPF5GKH57Y9AW71P741BW49BTHGT56Q3BBRJ98R0 u1)
(map-set mint-passes 'SP3EQPAH0DNQW4FFN1KFWQJGT7WAGP27VB57Q4CTK u1)
(map-set mint-passes 'SPJC0R7BYZQ8JHQY9B1E3R7ZVT3SSG5HQBNJKJGM u1)
(map-set mint-passes 'SP3FC5W5RA9QZGFEERSN260BYJ8AMQ28C2P01X3VR u1)
(map-set mint-passes 'SPQ16BRNYERB0YN1H21KX1HCHT8J836BB8W1RYG3 u1)
(map-set mint-passes 'SP2F1JZEJ2R0Q1S5R23QQ2T8BARBQB1WCSYZT9A4M u1)
(map-set mint-passes 'SP2M60P8PYSWEZ59MS2G21RPP9H75ZVBFZEHKCWJ6 u1)
(map-set mint-passes 'SP14GHMK3FAPDPM07MMAJZE675KQSZMVB1BZ90750 u1)
(map-set mint-passes 'SP365Z44H0GVWEP3BJ64MQVFY9H3XYTECKGAV14J4 u1)
(map-set mint-passes 'SP30XX3EKCCY8RNCH5K992X2ZVX0JWG1ZZP9C7TNF u1)
(map-set mint-passes 'SP3SAB6NV3DZ5JWXFNWG21H6WEEN187PZED2HE4F3 u1)
(map-set mint-passes 'SP3KS74B0QET366V1GQ24M7DCYFAG4H5XBG9DWQVS u1)
(map-set mint-passes 'SP14D0JZN9WABM1B6ZDDEFSWGHS3QWNKGCZ63APXX u1)
(map-set mint-passes 'SP355RMNS7XB9FAEF9CPQ7F36PXD94R40G1Y2NKEG u1)
(map-set mint-passes 'SP1D6E6431BS4Z8HWXYJ8NH1KZXH7QCJMGD7JHVWT u1)
(map-set mint-passes 'SP3QEWY11T6FNWZ5M0Z17X37D13SQYCVNJVAYTNR3 u1)
(map-set mint-passes 'SP3M3HWWDYAX53ZEEE3DTZ9R4BTM4Q7HKT8YV7TWT u1)
(map-set mint-passes 'SPP6S8XT33P0CZX4GR11T8X7DZSTPSCW5MVQVRB6 u1)
(map-set mint-passes 'SPYFXCY40KC5E60V5Z51JA27ETQ0M4XDFFD84AXF u1)
(map-set mint-passes 'SP1VS6A0R0SS63GSEPRE7F5FY2BATKG5262KFVWQ1 u1)
(map-set mint-passes 'SP30NY001473GS8E2PKDDECS951M6QJY95B7QETF6 u1)
(map-set mint-passes 'SPBWF76FHRNA9C1A6ZZ896B3XRRK5TGGW7X9A55A u1)
(map-set mint-passes 'SP3ZG6PY7RT9VFJCD09QRY2Q5DQYB713CQVE4KDN2 u1)
(map-set mint-passes 'SP14RDZYKB3KRZVZDTZRT3E2N019R1TTKZT3C5TE0 u1)
(map-set mint-passes 'SP22KF7P4GZ38GVMGHRYECF0XPPDHSCQND5ABC33M u1)
(map-set mint-passes 'SP1A320W77EJ5NJ00R02MYPJCMMR080SK66BN3TV4 u1)
(map-set mint-passes 'SP3THFNJVG2WC88RETECSJPN67PB020ZCZYW2H9HK u1)
(map-set mint-passes 'SP1K7QH9K7QPY3T6GTYVFG98NVD7ZHGMAT97VKW0 u1)
(map-set mint-passes 'SP26MW433VM7532QH5ZDHEHAHZ58GW8J15WBCJ5A5 u1)
(map-set mint-passes 'SP3VJSS4WKRANDD2V2AG89JKBZ8WMSAQYYEF57NBG u1)
(map-set mint-passes 'SP2DM8E8Z9GZJXBPV8Z0HM21KN6B9MSTBVSR5GP8Y u1)
(map-set mint-passes 'SP3539NAQZWPECM8ZYPWTRHRQ5Q4623HRCCPNEQ8B u1)
(map-set mint-passes 'SPRVQT3N4CNH609SVB1MJ641EEKG37KTFJZPTDTW u1)
(map-set mint-passes 'SP375J1N3DBY70S6XCB22KCHTMXVKBGMZWX70X5WS u1)
(map-set mint-passes 'SP2AFS93R0SNHCHHFCH9X9CJTPSHFD1PNM75F6AWD u1)
(map-set mint-passes 'SP3VRGRC2GSRCXYNGF6E6KBS3NSJ95196DDX3FED8 u1)
(map-set mint-passes 'SP3E99BKKWPM0HRB48Q5NFE40WJNN4896V9RDG2MK u1)
(map-set mint-passes 'SP520XAE70F1E4QVBC82Q4WPJP7ZXGCQVSRATC92 u1)
(map-set mint-passes 'SPH0GT8AF76WB9VY8MM4PGY3Q5JTQNQ278RDW0H6 u1)
(map-set mint-passes 'SP3PZHFW0YNX6X64T5HSMK8TQ8101CF9JBAB59JQ u1)
(map-set mint-passes 'SP2A3ZWSWC9ZTYKXH4HTTW6K96RCAV52XT3J9AHSK u1)
(map-set mint-passes 'SP1HRT6MPNPS94QY4T818AW0QPS73ZF60DTGCP1V8 u1)
(map-set mint-passes 'SP3ZSBAJVWPJN7YTNH35KJGZWH3HGGWR33QVEFXH4 u1)
(map-set mint-passes 'SP1BQPR680MBSPX36C8BGK8F9DMQYSVQ92KPYZ7Y4 u1)
(map-set mint-passes 'SP3P8GFF3QH1ZQYHMAQ0777FT0Y89AWVDBH2K613A u1)
(map-set mint-passes 'SP32479EMZ9BN2GJT70ZG7W0809ZX9EYXEAKEHRT2 u1)
(map-set mint-passes 'SP19G6M867KP6V5Z6Z7S3T06JS3DWCSWAXB5H9WFD u1)
(map-set mint-passes 'SP202EQXMSJ08JKKKQDZ26TWQRCGN7MWNJAXNV5NQ u1)
(map-set mint-passes 'SP3ZB8J8H8BR3RWVGW9HATT54TZ5MBV0MB89DKXZR u1)
(map-set mint-passes 'SP23QX5X5D2WDPQWAV9J214DWF88P41TMD90M1D4Y u1)
(map-set mint-passes 'SP399YK5JQ3Z7WWYBSV6NRB89MSKV07WE9BGZTQRY u1)
(map-set mint-passes 'SPNAKYGSZW747J3AA5JF43VMSYREV22KTM4W5G79 u1)
(map-set mint-passes 'SPA4S8WJQP6WBJQXYP395TN9HSQ4AS687ZPPTJMD u1)
(map-set mint-passes 'SPSN0CCPJZZG3ZF0099RQ7ZFHRR17RHS17Y4SFMF u1)
(map-set mint-passes 'SPFXRC8N77M339PR0BJASP3B1SGVZ8J5SFASCQQK u1)
(map-set mint-passes 'SPY5V836NH7DJ1WG8X5TCH2G0799XZK9JZYT5Q3K u1)
(map-set mint-passes 'SP13CKQBSWCQ3RPG775JXN9RHN7NC660RMEWFR5CV u1)
(map-set mint-passes 'SP1XESTNST2W003KY4ZH3RJRAF7FBYK5PPWQ70NZC u1)
(map-set mint-passes 'SP1B6GZR961KZWCAAXY9CZVTVXCS24W2K4962BP0T u1)
(map-set mint-passes 'SP31QET820BNNS6HET0MGXMKWC6HF0D5V4YXDKFG2 u1)
(map-set mint-passes 'SP2FXT97RJ59HNZN3XQX6VPDJ8A5XZPTYY3JS7G6A u1)
(map-set mint-passes 'SP3S5KFWY5H8BERS2ZA2X4T5NEV66FCTTG6VZP4ZD u1)
(map-set mint-passes 'SP3GRNYW389SE36RTW6KMF54QZVG1AJP8XPMNSJ1X u1)
(map-set mint-passes 'SP2286T7PH5G9PYJ6BFA6Z7ND956ZV0P8KT6XR0K8 u1)
(map-set mint-passes 'SP8SF5BQ1KPG56RM57NP9EG040T2ZGYYAS852WR0 u1)
(map-set mint-passes 'SP1WK5MA8RPTT10C2EQ4BEQYN3BBEYY8MCY5FFKRQ u1)
(map-set mint-passes 'SP2VY20D9G3P4VXEN06SYEHE4YQEH9W5NNPJDEJ6F u1)
(map-set mint-passes 'SP36MA6C287NE2QVQ41B2HPDXGMMPW2VZQPHGQQPD u1)
(map-set mint-passes 'SP1FFX5FWK8WPGJ3PH74S8947HVJJFWDJ582RG8JR u1)
(map-set mint-passes 'SP21ST5MTGH478AFW1CC38QJB9BJKWCS9NGZK741F u1)
(map-set mint-passes 'SP2ZGRQAC7QGSGJ56BFARBE74BZTMGP7W0X13A44Z u1)
(map-set mint-passes 'SPM02ZRDDZKQMA6GYQ46FN533EXJY2M22VK3Y32E u1)
(map-set mint-passes 'SP28NZDJZV59C3Y3C4FJ61MBY5Y1JCCA6CHQWV6MZ u1)
(map-set mint-passes 'SPJH144XQV4YAJJTD5FMWN97N46F6PVP6B4R1KPE u1)
(map-set mint-passes 'SPGDQ0NPDRCF1S4FDV9ERSDFR71AJ6MSNP3B9SEG u1)
(map-set mint-passes 'SP1Y7JPA6M3GX2ASDH6NA097VQYT7VA8P4GVWFWSF u1)
(map-set mint-passes 'SP1228JDZ93RYPRT12DCVW9RKV4RWZM4E27DKR49R u1)
(map-set mint-passes 'SP37WET9FZZ0V3N87Q71897HK138VTSFDRWJ1NZS u1)
(map-set mint-passes 'SP2NZ70PDPBGFWRJQXF5AA3YW60JPTXBRJVVCESCQ u1)
(map-set mint-passes 'SPQ9B3SYFV0AFYY96QN5ZJBNGCRRZCCMFHY0M34Z u1)
(map-set mint-passes 'SP167QD5PJM6XQW5REZ24ZCN8D489PA8JC5653TF9 u1)
(map-set mint-passes 'SP1GP63F8X8GK67B4DJPRP29AW62YA77Q7QJSJZ1W u1)
(map-set mint-passes 'SP2BYA2WE3JZHVRDVPZ3F97HY6MR73YG9DP9QWJSN u1)
(map-set mint-passes 'SPQ1XYW6299VGZMGPTKWGTM9T0CNS9M0J8M3VEB3 u1)
(map-set mint-passes 'SP17JMNKCRWEEQWSQTSQ60N4C6B5FFJQP6XYVHDG6 u1)
(map-set mint-passes 'SP3R8P1JR378HS2XXGACA32ZN09XKR5WRKQXCHNXC u1)
(map-set mint-passes 'SP1RQ3XMR0RGZ7Q3ME8XP84KJWAAHYJTZTE6HB953 u1)
(map-set mint-passes 'SPX8MGMXGNCHMNJ8NNG1E8E94WGV5WP53K344FNM u1)
(map-set mint-passes 'SP4J0VQYW861BR9TQZDZD6FS50XPT39CSKQKV08D u1)
(map-set mint-passes 'SP35TTYBWC3SKAT4DSYXE5KYFCZHXE3KDT4BRDMWR u1)
(map-set mint-passes 'SP3HA6TAQPFWQ1AJNA1QAPE1FV35YAMZBXG1D658Q u1)
(map-set mint-passes 'SPM6XQ0EEZC7ZZXP882QE2PWEPDJQ2F4YS6Y0SR1 u1)
(map-set mint-passes 'SP322MZH33TRF1KDD3746FMN29JVCEX4086RBSZQR u1)
(map-set mint-passes 'SPCXFP3VKTZ9NG2C26AAZARP3F3Q8E9GV3PVT7HD u1)
(map-set mint-passes 'SP34YFC963C5T6JTR9FYG8HXPNDY06NTR9KX4MX13 u1)
(map-set mint-passes 'SP8DSAT8MN8QG2QY6804VE78JPTRM9PQXQ5X0BSE u1)
(map-set mint-passes 'SP3SZ1MJZFJXVP26Z0KG78T8DPGYCN8DK4GKXKP52 u1)
(map-set mint-passes 'SP2EX6YKM52T7GMCTJ8E2CTGMPVB4YBTJE5R0QZY5 u1)
(map-set mint-passes 'SP2B4E6H9KPCQ87A9M51GBH8ZSNS97BK7V8P05AM3 u1)
(map-set mint-passes 'SP650EAE40CBKBNMARBNEPCZK3B4B2M8VTPWR215 u1)
(map-set mint-passes 'SPFC2BR2D0WNWSDPPYGPQQKAQFXKT2YPYNWE88RK u1)
(map-set mint-passes 'SPCF3H8WRCD165HS6M7VK3VFMJPS528JPZESF13D u1)
(map-set mint-passes 'SP3A2SDGTY09XCP9VAE2DE8H8G8Q392GDDYTYV1M7 u1)
(map-set mint-passes 'SPHZW8N7EMXHY7N72JNE2EE1TD4Z1FZ8GENAHYFS u1)
(map-set mint-passes 'SP378CF4A9YTFMM5HWYPRPG5PC4D4EFVWW1FDKJC9 u1)
(map-set mint-passes 'SP7JC2QPN0101W9SXYQ2P953J4Q63P6T0P548WKQ u1)
(map-set mint-passes 'SP1BF4EVVHGA3NP0272SWTFG2HMNNVGEZ849SMJKV u1)
(map-set mint-passes 'SP1Z7F0BP9APG6SGY9G9DZ7RSH1ZCW8HWBJ3MQWA3 u1)
(map-set mint-passes 'SP2XVWTWQKJ21B96R16F6RJ52ZFWP1YW79A2PCHAG u1)
(map-set mint-passes 'SP2M97DK26MGP0JVDDHCTEYMRJ6SS70N60NR14TPE u1)
(map-set mint-passes 'SP3G3FGJ5FWYJMZZ839QS05BMXYSEHVM6NHBYFDXM u1)
(map-set mint-passes 'SPQNTBQZKPH9GQ6D3DPAJHHYQT7DT7P7Z5GAYPYG u1)
(map-set mint-passes 'SP3RAC0Q8M4Z14VBC2ZKZAQQJWZRN5G87S7V1BRB u1)
(map-set mint-passes 'SP3Q153X2W85JN7K05V1PPCY4MXMZ60BV3DX3P74 u1)
(map-set mint-passes 'SP23SSRGP2CWD7Z5FJWS9DT5HK49N35SVENGQT86Z u1)
(map-set mint-passes 'SP1EVYXEPGK9T70EHHYBXADCKBZMJE06AF5BQ2M1H u1)
(map-set mint-passes 'SP31QH1M2PD3ZSFJEE190AA7C9ENRBW228KSXCH6V u1)
(map-set mint-passes 'SP2X9Z4W97Y243J4J7YVR8TYH14YJSHEMS42NY9FM u1)
(map-set mint-passes 'SP2CAHSP9XQ3JK3N2Y29RRZZ0JCEQ5T84792S83KR u1)
(map-set mint-passes 'SP2D2HJJYSBKFQRVPSGGKVTSDWT5XE7MM74G99NVF u1)
(map-set mint-passes 'SP2J45CXXJJKQPS5X13F7DJ88B5YGV5345BZ6VH9W u1)
(map-set mint-passes 'SP2ST90VE66R4GDQ50RVQKWS2B8N6KPTKVMJ9NEY2 u1)
(map-set mint-passes 'SPAFRYT831WS7ZRHGZBPMNCBJRBC0ZT884HFXERA u1)
(map-set mint-passes 'SP5D4C4DM0TSXKFJJ49V05B59PQ4YB4QVJA8GD8T u1)
(map-set mint-passes 'SP3HJPQMYJGB7E4JS34TA3G3PM0VW35363FH13T16 u1)
(map-set mint-passes 'SP3W3P6JW04MPZ2Z2BXJK733S18EWQ9SEV7Q8E7VH u1)
(map-set mint-passes 'SP3CVVD7P8M3K5ZDB8XWRGQX37XKXVSNWFV1V4Y2K u1)
(map-set mint-passes 'SP1D836JJYX8B0DN0PPM6E4GJYFX23EF11MJ809EZ u1)
(map-set mint-passes 'SP11CHC6YQFECHGKWP61MZ5FY1S9XC1HN99MZVV58 u1)
(map-set mint-passes 'SP1WQFRNTNZ692P9ZQD9AW62MZR7GVBVQ0A8CE5CM u1)
(map-set mint-passes 'SP3KJGB642P5DJD8JFEVMZZ1PJKMANV8G92RFXXSM u1)
(map-set mint-passes 'SP3RZK7VJ3VKZAEKNGE34ACG7FMX6CQXBKTTR7G6E u1)
(map-set mint-passes 'SPF73VDGN40DJCNPS3HWS9BNCCR8EA3JY2E4CSXA u1)
(map-set mint-passes 'SP1R0SEBK9GZ9S7KAS36RQVZ92B6P5SBANMCRJJFF u1)
(map-set mint-passes 'SP26XS066PNXV9M28HP4EZVS7R36JWVGERW58H5KW u1)
(map-set mint-passes 'SP313BVMGEV6PB417V8S42KVZ8A83YN2M48VNE4JC u1)
(map-set mint-passes 'SP2YYTG7G861E06MP8FF2C67F8H71AKWGWPYKY8GH u1)
(map-set mint-passes 'SP5HT6PS4V2M9CD62VM48FEXZ36CBM67BZ7VZ0FZ u1)
(map-set mint-passes 'SP3ZT37W0M4FAQ5ZAMJTRA29X61HCR7MHKHWP1SRY u1)
(map-set mint-passes 'SP13Q56ZZ2XEAV0TWH7DE0Y47R0NGZVSVBQQQ0HGV u1)
(map-set mint-passes 'SPHVPXP5B84VGCMAN8GW4HBHW60V7B5D4340X8Y0 u1)
(map-set mint-passes 'SP6DFFAPEN63TA9EVHHT6P7X4N2ZFQAM4ZA9CD62 u1)
(map-set mint-passes 'SP3TXT99NWGW8YRZ38FH9G7TQW22FA5EWJ2MKTPWZ u1)
(map-set mint-passes 'SPJ5EQ828NA3PCG71SXB6N6B61P9HDCEDVWGRWFB u1)
(map-set mint-passes 'SP1521ME4EHYKK7K62SRP1DVWXJ7T7VFMFAG640AC u1)
(map-set mint-passes 'SPSFDTQXTN62FM260RKA50PY4FKMHWBY7AGXAD86 u1)
(map-set mint-passes 'SP1TP5Y9E0FWA6J2A7TPWSFXCV2C5A1BMVYBVAQNN u1)
(map-set mint-passes 'SP1YG9N6QQ95436HB67J893D6CV5PM3CDB95BCPWE u1)
(map-set mint-passes 'SPSQ2XRERD9KZ2CGX68Z7S96ZRXYTXB0N945WSNS u1)
(map-set mint-passes 'SP257C3DMTE0QVV452JC0WC0J3JVF77367KMH8WDH u1)
(map-set mint-passes 'SP30F2DJSFBXJ92YX517W5CDT8EKNNRZTD1XSRVS9 u1)
(map-set mint-passes 'SP3CN287XZC7DARA3A3C1FMVJV6C637HT1EDVXDB2 u1)
(map-set mint-passes 'SP168RS6TQBH5RFQ62TR5N2ZGPJY4TKPJT7RP9NKV u1)
(map-set mint-passes 'SP1E3ZXZFV03GVCRWBBY9677SJ8AGQQNZDQ54EZRF u1)
(map-set mint-passes 'SP367XZAFV69MN6K7XYZRJPQM09THTQD1S3QBWW3P u1)
(map-set mint-passes 'SPXPR9RGQBTHX3J90GZM9GK4V77B9C0DHF5DG7KH u1)
(map-set mint-passes 'SPDQFR7Z7QRTY8C3V1D84C35S7TK5P484KARD188 u1)
(map-set mint-passes 'SP2YKZXFACP9JV4T7GD78FEW9HV95PY40J55GDP5D u1)
(map-set mint-passes 'SPN3AV2KQ8HYFHGKC34SGVSS9TNMJXG56GXRSR70 u1)
(map-set mint-passes 'SP3F0TJW8PTVGXSTC3XQDYYM80B4WMG9NJ5NV3KMB u1)
(map-set mint-passes 'SP1JA2BJK7XJX65CCJKA4Y3JGCRVG4KPWEWR330KX u1)
(map-set mint-passes 'SP1EYT3DXJKB94030R1J6MEZP2QYCSTZN7ZGCKBKG u1)
(map-set mint-passes 'SP2ER6MWHMH2CZN7M8NB3YSGDD4RW63TJCR6RNRDJ u1)
(map-set mint-passes 'SPZ4DF9N43ND15AW2NZ7HZRVCNME1Z25KAKDWBKA u1)
(map-set mint-passes 'SPP7X78KGYTMJZ662TMPWZMNYACSGSB29VFMKVY0 u1)
(map-set mint-passes 'SP2Q7ET512Y8WFK0B53RAMH2SQ5XT4T8T7FY1M8Y4 u1)
(map-set mint-passes 'SP1T0W769CRWYYZTJ91MAF7V2BV64Q34H9P0FW5Q5 u1)
(map-set mint-passes 'SP1FRGRY89ZEA78367D8C428EFB19JFWQSZTSBZFH u1)
(map-set mint-passes 'SP1KD2BS98HCAEZQB3A4AXNS2KNAFTXF2CTJBQWF6 u1)
(map-set mint-passes 'SP1R87EXE2QND23KZSCN6Z7BPPVHB5NM6Y0X2XM9P u1)
(map-set mint-passes 'SP1GVKNGWJDPSJ326RW4MWZGEP9MXQAXA89DN0V1K u1)
(map-set mint-passes 'SPAQJM1YVNKYWSTZYGAKDZ6HJ1BYRHD2KSGH7Z5C u1)
(map-set mint-passes 'SP2KGEV3H9RDZYTFFP6TPKRYNMDQFSF6BSFKFRB1M u1)
(map-set mint-passes 'SPFCNM5M9774F3ZXTWGQGVEG64XRQQY2XFESF86Z u1)
(map-set mint-passes 'SP3G5PJQAY4S02HC85D5SCJPATBNH3B6JRRRP6ANN u1)
(map-set mint-passes 'SP25CWS3QVK1QP1MKN8VDX70X64GBNNMCV758HCY3 u1)
(map-set mint-passes 'SPWXDQFD9V054T40RYSPJ489FDJ61BPSZWYB8870 u1)
(map-set mint-passes 'SPFGSGSTJQE111T1H22QJFAMX0D4QDGVQ5Y4JR0C u1)
(map-set mint-passes 'SP3RDTKZ98NBCEXQN7JFKY3QF7AH9XBY34NTFZBKK u1)
(map-set mint-passes 'SP2P628XY4BWKZ3E338FZENQVR4M4A5VV2ATX5DQV u1)
(map-set mint-passes 'SP2QVKZ2GWP97TW4RNCT8TN65JRJPVAKERHYSS13E u1)
(map-set mint-passes 'SP21GTVTEEDQBBQSK6FPEG4G4XGQRJGJDQV41CAD u1)
(map-set mint-passes 'SPNE7JS4B11TKZ7JVEE6596XTMS0DKW1CJQWASMT u1)
(map-set mint-passes 'SP3GPV7YEVS2VNFYYXEJA4HWXA0HFX4SMFK9F12P7 u1)
(map-set mint-passes 'SP3RJ4B1HEN31XDQF1ZDY33WC2PWKFCGGH7PR7PQR u1)
(map-set mint-passes 'SP11F9RDXFPP8XCQ4V1QSE1E0CM3X2DQVEKB6WXT8 u1)
(map-set mint-passes 'SP2KERESFDKQ6CRDF4BBXXN5QSYVYT4R0QPCHT8D8 u1)
(map-set mint-passes 'SP2KM83HWZWNMM0B20697PSG76CRRRHBNC1NTZDAE u1)
(map-set mint-passes 'SP3HMFVDB51BZRWVMANH2ZB8Q5CVHGG6914X9FAVY u1)
(map-set mint-passes 'SP1BKQW0PP15TZYSPADDWPZMM6QT935GWH9R761P2 u1)
(map-set mint-passes 'SP1N6QYMS4771B58J5WDQMX917F2ZQJVD48RJH047 u1)
(map-set mint-passes 'SP2VSZ4SZCZJHJDQPJ24YA8FXYHHEKSY59KPGHWFM u1)
(map-set mint-passes 'SP2ZG3MMHRVYF8NFZX9E4Z8M5ZBZ74WXPMZWNW2Q8 u1)
(map-set mint-passes 'SP28XE6DYER1NK8WJSCGNSN88T6XFSFDWHK428PKX u1)
(map-set mint-passes 'SPJR8KVS6GWE605ADXPJV3C74A9GJ2RAQGC264BB u1)
(map-set mint-passes 'SP32ZVAYAJ545BSN5PR90HB6K9M952SM75D3Z3PKB u1)
(map-set mint-passes 'SPVSN3PG62Z4WTVC9Z59032164E2S0FRWVNFJ8PP u1)
(map-set mint-passes 'SP2GTCD99SBBQ4ZH62EXX9HZHD6Y5DP929RK7R7N2 u1)
(map-set mint-passes 'SPA2ZFXWKSH8VW0WW4W2G0ZA9EXSJ7CMH9HDEJB7 u1)
(map-set mint-passes 'SP18QG8A8943KY9S15M08AMAWWF58W9X1M90BRCSJ u1)
(map-set mint-passes 'SPTETYQFT9B9CK357K88PCF52TBZQ1WP9S3AR4S3 u1)
(map-set mint-passes 'SP14W78Q821B3HQ3ED30624Z1F13X4JMFZY3N5SK4 u1)