[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "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": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [], "name": "BURNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BasePrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "batchBalanceOf", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "mintBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "numOptions", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "priceForId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "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": "uint256", "name": "_price", "type": "uint256" } ], "name": "setBasePrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "options", "type": "uint256" } ], "name": "setNumOptions", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setPriceForId", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newuri", "type": "string" } ], "name": "setURI", "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": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040526602083b20cfc0006007553480156200001c57600080fd5b506040518060400160405280601e81526020017f68747470733a2f2f6170692e616f662e67616d65732f616f66313135352f000081525062000064816200016960201b60201c565b50620000896000801b6200007d6200017e60201b60201c565b6200018660201b60201c565b620000ca7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6620000be6200017e60201b60201c565b6200018660201b60201c565b6200010b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848620000ff6200017e60201b60201c565b6200018660201b60201c565b6200011b6200017e60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a6005819055506200065a565b80600290816200017a919062000573565b5050565b600033905090565b6200019882826200019c60201b60201c565b5050565b620001ae82826200028e60201b60201c565b6200028a5760016003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200022f6200017e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200037b57607f821691505b60208210810362000391576200039062000333565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003bc565b620004078683620003bc565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004546200044e62000448846200041f565b62000429565b6200041f565b9050919050565b6000819050919050565b620004708362000433565b620004886200047f826200045b565b848454620003c9565b825550505050565b600090565b6200049f62000490565b620004ac81848462000465565b505050565b5b81811015620004d457620004c860008262000495565b600181019050620004b2565b5050565b601f8211156200052357620004ed8162000397565b620004f884620003ac565b8101602085101562000508578190505b620005206200051785620003ac565b830182620004b1565b50505b505050565b600082821c905092915050565b6000620005486000198460080262000528565b1980831691505092915050565b600062000563838362000535565b9150826002028217905092915050565b6200057e82620002f9565b67ffffffffffffffff8111156200059a576200059962000304565b5b620005a6825462000362565b620005b3828285620004d8565b600060209050601f831160018114620005eb5760008415620005d6578287015190505b620005e2858262000555565b86555062000652565b601f198416620005fb8662000397565b60005b828110156200062557848901518255600182019150602085019450602081019050620005fe565b8683101562000645578489015162000641601f89168262000535565b8355505b6001600288020188555050505b505050505050565b61521f806200066a6000396000f3fe6080604052600436106101f75760003560e01c80636b20c4541161010d578063a217fddf116100a0578063d547741f1161006f578063d547741f1461075a578063de4b326214610783578063e985e9c5146107ac578063f242432a146107e9578063f5298aca14610812576101f7565b8063a217fddf1461069e578063a22cb465146106c9578063bd85b039146106f2578063d53913931461072f576101f7565b80638da5cb5b116100dc5780638da5cb5b146105e057806391d148541461060b57806392a5f3401461064857806395d89b4114610673576101f7565b80636b20c4541461055b578063731133e91461058457806378d30b8f146105a057806386b642da146105c9576101f7565b8063282c51f3116101905780634b97aed91161015f5780634b97aed9146104505780634e1273f41461047b5780634f558e79146104b85780634ff253d5146104f55780635bcb363c14610532576101f7565b8063282c51f3146103aa5780632eb2c2d6146103d55780632f2ff15d146103fe57806336568abe14610427576101f7565b806306fdde03116101cc57806306fdde03146102dc5780630e89341c146103075780631f7fdffa14610344578063248a9ca31461036d576101f7565b8062f55af6146101fc578062fdd58e1461023957806301ffc9a71461027657806302fe5305146102b3575b600080fd5b34801561020857600080fd5b50610223600480360381019061021e919061328f565b61083b565b60405161023091906132cb565b60405180910390f35b34801561024557600080fd5b50610260600480360381019061025b9190613344565b610853565b60405161026d91906132cb565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906133dc565b61091b565b6040516102aa9190613424565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d59190613585565b61092d565b005b3480156102e857600080fd5b506102f1610947565b6040516102fe919061364d565b60405180910390f35b34801561031357600080fd5b5061032e6004803603810190610329919061328f565b610984565b60405161033b919061364d565b60405180910390f35b34801561035057600080fd5b5061036b600480360381019061036691906137d8565b6109c5565b005b34801561037957600080fd5b50610394600480360381019061038f91906138c9565b610a02565b6040516103a19190613905565b60405180910390f35b3480156103b657600080fd5b506103bf610a22565b6040516103cc9190613905565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f79190613920565b610a46565b005b34801561040a57600080fd5b50610425600480360381019061042091906139ef565b610ae7565b005b34801561043357600080fd5b5061044e600480360381019061044991906139ef565b610b08565b005b34801561045c57600080fd5b50610465610b8b565b60405161047291906132cb565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190613af2565b610b95565b6040516104af9190613c28565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da919061328f565b610cae565b6040516104ec9190613424565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190613c4a565b610cc2565b6040516105299190613c28565b60405180910390f35b34801561053e57600080fd5b5061055960048036038101906105549190613c77565b610d70565b005b34801561056757600080fd5b50610582600480360381019061057d9190613cb7565b610dc4565b005b61059e60048036038101906105999190613d42565b610e99565b005b3480156105ac57600080fd5b506105c760048036038101906105c2919061328f565b610f61565b005b3480156105d557600080fd5b506105de610f79565b005b3480156105ec57600080fd5b506105f5610fd1565b6040516106029190613dd4565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d91906139ef565b610ffb565b60405161063f9190613424565b60405180910390f35b34801561065457600080fd5b5061065d611066565b60405161066a91906132cb565b60405180910390f35b34801561067f57600080fd5b5061068861106c565b604051610695919061364d565b60405180910390f35b3480156106aa57600080fd5b506106b36110a9565b6040516106c09190613905565b60405180910390f35b3480156106d557600080fd5b506106f060048036038101906106eb9190613e1b565b6110b0565b005b3480156106fe57600080fd5b506107196004803603810190610714919061328f565b6110c6565b60405161072691906132cb565b60405180910390f35b34801561073b57600080fd5b506107446110e3565b6040516107519190613905565b60405180910390f35b34801561076657600080fd5b50610781600480360381019061077c91906139ef565b611107565b005b34801561078f57600080fd5b506107aa60048036038101906107a5919061328f565b611128565b005b3480156107b857600080fd5b506107d360048036038101906107ce9190613e5b565b61115d565b6040516107e09190613424565b60405180910390f35b3480156107f557600080fd5b50610810600480360381019061080b9190613e9b565b6111f1565b005b34801561081e57600080fd5b5061083960048036038101906108349190613f32565b611292565b005b60086020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ba90613ff7565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061092682611367565b9050919050565b6000801b61093a816113e1565b610943826113f5565b5050565b60606040518060400160405280600881526020017f616f662047616d65000000000000000000000000000000000000000000000000815250905090565b6060600061099183611408565b90508061099d8461149c565b6040516020016109ae929190614053565b604051602081830303815290604052915050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66109ef816113e1565b6109fb858585856115fc565b5050505050565b600060036000838152602001908152602001600020600101549050919050565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b610a4e611828565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610a945750610a9385610a8e611828565b61115d565b5b610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca906140e9565b60405180910390fd5b610ae08585858585611830565b5050505050565b610af082610a02565b610af9816113e1565b610b038383611b51565b505050565b610b10611828565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b749061417b565b60405180910390fd5b610b878282611c32565b5050565b6000600554905090565b60608151835114610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd29061420d565b60405180910390fd5b6000835167ffffffffffffffff811115610bf857610bf761345a565b5b604051908082528060200260200182016040528015610c265781602001602082028036833780820191505090505b50905060005b8451811015610ca357610c73858281518110610c4b57610c4a61422d565b5b6020026020010151858381518110610c6657610c6561422d565b5b6020026020010151610853565b828281518110610c8657610c8561422d565b5b60200260200101818152505080610c9c9061428b565b9050610c2c565b508091505092915050565b600080610cba836110c6565b119050919050565b60606000610cce610b8b565b67ffffffffffffffff811115610ce757610ce661345a565b5b604051908082528060200260200182016040528015610d155781602001602082028036833780820191505090505b50905060005b610d23610b8b565b811015610d6657610d348482610853565b828281518110610d4757610d4661422d565b5b6020026020010181815250508080610d5e9061428b565b915050610d1b565b5080915050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d9a816113e1565b60075482610da891906142d3565b6008600085815260200190815260200160002081905550505050565b610dcc611828565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e125750610e1183610e0c611828565b61115d565b5b80610e4a5750610e497f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848610e44611828565b610ffb565b5b610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090614387565b60405180910390fd5b610e94838383611d14565b505050565b6000600860008581526020019081526020016000205403610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee6906143f3565b60405180910390fd5b816008600085815260200190815260200160002054610f0e91906142d3565b3414610f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f469061445f565b60405180910390fd5b610f5b84848484611fe2565b50505050565b6000801b610f6e816113e1565b816005819055505050565b6000801b610f86816113e1565b610f8e611828565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60075481565b60606040518060400160405280600781526020017f616f6647616d6500000000000000000000000000000000000000000000000000815250905090565b6000801b81565b6110c26110bb611828565b8383612192565b5050565b600060046000838152602001908152602001600020549050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61111082610a02565b611119816113e1565b6111238383611c32565b505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6611152816113e1565b816007819055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111f9611828565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061123f575061123e85611239611828565b61115d565b5b61127e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611275906140e9565b60405180910390fd5b61128b85858585856122fe565b5050505050565b61129a611828565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806112e057506112df836112da611828565b61115d565b5b8061131857506113177f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848611312611828565b610ffb565b5b611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90614387565b60405180910390fd5b611362838383612599565b505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113da57506113d9826127df565b5b9050919050565b6113f2816113ed611828565b6128c1565b50565b8060029081611404919061468b565b5050565b606060028054611417906144ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611443906144ae565b80156114905780601f1061146557610100808354040283529160200191611490565b820191906000526020600020905b81548152906001019060200180831161147357829003601f168201915b50505050509050919050565b6060600082036114e3576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506115f7565b600082905060005b600082146115155780806114fe9061428b565b915050600a8261150e919061478c565b91506114eb565b60008167ffffffffffffffff8111156115315761153061345a565b5b6040519080825280601f01601f1916602001820160405280156115635781602001600182028036833780820191505090505b5090505b600085146115f05760018261157c91906147bd565b9150600a8561158b91906147f1565b60306115979190614822565b60f81b8183815181106115ad576115ac61422d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856115e9919061478c565b9450611567565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361166b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611662906148c8565b60405180910390fd5b81518351146116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a69061495a565b60405180910390fd5b60006116b9611828565b90506116ca8160008787878761295e565b60005b8451811015611783578381815181106116e9576116e861422d565b5b60200260200101516000808784815181106117075761170661422d565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117699190614822565b92505081905550808061177b9061428b565b9150506116cd565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516117fb92919061497a565b60405180910390a461181281600087878787612974565b6118218160008787878761297c565b5050505050565b600033905090565b8151835114611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b9061495a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da90614a23565b60405180910390fd5b60006118ed611828565b90506118fd81878787878761295e565b60005b8451811015611aae57600085828151811061191e5761191d61422d565b5b60200260200101519050600085838151811061193d5761193c61422d565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d590614ab5565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a939190614822565b9250508190555050505080611aa79061428b565b9050611900565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611b2592919061497a565b60405180910390a4611b3b818787878787612974565b611b4981878787878761297c565b505050505050565b611b5b8282610ffb565b611c2e5760016003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611bd3611828565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b611c3c8282610ffb565b15611d105760006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611cb5611828565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a90614b47565b60405180910390fd5b8051825114611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe9061495a565b60405180910390fd5b6000611dd1611828565b9050611df18185600086866040518060200160405280600081525061295e565b60005b8351811015611f3e576000848281518110611e1257611e1161422d565b5b602002602001015190506000848381518110611e3157611e3061422d565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec990614bd9565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050508080611f369061428b565b915050611df4565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611fb692919061497a565b60405180910390a4611fdc81856000868660405180602001604052806000815250612974565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612048906148c8565b60405180910390fd5b600061205b611828565b9050600061206885612b53565b9050600061207585612b53565b90506120868360008985858961295e565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120e59190614822565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051612163929190614bf9565b60405180910390a461217a83600089858589612974565b61218983600089898989612bcd565b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f790614c94565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516122f19190613424565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361236d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236490614a23565b60405180910390fd5b6000612377611828565b9050600061238485612b53565b9050600061239185612b53565b90506123a183898985858961295e565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015612438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242f90614ab5565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124ed9190614822565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a60405161256a929190614bf9565b60405180910390a4612580848a8a86868a612974565b61258e848a8a8a8a8a612bcd565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ff90614b47565b60405180910390fd5b6000612612611828565b9050600061261f84612b53565b9050600061262c84612b53565b905061264c8387600085856040518060200160405280600081525061295e565b600080600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050848110156126e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126da90614bd9565b60405180910390fd5b84810360008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6289896040516127b0929190614bf9565b60405180910390a46127d684886000868660405180602001604052806000815250612974565b50505050505050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806128aa57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806128ba57506128b982612da4565b5b9050919050565b6128cb8282610ffb565b61295a576128f08173ffffffffffffffffffffffffffffffffffffffff166014612e0e565b6128fe8360001c6020612e0e565b60405160200161290f929190614d4c565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612951919061364d565b60405180910390fd5b5050565b61296c86868686868661304a565b505050505050565b505050505050565b61299b8473ffffffffffffffffffffffffffffffffffffffff1661321a565b15612b4b578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016129e1959493929190614ddb565b6020604051808303816000875af1925050508015612a1d57506040513d601f19601f82011682018060405250810190612a1a9190614e58565b60015b612ac257612a29614e92565b806308c379a003612a855750612a3d614eb4565b80612a485750612a87565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7c919061364d565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab990614fb6565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4090615048565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff811115612b7257612b7161345a565b5b604051908082528060200260200182016040528015612ba05781602001602082028036833780820191505090505b5090508281600081518110612bb857612bb761422d565b5b60200260200101818152505080915050919050565b612bec8473ffffffffffffffffffffffffffffffffffffffff1661321a565b15612d9c578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612c32959493929190615068565b6020604051808303816000875af1925050508015612c6e57506040513d601f19601f82011682018060405250810190612c6b9190614e58565b60015b612d1357612c7a614e92565b806308c379a003612cd65750612c8e614eb4565b80612c995750612cd8565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccd919061364d565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0a90614fb6565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9190615048565b60405180910390fd5b505b505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002612e2191906142d3565b612e2b9190614822565b67ffffffffffffffff811115612e4457612e4361345a565b5b6040519080825280601f01601f191660200182016040528015612e765781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612eae57612ead61422d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612f1257612f1161422d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612f5291906142d3565b612f5c9190614822565b90505b6001811115612ffc577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110612f9e57612f9d61422d565b5b1a60f81b828281518110612fb557612fb461422d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080612ff5906150c2565b9050612f5f565b5060008414613040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161303790615137565b60405180910390fd5b8091505092915050565b61305886868686868661323d565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036131095760005b8351811015613107578281815181106130ab576130aa61422d565b5b6020026020010151600460008684815181106130ca576130c961422d565b5b6020026020010151815260200190815260200160002060008282546130ef9190614822565b92505081905550806131009061428b565b905061308f565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036132125760005b835181101561321057600084828151811061315e5761315d61422d565b5b60200260200101519050600084838151811061317d5761317c61422d565b5b60200260200101519050600060046000848152602001908152602001600020549050818110156131e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d9906151c9565b60405180910390fd5b8181036004600085815260200190815260200160002081905550505050806132099061428b565b9050613140565b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61326c81613259565b811461327757600080fd5b50565b60008135905061328981613263565b92915050565b6000602082840312156132a5576132a461324f565b5b60006132b38482850161327a565b91505092915050565b6132c581613259565b82525050565b60006020820190506132e060008301846132bc565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613311826132e6565b9050919050565b61332181613306565b811461332c57600080fd5b50565b60008135905061333e81613318565b92915050565b6000806040838503121561335b5761335a61324f565b5b60006133698582860161332f565b925050602061337a8582860161327a565b9150509250929050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6133b981613384565b81146133c457600080fd5b50565b6000813590506133d6816133b0565b92915050565b6000602082840312156133f2576133f161324f565b5b6000613400848285016133c7565b91505092915050565b60008115159050919050565b61341e81613409565b82525050565b60006020820190506134396000830184613415565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61349282613449565b810181811067ffffffffffffffff821117156134b1576134b061345a565b5b80604052505050565b60006134c4613245565b90506134d08282613489565b919050565b600067ffffffffffffffff8211156134f0576134ef61345a565b5b6134f982613449565b9050602081019050919050565b82818337600083830152505050565b6000613528613523846134d5565b6134ba565b90508281526020810184848401111561354457613543613444565b5b61354f848285613506565b509392505050565b600082601f83011261356c5761356b61343f565b5b813561357c848260208601613515565b91505092915050565b60006020828403121561359b5761359a61324f565b5b600082013567ffffffffffffffff8111156135b9576135b8613254565b5b6135c584828501613557565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136085780820151818401526020810190506135ed565b60008484015250505050565b600061361f826135ce565b61362981856135d9565b93506136398185602086016135ea565b61364281613449565b840191505092915050565b600060208201905081810360008301526136678184613614565b905092915050565b600067ffffffffffffffff82111561368a5761368961345a565b5b602082029050602081019050919050565b600080fd5b60006136b36136ae8461366f565b6134ba565b905080838252602082019050602084028301858111156136d6576136d561369b565b5b835b818110156136ff57806136eb888261327a565b8452602084019350506020810190506136d8565b5050509392505050565b600082601f83011261371e5761371d61343f565b5b813561372e8482602086016136a0565b91505092915050565b600067ffffffffffffffff8211156137525761375161345a565b5b61375b82613449565b9050602081019050919050565b600061377b61377684613737565b6134ba565b90508281526020810184848401111561379757613796613444565b5b6137a2848285613506565b509392505050565b600082601f8301126137bf576137be61343f565b5b81356137cf848260208601613768565b91505092915050565b600080600080608085870312156137f2576137f161324f565b5b60006138008782880161332f565b945050602085013567ffffffffffffffff81111561382157613820613254565b5b61382d87828801613709565b935050604085013567ffffffffffffffff81111561384e5761384d613254565b5b61385a87828801613709565b925050606085013567ffffffffffffffff81111561387b5761387a613254565b5b613887878288016137aa565b91505092959194509250565b6000819050919050565b6138a681613893565b81146138b157600080fd5b50565b6000813590506138c38161389d565b92915050565b6000602082840312156138df576138de61324f565b5b60006138ed848285016138b4565b91505092915050565b6138ff81613893565b82525050565b600060208201905061391a60008301846138f6565b92915050565b600080600080600060a0868803121561393c5761393b61324f565b5b600061394a8882890161332f565b955050602061395b8882890161332f565b945050604086013567ffffffffffffffff81111561397c5761397b613254565b5b61398888828901613709565b935050606086013567ffffffffffffffff8111156139a9576139a8613254565b5b6139b588828901613709565b925050608086013567ffffffffffffffff8111156139d6576139d5613254565b5b6139e2888289016137aa565b9150509295509295909350565b60008060408385031215613a0657613a0561324f565b5b6000613a14858286016138b4565b9250506020613a258582860161332f565b9150509250929050565b600067ffffffffffffffff821115613a4a57613a4961345a565b5b602082029050602081019050919050565b6000613a6e613a6984613a2f565b6134ba565b90508083825260208201905060208402830185811115613a9157613a9061369b565b5b835b81811015613aba5780613aa6888261332f565b845260208401935050602081019050613a93565b5050509392505050565b600082601f830112613ad957613ad861343f565b5b8135613ae9848260208601613a5b565b91505092915050565b60008060408385031215613b0957613b0861324f565b5b600083013567ffffffffffffffff811115613b2757613b26613254565b5b613b3385828601613ac4565b925050602083013567ffffffffffffffff811115613b5457613b53613254565b5b613b6085828601613709565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b9f81613259565b82525050565b6000613bb18383613b96565b60208301905092915050565b6000602082019050919050565b6000613bd582613b6a565b613bdf8185613b75565b9350613bea83613b86565b8060005b83811015613c1b578151613c028882613ba5565b9750613c0d83613bbd565b925050600181019050613bee565b5085935050505092915050565b60006020820190508181036000830152613c428184613bca565b905092915050565b600060208284031215613c6057613c5f61324f565b5b6000613c6e8482850161332f565b91505092915050565b60008060408385031215613c8e57613c8d61324f565b5b6000613c9c8582860161327a565b9250506020613cad8582860161327a565b9150509250929050565b600080600060608486031215613cd057613ccf61324f565b5b6000613cde8682870161332f565b935050602084013567ffffffffffffffff811115613cff57613cfe613254565b5b613d0b86828701613709565b925050604084013567ffffffffffffffff811115613d2c57613d2b613254565b5b613d3886828701613709565b9150509250925092565b60008060008060808587031215613d5c57613d5b61324f565b5b6000613d6a8782880161332f565b9450506020613d7b8782880161327a565b9350506040613d8c8782880161327a565b925050606085013567ffffffffffffffff811115613dad57613dac613254565b5b613db9878288016137aa565b91505092959194509250565b613dce81613306565b82525050565b6000602082019050613de96000830184613dc5565b92915050565b613df881613409565b8114613e0357600080fd5b50565b600081359050613e1581613def565b92915050565b60008060408385031215613e3257613e3161324f565b5b6000613e408582860161332f565b9250506020613e5185828601613e06565b9150509250929050565b60008060408385031215613e7257613e7161324f565b5b6000613e808582860161332f565b9250506020613e918582860161332f565b9150509250929050565b600080600080600060a08688031215613eb757613eb661324f565b5b6000613ec58882890161332f565b9550506020613ed68882890161332f565b9450506040613ee78882890161327a565b9350506060613ef88882890161327a565b925050608086013567ffffffffffffffff811115613f1957613f18613254565b5b613f25888289016137aa565b9150509295509295909350565b600080600060608486031215613f4b57613f4a61324f565b5b6000613f598682870161332f565b9350506020613f6a8682870161327a565b9250506040613f7b8682870161327a565b9150509250925092565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000613fe1602a836135d9565b9150613fec82613f85565b604082019050919050565b6000602082019050818103600083015261401081613fd4565b9050919050565b600081905092915050565b600061402d826135ce565b6140378185614017565b93506140478185602086016135ea565b80840191505092915050565b600061405f8285614022565b915061406b8284614022565b91508190509392505050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206e6f7220617070726f7665640000000000000000000000000000000000602082015250565b60006140d3602f836135d9565b91506140de82614077565b604082019050919050565b60006020820190508181036000830152614102816140c6565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000614165602f836135d9565b915061417082614109565b604082019050919050565b6000602082019050818103600083015261419481614158565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b60006141f76029836135d9565b91506142028261419b565b604082019050919050565b60006020820190508181036000830152614226816141ea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061429682613259565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036142c8576142c761425c565b5b600182019050919050565b60006142de82613259565b91506142e983613259565b92508282026142f781613259565b9150828204841483151761430e5761430d61425c565b5b5092915050565b7f455243313135353a2063616c6c6572206973206e6f7420617574686f72697a6560008201527f6420746f206275726e20746f6b656e0000000000000000000000000000000000602082015250565b6000614371602f836135d9565b915061437c82614315565b604082019050919050565b600060208201905081810360008301526143a081614364565b9050919050565b7f6e6f7420796574207468697320746f6b656e0000000000000000000000000000600082015250565b60006143dd6012836135d9565b91506143e8826143a7565b602082019050919050565b6000602082019050818103600083015261440c816143d0565b9050919050565b7f4e6f7420656e6f75676820455448206f7220746f6b656e000000000000000000600082015250565b60006144496017836135d9565b915061445482614413565b602082019050919050565b600060208201905081810360008301526144788161443c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806144c657607f821691505b6020821081036144d9576144d861447f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026145417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614504565b61454b8683614504565b95508019841693508086168417925050509392505050565b6000819050919050565b600061458861458361457e84613259565b614563565b613259565b9050919050565b6000819050919050565b6145a28361456d565b6145b66145ae8261458f565b848454614511565b825550505050565b600090565b6145cb6145be565b6145d6818484614599565b505050565b5b818110156145fa576145ef6000826145c3565b6001810190506145dc565b5050565b601f82111561463f57614610816144df565b614619846144f4565b81016020851015614628578190505b61463c614634856144f4565b8301826145db565b50505b505050565b600082821c905092915050565b600061466260001984600802614644565b1980831691505092915050565b600061467b8383614651565b9150826002028217905092915050565b614694826135ce565b67ffffffffffffffff8111156146ad576146ac61345a565b5b6146b782546144ae565b6146c28282856145fe565b600060209050601f8311600181146146f557600084156146e3578287015190505b6146ed858261466f565b865550614755565b601f198416614703866144df565b60005b8281101561472b57848901518255600182019150602085019450602081019050614706565b868310156147485784890151614744601f891682614651565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061479782613259565b91506147a283613259565b9250826147b2576147b161475d565b5b828204905092915050565b60006147c882613259565b91506147d383613259565b92508282039050818111156147eb576147ea61425c565b5b92915050565b60006147fc82613259565b915061480783613259565b9250826148175761481661475d565b5b828206905092915050565b600061482d82613259565b915061483883613259565b92508282019050808211156148505761484f61425c565b5b92915050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006148b26021836135d9565b91506148bd82614856565b604082019050919050565b600060208201905081810360008301526148e1816148a5565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b60006149446028836135d9565b915061494f826148e8565b604082019050919050565b6000602082019050818103600083015261497381614937565b9050919050565b600060408201905081810360008301526149948185613bca565b905081810360208301526149a88184613bca565b90509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614a0d6025836135d9565b9150614a18826149b1565b604082019050919050565b60006020820190508181036000830152614a3c81614a00565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000614a9f602a836135d9565b9150614aaa82614a43565b604082019050919050565b60006020820190508181036000830152614ace81614a92565b9050919050565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614b316023836135d9565b9150614b3c82614ad5565b604082019050919050565b60006020820190508181036000830152614b6081614b24565b9050919050565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000614bc36024836135d9565b9150614bce82614b67565b604082019050919050565b60006020820190508181036000830152614bf281614bb6565b9050919050565b6000604082019050614c0e60008301856132bc565b614c1b60208301846132bc565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b6000614c7e6029836135d9565b9150614c8982614c22565b604082019050919050565b60006020820190508181036000830152614cad81614c71565b9050919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000614cea601783614017565b9150614cf582614cb4565b601782019050919050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000614d36601183614017565b9150614d4182614d00565b601182019050919050565b6000614d5782614cdd565b9150614d638285614022565b9150614d6e82614d29565b9150614d7a8284614022565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000614dad82614d86565b614db78185614d91565b9350614dc78185602086016135ea565b614dd081613449565b840191505092915050565b600060a082019050614df06000830188613dc5565b614dfd6020830187613dc5565b8181036040830152614e0f8186613bca565b90508181036060830152614e238185613bca565b90508181036080830152614e378184614da2565b90509695505050505050565b600081519050614e52816133b0565b92915050565b600060208284031215614e6e57614e6d61324f565b5b6000614e7c84828501614e43565b91505092915050565b60008160e01c9050919050565b600060033d1115614eb15760046000803e614eae600051614e85565b90505b90565b600060443d10614f4157614ec6613245565b60043d036004823e80513d602482011167ffffffffffffffff82111715614eee575050614f41565b808201805167ffffffffffffffff811115614f0c5750505050614f41565b80602083010160043d038501811115614f29575050505050614f41565b614f3882602001850186613489565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000614fa06034836135d9565b9150614fab82614f44565b604082019050919050565b60006020820190508181036000830152614fcf81614f93565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b60006150326028836135d9565b915061503d82614fd6565b604082019050919050565b6000602082019050818103600083015261506181615025565b9050919050565b600060a08201905061507d6000830188613dc5565b61508a6020830187613dc5565b61509760408301866132bc565b6150a460608301856132bc565b81810360808301526150b68184614da2565b90509695505050505050565b60006150cd82613259565b9150600082036150e0576150df61425c565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006151216020836135d9565b915061512c826150eb565b602082019050919050565b6000602082019050818103600083015261515081615114565b9050919050565b7f455243313135353a206275726e20616d6f756e74206578636565647320746f7460008201527f616c537570706c79000000000000000000000000000000000000000000000000602082015250565b60006151b36028836135d9565b91506151be82615157565b604082019050919050565b600060208201905081810360008301526151e2816151a6565b905091905056fea26469706673582212202e9996d97675bf4da33cd50d65f078c76936357f72241e90c3b1a30d7d7fe6cd64736f6c63430008130033