[ { "inputs": [ { "internalType": "bytes32", "name": "_WhiteList", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ApprovalToCurrentOwner", "type": "error" }, { "inputs": [], "name": "ApproveToCaller", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "OperatorNotAllowed", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "IS_PUBLIC_ACTIVE", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "IS_WHITELIST_ACTIVE", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" } ], "name": "PUBLICMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "PUBLIC_COUNT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "PUBLIC_Minted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PUBLIC_PRICE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PUBLIC_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PUBLIC_TX_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PUBLIC_WALLET_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WEBMINT_ADDRESS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "name": "WHITELISTMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "WHITELIST_COUNT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "WHITELIST_Minted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WHITELIST_PRICE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WHITELIST_ROOT", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WHITELIST_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WHITELIST_TX_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WHITELIST_WALLET_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_revealed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "numberMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "revealed", "type": "bool" }, { "internalType": "string", "name": "_baseURI", "type": "string" } ], "name": "reveal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "URI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setPUBLICPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_supply", "type": "uint256" } ], "name": "setPUBLICSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setWHITELISTPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_root", "type": "bytes32" } ], "name": "setWHITELISTRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_supply", "type": "uint256" } ], "name": "setWHITELISTSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "togglePUBLICMintStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "toggleWHITELISTMintStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxSupply", "type": "uint256" } ], "name": "updateMaxSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "amount", "type": "uint96" } ], "name": "updateRoyaltyPercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405261042d600c55610417600d556001600e556000600f60006101000a81548160ff0219169083151502179055506000600f60016101000a81548160ff02191690831515021790555060056010556001601155600560125560016013556602738d24e520006014556618838370f34000601555600060165560006017556000601b60006101000a81548160ff02191690831515021790555060405180602001604052806000815250601c9081620000ba919062000bef565b506040518060800160405280604c815260200162005c04604c9139601d9081620000e5919062000bef565b50348015620000f357600080fd5b5060405162005c5038038062005c50833981810160405281019062000119919062000d16565b733cc6cdda760b79bafa08df41ecfa224f810dceb660016040518060400160405280601281526020017f5468655f506978656c5f4361707461696e7a00000000000000000000000000008152506040518060400160405280600881526020017f50584c434150545a0000000000000000000000000000000000000000000000008152508160029081620001ad919062000bef565b508060039081620001bf919062000bef565b50620001d06200042c60201b60201c565b600081905550505060006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115620003cd57801562000293576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b81526004016200025992919062000d8d565b600060405180830381600087803b1580156200027457600080fd5b505af115801562000289573d6000803e3d6000fd5b50505050620003cc565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200034d576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b81526004016200031392919062000d8d565b600060405180830381600087803b1580156200032e57600080fd5b505af115801562000343573d6000803e3d6000fd5b50505050620003cb565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b815260040162000396919062000dba565b600060405180830381600087803b158015620003b157600080fd5b505af1158015620003c6573d6000803e3d6000fd5b505050505b5b5b5050620003ef620003e36200043160201b60201c565b6200043960201b60201c565b6001600b81905550806018819055506200042573c858db9fd379d21b49b2216e8bfc6588be3354d76015620004ff60201b60201c565b5062000f65565b600090565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005218282604051806020016040528060008152506200052560201b60201c565b5050565b60008054905060006200053e85620007ec60201b60201c565b0362000576576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008303620005b1576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620005c66000858386620007f660201b60201c565b600160406001901b178302600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060e16200063360018514620007fc60201b60201c565b901b60a042901b6200064b86620007ec60201b60201c565b1717600460008381526020019081526020016000208190555060008190506000848201905060008673ffffffffffffffffffffffffffffffffffffffff163b146200075c575b818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46200070860008784806001019550876200080660201b60201c565b6200073f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808210620006915782600054146200075657600080fd5b620007c8565b5b818060010192508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082106200075d575b816000819055505050620007e660008583866200096760201b60201c565b50505050565b6000819050919050565b50505050565b6000819050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02620008346200096d60201b60201c565b8786866040518563ffffffff1660e01b815260040162000858949392919062000e82565b6020604051808303816000875af19250505080156200089757506040513d601f19601f8201168201806040525081019062000894919062000f33565b60015b62000914573d8060008114620008ca576040519150601f19603f3d011682016040523d82523d6000602084013e620008cf565b606091505b5060008151036200090c576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b50505050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009f757607f821691505b60208210810362000a0d5762000a0c620009af565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a38565b62000a83868362000a38565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000ad062000aca62000ac48462000a9b565b62000aa5565b62000a9b565b9050919050565b6000819050919050565b62000aec8362000aaf565b62000b0462000afb8262000ad7565b84845462000a45565b825550505050565b600090565b62000b1b62000b0c565b62000b2881848462000ae1565b505050565b5b8181101562000b505762000b4460008262000b11565b60018101905062000b2e565b5050565b601f82111562000b9f5762000b698162000a13565b62000b748462000a28565b8101602085101562000b84578190505b62000b9c62000b938562000a28565b83018262000b2d565b50505b505050565b600082821c905092915050565b600062000bc46000198460080262000ba4565b1980831691505092915050565b600062000bdf838362000bb1565b9150826002028217905092915050565b62000bfa8262000975565b67ffffffffffffffff81111562000c165762000c1562000980565b5b62000c228254620009de565b62000c2f82828562000b54565b600060209050601f83116001811462000c67576000841562000c52578287015190505b62000c5e858262000bd1565b86555062000cce565b601f19841662000c778662000a13565b60005b8281101562000ca15784890151825560018201915060208501945060208101905062000c7a565b8683101562000cc1578489015162000cbd601f89168262000bb1565b8355505b6001600288020188555050505b505050505050565b600080fd5b6000819050919050565b62000cf08162000cdb565b811462000cfc57600080fd5b50565b60008151905062000d108162000ce5565b92915050565b60006020828403121562000d2f5762000d2e62000cd6565b5b600062000d3f8482850162000cff565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d758262000d48565b9050919050565b62000d878162000d68565b82525050565b600060408201905062000da4600083018562000d7c565b62000db3602083018462000d7c565b9392505050565b600060208201905062000dd1600083018462000d7c565b92915050565b62000de28162000a9b565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000e2457808201518184015260208101905062000e07565b60008484015250505050565b6000601f19601f8301169050919050565b600062000e4e8262000de8565b62000e5a818562000df3565b935062000e6c81856020860162000e04565b62000e778162000e30565b840191505092915050565b600060808201905062000e99600083018762000d7c565b62000ea8602083018662000d7c565b62000eb7604083018562000dd7565b818103606083015262000ecb818462000e41565b905095945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62000f0d8162000ed6565b811462000f1957600080fd5b50565b60008151905062000f2d8162000f02565b92915050565b60006020828403121562000f4c5762000f4b62000cd6565b5b600062000f5c8482850162000f1c565b91505092915050565b614c8f8062000f756000396000f3fe6080604052600436106102e45760003560e01c806370a0823111610190578063b47895a4116100dc578063c600af6611610095578063dc33e6811161006f578063dc33e68114610ad7578063e985e9c514610b14578063f103b43314610b51578063f2fde38b14610b7a576102e4565b8063c600af6614610a32578063c87b56dd14610a5d578063c960137314610a9a576102e4565b8063b47895a414610955578063b88d4fde14610971578063baef3a161461099a578063bd70b458146109b1578063bdf2f540146109dc578063c1345dd514610a07576102e4565b8063851285cd1161014957806395d89b411161012357806395d89b41146108ad578063a101ff6d146108d8578063a22cb46514610901578063a581ad451461092a576102e4565b8063851285cd1461082e578063887138d6146108595780638da5cb5b14610882576102e4565b806370a082311461073f578063715018a61461077c57806377181068146107935780637c65f69d146107bc57806380949139146107d85780638342083a14610803576102e4565b806332cb6b0c1161024f57806355f804b311610208578063690b3aa4116101e2578063690b3aa4146106955780636e56539b146106c05780636ebeac85146106eb578063702fa95814610716576102e4565b806355f804b314610604578063611f3f101461062d5780636352211e14610658576102e4565b806332cb6b0c146105305780633ae1edbe1461055b5780633ccfd60b1461058457806342842e0e1461059b578063457871a2146105c45780634715fbc5146105db576102e4565b80630cc54d5a116102a15780630cc54d5a1461041f57806317e7f2951461044857806318160ddd1461047357806323b872dd1461049e5780632a1d6190146104c75780632a55205a146104f2576102e4565b806301ffc9a7146102e95780630563a4af1461032657806306fdde0314610351578063081812fc1461037c578063095ea7b3146103b95780630af7cb89146103e2575b600080fd5b3480156102f557600080fd5b50610310600480360381019061030b91906135e4565b610ba3565b60405161031d919061362c565b60405180910390f35b34801561033257600080fd5b5061033b610bb5565b6040516103489190613660565b60405180910390f35b34801561035d57600080fd5b50610366610bbb565b604051610373919061370b565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190613759565b610c4d565b6040516103b091906137c7565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db919061380e565b610cc9565b005b3480156103ee57600080fd5b506104096004803603810190610404919061384e565b610dd3565b6040516104169190613660565b60405180910390f35b34801561042b57600080fd5b50610446600480360381019061044191906138bf565b610deb565b005b34801561045457600080fd5b5061045d610e00565b60405161046a9190613660565b60405180910390f35b34801561047f57600080fd5b50610488610e06565b6040516104959190613660565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c091906138ec565b610e1d565b005b3480156104d357600080fd5b506104dc610f6d565b6040516104e99190613958565b60405180910390f35b3480156104fe57600080fd5b5061051960048036038101906105149190613973565b610f73565b6040516105279291906139b3565b60405180910390f35b34801561053c57600080fd5b5061054561115d565b6040516105529190613660565b60405180910390f35b34801561056757600080fd5b50610582600480360381019061057d9190613a08565b611163565b005b34801561059057600080fd5b50610599611175565b005b3480156105a757600080fd5b506105c260048036038101906105bd91906138ec565b611321565b005b3480156105d057600080fd5b506105d9611471565b005b3480156105e757600080fd5b5061060260048036038101906105fd9190613759565b6114a5565b005b34801561061057600080fd5b5061062b60048036038101906106269190613a9a565b6114b7565b005b34801561063957600080fd5b506106426114d5565b60405161064f9190613660565b60405180910390f35b34801561066457600080fd5b5061067f600480360381019061067a9190613759565b6114db565b60405161068c91906137c7565b60405180910390f35b3480156106a157600080fd5b506106aa6114ed565b6040516106b79190613660565b60405180910390f35b3480156106cc57600080fd5b506106d56114f3565b6040516106e29190613660565b60405180910390f35b3480156106f757600080fd5b506107006114f9565b60405161070d919061362c565b60405180910390f35b34801561072257600080fd5b5061073d60048036038101906107389190613759565b61150c565b005b34801561074b57600080fd5b506107666004803603810190610761919061384e565b61151e565b6040516107739190613660565b60405180910390f35b34801561078857600080fd5b506107916115b2565b005b34801561079f57600080fd5b506107ba60048036038101906107b59190613759565b6115c6565b005b6107d660048036038101906107d19190613c25565b6115d8565b005b3480156107e457600080fd5b506107ed611872565b6040516107fa9190613660565b60405180910390f35b34801561080f57600080fd5b50610818611878565b6040516108259190613660565b60405180910390f35b34801561083a57600080fd5b5061084361187e565b6040516108509190613660565b60405180910390f35b34801561086557600080fd5b50610880600480360381019061087b9190613759565b611884565b005b34801561088e57600080fd5b50610897611896565b6040516108a491906137c7565b60405180910390f35b3480156108b957600080fd5b506108c26118c0565b6040516108cf919061370b565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa9190613cc0565b611952565b005b34801561090d57600080fd5b5061092860048036038101906109239190613d20565b61198b565b005b34801561093657600080fd5b5061093f611a95565b60405161094c9190613660565b60405180910390f35b61096f600480360381019061096a919061380e565b611a9b565b005b34801561097d57600080fd5b5061099860048036038101906109939190613e15565b611d03565b005b3480156109a657600080fd5b506109af611e56565b005b3480156109bd57600080fd5b506109c6611e8a565b6040516109d39190613660565b60405180910390f35b3480156109e857600080fd5b506109f1611e90565b6040516109fe91906137c7565b60405180910390f35b348015610a1357600080fd5b50610a1c611ea8565b604051610a29919061362c565b60405180910390f35b348015610a3e57600080fd5b50610a47611ebb565b604051610a54919061362c565b60405180910390f35b348015610a6957600080fd5b50610a846004803603810190610a7f9190613759565b611ece565b604051610a91919061370b565b60405180910390f35b348015610aa657600080fd5b50610ac16004803603810190610abc919061384e565b611f40565b604051610ace9190613660565b60405180910390f35b348015610ae357600080fd5b50610afe6004803603810190610af9919061384e565b611f58565b604051610b0b9190613660565b60405180910390f35b348015610b2057600080fd5b50610b3b6004803603810190610b369190613e98565b611f6a565b604051610b48919061362c565b60405180910390f35b348015610b5d57600080fd5b50610b786004803603810190610b739190613759565b611ffe565b005b348015610b8657600080fd5b50610ba16004803603810190610b9c919061384e565b612010565b005b6000610bae82612093565b9050919050565b60115481565b606060028054610bca90613f07565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf690613f07565b8015610c435780601f10610c1857610100808354040283529160200191610c43565b820191906000526020600020905b815481529060010190602001808311610c2657829003601f168201915b5050505050905090565b6000610c588261210d565b610c8e576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8160006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115610dc4576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b8152600401610d41929190613f38565b602060405180830381865afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d829190613f76565b610dc357806040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401610dba91906137c7565b60405180910390fd5b5b610dce838361216c565b505050565b601a6020528060005260406000206000915090505481565b610df3612312565b610dfd3082612390565b50565b60145481565b6000610e10612525565b6001546000540303905090565b8260006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115610f5b573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e8f57610e8a84848461252a565b610f67565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401610ed8929190613f38565b602060405180830381865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f199190613f76565b610f5a57336040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401610f5191906137c7565b60405180910390fd5b5b610f6684848461252a565b5b50505050565b60185481565b6000806000600960008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16036111085760086040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b600061111261253a565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff168661113e9190613fd2565b6111489190614043565b90508160000151819350935050509250929050565b600c5481565b61116b612312565b8060188190555050565b61117d612312565b6000612710610258476111909190613fd2565b61119a9190614043565b9050600073ca9ef85471c932084a2348b3bfa53791bc91cc3c73ffffffffffffffffffffffffffffffffffffffff16826040516111d6906140a5565b60006040518083038185875af1925050503d8060008114611213576040519150601f19603f3d011682016040523d82523d6000602084013e611218565b606091505b505090508061125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390614106565b60405180910390fd5b600073c858db9fd379d21b49b2216e8bfc6588be3354d773ffffffffffffffffffffffffffffffffffffffff1647604051611296906140a5565b60006040518083038185875af1925050503d80600081146112d3576040519150601f19603f3d011682016040523d82523d6000602084013e6112d8565b606091505b505090508061131c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131390614106565b60405180910390fd5b505050565b8260006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b111561145f573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113935761138e848484612544565b61146b565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b81526004016113dc929190613f38565b602060405180830381865afa1580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d9190613f76565b61145e57336040517fede71dcc00000000000000000000000000000000000000000000000000000000815260040161145591906137c7565b60405180910390fd5b5b61146a848484612544565b5b50505050565b611479612312565b600f60009054906101000a900460ff1615600f60006101000a81548160ff021916908315150217905550565b6114ad612312565b8060158190555050565b6114bf612312565b8181601c91826114d09291906142dd565b505050565b60155481565b60006114e682612564565b9050919050565b60125481565b600d5481565b601b60009054906101000a900460ff1681565b611514612312565b80600e8190555050565b60008061152a83612630565b03611561576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6115ba612312565b6115c4600061263a565b565b6115ce612312565b80600d8190555050565b816014546115e69190613fd2565b42601e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e906143f9565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc90614465565b60405180910390fd5b803414611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906144d1565b60405180910390fd5b6117af600f60009054906101000a900460ff16601654600d54601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601254601054896117aa8a6018543360405160200161178f9190614539565b60405160208183030381529060405280519060200120612700565b612717565b42601e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118429190614554565b92505081905550826016600082825461185b9190614554565b9250508190555061186c84846128ed565b50505050565b60135481565b600e5481565b60105481565b61188c612312565b8060148190555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546118cf90613f07565b80601f01602080910402602001604051908101604052809291908181526020018280546118fb90613f07565b80156119485780601f1061191d57610100808354040283529160200191611948565b820191906000526020600020905b81548152906001019060200180831161192b57829003601f168201915b5050505050905090565b61195a612312565b82601b60006101000a81548160ff0219169083151502179055508181601c91826119859291906142dd565b50505050565b8160006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611a86576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b8152600401611a03929190613f38565b602060405180830381865afa158015611a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a449190613f76565b611a8557806040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401611a7c91906137c7565b60405180910390fd5b5b611a90838361290b565b505050565b60165481565b80601554611aa99190613fd2565b42601e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b21906143f9565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f90614465565b60405180910390fd5b803414611bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd1906144d1565b60405180910390fd5b611c41600f60019054906101000a900460ff16601754600e54601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601354601154886001612717565b42601e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cd49190614554565b925050819055508160176000828254611ced9190614554565b92505081905550611cfe83836128ed565b505050565b8360006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611e42573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d7657611d7185858585612a82565b611e4f565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401611dbf929190613f38565b602060405180830381865afa158015611ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e009190613f76565b611e4157336040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401611e3891906137c7565b60405180910390fd5b5b611e4e85858585612a82565b5b5050505050565b611e5e612312565b600f60019054906101000a900460ff1615600f60016101000a81548160ff021916908315150217905550565b60175481565b73ca9ef85471c932084a2348b3bfa53791bc91cc3c81565b600f60009054906101000a900460ff1681565b600f60019054906101000a900460ff1681565b6060601b60009054906101000a900460ff1615611f1757601c611ef083612af5565b604051602001611f01929190614647565b6040516020818303038152906040529050611f3b565b601d604051602001611f29919061466b565b60405160208183030381529060405290505b919050565b60196020528060005260406000206000915090505481565b6000611f6382612c55565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612006612312565b80600c8190555050565b612018612312565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612087576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207e906146f4565b60405180910390fd5b6120908161263a565b50565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612106575061210582612cac565b5b9050919050565b600081612118612525565b11158015612127575060005482105b8015612165575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600061217782612564565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121de576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166121fd612d16565b73ffffffffffffffffffffffffffffffffffffffff16146122605761222981612224612d16565b611f6a565b61225f576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b61231a612d1e565b73ffffffffffffffffffffffffffffffffffffffff16612338611896565b73ffffffffffffffffffffffffffffffffffffffff161461238e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238590614760565b60405180910390fd5b565b61239861253a565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156123f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ed906147f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c9061485e565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b600090565b612535838383612d26565b505050565b6000612710905090565b61255f83838360405180602001604052806000815250611d03565b505050565b60008082905080612573612525565b116125f9576000548110156125f85760006004600083815260200190815260200160002054905060007c01000000000000000000000000000000000000000000000000000000008216036125f6575b600081036125ec5760046000836001900393508381526020019081526020016000205490506125c2565b809250505061262b565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000819050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008261270d85846130eb565b1490509392505050565b87612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274e906148ca565b60405180910390fd5b80612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278e90614936565b60405180910390fd5b600c546127a2610e06565b836127ad9190614554565b11156127ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e5906149a2565b60405180910390fd5b8587836127fb9190614554565b111561283c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612833906149a2565b60405180910390fd5b8382866128499190614554565b1115806128565750600084145b612895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288c90614a0e565b60405180910390fd5b82821115806128a45750600083145b6128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128da90614a7a565b60405180910390fd5b5050505050505050565b612907828260405180602001604052806000815250613141565b5050565b612913612d16565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612977576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000612984612d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16612a31612d16565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a76919061362c565b60405180910390a35050565b612a8d848484612d26565b60008373ffffffffffffffffffffffffffffffffffffffff163b14612aef57612ab8848484846133d0565b612aee576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b606060008203612b3c576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612c50565b600082905060005b60008214612b6e578080612b5790614a9a565b915050600a82612b679190614043565b9150612b44565b60008167ffffffffffffffff811115612b8a57612b89613ae7565b5b6040519080825280601f01601f191660200182016040528015612bbc5781602001600182028036833780820191505090505b5090505b60008514612c4957600182612bd59190614ae2565b9150600a85612be49190614b16565b6030612bf09190614554565b60f81b818381518110612c0657612c05614b47565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612c429190614043565b9450612bc0565b8093505050505b919050565b600067ffffffffffffffff6040600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600033905090565b6000612d3182612564565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612d98576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008573ffffffffffffffffffffffffffffffffffffffff16612df1612d16565b73ffffffffffffffffffffffffffffffffffffffff161480612e205750612e1f86612e1a612d16565b611f6a565b5b80612e5d5750612e2e612d16565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905080612e96576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ea186612630565b03612ed8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612ee58686866001613520565b6000612ef083612630565b14612f2c576006600085815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055507c020000000000000000000000000000000000000000000000000000000060a042901b612ff387612630565b1717600460008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084160361307b5760006001850190506000600460008381526020019081526020016000205403613079576000548114613078578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46130e38686866001613526565b505050505050565b60008082905060005b8451811015613136576131218286838151811061311457613113614b47565b5b602002602001015161352c565b9150808061312e90614a9a565b9150506130f4565b508091505092915050565b600080549050600061315285612630565b03613189576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083036131c3576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6131d06000858386613520565b600160406001901b178302600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060e161323560018514613557565b901b60a042901b61324586612630565b1717600460008381526020019081526020016000208190555060008190506000848201905060008673ffffffffffffffffffffffffffffffffffffffff163b14613349575b818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46132f960008784806001019550876133d0565b61332f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80821061328a57826000541461334457600080fd5b6133b4565b5b818060010192508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480821061334a575b8160008190555050506133ca6000858386613526565b50505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026133f6612d16565b8786866040518563ffffffff1660e01b81526004016134189493929190614bcb565b6020604051808303816000875af192505050801561345457506040513d601f19601f820116820180604052508101906134519190614c2c565b60015b6134cd573d8060008114613484576040519150601f19603f3d011682016040523d82523d6000602084013e613489565b606091505b5060008151036134c5576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b50505050565b50505050565b60008183106135445761353f8284613561565b61354f565b61354e8383613561565b5b905092915050565b6000819050919050565b600082600052816020526040600020905092915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6135c18161358c565b81146135cc57600080fd5b50565b6000813590506135de816135b8565b92915050565b6000602082840312156135fa576135f9613582565b5b6000613608848285016135cf565b91505092915050565b60008115159050919050565b61362681613611565b82525050565b6000602082019050613641600083018461361d565b92915050565b6000819050919050565b61365a81613647565b82525050565b60006020820190506136756000830184613651565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136b557808201518184015260208101905061369a565b60008484015250505050565b6000601f19601f8301169050919050565b60006136dd8261367b565b6136e78185613686565b93506136f7818560208601613697565b613700816136c1565b840191505092915050565b6000602082019050818103600083015261372581846136d2565b905092915050565b61373681613647565b811461374157600080fd5b50565b6000813590506137538161372d565b92915050565b60006020828403121561376f5761376e613582565b5b600061377d84828501613744565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137b182613786565b9050919050565b6137c1816137a6565b82525050565b60006020820190506137dc60008301846137b8565b92915050565b6137eb816137a6565b81146137f657600080fd5b50565b600081359050613808816137e2565b92915050565b6000806040838503121561382557613824613582565b5b6000613833858286016137f9565b925050602061384485828601613744565b9150509250929050565b60006020828403121561386457613863613582565b5b6000613872848285016137f9565b91505092915050565b60006bffffffffffffffffffffffff82169050919050565b61389c8161387b565b81146138a757600080fd5b50565b6000813590506138b981613893565b92915050565b6000602082840312156138d5576138d4613582565b5b60006138e3848285016138aa565b91505092915050565b60008060006060848603121561390557613904613582565b5b6000613913868287016137f9565b9350506020613924868287016137f9565b925050604061393586828701613744565b9150509250925092565b6000819050919050565b6139528161393f565b82525050565b600060208201905061396d6000830184613949565b92915050565b6000806040838503121561398a57613989613582565b5b600061399885828601613744565b92505060206139a985828601613744565b9150509250929050565b60006040820190506139c860008301856137b8565b6139d56020830184613651565b9392505050565b6139e58161393f565b81146139f057600080fd5b50565b600081359050613a02816139dc565b92915050565b600060208284031215613a1e57613a1d613582565b5b6000613a2c848285016139f3565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613a5a57613a59613a35565b5b8235905067ffffffffffffffff811115613a7757613a76613a3a565b5b602083019150836001820283011115613a9357613a92613a3f565b5b9250929050565b60008060208385031215613ab157613ab0613582565b5b600083013567ffffffffffffffff811115613acf57613ace613587565b5b613adb85828601613a44565b92509250509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b1f826136c1565b810181811067ffffffffffffffff82111715613b3e57613b3d613ae7565b5b80604052505050565b6000613b51613578565b9050613b5d8282613b16565b919050565b600067ffffffffffffffff821115613b7d57613b7c613ae7565b5b602082029050602081019050919050565b6000613ba1613b9c84613b62565b613b47565b90508083825260208201905060208402830185811115613bc457613bc3613a3f565b5b835b81811015613bed5780613bd988826139f3565b845260208401935050602081019050613bc6565b5050509392505050565b600082601f830112613c0c57613c0b613a35565b5b8135613c1c848260208601613b8e565b91505092915050565b600080600060608486031215613c3e57613c3d613582565b5b6000613c4c868287016137f9565b9350506020613c5d86828701613744565b925050604084013567ffffffffffffffff811115613c7e57613c7d613587565b5b613c8a86828701613bf7565b9150509250925092565b613c9d81613611565b8114613ca857600080fd5b50565b600081359050613cba81613c94565b92915050565b600080600060408486031215613cd957613cd8613582565b5b6000613ce786828701613cab565b935050602084013567ffffffffffffffff811115613d0857613d07613587565b5b613d1486828701613a44565b92509250509250925092565b60008060408385031215613d3757613d36613582565b5b6000613d45858286016137f9565b9250506020613d5685828601613cab565b9150509250929050565b600080fd5b600067ffffffffffffffff821115613d8057613d7f613ae7565b5b613d89826136c1565b9050602081019050919050565b82818337600083830152505050565b6000613db8613db384613d65565b613b47565b905082815260208101848484011115613dd457613dd3613d60565b5b613ddf848285613d96565b509392505050565b600082601f830112613dfc57613dfb613a35565b5b8135613e0c848260208601613da5565b91505092915050565b60008060008060808587031215613e2f57613e2e613582565b5b6000613e3d878288016137f9565b9450506020613e4e878288016137f9565b9350506040613e5f87828801613744565b925050606085013567ffffffffffffffff811115613e8057613e7f613587565b5b613e8c87828801613de7565b91505092959194509250565b60008060408385031215613eaf57613eae613582565b5b6000613ebd858286016137f9565b9250506020613ece858286016137f9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f1f57607f821691505b602082108103613f3257613f31613ed8565b5b50919050565b6000604082019050613f4d60008301856137b8565b613f5a60208301846137b8565b9392505050565b600081519050613f7081613c94565b92915050565b600060208284031215613f8c57613f8b613582565b5b6000613f9a84828501613f61565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fdd82613647565b9150613fe883613647565b9250828202613ff681613647565b9150828204841483151761400d5761400c613fa3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061404e82613647565b915061405983613647565b92508261406957614068614014565b5b828204905092915050565b600081905092915050565b50565b600061408f600083614074565b915061409a8261407f565b600082019050919050565b60006140b082614082565b9150819050919050565b7f5472616e73666572204661696c65642100000000000000000000000000000000600082015250565b60006140f0601083613686565b91506140fb826140ba565b602082019050919050565b6000602082019050818103600083015261411f816140e3565b9050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026141937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614156565b61419d8683614156565b95508019841693508086168417925050509392505050565b6000819050919050565b60006141da6141d56141d084613647565b6141b5565b613647565b9050919050565b6000819050919050565b6141f4836141bf565b614208614200826141e1565b848454614163565b825550505050565b600090565b61421d614210565b6142288184846141eb565b505050565b5b8181101561424c57614241600082614215565b60018101905061422e565b5050565b601f8211156142915761426281614131565b61426b84614146565b8101602085101561427a578190505b61428e61428685614146565b83018261422d565b50505b505050565b600082821c905092915050565b60006142b460001984600802614296565b1980831691505092915050565b60006142cd83836142a3565b9150826002028217905092915050565b6142e78383614126565b67ffffffffffffffff811115614300576142ff613ae7565b5b61430a8254613f07565b614315828285614250565b6000601f8311600181146143445760008415614332578287013590505b61433c85826142c1565b8655506143a4565b601f19841661435286614131565b60005b8281101561437a57848901358255600182019150602085019450602081019050614355565b868310156143975784890135614393601f8916826142a3565b8355505b6001600288020188555050505b50505050505050565b7f43414e4e4f545f4d494e545f4f4e5f5448455f53414d455f424c4f434b000000600082015250565b60006143e3601d83613686565b91506143ee826143ad565b602082019050919050565b60006020820190508181036000830152614412816143d6565b9050919050565b7f434f4e5452414354535f4e4f545f414c4c4f5745445f544f5f4d494e54000000600082015250565b600061444f601d83613686565b915061445a82614419565b602082019050919050565b6000602082019050818103600083015261447e81614442565b9050919050565b7f57524f4e475f4554485f56414c55450000000000000000000000000000000000600082015250565b60006144bb600f83613686565b91506144c682614485565b602082019050919050565b600060208201905081810360008301526144ea816144ae565b9050919050565b60008160601b9050919050565b6000614509826144f1565b9050919050565b600061451b826144fe565b9050919050565b61453361452e826137a6565b614510565b82525050565b60006145458284614522565b60148201915081905092915050565b600061455f82613647565b915061456a83613647565b925082820190508082111561458257614581613fa3565b5b92915050565b600081905092915050565b600081546145a081613f07565b6145aa8186614588565b945060018216600081146145c557600181146145da5761460d565b60ff198316865281151582028601935061460d565b6145e385614131565b60005b83811015614605578154818901526001820191506020810190506145e6565b838801955050505b50505092915050565b60006146218261367b565b61462b8185614588565b935061463b818560208601613697565b80840191505092915050565b60006146538285614593565b915061465f8284614616565b91508190509392505050565b60006146778284614593565b915081905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006146de602683613686565b91506146e982614682565b604082019050919050565b6000602082019050818103600083015261470d816146d1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061474a602083613686565b915061475582614714565b602082019050919050565b600060208201905081810360008301526147798161473d565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b60006147dc602a83613686565b91506147e782614780565b604082019050919050565b6000602082019050818103600083015261480b816147cf565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6000614848601983613686565b915061485382614812565b602082019050919050565b600060208201905081810360008301526148778161483b565b9050919050565b7f4d494e545f49535f4e4f545f5945545f41435449564500000000000000000000600082015250565b60006148b4601683613686565b91506148bf8261487e565b602082019050919050565b600060208201905081810360008301526148e3816148a7565b9050919050565b7f50524f4f465f494e56414c494400000000000000000000000000000000000000600082015250565b6000614920600d83613686565b915061492b826148ea565b602082019050919050565b6000602082019050818103600083015261494f81614913565b9050919050565b7f4e4f545f454e4f5547485f535550504c59000000000000000000000000000000600082015250565b600061498c601183613686565b915061499782614956565b602082019050919050565b600060208201905081810360008301526149bb8161497f565b9050919050565b7f4558434545445f5f4d494e545f4c494d49540000000000000000000000000000600082015250565b60006149f8601283613686565b9150614a03826149c2565b602082019050919050565b60006020820190508181036000830152614a27816149eb565b9050919050565b7f4558434545445f4d494e545f4c494d4954000000000000000000000000000000600082015250565b6000614a64601183613686565b9150614a6f82614a2e565b602082019050919050565b60006020820190508181036000830152614a9381614a57565b9050919050565b6000614aa582613647565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614ad757614ad6613fa3565b5b600182019050919050565b6000614aed82613647565b9150614af883613647565b9250828203905081811115614b1057614b0f613fa3565b5b92915050565b6000614b2182613647565b9150614b2c83613647565b925082614b3c57614b3b614014565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000614b9d82614b76565b614ba78185614b81565b9350614bb7818560208601613697565b614bc0816136c1565b840191505092915050565b6000608082019050614be060008301876137b8565b614bed60208301866137b8565b614bfa6040830185613651565b8181036060830152614c0c8184614b92565b905095945050505050565b600081519050614c26816135b8565b92915050565b600060208284031215614c4257614c41613582565b5b6000614c5084828501614c17565b9150509291505056fea264697066735822122049c16d10ae1b84a9a9e5fb49d85ffb99f68cf3194917537d5b330d808ca75d9e64736f6c6343000811003368747470733a2f2f697066732e7733626d696e742e78797a2f697066732f516d6169763351325868774d567a5077505258323575586b334e774276594165747a48465653443975516161437482e4813f7ac4eaf69caca9c1684e684463380e97707bb4c57e3108b3e1ed01a2