[ { "inputs": [ { "internalType": "string", "name": "_NFT_NAME", "type": "string" }, { "internalType": "string", "name": "_NFT_SYMBOL", "type": "string" }, { "internalType": "uint256", "name": "_NAME_FEE", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InsufficientAmount", "type": "error" }, { "inputs": [], "name": "InvalidTokenID", "type": "error" }, { "inputs": [], "name": "MaxLength25", "type": "error" }, { "inputs": [], "name": "MintLimit", "type": "error" }, { "inputs": [], "name": "NameTaken", "type": "error" }, { "inputs": [], "name": "OnlyAlphanumeric", "type": "error" }, { "inputs": [], "name": "OnlyEOAAllowed", "type": "error" }, { "inputs": [], "name": "OnlyLvL100", "type": "error" }, { "inputs": [], "name": "ReservedAmountInvalid", "type": "error" }, { "inputs": [], "name": "TooSoon", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "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": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "LevelUp", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "NameChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnerUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Rebirth", "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": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "UnlabeledData", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "namefee", "type": "uint256" } ], "name": "UpdatedNameFee", "type": "event" }, { "inputs": [], "name": "LEGENDARY_ID_START", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_PER_ADDRESS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINT_COST", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WL_MINT_COST", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "_jsonString", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_zones", "type": "address[]" } ], "name": "addZones", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_newName", "type": "string" } ], "name": "changeHopperName", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "freeMerkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfMints", "type": "uint256" }, { "internalType": "uint256", "name": "totalGiven", "type": "uint256" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "name": "freeMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "freeRedeemed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_key", "type": "string" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getData", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_key", "type": "string" } ], "name": "getGlobalData", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getHopper", "outputs": [ { "components": [ { "internalType": "uint200", "name": "level", "type": "uint200" }, { "internalType": "uint16", "name": "rebirths", "type": "uint16" }, { "internalType": "uint8", "name": "strength", "type": "uint8" }, { "internalType": "uint8", "name": "agility", "type": "uint8" }, { "internalType": "uint8", "name": "vitality", "type": "uint8" }, { "internalType": "uint8", "name": "intelligence", "type": "uint8" }, { "internalType": "uint8", "name": "fertility", "type": "uint8" } ], "internalType": "struct HopperNFT.Hopper", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getHopperName", "outputs": [ { "internalType": "string", "name": "name", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string[]", "name": "_keys", "type": "string[]" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getHopperWithData", "outputs": [ { "components": [ { "internalType": "uint200", "name": "level", "type": "uint200" }, { "internalType": "uint16", "name": "rebirths", "type": "uint16" }, { "internalType": "uint8", "name": "strength", "type": "uint8" }, { "internalType": "uint8", "name": "agility", "type": "uint8" }, { "internalType": "uint8", "name": "vitality", "type": "uint8" }, { "internalType": "uint8", "name": "intelligence", "type": "uint8" }, { "internalType": "uint8", "name": "fertility", "type": "uint8" } ], "internalType": "struct HopperNFT.Hopper", "name": "hopper", "type": "tuple" }, { "internalType": "bytes32[]", "name": "arrData", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hopperMaxAttributeValue", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "hoppers", "outputs": [ { "internalType": "uint200", "name": "level", "type": "uint200" }, { "internalType": "uint16", "name": "rebirths", "type": "uint16" }, { "internalType": "uint8", "name": "strength", "type": "uint8" }, { "internalType": "uint8", "name": "agility", "type": "uint8" }, { "internalType": "uint8", "name": "vitality", "type": "uint8" }, { "internalType": "uint8", "name": "intelligence", "type": "uint8" }, { "internalType": "uint8", "name": "fertility", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hoppersLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "hoppersNames", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "imageURL", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "indexer", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "levelUp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nameFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numberOfMints", "type": "uint256" } ], "name": "normalMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "preSaleOpenTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "rebirth", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_zone", "type": "address" } ], "name": "removeZone", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reserved", "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": "id", "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": "id", "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": "_baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_key", "type": "string" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "bytes32", "name": "_data", "type": "bytes32" } ], "name": "setData", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_key", "type": "string" }, { "internalType": "bytes32", "name": "_data", "type": "bytes32" } ], "name": "setGlobalData", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_hopperMaxAttributeValue", "type": "uint256" } ], "name": "setHopperMaxAttributeValue", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_imageURL", "type": "string" } ], "name": "setImageURL", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nameFee", "type": "uint256" } ], "name": "setNameChangeFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_preSaleOpenTime", "type": "uint256" }, { "internalType": "bytes32", "name": "_wlMerkleRoot", "type": "bytes32" }, { "internalType": "bytes32", "name": "_freeMerkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "_reserved", "type": "uint256" } ], "name": "setSaleDetails", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "takenNames", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "unlabeledData", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "unlabeledGlobalData", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_key", "type": "string" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "unsetData", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_key", "type": "string" } ], "name": "unsetGlobalData", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "name": "whitelistMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "wlMerkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "wlRedeemed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "zones", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
6101206040523480156200001257600080fd5b50604051620055c5380380620055c5833981016040819052620000359162000230565b8251839083906200004e906000906020850190620000bd565b50805162000064906001906020840190620000bd565b5050600680546001600160a01b03191633179055506718493fba64ef000060c0526710a741a46278000060e05261271060a052600a60808190526126f061010052601691909155600f55505061070819600855620002e0565b828054620000cb90620002a3565b90600052602060002090601f016020900481019282620000ef57600085556200013a565b82601f106200010a57805160ff19168380011785556200013a565b828001600101855582156200013a579182015b828111156200013a5782518255916020019190600101906200011d565b50620001489291506200014c565b5090565b5b808211156200014857600081556001016200014d565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200018b57600080fd5b81516001600160401b0380821115620001a857620001a862000163565b604051601f8301601f19908116603f01168101908282118183101715620001d357620001d362000163565b81604052838152602092508683858801011115620001f057600080fd5b600091505b83821015620002145785820183015181830184015290820190620001f5565b83821115620002265760008385830101525b9695505050505050565b6000806000606084860312156200024657600080fd5b83516001600160401b03808211156200025e57600080fd5b6200026c8783880162000179565b945060208601519150808211156200028357600080fd5b50620002928682870162000179565b925050604084015190509250925092565b600181811c90821680620002b857607f821691505b60208210811415620002da57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e051610100516152766200034f60003960008181610b2101526138d9015260008181610f420152611b11015260008181610df201526132d9015260008181610602015281816134a101526138130152600081816104a5015261347501526152766000f3fe6080604052600436106103ad5760003560e01c8063889a3142116101e7578063b90497e01161010d578063e1f423ed116100a0578063eaa517071161006f578063eaa5170714610ee5578063eb5021f814610f1d578063f26c942214610f30578063fe60d12c14610f6457600080fd5b8063e1f423ed14610e54578063e6c3d54a14610e74578063e8a77d1714610e8a578063e985e9c514610eaa57600080fd5b8063c60fb6a7116100dc578063c60fb6a714610dc0578063c662e48114610de0578063c87b56dd14610e14578063dfef561a14610e3457600080fd5b8063b90497e014610d48578063bedbf0d814610d5d578063c055769114610d73578063c1608d6b14610d9357600080fd5b806396f9480211610185578063a22cb46511610154578063a22cb46514610b59578063b0d2ea6b14610b79578063b146e40814610cf8578063b88d4fde14610d2857600080fd5b806396f9480214610aa75780639aa289ce14610aef5780639f9d260514610b0f578063a0eb653b14610b4357600080fd5b80638da5cb5b116101c15780638da5cb5b14610a155780638f77b6ee14610a42578063940d12e014610a7257806395d89b4114610a9257600080fd5b8063889a3142146109bf5780638c5015c5146109df5780638d5bcde6146109f557600080fd5b8063372f657c116102d757806358e792ee1161026a578063689bd11b11610239578063689bd11b1461093d5780636c0360eb1461095d57806370a082311461097257806370bdcc851461099f57600080fd5b806358e792ee146107185780635c550353146107385780636352211e146108cd578063656611a31461091057600080fd5b806342842e0e116102a657806342842e0e146106ac57806346bc9d41146106cc57806354c06aee146106e257806355f804b3146106f857600080fd5b8063372f657c146106445780633ccfd60b146106575780633d68b4b51461066c5780633e33f2041461068c57600080fd5b80630e8040a41161034f57806323b872dd1161031e57806323b872dd146105b057806326bc136d146105d057806332cb6b0c146105f05780633668f3a21461062457600080fd5b80630e8040a41461052357806313af40351461054357806318ec3a1214610563578063230a3a891461059057600080fd5b8063095ea7b31161038b578063095ea7b3146104715780630aaef285146104935780630ce90ec2146104d55780630d511865146104f557600080fd5b806301ffc9a7146103b257806306fdde03146103e7578063081812fc14610409575b600080fd5b3480156103be57600080fd5b506103d26103cd3660046140ca565b610f7a565b60405190151581526020015b60405180910390f35b3480156103f357600080fd5b506103fc610f8b565b6040516103de9190614164565b34801561041557600080fd5b5061044c610424366004614177565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103de565b34801561047d57600080fd5b5061049161048c3660046141b4565b611019565b005b34801561049f57600080fd5b506104c77f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016103de565b3480156104e157600080fd5b506104916104f0366004614177565b611168565b34801561050157600080fd5b5061051561051036600461422a565b611246565b6040516103de929190614276565b34801561052f57600080fd5b5061049161053e36600461433b565b611488565b34801561054f57600080fd5b5061049161055e36600461437d565b611573565b34801561056f57600080fd5b506104c761057e36600461437d565b600b6020526000908152604090205481565b34801561059c57600080fd5b506104916105ab3660046143da565b611633565b3480156105bc57600080fd5b506104916105cb366004614412565b6116ca565b3480156105dc57600080fd5b506104916105eb3660046143da565b611991565b3480156105fc57600080fd5b506104c77f000000000000000000000000000000000000000000000000000000000000000081565b34801561063057600080fd5b5061049161063f366004614177565b611a32565b61049161065236600461454c565b611a88565b34801561066357600080fd5b50610491611c15565b34801561067857600080fd5b50610491610687366004614581565b611c8b565b34801561069857600080fd5b506104c76106a73660046143da565b611d6a565b3480156106b857600080fd5b506104916106c7366004614412565b611da7565b3480156106d857600080fd5b506104c760165481565b3480156106ee57600080fd5b506104c7600a5481565b34801561070457600080fd5b506104916107133660046145d2565b611f11565b34801561072457600080fd5b506104916107333660046145d2565b611f6e565b34801561074457600080fd5b506108c0610753366004614177565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152506000908152600d6020908152604091829020825160e081018452905478ffffffffffffffffffffffffffffffffffffffffffffffffff8116825261ffff7901000000000000000000000000000000000000000000000000008204169282019290925260ff7b0100000000000000000000000000000000000000000000000000000083048116938201939093527c01000000000000000000000000000000000000000000000000000000008204831660608201527d0100000000000000000000000000000000000000000000000000000000008204831660808201527e010000000000000000000000000000000000000000000000000000000000008204831660a08201527f010000000000000000000000000000000000000000000000000000000000000090910490911660c082015290565b6040516103de9190614608565b3480156108d957600080fd5b5061044c6108e8366004614177565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561091c57600080fd5b506104c761092b36600461437d565b600c6020526000908152604090205481565b34801561094957600080fd5b50610491610958366004614683565b611fcb565b34801561096957600080fd5b506103fc61202d565b34801561097e57600080fd5b506104c761098d36600461437d565b60026020526000908152604090205481565b3480156109ab57600080fd5b506104916109ba36600461437d565b61203a565b3480156109cb57600080fd5b506103fc6109da366004614177565b6120d7565b3480156109eb57600080fd5b506104c7600e5481565b348015610a0157600080fd5b506103fc610a10366004614177565b6121ae565b348015610a2157600080fd5b5060065461044c9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610a4e57600080fd5b506103d2610a5d36600461437d565b60136020526000908152604090205460ff1681565b348015610a7e57600080fd5b506104c7610a8d3660046145d2565b6121c7565b348015610a9e57600080fd5b506103fc6121f2565b348015610ab357600080fd5b506104c7610ac236600461474b565b81516020818401810180516014825292820194820194909420919093529091526000908152604090205481565b348015610afb57600080fd5b50610491610b0a366004614790565b6121ff565b348015610b1b57600080fd5b506104c77f000000000000000000000000000000000000000000000000000000000000000081565b348015610b4f57600080fd5b506104c7600f5481565b348015610b6557600080fd5b50610491610b743660046147e0565b612373565b348015610b8557600080fd5b50610c9a610b94366004614177565b600d6020526000908152604090205478ffffffffffffffffffffffffffffffffffffffffffffffffff81169061ffff7901000000000000000000000000000000000000000000000000008204169060ff7b0100000000000000000000000000000000000000000000000000000082048116917c010000000000000000000000000000000000000000000000000000000081048216917d01000000000000000000000000000000000000000000000000000000000082048116917e0100000000000000000000000000000000000000000000000000000000000081048216917f01000000000000000000000000000000000000000000000000000000000000009091041687565b6040805178ffffffffffffffffffffffffffffffffffffffffffffffffff909816885261ffff909616602088015260ff94851695870195909552918316606086015282166080850152811660a08401521660c082015260e0016103de565b348015610d0457600080fd5b506103d2610d13366004614177565b60176020526000908152604090205460ff1681565b348015610d3457600080fd5b50610491610d4336600461481c565b61240a565b348015610d5457600080fd5b506103fc61255b565b348015610d6957600080fd5b506104c760095481565b348015610d7f57600080fd5b50610491610d8e366004614177565b612568565b348015610d9f57600080fd5b506104c7610dae366004614177565b60106020526000908152604090205481565b348015610dcc57600080fd5b506104c7610ddb366004614898565b6125ee565b348015610dec57600080fd5b506104c77f000000000000000000000000000000000000000000000000000000000000000081565b348015610e2057600080fd5b506103fc610e2f366004614177565b612a5e565b348015610e4057600080fd5b506103fc610e4f366004614177565b612add565b348015610e6057600080fd5b50610491610e6f3660046145d2565b612cb7565b348015610e8057600080fd5b506104c760085481565b348015610e9657600080fd5b50610491610ea5366004614177565b612d4e565b348015610eb657600080fd5b506103d2610ec53660046148e4565b600560209081526000928352604080842090915290825290205460ff1681565b348015610ef157600080fd5b506104c7610f00366004614917565b805160208183018101805160158252928201919093012091525481565b610491610f2b366004614177565b613292565b348015610f3c57600080fd5b506104c77f000000000000000000000000000000000000000000000000000000000000000081565b348015610f7057600080fd5b506104c760075481565b6000610f858261333e565b92915050565b60008054610f989061494c565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc49061494c565b80156110115780601f10610fe657610100808354040283529160200191611011565b820191906000526020600020905b815481529060010190602001808311610ff457829003601f168201915b505050505081565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff163381148061107c575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b6110e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b3360009081526013602052604090205460ff166111b1576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600d602052604090819020805478ffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffffffffffffff00000000000000000000000000000000000000000000000000909116179055517f6a1b6f91db361bdf7356d3942ed64f2ee2fea430979dbba7ea23f44e8b2110079061123b9083815260200190565b60405180910390a150565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152506000818152600d6020908152604091829020825160e081018452905478ffffffffffffffffffffffffffffffffffffffffffffffffff8116825261ffff7901000000000000000000000000000000000000000000000000008204169282019290925260ff7b0100000000000000000000000000000000000000000000000000000083048116938201939093527c0100000000000000000000000000000000000000000000000000000000820483166060828101919091527d0100000000000000000000000000000000000000000000000000000000008304841660808301527e010000000000000000000000000000000000000000000000000000000000008304841660a08301527f010000000000000000000000000000000000000000000000000000000000000090920490921660c0830152838067ffffffffffffffff8111156113ce576113ce61444e565b6040519080825280602002602001820160405280156113f7578160200160208202803683370190505b50915060005b8181101561147e576014878783818110611419576114196149a0565b905060200281019061142b91906149cf565b604051611439929190614a34565b908152602001604051809103902060008681526020019081526020016000205483828151811061146b5761146b6149a0565b60209081029190910101526001016113fd565b5050935093915050565b60065473ffffffffffffffffffffffffffffffffffffffff1633146114d9576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060005b8181101561156d576001601360008686858181106114fd576114fd6149a0565b9050602002016020810190611512919061437d565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016114dd565b50505050565b60065473ffffffffffffffffffffffffffffffffffffffff1633146115c4576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f4ffd725fc4a22075e9ec71c59edf9c38cdeb588a91b24fc5b61388c5be41282b90600090a250565b60065473ffffffffffffffffffffffffffffffffffffffff16331480159061166b57503360009081526013602052604090205460ff16155b156116a2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80601584846040516116b5929190614a34565b90815260405190819003602001902055505050565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff84811691161461175a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d0000000000000000000000000000000000000000000060448201526064016110de565b73ffffffffffffffffffffffffffffffffffffffff82166117d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016110de565b3373ffffffffffffffffffffffffffffffffffffffff8416148061181e575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b80611859575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b6118bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016110de565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526003825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60065473ffffffffffffffffffffffffffffffffffffffff1633148015906119c957503360009081526013602052604090205460ff16155b15611a00576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60148383604051611a12929190614a34565b908152604080516020928190038301902060009384529091528120555050565b60065473ffffffffffffffffffffffffffffffffffffffff163314611a83576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f55565b336000908152600c602052604090205460011415611ad2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600854421015611b0e576040517f6fed7d8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b347f00000000000000000000000000000000000000000000000000000000000000001115611b68576040517f5945ea5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a546040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152611bbe9183916034015b6040516020818303038152906040528051906020012061341f565b611bf4576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600c60205260409020600190819055611c1290613435565b50565b60065473ffffffffffffffffffffffffffffffffffffffff163314611c66576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600654611c899073ffffffffffffffffffffffffffffffffffffffff164761350d565b565b60065473ffffffffffffffffffffffffffffffffffffffff163314801590611cc357503360009081526013602052604090205460ff16155b15611cfa576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060148585604051611d0d929190614a34565b9081526040805191829003602090810183206000878152915220919091557f2f7311610135051abad88f65fe75dea4c5510b4814e2aa4295071a7af0fe30f690611d5c90869086908690614a44565b60405180910390a150505050565b600060148484604051611d7e929190614a34565b908152602001604051809103902060008381526020019081526020016000205490509392505050565b611db28383836116ca565b73ffffffffffffffffffffffffffffffffffffffff82163b1580611ea657506040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015611e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e829190614a9b565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b611f0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016110de565b505050565b60065473ffffffffffffffffffffffffffffffffffffffff163314611f62576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f0c60118383613fe5565b60065473ffffffffffffffffffffffffffffffffffffffff163314611fbf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f0c60128383613fe5565b60065473ffffffffffffffffffffffffffffffffffffffff16331461201c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600893909355600955600a55600755565b60118054610f989061494c565b60065473ffffffffffffffffffffffffffffffffffffffff16331461208b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260136020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60008181526018602052604090208054606091906120f49061494c565b80601f01602080910402602001604051908101604052809291908181526020018280546121209061494c565b801561216d5780601f106121425761010080835404028352916020019161216d565b820191906000526020600020905b81548152906001019060200180831161215057829003601f168201915b505050505090508051600014156121a95761218782613582565b6040516020016121979190614ad4565b60405160208183030381529060405290505b919050565b60186020526000908152604090208054610f989061494c565b6000601583836040516121db929190614a34565b908152602001604051809103902054905092915050565b60018054610f989061494c565b6008546107080142101561223f576040517f6fed7d8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600b6020526040902054829061225c908590614b48565b1115612294576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260075410156122d0576040517f5e50579400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009546040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b16602082015260348101849052612316918391605401611ba3565b61234c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600b60205260409020805484019055600780548490039055611f0c83613435565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6124158484846116ca565b73ffffffffffffffffffffffffffffffffffffffff83163b15806124f557506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061248e903390899088908890600401614b60565b6020604051808303816000875af11580156124ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d19190614a9b565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b61156d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016110de565b60128054610f989061494c565b60065473ffffffffffffffffffffffffffffffffffffffff1633146125b9576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60168190556040518181527fd5035c192460aa38456e3a0c9d9e43f35eb7c8662cc74696c8ce8a600b9c61499060200161123b565b3360009081526013602052604081205460ff16612637576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250508251929350505060198111156126af576040517f99fb076a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156129325760008382815181106126ce576126ce6149a0565b01602001517fff000000000000000000000000000000000000000000000000000000000000001690507f3000000000000000000000000000000000000000000000000000000000000000811080159061276957507f39000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821611155b15801561280757507f41000000000000000000000000000000000000000000000000000000000000007fff0000000000000000000000000000000000000000000000000000000000000082161080159061280557507f5a000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821611155b155b80156128a457507f61000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216108015906128a257507f7a000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821611155b155b80156128f257507f2e000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821614155b15612929576040517f9bcab8e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001016126b2565b5081516020808401919091206000818152601790925260409091205460ff1615612988576040517f9e4b268500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087815260186020526040808220905160179183916129a89190614c7a565b60408051918290039091208252602080830193909352908101600090812080549415157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0095861617905584815260178352818120805490941660011790935589835260189091529020612a1c908787613fe5565b506040518781527fb642937aa5e3e5f0709e842a3ec850b3a6d174e2941627ade865242762f078b99060200160405180910390a1505060165495945050505050565b6000818152600d602052604090205460609078ffffffffffffffffffffffffffffffffffffffffffffffffff16612ac1576040517f6aa2a93700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6011612acc83613582565b604051602001612197929190614c86565b6000818152600d6020908152604091829020825160e081018452905478ffffffffffffffffffffffffffffffffffffffffffffffffff811680835261ffff7901000000000000000000000000000000000000000000000000008304169383019390935260ff7b0100000000000000000000000000000000000000000000000000000082048116948301949094527c0100000000000000000000000000000000000000000000000000000000810484166060838101919091527d0100000000000000000000000000000000000000000000000000000000008204851660808401527e010000000000000000000000000000000000000000000000000000000000008204851660a08401527f010000000000000000000000000000000000000000000000000000000000000090910490931660c082015290612c49576040517f6aa2a93700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c52836120d7565b8151612c789078ffffffffffffffffffffffffffffffffffffffffffffffffff16613582565b612c81836136bc565b6012612c8c87613582565b604051602001612ca0959493929190614cab565b604051602081830303815290604052915050919050565b60065473ffffffffffffffffffffffffffffffffffffffff163314801590612cef57503360009081526013602052604090205460ff16155b15612d26576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60158282604051612d38929190614a34565b9081526020016040518091039020600090555050565b6000818152600d60209081526040808320815160e081018352905478ffffffffffffffffffffffffffffffffffffffffffffffffff8116825261ffff7901000000000000000000000000000000000000000000000000008204168285015260ff7b0100000000000000000000000000000000000000000000000000000082048116838501527c01000000000000000000000000000000000000000000000000000000008204811660608401527d0100000000000000000000000000000000000000000000000000000000008204811660808401527e010000000000000000000000000000000000000000000000000000000000008204811660a08401527f01000000000000000000000000000000000000000000000000000000000000009091041660c082015284845260039092529091205473ffffffffffffffffffffffffffffffffffffffff163314612ecf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6064816000015178ffffffffffffffffffffffffffffffffffffffffffffffffff161015612f29576040517f8609eb9200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f54604082015160ff16811115612fa3576040828101516000858152600d6020529190912080547fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff167b01000000000000000000000000000000000000000000000000000000600190930160ff16929092029190911790555b808260a0015160ff16101561301c5760a08201516000848152600d6020526040902080547fff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e01000000000000000000000000000000000000000000000000000000000000600190930160ff16929092029190911790555b80826060015160ff1610156130935760608201516000848152600d6020526040902080547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c0100000000000000000000000000000000000000000000000000000000600190930160ff16929092029190911790555b80826080015160ff16101561310b5760808201516000848152600d6020526040902080547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d010000000000000000000000000000000000000000000000000000000000600190930160ff16929092029190911790555b808260c0015160ff1610156131845760c08201516000848152600d6020526040902080547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0100000000000000000000000000000000000000000000000000000000000000600190930160ff16929092029190911790555b6000838152600d60205260409081902080547fffffffffff00000000000000000000000000000000000000000000000000000081167901000000000000000000000000000000000000000000000000009182900461ffff90811660019081019091169092027fffffffffffffff000000000000000000000000000000000000000000000000001617179055517f4c4556454c5f47415547455f4b455900000000000000000000000000000000008152601490600f0190815260408051918290036020908101832060008781529152908120557f8be8fb66034ce0c6ef6be0f3552e84e3264effd5abcb47cbb8e131bfb5f24e33906132859085815260200190565b60405180910390a1505050565b600854610708014210156132d2576040517f6fed7d8500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b346132fd827f0000000000000000000000000000000000000000000000000000000000000000614e5f565b1115613335576040517f5945ea5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c1281613435565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806133d157507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b80610f855750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b60008261342c8584613734565b14949350505050565b33321461346e576040517f3cc142b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e5481017f00000000000000000000000000000000000000000000000000000000000000008211806134c457506007547f00000000000000000000000000000000000000000000000000000000000000000381115b156134fb576040517fec8e6a6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613507828383036137a8565b600e5550565b600080600080600085875af1905080611f0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c45440000000000000000000000000060448201526064016110de565b6060816135c257505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156135ec57806135d681614e9c565b91506135e59050600a83614f04565b91506135c6565b60008167ffffffffffffffff8111156136075761360761444e565b6040519080825280601f01601f191660200182016040528015613631576020820181803683370190505b5090505b84156136b457613646600183614f18565b9150613653600a86614f2f565b61365e906030614b48565b60f81b818381518110613673576136736149a0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506136ad600a86614f04565b9450613635565b949350505050565b60606136cf826020015161ffff16613582565b6136df836040015160ff16613582565b6136ef846060015160ff16613582565b6136ff856080015160ff16613582565b61370f8660a0015160ff16613582565b61371f8760c0015160ff16613582565b60405160200161219796959493929190614f43565b600081815b84518110156137a0576000858281518110613756576137566149a0565b6020026020010151905080831161377c576000838152602082905260409020925061378d565b600081815260208490526040902092505b508061379881614e9c565b915050613739565b509392505050565b600061380f604080514260208201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b1691810191909152434060548201526000906074016040516020818303038152906040528051906020012060001c905090565b90507f000000000000000000000000000000000000000000000000000000000000000082900360005b84811015613d5c5791821c9160006138508385614f2f565b6000818152601060205260409020549091508061386a5750805b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909301600081815260106020526040902054909390806138bb5760008381526010602052604090208590556138cd565b60008381526010602052604090208190555b6138d73383613d63565b7f00000000000000000000000000000000000000000000000000000000000000008210613b285761390b8660056006613efc565b6000838152600d60209081526040918290208351815492850151938501516060860151608087015160a088015160c09098015178ffffffffffffffffffffffffffffffffffffffffffffffffff9094167fffffffffff0000000000000000000000000000000000000000000000000000009096169590951779010000000000000000000000000000000000000000000000000061ffff90971696909602959095177fffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff167b0100000000000000000000000000000000000000000000000000000060ff928316027fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16177c010000000000000000000000000000000000000000000000000000000095821695909502949094177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d010000000000000000000000000000000000000000000000000000000000938516939093027fff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16929092177e0100000000000000000000000000000000000000000000000000000000000094841694909402939093177effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000009290911691909102179055613d4e565b613b35866001600a613efc565b6000838152600d60209081526040918290208351815492850151938501516060860151608087015160a088015160c09098015178ffffffffffffffffffffffffffffffffffffffffffffffffff9094167fffffffffff0000000000000000000000000000000000000000000000000000009096169590951779010000000000000000000000000000000000000000000000000061ffff90971696909602959095177fffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff167b0100000000000000000000000000000000000000000000000000000060ff928316027fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16177c010000000000000000000000000000000000000000000000000000000095821695909502949094177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d010000000000000000000000000000000000000000000000000000000000938516939093027fff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16929092177e0100000000000000000000000000000000000000000000000000000000000094841694909402939093177effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f010000000000000000000000000000000000000000000000000000000000000092909116919091021790555b836001019350505050613838565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff8216613de0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016110de565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1615613e6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016110de565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080546001019055848352600390915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6040805160e0808201835260008083526020808401829052838501829052606084018290526080840182905260a0840182905260c084018290528451928301855260018352820152909181018484600888901c81613f5c57613f5c614ed5565b060160ff1681526020018484601088901c81613f7a57613f7a614ed5565b060160ff1681526020018484601888901c81613f9857613f98614ed5565b060160ff1681526020018484602088901c81613fb657613fb6614ed5565b060160ff1681526020018484602888901c81613fd457613fd4614ed5565b060160ff1681525090509392505050565b828054613ff19061494c565b90600052602060002090601f0160209004810192826140135760008555614077565b82601f1061404a578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555614077565b82800160010185558215614077579182015b8281111561407757823582559160200191906001019061405c565b50614083929150614087565b5090565b5b808211156140835760008155600101614088565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611c1257600080fd5b6000602082840312156140dc57600080fd5b81356140e78161409c565b9392505050565b60005b838110156141095781810151838201526020016140f1565b8381111561156d5750506000910152565b600081518084526141328160208601602086016140ee565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006140e7602083018461411a565b60006020828403121561418957600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146121a957600080fd5b600080604083850312156141c757600080fd5b6141d083614190565b946020939093013593505050565b60008083601f8401126141f057600080fd5b50813567ffffffffffffffff81111561420857600080fd5b6020830191508360208260051b850101111561422357600080fd5b9250929050565b60008060006040848603121561423f57600080fd5b833567ffffffffffffffff81111561425657600080fd5b614262868287016141de565b909790965060209590950135949350505050565b60006101008083016142f5848778ffffffffffffffffffffffffffffffffffffffffffffffffff815116825261ffff602082015116602083015260ff604082015116604083015260ff606082015116606083015260ff608082015116608083015260ff60a08201511660a083015260ff60c08201511660c08301525050565b60e084019190915283519081905261012083019060209081860160005b8281101561432e57815185529383019390830190600101614312565b5092979650505050505050565b6000806020838503121561434e57600080fd5b823567ffffffffffffffff81111561436557600080fd5b614371858286016141de565b90969095509350505050565b60006020828403121561438f57600080fd5b6140e782614190565b60008083601f8401126143aa57600080fd5b50813567ffffffffffffffff8111156143c257600080fd5b60208301915083602082850101111561422357600080fd5b6000806000604084860312156143ef57600080fd5b833567ffffffffffffffff81111561440657600080fd5b61426286828701614398565b60008060006060848603121561442757600080fd5b61443084614190565b925061443e60208501614190565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156144c4576144c461444e565b604052919050565b600082601f8301126144dd57600080fd5b8135602067ffffffffffffffff8211156144f9576144f961444e565b8160051b61450882820161447d565b928352848101820192828101908785111561452257600080fd5b83870192505b8483101561454157823582529183019190830190614528565b979650505050505050565b60006020828403121561455e57600080fd5b813567ffffffffffffffff81111561457557600080fd5b6136b4848285016144cc565b6000806000806060858703121561459757600080fd5b843567ffffffffffffffff8111156145ae57600080fd5b6145ba87828801614398565b90989097506020870135966040013595509350505050565b600080602083850312156145e557600080fd5b823567ffffffffffffffff8111156145fc57600080fd5b61437185828601614398565b60e08101610f85828478ffffffffffffffffffffffffffffffffffffffffffffffffff815116825261ffff602082015116602083015260ff604082015116604083015260ff606082015116606083015260ff608082015116608083015260ff60a08201511660a083015260ff60c08201511660c08301525050565b6000806000806080858703121561469957600080fd5b5050823594602084013594506040840135936060013592509050565b600067ffffffffffffffff8311156146cf576146cf61444e565b61470060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160161447d565b905082815283838301111561471457600080fd5b828260208301376000602084830101529392505050565b600082601f83011261473c57600080fd5b6140e7838335602085016146b5565b6000806040838503121561475e57600080fd5b823567ffffffffffffffff81111561477557600080fd5b6147818582860161472b565b95602094909401359450505050565b6000806000606084860312156147a557600080fd5b8335925060208401359150604084013567ffffffffffffffff8111156147ca57600080fd5b6147d6868287016144cc565b9150509250925092565b600080604083850312156147f357600080fd5b6147fc83614190565b91506020830135801515811461481157600080fd5b809150509250929050565b6000806000806080858703121561483257600080fd5b61483b85614190565b935061484960208601614190565b925060408501359150606085013567ffffffffffffffff81111561486c57600080fd5b8501601f8101871361487d57600080fd5b61488c878235602084016146b5565b91505092959194509250565b6000806000604084860312156148ad57600080fd5b83359250602084013567ffffffffffffffff8111156148cb57600080fd5b6148d786828701614398565b9497909650939450505050565b600080604083850312156148f757600080fd5b61490083614190565b915061490e60208401614190565b90509250929050565b60006020828403121561492957600080fd5b813567ffffffffffffffff81111561494057600080fd5b6136b48482850161472b565b600181811c9082168061496057607f821691505b6020821081141561499a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a0457600080fd5b83018035915067ffffffffffffffff821115614a1f57600080fd5b60200191503681900382131561422357600080fd5b8183823760009101908152919050565b6040815282604082015282846060830137600060608483010152600060607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601168301019050826020830152949350505050565b600060208284031215614aad57600080fd5b81516140e78161409c565b60008151614aca8185602086016140ee565b9290920192915050565b7f686f707065722023000000000000000000000000000000000000000000000000815260008251614b0c8160088501602087016140ee565b9190910160080192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115614b5b57614b5b614b19565b500190565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152614b9f608083018461411a565b9695505050505050565b8054600090600181811c9080831680614bc357607f831692505b6020808410821415614bfe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b818015614c125760018114614c4157614c6e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528489019650614c6e565b60008881526020902060005b86811015614c665781548b820152908501908301614c4d565b505084890196505b50505050505092915050565b60006140e78284614ba9565b6000614c928285614ba9565b8351614ca28183602088016140ee565b01949350505050565b7f7b226e616d65223a220000000000000000000000000000000000000000000000815260008651614ce3816009850160208b016140ee565b7f222c20226465736372697074696f6e223a22486f70706572222c2022617474726009918401918201527f696275746573223a5b000000000000000000000000000000000000000000000060298201527f7b2274726169745f74797065223a20226c6576656c222c202276616c7565223a60328201527f200000000000000000000000000000000000000000000000000000000000000060528201528651614d92816053840160208b016140ee565b01614dbf605382017f7d2c0000000000000000000000000000000000000000000000000000000000009052565b614dcc6055820187614ab8565b7f5d2c000000000000000000000000000000000000000000000000000000000000815290507f22696d616765223a2200000000000000000000000000000000000000000000006002820152614e2d614e27600b830187614ba9565b85614ab8565b7f2e706e67227d0000000000000000000000000000000000000000000000000000815260060198975050505050505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614e9757614e97614b19565b500290565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ece57614ece614b19565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614f1357614f13614ed5565b500490565b600082821015614f2a57614f2a614b19565b500390565b600082614f3e57614f3e614ed5565b500690565b7f7b2274726169745f74797065223a20227265626972746873222c202276616c75815260007f65223a20000000000000000000000000000000000000000000000000000000008060208401528851614fa2816024860160208d016140ee565b80840190507f7d2c00000000000000000000000000000000000000000000000000000000000060248201527f7b2274726169745f74797065223a2022737472656e677468222c202276616c7560268201528160468201528851915061500e82604a830160208c016140ee565b0161503b604a82017f7d2c0000000000000000000000000000000000000000000000000000000000009052565b7f7b2274726169745f74797065223a20226167696c697479222c202276616c7565604c8201527f223a200000000000000000000000000000000000000000000000000000000000606c820152615094606f820188614ab8565b7f7d2c000000000000000000000000000000000000000000000000000000000000815290507f7b2274726169745f74797065223a2022766974616c697479222c202276616c7560028201527f65223a200000000000000000000000000000000000000000000000000000000060228201526151126026820187614ab8565b7f7d2c000000000000000000000000000000000000000000000000000000000000815290507f7b2274726169745f74797065223a2022696e74656c6c6967656e6365222c202260028201527f76616c7565223a200000000000000000000000000000000000000000000000006022820152615190602a820186614ab8565b7f7d2c000000000000000000000000000000000000000000000000000000000000815290507f7b2274726169745f74797065223a202266657274696c697479222c202276616c60028201527f7565223a20000000000000000000000000000000000000000000000000000000602282015261520d60278201614e27565b7f7d000000000000000000000000000000000000000000000000000000000000008152600101999850505050505050505056fea2646970667358221220d267c1ef3186b0346edb7b58c204bfb66e2be579217c739121005e69adcd416b64736f6c634300080c0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000006486f7070657200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003484f500000000000000000000000000000000000000000000000000000000000