[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "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": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "GEN_MIN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_accessories", "type": "uint256" } ], "name": "addAccessories", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_accessories_color", "type": "uint256" } ], "name": "addAccessories_color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_eyes_base_color", "type": "uint256" } ], "name": "addEyes_Base_Color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_eyes_color", "type": "uint256" } ], "name": "addEyes_Color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_hair", "type": "uint256" } ], "name": "addHair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_hair_color", "type": "uint256" } ], "name": "addHair_Color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_hat", "type": "uint256" } ], "name": "addHat", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_hat_color", "type": "uint256" } ], "name": "addHat_Color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mask", "type": "uint256" } ], "name": "addMask", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mask_color", "type": "uint256" } ], "name": "addMask_color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mouth", "type": "uint256" } ], "name": "addMouth", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shirt_1", "type": "uint256" } ], "name": "addShirt_1", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shirt_1_color", "type": "uint256" } ], "name": "addShirt_1_color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shirt_2", "type": "uint256" } ], "name": "addShirt_2", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shirt_2_color", "type": "uint256" } ], "name": "addShirt_2_color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_background_color", "type": "uint256" } ], "name": "add_Background_Color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_body", "type": "uint256" } ], "name": "add_Body", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_body_color", "type": "uint256" } ], "name": "add_Body_Color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_eyes", "type": "uint256" } ], "name": "add_Eyes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_facial_hair", "type": "uint256" } ], "name": "add_Facial_Hair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_facial_hair_color", "type": "uint256" } ], "name": "add_Facial_hair_color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mouth_color", "type": "uint256" } ], "name": "add_Mouth_color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nose", "type": "uint256" } ], "name": "add_Nose", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nose_color", "type": "uint256" } ], "name": "add_Nose_color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shirt_3", "type": "uint256" } ], "name": "add_Shirt_3", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shirt_3_color", "type": "uint256" } ], "name": "add_Shirt_3_color", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "_isBlacklisting", "type": "bool" } ], "name": "blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "blacklists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "breed_total_count", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "counts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "gen", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gen_max", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "get_account_breeds", "outputs": [ { "internalType": "uint256", "name": "page_count", "type": "uint256" }, { "internalType": "string[]", "name": "accounts", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "get_account_items", "outputs": [ { "internalType": "uint256", "name": "page_count", "type": "uint256" }, { "internalType": "string[]", "name": "accounts", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "get_account_svgs", "outputs": [ { "internalType": "uint256", "name": "page_count", "type": "uint256" }, { "internalType": "string[]", "name": "accounts", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "get_holders_list", "outputs": [ { "internalType": "uint256", "name": "page_count", "type": "uint256" }, { "internalType": "address[]", "name": "accounts", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "get_svg_acc_index", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "holders_count", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "increaseMaxTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "limited", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxHoldingAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "max_breed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minHoldingAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setLimitsOff", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxHoldingAmount", "type": "uint256" } ], "name": "setTxManual", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_uniswapV2Pair", "type": "address" } ], "name": "start", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "transfer_breed_from_to_by_index", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6080604052600160065f6101000a81548160ff021916908315150217905550683635c9adc5dea0000060075567016345785d8a00006008555f6009556103e8600f553480156200004d575f80fd5b506040518060400160405280600681526020017f4d696c61647900000000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f4d00000000000000000000000000000000000000000000000000000000000000815250620000da620000ce6200011a60201b60201c565b6200012160201b60201c565b8160049081620000eb919062000931565b508060059081620000fd919062000931565b5050506200011433600754620001e260201b60201c565b62000c70565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000253576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200024a9062000a73565b60405180910390fd5b620002665f83836200035360201b60201c565b8060035f82825462000279919062000ac0565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620002ce919062000ac0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000334919062000b0b565b60405180910390a36200034f5f83836200065b60201b60201c565b5050565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015620003f25750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b62000434576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200042b9062000b74565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200055557620004996200066060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200050d5750620004de6200066060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200054f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005469062000be2565b60405180910390fd5b62000656565b60065f9054906101000a900460ff168015620005bd5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15620006555760085481620005d8846200068760201b60201c565b620005e4919062000ac0565b111580156200061257506009548162000603846200068760201b60201c565b6200060f919062000ac0565b10155b62000654576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064b9062000c50565b60405180910390fd5b5b5b505050565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200074957607f821691505b6020821081036200075f576200075e62000704565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000786565b620007cf868362000786565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000819620008136200080d84620007e7565b620007f0565b620007e7565b9050919050565b5f819050919050565b6200083483620007f9565b6200084c620008438262000820565b84845462000792565b825550505050565b5f90565b6200086262000854565b6200086f81848462000829565b505050565b5b8181101562000896576200088a5f8262000858565b60018101905062000875565b5050565b601f821115620008e557620008af8162000765565b620008ba8462000777565b81016020851015620008ca578190505b620008e2620008d98562000777565b83018262000874565b50505b505050565b5f82821c905092915050565b5f620009075f1984600802620008ea565b1980831691505092915050565b5f620009218383620008f6565b9150826002028217905092915050565b6200093c82620006cd565b67ffffffffffffffff811115620009585762000957620006d7565b5b62000964825462000731565b620009718282856200089a565b5f60209050601f831160018114620009a7575f841562000992578287015190505b6200099e858262000914565b86555062000a0d565b601f198416620009b78662000765565b5f5b82811015620009e057848901518255600182019150602085019450602081019050620009b9565b8683101562000a005784890151620009fc601f891682620008f6565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000a5b601f8362000a15565b915062000a688262000a25565b602082019050919050565b5f6020820190508181035f83015262000a8c8162000a4d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000acc82620007e7565b915062000ad983620007e7565b925082820190508082111562000af45762000af362000a93565b5b92915050565b62000b0581620007e7565b82525050565b5f60208201905062000b205f83018462000afa565b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f62000b5c600b8362000a15565b915062000b698262000b26565b602082019050919050565b5f6020820190508181035f83015262000b8d8162000b4e565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f62000bca60168362000a15565b915062000bd78262000b94565b602082019050919050565b5f6020820190508181035f83015262000bfb8162000bbc565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f62000c3860068362000a15565b915062000c458262000c02565b602082019050919050565b5f6020820190508181035f83015262000c698162000c2a565b9050919050565b6141218062000c7e5f395ff3fe608060405234801561000f575f80fd5b50600436106103ce575f3560e01c8063856925ee116101fd578063b4377a3e11610118578063dd62ed3e116100ab578063eac6abf91161007a578063eac6abf914610b66578063f10549f614610b82578063f2fde38b14610b9e578063f79e787d14610bba576103ce565b8063dd62ed3e14610af2578063dde415fa14610b22578063e16a878314610b40578063ea0bcae914610b4a576103ce565b8063cc9f39f0116100e7578063cc9f39f014610a6d578063d5a4260614610a89578063dd0b281e14610aba578063dd5ab41a14610ad6576103ce565b8063b4377a3e146109e9578063b4f243a414610a05578063b83d4fc914610a35578063c88fa40e14610a51576103ce565b8063a457c2d711610190578063af504def1161015f578063af504def14610975578063b1d4513a14610993578063b2321165146109af578063b42dfa0d146109cb576103ce565b8063a457c2d7146108dd578063a552a3631461090d578063a9059cbb14610929578063acca827114610959576103ce565b80638da5cb5b116101cc5780638da5cb5b146108525780638fdada4a1461087057806395d89b411461088e57806398bafaa3146108ac576103ce565b8063856925ee146107de578063860a32ec146107fa578063873677131461081857806389f9a1d314610834576103ce565b8063313ce567116102ed5780635d7fa6fc1161028057806370a082311161024f57806370a0823114610757578063715018a614610787578063750e8d1014610791578063795ed01e146107c2576103ce565b80635d7fa6fc146106e757806362129c87146107035780636707e3bc1461071f5780636a8776621461073b576103ce565b8063404e5129116102bc578063404e51291461067557806342966c681461069157806349bd5a5e146106ad5780635a5e0983146106cb576103ce565b8063313ce567146105ec57806334b0c8041461060a5780633860a393146106145780633950935114610645576103ce565b80630d9ab7ad1161036557806323b872dd1161033457806323b872dd1461056657806324eae40f1461059657806328d35d5a146105b25780632d12d34b146105ce576103ce565b80630d9ab7ad146104de57806316c02129146104fa57806318160ddd1461052a5780631ab99e1214610548576103ce565b806306fdde03116103a157806306fdde0314610458578063095ea7b3146104765780630c38ffff146104a65780630c50d184146104c2576103ce565b8063018a3741146103d2578063048b402e146103f05780630568e65e1461040c57806306ea37161461043c575b5f80fd5b6103da610bd6565b6040516103e79190613186565b60405180910390f35b61040a600480360381019061040591906131cd565b610bdc565b005b61042660048036038101906104219190613252565b610c62565b6040516104339190613186565b60405180910390f35b610456600480360381019061045191906131cd565b610c77565b005b610460610cfd565b60405161046d9190613307565b60405180910390f35b610490600480360381019061048b9190613327565b610d8d565b60405161049d919061337f565b60405180910390f35b6104c060048036038101906104bb91906131cd565b610daa565b005b6104dc60048036038101906104d791906131cd565b610e30565b005b6104f860048036038101906104f391906131cd565b610eb6565b005b610514600480360381019061050f9190613252565b610f3c565b604051610521919061337f565b60405180910390f35b610532610f59565b60405161053f9190613186565b60405180910390f35b610550610f62565b60405161055d9190613186565b60405180910390f35b610580600480360381019061057b9190613398565b610f68565b60405161058d919061337f565b60405180910390f35b6105b060048036038101906105ab91906131cd565b61105a565b005b6105cc60048036038101906105c791906131cd565b6110e0565b005b6105d66110ea565b6040516105e39190613186565b60405180910390f35b6105f46110ef565b6040516106019190613403565b60405180910390f35b6106126110f7565b005b61062e6004803603810190610629919061341c565b61118e565b60405161063c929190613511565b60405180910390f35b61065f600480360381019061065a9190613327565b611310565b60405161066c919061337f565b60405180910390f35b61068f600480360381019061068a9190613569565b6113b7565b005b6106ab60048036038101906106a691906131cd565b61148b565b005b6106b5611498565b6040516106c291906135b6565b60405180910390f35b6106e560048036038101906106e091906131cd565b6114bd565b005b61070160048036038101906106fc91906131cd565b611543565b005b61071d600480360381019061071891906131cd565b6115c9565b005b610739600480360381019061073491906131cd565b61164f565b005b610755600480360381019061075091906131cd565b6116d5565b005b610771600480360381019061076c9190613252565b61175b565b60405161077e9190613186565b60405180910390f35b61078f6117a1565b005b6107ab60048036038101906107a691906135cf565b611828565b6040516107b9929190613722565b60405180910390f35b6107dc60048036038101906107d791906131cd565b6118b5565b005b6107f860048036038101906107f391906131cd565b61193b565b005b6108026119c1565b60405161080f919061337f565b60405180910390f35b610832600480360381019061082d91906131cd565b6119d3565b005b61083c611a59565b6040516108499190613186565b60405180910390f35b61085a611a5f565b60405161086791906135b6565b60405180910390f35b610878611a86565b6040516108859190613186565b60405180910390f35b610896611a8c565b6040516108a39190613307565b60405180910390f35b6108c660048036038101906108c191906135cf565b611b1c565b6040516108d4929190613722565b60405180910390f35b6108f760048036038101906108f29190613327565b611ba9565b604051610904919061337f565b60405180910390f35b610927600480360381019061092291906131cd565b611c8f565b005b610943600480360381019061093e9190613327565b611d15565b604051610950919061337f565b60405180910390f35b610973600480360381019061096e91906131cd565b611d32565b005b61097d611db8565b60405161098a9190613186565b60405180910390f35b6109ad60048036038101906109a891906131cd565b611dbe565b005b6109c960048036038101906109c491906131cd565b611e44565b005b6109d3611eca565b6040516109e09190613186565b60405180910390f35b610a0360048036038101906109fe9190613750565b611ed0565b005b610a1f6004803603810190610a1a9190613327565b611f5e565b604051610a2c9190613307565b60405180910390f35b610a4f6004803603810190610a4a91906131cd565b611f66565b005b610a6b6004803603810190610a6691906131cd565b611fec565b005b610a876004803603810190610a8291906131cd565b612072565b005b610aa36004803603810190610a9e91906135cf565b6120f8565b604051610ab1929190613722565b60405180910390f35b610ad46004803603810190610acf9190613252565b61223e565b005b610af06004803603810190610aeb91906131cd565b6122fd565b005b610b0c6004803603810190610b07919061378e565b612383565b604051610b199190613186565b60405180910390f35b610b2a612405565b604051610b379190613186565b60405180910390f35b610b4861240b565b005b610b646004803603810190610b5f91906131cd565b61249e565b005b610b806004803603810190610b7b91906131cd565b612524565b005b610b9c6004803603810190610b9791906131cd565b6125aa565b005b610bb86004803603810190610bb39190613252565b612630565b005b610bd46004803603810190610bcf91906131cd565b612726565b005b600e5481565b610be46127ac565b73ffffffffffffffffffffffffffffffffffffffff16610c02611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f90613816565b60405180910390fd5b8060278190555050565b6010602052805f5260405f205f915090505481565b610c7f6127ac565b73ffffffffffffffffffffffffffffffffffffffff16610c9d611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90613816565b60405180910390fd5b8060258190555050565b606060048054610d0c90613861565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3890613861565b8015610d835780601f10610d5a57610100808354040283529160200191610d83565b820191905f5260205f20905b815481529060010190602001808311610d6657829003601f168201915b5050505050905090565b5f610da0610d996127ac565b84846127b3565b6001905092915050565b610db26127ac565b73ffffffffffffffffffffffffffffffffffffffff16610dd0611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d90613816565b60405180910390fd5b80601c8190555050565b610e386127ac565b73ffffffffffffffffffffffffffffffffffffffff16610e56611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390613816565b60405180910390fd5b8060248190555050565b610ebe6127ac565b73ffffffffffffffffffffffffffffffffffffffff16610edc611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614610f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2990613816565b60405180910390fd5b80601f8190555050565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60095481565b5f610f74848484612976565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610fbb6127ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190613901565b60405180910390fd5b61104e856110466127ac565b8584036127b3565b60019150509392505050565b6110626127ac565b73ffffffffffffffffffffffffffffffffffffffff16611080611a5f565b73ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90613816565b60405180910390fd5b8060148190555050565b80602a8190555050565b600181565b5f6012905090565b6110ff6127ac565b73ffffffffffffffffffffffffffffffffffffffff1661111d611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a90613816565b60405180910390fd5b5f60065f6101000a81548160ff021916908315150217905550565b5f6060600e5484106111ed575f8067ffffffffffffffff8111156111b5576111b461391f565b5b6040519080825280602002602001820160405280156111e35781602001602082028036833780820191505090505b5091509150611309565b5f83856111fa9190613979565b9050600e5481111561120c57600e5490505b848161121891906139ac565b92508267ffffffffffffffff8111156112345761123361391f565b5b6040519080825280602002602001820160405280156112625781602001602082028036833780820191505090505b5091505f8590505b8381101561130657600c5f82886112819190613979565b81526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168382815181106112c1576112c06139df565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080600101905061126a565b50505b9250929050565b5f6113ad61131c6127ac565b848460025f6113296127ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113a89190613979565b6127b3565b6001905092915050565b6113bf6127ac565b73ffffffffffffffffffffffffffffffffffffffff166113dd611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a90613816565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6114953382612bee565b50565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114c56127ac565b73ffffffffffffffffffffffffffffffffffffffff166114e3611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613816565b60405180910390fd5b8060208190555050565b61154b6127ac565b73ffffffffffffffffffffffffffffffffffffffff16611569611a5f565b73ffffffffffffffffffffffffffffffffffffffff16146115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b690613816565b60405180910390fd5b80601b8190555050565b6115d16127ac565b73ffffffffffffffffffffffffffffffffffffffff166115ef611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c90613816565b60405180910390fd5b8060168190555050565b6116576127ac565b73ffffffffffffffffffffffffffffffffffffffff16611675611a5f565b73ffffffffffffffffffffffffffffffffffffffff16146116cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c290613816565b60405180910390fd5b8060298190555050565b6116dd6127ac565b73ffffffffffffffffffffffffffffffffffffffff166116fb611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890613816565b60405180910390fd5b8060218190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6117a96127ac565b73ffffffffffffffffffffffffffffffffffffffff166117c7611a5f565b73ffffffffffffffffffffffffffffffffffffffff161461181d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181490613816565b60405180910390fd5b6118265f612dbc565b565b5f60605f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f84866118799190613979565b905081811115611887578190505b858161189391906139ac565b93505f5b848110156118aa57806001019050611897565b505050935093915050565b6118bd6127ac565b73ffffffffffffffffffffffffffffffffffffffff166118db611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890613816565b60405180910390fd5b80601a8190555050565b6119436127ac565b73ffffffffffffffffffffffffffffffffffffffff16611961611a5f565b73ffffffffffffffffffffffffffffffffffffffff16146119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae90613816565b60405180910390fd5b8060228190555050565b60065f9054906101000a900460ff1681565b6119db6127ac565b73ffffffffffffffffffffffffffffffffffffffff166119f9611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4690613816565b60405180910390fd5b80601d8190555050565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103e881565b606060058054611a9b90613861565b80601f0160208091040260200160405190810160405280929190818152602001828054611ac790613861565b8015611b125780601f10611ae957610100808354040283529160200191611b12565b820191905f5260205f20905b815481529060010190602001808311611af557829003601f168201915b5050505050905090565b5f60605f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8486611b6d9190613979565b905081811115611b7b578190505b8581611b8791906139ac565b93505f5b84811015611b9e57806001019050611b8b565b505050935093915050565b5f8060025f611bb66127ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790613a7c565b60405180910390fd5b611c84611c7b6127ac565b858584036127b3565b600191505092915050565b611c976127ac565b73ffffffffffffffffffffffffffffffffffffffff16611cb5611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0290613816565b60405180910390fd5b8060178190555050565b5f611d28611d216127ac565b8484612976565b6001905092915050565b611d3a6127ac565b73ffffffffffffffffffffffffffffffffffffffff16611d58611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da590613816565b60405180910390fd5b8060238190555050565b60115481565b611dc66127ac565b73ffffffffffffffffffffffffffffffffffffffff16611de4611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3190613816565b60405180910390fd5b80601e8190555050565b611e4c6127ac565b73ffffffffffffffffffffffffffffffffffffffff16611e6a611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb790613816565b60405180910390fd5b8060188190555050565b600f5481565b60105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548210611f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4690613ae4565b60405180910390fd5b611f5a338383612e7d565b5050565b606092915050565b611f6e6127ac565b73ffffffffffffffffffffffffffffffffffffffff16611f8c611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614611fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd990613816565b60405180910390fd5b8060198190555050565b611ff46127ac565b73ffffffffffffffffffffffffffffffffffffffff16612012611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614612068576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205f90613816565b60405180910390fd5b8060158190555050565b61207a6127ac565b73ffffffffffffffffffffffffffffffffffffffff16612098611a5f565b73ffffffffffffffffffffffffffffffffffffffff16146120ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e590613816565b60405180910390fd5b80602c8190555050565b5f60605f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905080851061219c575f8067ffffffffffffffff81111561215e5761215d61391f565b5b60405190808252806020026020018201604052801561219157816020015b606081526020019060019003908161217c5790505b509250925050612236565b5f84866121a99190613979565b9050818111156121c55781905080866121c291906139ac565b93505b8367ffffffffffffffff8111156121df576121de61391f565b5b60405190808252806020026020018201604052801561221257816020015b60608152602001906001900390816121fd5790505b5092505f805f90508791505b828210156122315781600101915061221e565b505050505b935093915050565b6122466127ac565b73ffffffffffffffffffffffffffffffffffffffff16612264611a5f565b73ffffffffffffffffffffffffffffffffffffffff16146122ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b190613816565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6123056127ac565b73ffffffffffffffffffffffffffffffffffffffff16612323611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614612379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237090613816565b60405180910390fd5b8060288190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6103e881565b6124136127ac565b73ffffffffffffffffffffffffffffffffffffffff16612431611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614612487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247e90613816565b60405180910390fd5b60026008546124969190613b02565b600881905550565b6124a66127ac565b73ffffffffffffffffffffffffffffffffffffffff166124c4611a5f565b73ffffffffffffffffffffffffffffffffffffffff161461251a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251190613816565b60405180910390fd5b8060268190555050565b61252c6127ac565b73ffffffffffffffffffffffffffffffffffffffff1661254a611a5f565b73ffffffffffffffffffffffffffffffffffffffff16146125a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259790613816565b60405180910390fd5b80602b8190555050565b6125b26127ac565b73ffffffffffffffffffffffffffffffffffffffff166125d0611a5f565b73ffffffffffffffffffffffffffffffffffffffff1614612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261d90613816565b60405180910390fd5b8060138190555050565b6126386127ac565b73ffffffffffffffffffffffffffffffffffffffff16612656611a5f565b73ffffffffffffffffffffffffffffffffffffffff16146126ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a390613816565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361271a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271190613bb3565b60405180910390fd5b61272381612dbc565b50565b61272e6127ac565b73ffffffffffffffffffffffffffffffffffffffff1661274c611a5f565b73ffffffffffffffffffffffffffffffffffffffff16146127a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279990613816565b60405180910390fd5b8060088190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281890613c41565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361288f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288690613ccf565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129699190613186565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129db90613d5d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4990613deb565b60405180910390fd5b612a5d838383612e95565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad890613e79565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612b719190613979565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bd59190613186565b60405180910390a3612be8848484613169565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5390613f07565b60405180910390fd5b612c67825f83612e95565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce290613f95565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f828254612d4091906139ac565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da49190613186565b60405180910390a3612db7835f84613169565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60405180602001604052805f815250905050505050565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612f335750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6990613ffd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361307d57612fce611a5f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613039575061300a611a5f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b613078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306f90614065565b60405180910390fd5b613164565b60065f9054906101000a900460ff1680156130e45750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561316357600854816130f68461175b565b6131009190613979565b111580156131235750600954816131168461175b565b6131209190613979565b10155b613162576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613159906140cd565b60405180910390fd5b5b5b505050565b505050565b5f819050919050565b6131808161316e565b82525050565b5f6020820190506131995f830184613177565b92915050565b5f80fd5b6131ac8161316e565b81146131b6575f80fd5b50565b5f813590506131c7816131a3565b92915050565b5f602082840312156131e2576131e161319f565b5b5f6131ef848285016131b9565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613221826131f8565b9050919050565b61323181613217565b811461323b575f80fd5b50565b5f8135905061324c81613228565b92915050565b5f602082840312156132675761326661319f565b5b5f6132748482850161323e565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156132b4578082015181840152602081019050613299565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6132d98261327d565b6132e38185613287565b93506132f3818560208601613297565b6132fc816132bf565b840191505092915050565b5f6020820190508181035f83015261331f81846132cf565b905092915050565b5f806040838503121561333d5761333c61319f565b5b5f61334a8582860161323e565b925050602061335b858286016131b9565b9150509250929050565b5f8115159050919050565b61337981613365565b82525050565b5f6020820190506133925f830184613370565b92915050565b5f805f606084860312156133af576133ae61319f565b5b5f6133bc8682870161323e565b93505060206133cd8682870161323e565b92505060406133de868287016131b9565b9150509250925092565b5f60ff82169050919050565b6133fd816133e8565b82525050565b5f6020820190506134165f8301846133f4565b92915050565b5f80604083850312156134325761343161319f565b5b5f61343f858286016131b9565b9250506020613450858286016131b9565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61348c81613217565b82525050565b5f61349d8383613483565b60208301905092915050565b5f602082019050919050565b5f6134bf8261345a565b6134c98185613464565b93506134d483613474565b805f5b838110156135045781516134eb8882613492565b97506134f6836134a9565b9250506001810190506134d7565b5085935050505092915050565b5f6040820190506135245f830185613177565b818103602083015261353681846134b5565b90509392505050565b61354881613365565b8114613552575f80fd5b50565b5f813590506135638161353f565b92915050565b5f806040838503121561357f5761357e61319f565b5b5f61358c8582860161323e565b925050602061359d85828601613555565b9150509250929050565b6135b081613217565b82525050565b5f6020820190506135c95f8301846135a7565b92915050565b5f805f606084860312156135e6576135e561319f565b5b5f6135f38682870161323e565b9350506020613604868287016131b9565b9250506040613615868287016131b9565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6136628261327d565b61366c8185613648565b935061367c818560208601613297565b613685816132bf565b840191505092915050565b5f61369b8383613658565b905092915050565b5f602082019050919050565b5f6136b98261361f565b6136c38185613629565b9350836020820285016136d585613639565b805f5b8581101561371057848403895281516136f18582613690565b94506136fc836136a3565b925060208a019950506001810190506136d8565b50829750879550505050505092915050565b5f6040820190506137355f830185613177565b818103602083015261374781846136af565b90509392505050565b5f80604083850312156137665761376561319f565b5b5f613773858286016131b9565b92505060206137848582860161323e565b9150509250929050565b5f80604083850312156137a4576137a361319f565b5b5f6137b18582860161323e565b92505060206137c28582860161323e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613800602083613287565b915061380b826137cc565b602082019050919050565b5f6020820190508181035f83015261382d816137f4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061387857607f821691505b60208210810361388b5761388a613834565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6138eb602883613287565b91506138f682613891565b604082019050919050565b5f6020820190508181035f830152613918816138df565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139838261316e565b915061398e8361316e565b92508282019050808211156139a6576139a561394c565b5b92915050565b5f6139b68261316e565b91506139c18361316e565b92508282039050818111156139d9576139d861394c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613a66602583613287565b9150613a7182613a0c565b604082019050919050565b5f6020820190508181035f830152613a9381613a5a565b9050919050565b7f696e636f727265637420696e64657800000000000000000000000000000000005f82015250565b5f613ace600f83613287565b9150613ad982613a9a565b602082019050919050565b5f6020820190508181035f830152613afb81613ac2565b9050919050565b5f613b0c8261316e565b9150613b178361316e565b9250828202613b258161316e565b91508282048414831517613b3c57613b3b61394c565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613b9d602683613287565b9150613ba882613b43565b604082019050919050565b5f6020820190508181035f830152613bca81613b91565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613c2b602483613287565b9150613c3682613bd1565b604082019050919050565b5f6020820190508181035f830152613c5881613c1f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cb9602283613287565b9150613cc482613c5f565b604082019050919050565b5f6020820190508181035f830152613ce681613cad565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613d47602583613287565b9150613d5282613ced565b604082019050919050565b5f6020820190508181035f830152613d7481613d3b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613dd5602383613287565b9150613de082613d7b565b604082019050919050565b5f6020820190508181035f830152613e0281613dc9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613e63602683613287565b9150613e6e82613e09565b604082019050919050565b5f6020820190508181035f830152613e9081613e57565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ef1602183613287565b9150613efc82613e97565b604082019050919050565b5f6020820190508181035f830152613f1e81613ee5565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f7f602283613287565b9150613f8a82613f25565b604082019050919050565b5f6020820190508181035f830152613fac81613f73565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f613fe7600b83613287565b9150613ff282613fb3565b602082019050919050565b5f6020820190508181035f83015261401481613fdb565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f61404f601683613287565b915061405a8261401b565b602082019050919050565b5f6020820190508181035f83015261407c81614043565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f6140b7600683613287565b91506140c282614083565b602082019050919050565b5f6020820190508181035f8301526140e4816140ab565b905091905056fea2646970667358221220ca38a7347c36cadce416b8b23112538fa1d7820fed7e50bf824101fac456369064736f6c63430008170033