[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "_cid", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_nonRevealedURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "closeSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "extension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reveal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revealed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "royaltyPayout", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_extension", "type": "string" } ], "name": "setExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setNotRevealedURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_payoutAddress", "type": "address" } ], "name": "setRoyaltyPayoutAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "_royalties", "type": "uint96" } ], "name": "setTokenRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenRoyalties", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052604051806080016040528060508152602001620060f260509139601090805190602001906200003592919062000fc0565b506040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250601290805190602001906200008392919062000fc0565b506000601360006101000a81548160ff0219169083151502179055506000601360016101000a81548160ff02191690831515021790555060326014556714d1120d7b1600006015556102ee601660006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555073154b9ef4d40a83318a3f14c782aff4f94cd8ca336016600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200016057600080fd5b506040518060400160405280601281526020017f50445820537570706f72746572205061737300000000000000000000000000008152506040518060400160405280600481526020017f50445850000000000000000000000000000000000000000000000000000000008152508160009080519060200190620001e592919062000fc0565b508060019080519060200190620001fe92919062000fc0565b5050506001600a81905550620002296200021d620002c760201b60201c565b620002cf60201b60201c565b6200024e7385e6cc88f3055b589eb1d4030863be2cfcc0763e6200039560201b60201c565b620002737377414036afb728b7346cd2c37a689e8c2269fcef6200039560201b60201c565b620002c16016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a90046bffffffffffffffffffffffff16620003dd60201b60201c565b62001715565b600033905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003ac600e6200058160201b62001ab61760201c565b6000620003c5600e6200059760201b62001acc1760201c565b9050620003d98282620005a560201b60201c565b5050565b620003ed620005cb60201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156200044e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200044590620012e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004b89062001304565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600c60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6001816000016000828254019250508190555050565b600081600001549050919050565b620005c7828260405180602001604052806000815250620005d560201b60201c565b5050565b6000612710905090565b620005e783836200064360201b60201c565b620005fc60008484846200083d60201b60201c565b6200063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000635906200125a565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620006b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006ad90620012c0565b60405180910390fd5b620006c781620009f760201b60201c565b156200070a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000701906200127c565b60405180910390fd5b6200071e6000838362000a6360201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000770919062001353565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4620008396000838362000baa60201b60201c565b5050565b60006200086b8473ffffffffffffffffffffffffffffffffffffffff1662000baf60201b62001ada1760201c565b15620009ea578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026200089d620002c760201b60201c565b8786866040518563ffffffff1660e01b8152600401620008c1949392919062001206565b602060405180830381600087803b158015620008dc57600080fd5b505af19250505080156200091057506040513d601f19601f820116820180604052508101906200090d919062001087565b60015b62000999573d806000811462000943576040519150601f19603f3d011682016040523d82523d6000602084013e62000948565b606091505b5060008151141562000991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000988906200125a565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050620009ef565b600190505b949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b62000a7b83838362000bd260201b62001afd1760201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000ac85762000ac28162000bd760201b60201c565b62000b10565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000b0f5762000b0e838262000c2060201b60201c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000b5d5762000b578162000d9d60201b60201c565b62000ba5565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000ba45762000ba3828262000e7960201b60201c565b5b5b505050565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600162000c3a8462000f0560201b620011dc1760201c565b62000c469190620013b0565b905060006007600084815260200190815260200160002054905081811462000d2c576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905062000db39190620013b0565b905060006009600084815260200190815260200160002054905060006008838154811062000de65762000de56200154e565b5b90600052602060002001549050806008838154811062000e0b5762000e0a6200154e565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548062000e5d5762000e5c6200151f565b5b6001900381819060005260206000200160009055905550505050565b600062000e918362000f0560201b620011dc1760201c565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f70906200129e565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b82805462000fce906200148b565b90600052602060002090601f01602090048101928262000ff257600085556200103e565b82601f106200100d57805160ff19168380011785556200103e565b828001600101855582156200103e579182015b828111156200103d57825182559160200191906001019062001020565b5b5090506200104d919062001051565b5090565b5b808211156200106c57600081600090555060010162001052565b5090565b6000815190506200108181620016fb565b92915050565b600060208284031215620010a0576200109f6200157d565b5b6000620010b08482850162001070565b91505092915050565b620010c481620013eb565b82525050565b6000620010d78262001326565b620010e3818562001331565b9350620010f581856020860162001455565b620011008162001582565b840191505092915050565b60006200111a60328362001342565b9150620011278262001593565b604082019050919050565b600062001141601c8362001342565b91506200114e82620015e2565b602082019050919050565b60006200116860298362001342565b915062001175826200160b565b604082019050919050565b60006200118f60208362001342565b91506200119c826200165a565b602082019050919050565b6000620011b6602a8362001342565b9150620011c38262001683565b604082019050919050565b6000620011dd60198362001342565b9150620011ea82620016d2565b602082019050919050565b62001200816200144b565b82525050565b60006080820190506200121d6000830187620010b9565b6200122c6020830186620010b9565b6200123b6040830185620011f5565b81810360608301526200124f8184620010ca565b905095945050505050565b6000602082019050818103600083015262001275816200110b565b9050919050565b60006020820190508181036000830152620012978162001132565b9050919050565b60006020820190508181036000830152620012b98162001159565b9050919050565b60006020820190508181036000830152620012db8162001180565b9050919050565b60006020820190508181036000830152620012fd81620011a7565b9050919050565b600060208201905081810360008301526200131f81620011ce565b9050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600062001360826200144b565b91506200136d836200144b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620013a557620013a4620014c1565b5b828201905092915050565b6000620013bd826200144b565b9150620013ca836200144b565b925082821015620013e057620013df620014c1565b5b828203905092915050565b6000620013f8826200142b565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200147557808201518184015260208101905062001458565b8381111562001485576000848401525b50505050565b60006002820490506001821680620014a457607f821691505b60208210811415620014bb57620014ba620014f0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6200170681620013ff565b81146200171257600080fd5b50565b6149cd80620017256000396000f3fe6080604052600436106102305760003560e01c80636352211e1161012e578063a22cb465116100ab578063d5abeb011161006f578063d5abeb011461080b578063e985e9c514610836578063ee55efee14610873578063f2c4ce1e1461088a578063f2fde38b146108b357610230565b8063a22cb4651461073a578063a475b5dd14610763578063b88d4fde1461077a578063c299e9d0146107a3578063c87b56dd146107ce57610230565b80638da5cb5b116100f25780638da5cb5b14610672578063932d42c91461069d57806395d89b41146106c8578063a035b1fe146106f3578063a0712d681461071e57610230565b80636352211e1461058d57806370a08231146105ca578063715018a6146106075780637e2285aa1461061e5780638b584eeb1461064757610230565b80632a55205a116101bc57806342842e0e1161018057806342842e0e146104aa57806345aeefde146104d35780634f6ccce7146104fc578063518302271461053957806355f804b31461056457610230565b80632a55205a146103c25780632d5537b0146104005780632dff84231461042b5780632f745c59146104565780633ccfd60b1461049357610230565b8063167ff46f11610203578063167ff46f1461030357806318160ddd1461031a5780631ebdcaae1461034557806323b872dd1461036e57806324bbd0491461039757610230565b806301ffc9a71461023557806306fdde0314610272578063081812fc1461029d578063095ea7b3146102da575b600080fd5b34801561024157600080fd5b5061025c60048036038101906102579190613449565b6108dc565b6040516102699190613b10565b60405180910390f35b34801561027e57600080fd5b506102876108ee565b6040516102949190613b2b565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf91906134ec565b610980565b6040516102d19190613a80565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190613409565b6109c6565b005b34801561030f57600080fd5b50610318610ade565b005b34801561032657600080fd5b5061032f610b03565b60405161033c9190613e6d565b60405180910390f35b34801561035157600080fd5b5061036c60048036038101906103679190613559565b610b10565b005b34801561037a57600080fd5b50610395600480360381019061039091906132f3565b610b92565b005b3480156103a357600080fd5b506103ac610bf2565b6040516103b99190613b10565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190613519565b610c05565b6040516103f7929190613ae7565b60405180910390f35b34801561040c57600080fd5b50610415610df0565b6040516104229190613b2b565b60405180910390f35b34801561043757600080fd5b50610440610e7e565b60405161044d9190613e88565b60405180910390f35b34801561046257600080fd5b5061047d60048036038101906104789190613409565b610e9c565b60405161048a9190613e6d565b60405180910390f35b34801561049f57600080fd5b506104a8610f41565b005b3480156104b657600080fd5b506104d160048036038101906104cc91906132f3565b610fd2565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190613286565b610ff2565b005b34801561050857600080fd5b50610523600480360381019061051e91906134ec565b611084565b6040516105309190613e6d565b60405180910390f35b34801561054557600080fd5b5061054e6110f5565b60405161055b9190613b10565b60405180910390f35b34801561057057600080fd5b5061058b600480360381019061058691906134a3565b611108565b005b34801561059957600080fd5b506105b460048036038101906105af91906134ec565b61112a565b6040516105c19190613a80565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec9190613286565b6111dc565b6040516105fe9190613e6d565b60405180910390f35b34801561061357600080fd5b5061061c611294565b005b34801561062a57600080fd5b50610645600480360381019061064091906134a3565b6112a8565b005b34801561065357600080fd5b5061065c6112ca565b6040516106699190613a80565b60405180910390f35b34801561067e57600080fd5b506106876112f0565b6040516106949190613a80565b60405180910390f35b3480156106a957600080fd5b506106b261131a565b6040516106bf9190613b2b565b60405180910390f35b3480156106d457600080fd5b506106dd6113a8565b6040516106ea9190613b2b565b60405180910390f35b3480156106ff57600080fd5b5061070861143a565b6040516107159190613e6d565b60405180910390f35b610738600480360381019061073391906134ec565b611440565b005b34801561074657600080fd5b50610761600480360381019061075c91906133c9565b6116cd565b005b34801561076f57600080fd5b506107786116e3565b005b34801561078657600080fd5b506107a1600480360381019061079c9190613346565b611708565b005b3480156107af57600080fd5b506107b861176a565b6040516107c59190613b2b565b60405180910390f35b3480156107da57600080fd5b506107f560048036038101906107f091906134ec565b6117f8565b6040516108029190613b2b565b60405180910390f35b34801561081757600080fd5b50610820611951565b60405161082d9190613e6d565b60405180910390f35b34801561084257600080fd5b5061085d600480360381019061085891906132b3565b611957565b60405161086a9190613b10565b60405180910390f35b34801561087f57600080fd5b506108886119eb565b005b34801561089657600080fd5b506108b160048036038101906108ac91906134a3565b611a10565b005b3480156108bf57600080fd5b506108da60048036038101906108d59190613286565b611a32565b005b60006108e782611b02565b9050919050565b6060600080546108fd90614165565b80601f016020809104026020016040519081016040528092919081815260200182805461092990614165565b80156109765780601f1061094b57610100808354040283529160200191610976565b820191906000526020600020905b81548152906001019060200180831161095957829003601f168201915b5050505050905090565b600061098b82611b7c565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109d18261112a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3990613d6d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610a61611bc7565b73ffffffffffffffffffffffffffffffffffffffff161480610a905750610a8f81610a8a611bc7565b611957565b5b610acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac690613ccd565b60405180910390fd5b610ad98383611bcf565b505050565b610ae6611c88565b6001601360016101000a81548160ff021916908315150217905550565b6000600880549050905090565b610b18611c88565b80601660006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610b8f6016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a90046bffffffffffffffffffffffff16611d06565b50565b610ba3610b9d611bc7565b82611e9c565b610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd990613ded565b60405180910390fd5b610bed838383611f31565b505050565b601360019054906101000a900460ff1681565b6000806000600d60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161415610d9b57600c6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610da5612198565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610dd19190614009565b610ddb9190613fd8565b90508160000151819350935050509250929050565b60128054610dfd90614165565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2990614165565b8015610e765780601f10610e4b57610100808354040283529160200191610e76565b820191906000526020600020905b815481529060010190602001808311610e5957829003601f168201915b505050505081565b601660009054906101000a90046bffffffffffffffffffffffff1681565b6000610ea7836111dc565b8210610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90613b6d565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610f49611c88565b600047905060008111610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890613b4d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050610fcf57600080fd5b50565b610fed83838360405180602001604052806000815250611708565b505050565b610ffa611c88565b806016600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110816016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a90046bffffffffffffffffffffffff16611d06565b50565b600061108e610b03565b82106110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690613d8d565b60405180910390fd5b600882815481106110e3576110e26142fe565b5b90600052602060002001549050919050565b601360009054906101000a900460ff1681565b611110611c88565b80600f9080519060200190611126929190613085565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca90613d4d565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561124d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124490613cad565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61129c611c88565b6112a660006121a2565b565b6112b0611c88565b80601290805190602001906112c6929190613085565b5050565b6016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6010805461132790614165565b80601f016020809104026020016040519081016040528092919081815260200182805461135390614165565b80156113a05780601f10611375576101008083540402835291602001916113a0565b820191906000526020600020905b81548152906001019060200180831161138357829003601f168201915b505050505081565b6060600180546113b790614165565b80601f01602080910402602001604051908101604052809291908181526020018280546113e390614165565b80156114305780601f1061140557610100808354040283529160200191611430565b820191906000526020600020905b81548152906001019060200180831161141357829003601f168201915b5050505050905090565b60155481565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146114ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a590613c8d565b60405180910390fd5b6002600a5414156114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114eb90613e0d565b60405180910390fd5b6002600a819055506000611506610b03565b9050601360019054906101000a900460ff16611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90613d2d565b60405180910390fd5b600282111561159b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159290613c0d565b60405180910390fd5b60145482826115aa9190613f82565b11156115eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e290613dcd565b60405180910390fd5b816015546115f99190614009565b34101561163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163290613e2d565b60405180910390fd5b6116436112f0565b73ffffffffffffffffffffffffffffffffffffffff166108fc8360155461166a9190614009565b9081150290604051600060405180830381858888f19350505050158015611695573d6000803e3d6000fd5b506000600190505b8281116116c0576116ad33612268565b80806116b8906141c8565b91505061169d565b50506001600a8190555050565b6116df6116d8611bc7565b838361228e565b5050565b6116eb611c88565b6001601360006101000a81548160ff021916908315150217905550565b611719611713611bc7565b83611e9c565b611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90613ded565b60405180910390fd5b611764848484846123fb565b50505050565b600f805461177790614165565b80601f01602080910402602001604051908101604052809291908181526020018280546117a390614165565b80156117f05780601f106117c5576101008083540402835291602001916117f0565b820191906000526020600020905b8154815290600101906020018083116117d357829003601f168201915b505050505081565b606061180382612457565b611842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183990613c6d565b60405180910390fd5b60001515601360009054906101000a900460ff16151514156118f0576010805461186b90614165565b80601f016020809104026020016040519081016040528092919081815260200182805461189790614165565b80156118e45780601f106118b9576101008083540402835291602001916118e4565b820191906000526020600020905b8154815290600101906020018083116118c757829003601f168201915b5050505050905061194c565b60006118fa6124c3565b9050600081511161191a5760405180602001604052806000815250611948565b8061192484612555565b601260405160200161193893929190613a4f565b6040516020818303038152906040525b9150505b919050565b60145481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6119f3611c88565b6000601360016101000a81548160ff021916908315150217905550565b611a18611c88565b8060109080519060200190611a2e929190613085565b5050565b611a3a611c88565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa190613bad565b60405180910390fd5b611ab3816121a2565b50565b6001816000016000828254019250508190555050565b600081600001549050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611b755750611b74826126b6565b5b9050919050565b611b8581612457565b611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb90613d4d565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611c428361112a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611c90611bc7565b73ffffffffffffffffffffffffffffffffffffffff16611cae6112f0565b73ffffffffffffffffffffffffffffffffffffffff1614611d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfb90613d0d565b60405180910390fd5b565b611d0e612198565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6390613dad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd390613e4d565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600c60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b600080611ea88361112a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611eea5750611ee98185611957565b5b80611f2857508373ffffffffffffffffffffffffffffffffffffffff16611f1084610980565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611f518261112a565b73ffffffffffffffffffffffffffffffffffffffff1614611fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9e90613bcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200e90613c2d565b60405180910390fd5b612022838383612730565b61202d600082611bcf565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461207d9190614063565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120d49190613f82565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612193838383612844565b505050565b6000612710905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612272600e611ab6565b600061227e600e611acc565b905061228a8282612849565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f490613c4d565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516123ee9190613b10565b60405180910390a3505050565b612406848484611f31565b61241284848484612867565b612451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244890613b8d565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6060600f80546124d290614165565b80601f01602080910402602001604051908101604052809291908181526020018280546124fe90614165565b801561254b5780601f106125205761010080835404028352916020019161254b565b820191906000526020600020905b81548152906001019060200180831161252e57829003601f168201915b5050505050905090565b6060600082141561259d576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506126b1565b600082905060005b600082146125cf5780806125b8906141c8565b915050600a826125c89190613fd8565b91506125a5565b60008167ffffffffffffffff8111156125eb576125ea61432d565b5b6040519080825280601f01601f19166020018201604052801561261d5781602001600182028036833780820191505090505b5090505b600085146126aa576001826126369190614063565b9150600a856126459190614211565b60306126519190613f82565b60f81b818381518110612667576126666142fe565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856126a39190613fd8565b9450612621565b8093505050505b919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806127295750612728826129fe565b5b9050919050565b61273b838383611afd565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561277e5761277981612ae0565b6127bd565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146127bc576127bb8382612b29565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612800576127fb81612c96565b61283f565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461283e5761283d8282612d67565b5b5b505050565b505050565b612863828260405180602001604052806000815250612de6565b5050565b60006128888473ffffffffffffffffffffffffffffffffffffffff16611ada565b156129f1578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026128b1611bc7565b8786866040518563ffffffff1660e01b81526004016128d39493929190613a9b565b602060405180830381600087803b1580156128ed57600080fd5b505af192505050801561291e57506040513d601f19601f8201168201806040525081019061291b9190613476565b60015b6129a1573d806000811461294e576040519150601f19603f3d011682016040523d82523d6000602084013e612953565b606091505b50600081511415612999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299090613b8d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506129f6565b600190505b949350505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612ac957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612ad95750612ad882612e41565b5b9050919050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612b36846111dc565b612b409190614063565b9050600060076000848152602001908152602001600020549050818114612c25576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050612caa9190614063565b9050600060096000848152602001908152602001600020549050600060088381548110612cda57612cd96142fe565b5b906000526020600020015490508060088381548110612cfc57612cfb6142fe565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612d4b57612d4a6142cf565b5b6001900381819060005260206000200160009055905550505050565b6000612d72836111dc565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b612df08383612eab565b612dfd6000848484612867565b612e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3390613b8d565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1290613ced565b60405180910390fd5b612f2481612457565b15612f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5b90613bed565b60405180910390fd5b612f7060008383612730565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fc09190613f82565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461308160008383612844565b5050565b82805461309190614165565b90600052602060002090601f0160209004810192826130b357600085556130fa565b82601f106130cc57805160ff19168380011785556130fa565b828001600101855582156130fa579182015b828111156130f95782518255916020019190600101906130de565b5b509050613107919061310b565b5090565b5b8082111561312457600081600090555060010161310c565b5090565b600061313b61313684613ec8565b613ea3565b90508281526020810184848401111561315757613156614361565b5b613162848285614123565b509392505050565b600061317d61317884613ef9565b613ea3565b90508281526020810184848401111561319957613198614361565b5b6131a4848285614123565b509392505050565b6000813590506131bb81614924565b92915050565b6000813590506131d08161493b565b92915050565b6000813590506131e581614952565b92915050565b6000815190506131fa81614952565b92915050565b600082601f8301126132155761321461435c565b5b8135613225848260208601613128565b91505092915050565b600082601f8301126132435761324261435c565b5b813561325384826020860161316a565b91505092915050565b60008135905061326b81614969565b92915050565b60008135905061328081614980565b92915050565b60006020828403121561329c5761329b61436b565b5b60006132aa848285016131ac565b91505092915050565b600080604083850312156132ca576132c961436b565b5b60006132d8858286016131ac565b92505060206132e9858286016131ac565b9150509250929050565b60008060006060848603121561330c5761330b61436b565b5b600061331a868287016131ac565b935050602061332b868287016131ac565b925050604061333c8682870161325c565b9150509250925092565b600080600080608085870312156133605761335f61436b565b5b600061336e878288016131ac565b945050602061337f878288016131ac565b93505060406133908782880161325c565b925050606085013567ffffffffffffffff8111156133b1576133b0614366565b5b6133bd87828801613200565b91505092959194509250565b600080604083850312156133e0576133df61436b565b5b60006133ee858286016131ac565b92505060206133ff858286016131c1565b9150509250929050565b600080604083850312156134205761341f61436b565b5b600061342e858286016131ac565b925050602061343f8582860161325c565b9150509250929050565b60006020828403121561345f5761345e61436b565b5b600061346d848285016131d6565b91505092915050565b60006020828403121561348c5761348b61436b565b5b600061349a848285016131eb565b91505092915050565b6000602082840312156134b9576134b861436b565b5b600082013567ffffffffffffffff8111156134d7576134d6614366565b5b6134e38482850161322e565b91505092915050565b6000602082840312156135025761350161436b565b5b60006135108482850161325c565b91505092915050565b600080604083850312156135305761352f61436b565b5b600061353e8582860161325c565b925050602061354f8582860161325c565b9150509250929050565b60006020828403121561356f5761356e61436b565b5b600061357d84828501613271565b91505092915050565b61358f81614097565b82525050565b61359e816140a9565b82525050565b60006135af82613f3f565b6135b98185613f55565b93506135c9818560208601614132565b6135d281614370565b840191505092915050565b60006135e882613f4a565b6135f28185613f66565b9350613602818560208601614132565b61360b81614370565b840191505092915050565b600061362182613f4a565b61362b8185613f77565b935061363b818560208601614132565b80840191505092915050565b6000815461365481614165565b61365e8186613f77565b94506001821660008114613679576001811461368a576136bd565b60ff198316865281860193506136bd565b61369385613f2a565b60005b838110156136b557815481890152600182019150602081019050613696565b838801955050505b50505092915050565b60006136d3601383613f66565b91506136de82614381565b602082019050919050565b60006136f6602b83613f66565b9150613701826143aa565b604082019050919050565b6000613719603283613f66565b9150613724826143f9565b604082019050919050565b600061373c602683613f66565b915061374782614448565b604082019050919050565b600061375f602583613f66565b915061376a82614497565b604082019050919050565b6000613782601c83613f66565b915061378d826144e6565b602082019050919050565b60006137a5600e83613f66565b91506137b08261450f565b602082019050919050565b60006137c8602483613f66565b91506137d382614538565b604082019050919050565b60006137eb601983613f66565b91506137f682614587565b602082019050919050565b600061380e601483613f66565b9150613819826145b0565b602082019050919050565b6000613831601e83613f66565b915061383c826145d9565b602082019050919050565b6000613854602983613f66565b915061385f82614602565b604082019050919050565b6000613877603e83613f66565b915061388282614651565b604082019050919050565b600061389a602083613f66565b91506138a5826146a0565b602082019050919050565b60006138bd602083613f66565b91506138c8826146c9565b602082019050919050565b60006138e0601283613f66565b91506138eb826146f2565b602082019050919050565b6000613903601883613f66565b915061390e8261471b565b602082019050919050565b6000613926602183613f66565b915061393182614744565b604082019050919050565b6000613949602c83613f66565b915061395482614793565b604082019050919050565b600061396c602a83613f66565b9150613977826147e2565b604082019050919050565b600061398f601183613f66565b915061399a82614831565b602082019050919050565b60006139b2602e83613f66565b91506139bd8261485a565b604082019050919050565b60006139d5601f83613f66565b91506139e0826148a9565b602082019050919050565b60006139f8601783613f66565b9150613a03826148d2565b602082019050919050565b6000613a1b601983613f66565b9150613a26826148fb565b602082019050919050565b613a3a81614101565b82525050565b613a498161410b565b82525050565b6000613a5b8286613616565b9150613a678285613616565b9150613a738284613647565b9150819050949350505050565b6000602082019050613a956000830184613586565b92915050565b6000608082019050613ab06000830187613586565b613abd6020830186613586565b613aca6040830185613a31565b8181036060830152613adc81846135a4565b905095945050505050565b6000604082019050613afc6000830185613586565b613b096020830184613a31565b9392505050565b6000602082019050613b256000830184613595565b92915050565b60006020820190508181036000830152613b4581846135dd565b905092915050565b60006020820190508181036000830152613b66816136c6565b9050919050565b60006020820190508181036000830152613b86816136e9565b9050919050565b60006020820190508181036000830152613ba68161370c565b9050919050565b60006020820190508181036000830152613bc68161372f565b9050919050565b60006020820190508181036000830152613be681613752565b9050919050565b60006020820190508181036000830152613c0681613775565b9050919050565b60006020820190508181036000830152613c2681613798565b9050919050565b60006020820190508181036000830152613c46816137bb565b9050919050565b60006020820190508181036000830152613c66816137de565b9050919050565b60006020820190508181036000830152613c8681613801565b9050919050565b60006020820190508181036000830152613ca681613824565b9050919050565b60006020820190508181036000830152613cc681613847565b9050919050565b60006020820190508181036000830152613ce68161386a565b9050919050565b60006020820190508181036000830152613d068161388d565b9050919050565b60006020820190508181036000830152613d26816138b0565b9050919050565b60006020820190508181036000830152613d46816138d3565b9050919050565b60006020820190508181036000830152613d66816138f6565b9050919050565b60006020820190508181036000830152613d8681613919565b9050919050565b60006020820190508181036000830152613da68161393c565b9050919050565b60006020820190508181036000830152613dc68161395f565b9050919050565b60006020820190508181036000830152613de681613982565b9050919050565b60006020820190508181036000830152613e06816139a5565b9050919050565b60006020820190508181036000830152613e26816139c8565b9050919050565b60006020820190508181036000830152613e46816139eb565b9050919050565b60006020820190508181036000830152613e6681613a0e565b9050919050565b6000602082019050613e826000830184613a31565b92915050565b6000602082019050613e9d6000830184613a40565b92915050565b6000613ead613ebe565b9050613eb98282614197565b919050565b6000604051905090565b600067ffffffffffffffff821115613ee357613ee261432d565b5b613eec82614370565b9050602081019050919050565b600067ffffffffffffffff821115613f1457613f1361432d565b5b613f1d82614370565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613f8d82614101565b9150613f9883614101565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613fcd57613fcc614242565b5b828201905092915050565b6000613fe382614101565b9150613fee83614101565b925082613ffe57613ffd614271565b5b828204905092915050565b600061401482614101565b915061401f83614101565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561405857614057614242565b5b828202905092915050565b600061406e82614101565b915061407983614101565b92508282101561408c5761408b614242565b5b828203905092915050565b60006140a2826140e1565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015614150578082015181840152602081019050614135565b8381111561415f576000848401525b50505050565b6000600282049050600182168061417d57607f821691505b60208210811415614191576141906142a0565b5b50919050565b6141a082614370565b810181811067ffffffffffffffff821117156141bf576141be61432d565b5b80604052505050565b60006141d382614101565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561420657614205614242565b5b600182019050919050565b600061421c82614101565b915061422783614101565b92508261423757614236614271565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4f6e6c79203220616c6c6f776564000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f546f6b656e20646f6573206e6f74206578697374000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d696e74206973206e6f74206163746976650000000000000000000000000000600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f53616c6573206861766520436c6f736564000000000000000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f31206176617820506572204d696e74202a20636f756e74000000000000000000600082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b61492d81614097565b811461493857600080fd5b50565b614944816140a9565b811461494f57600080fd5b50565b61495b816140b5565b811461496657600080fd5b50565b61497281614101565b811461497d57600080fd5b50565b6149898161410b565b811461499457600080fd5b5056fea264697066735822122047168dcc7fa27c2b2fa8b0e1f07a875fac71356ddc75f6a9684a6cb49d62009164736f6c6343000807003368747470733a2f2f736d6f6c722e6d7970696e6174612e636c6f75642f697066732f516d556e3861475662557a66344765756475626b5661526764736731776439386465654554337266784d466f4d4d