0 txs
1 call
constructor
constructor(string name, string symbol, string baseURI)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
currentTokenId
viewfunction currentTokenId() view returns (uint256)
DEV_WALLET
viewfunction DEV_WALLET() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
MARKETING_WALLET
viewfunction MARKETING_WALLET() view returns (address)
maxSupply
viewfunction maxSupply() view returns (uint256)
mintableCount
viewfunction mintableCount(address account) view returns (uint256)
mintPrice
viewfunction mintPrice() view returns (uint256)
mintPriceVar
viewfunction mintPriceVar() view returns (uint256)
name
viewfunction name() view returns (string)
onERC721Received
purefunction onERC721Received(address operator, address from, uint256 tokenId, bytes data) pure returns (bytes4)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
paused
viewfunction paused() view returns (bool)
REFLECTIONS_CONTRACT
viewfunction REFLECTIONS_CONTRACT() view returns (address)
remainingMinted
viewfunction remainingMinted() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenBaseURI
viewfunction tokenBaseURI() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address to, uint256 tokenId)
mint
payablefunction mint(uint256 mintCount) payable
mintRemainingTokens
nonpayablefunction mintRemainingTokens(uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setMintPrice
nonpayablefunction setMintPrice(uint256 newMintPrice)
setTokenBaseURI
nonpayablefunction setTokenBaseURI(string newBaseURI)
toggleMinting
nonpayablefunction toggleMinting()
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
Mint
event Mint(address indexed minter, uint256 count, uint256 value)
MintingToggled
event MintingToggled(bool paused)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
ERC721EnumerableForbiddenBatchMint
error ERC721EnumerableForbiddenBatchMint()
ERC721IncorrectOwner
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)
ERC721InsufficientApproval
error ERC721InsufficientApproval(address operator, uint256 tokenId)
ERC721InvalidApprover
error ERC721InvalidApprover(address approver)
ERC721InvalidOperator
error ERC721InvalidOperator(address operator)
ERC721InvalidOwner
error ERC721InvalidOwner(address owner)
ERC721InvalidReceiver
error ERC721InvalidReceiver(address receiver)
ERC721InvalidSender
error ERC721InvalidSender(address sender)
ERC721NonexistentToken
error ERC721NonexistentToken(uint256 tokenId)
ERC721OutOfBoundsIndex
error ERC721OutOfBoundsIndex(address owner, uint256 index)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x608060405261014d600c556702c68af0bb140000600d5560a86012553480156200002857600080fd5b50604051620061743803806200617483398181016040528101906200004e9190620014e5565b3383838160009081620000629190620017e9565b508060019081620000749190620017e9565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ec5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000e3919062001915565b60405180910390fd5b620000fd816200034c60201b60201c565b506001600b8190555080600e9081620001179190620017e9565b506000600190505b60a781116200034257600181101580156200013b575060178111155b15620001d5576004811162000176576200017073a74c3ebf7e700175945702cd9ea3d09d5e654321826200041260201b60201c565b620001cf565b6200018830826200041260201b60201c565b6001600f600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060106000815480929190620001c99062001961565b91905055505b6200032c565b60188110158015620001e8575060498111155b1562000282576020811162000223576200021d73a74c3ebf7e700175945702cd9ea3d09d5e654321826200041260201b60201c565b6200027c565b6200023530826200041260201b60201c565b6001600f600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060106000815480929190620002769062001961565b91905055505b6200032b565b604a811015801562000295575060a78111155b156200032a57605d8111620002d057620002ca73a74c3ebf7e700175945702cd9ea3d09d5e654321826200041260201b60201c565b62000329565b620002e230826200041260201b60201c565b6001600f600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060106000815480929190620003239062001961565b91905055505b5b5b5b8080620003399062001961565b9150506200011f565b5050505062001be2565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620004348282604051806020016040528060008152506200043860201b60201c565b5050565b6200044a83836200047460201b60201c565b6200046f6200045e6200057b60201b60201c565b60008585856200058360201b60201c565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004e95760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401620004e0919062001915565b60405180910390fd5b6000620004ff838360006200074360201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614620005765760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016200056d919062001915565b60405180910390fd5b505050565b600033905090565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156200073c578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401620005e5949392919062001a1c565b6020604051808303816000875af19250505080156200062457506040513d601f19601f8201168201806040525081019062000621919062001acd565b60015b620006ae573d806000811462000657576040519150601f19603f3d011682016040523d82523d6000602084013e6200065c565b606091505b506000815103620006a657836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016200069d919062001915565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146200073a57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040162000731919062001915565b60405180910390fd5b505b5050505050565b600080620007598585856200088e60201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620007a757620007a18462000ac360201b60201c565b620007ef565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614620007ee57620007ed818562000b0c60201b60201c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036200083b57620008358462000c0060201b60201c565b62000883565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614620008825762000881858562000cdc60201b60201c565b5b5b809150509392505050565b600080620008a28462000d7160201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614620008ed57620008ec81848662000dae60201b60201c565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161462000987576200093860008560008062000e8060201b60201c565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161462000a0b576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600062000b1f836200105d60201b60201c565b90506000600760008481526020019081526020016000205490506000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905082821462000bcc5760008160008581526020019081526020016000205490508082600085815260200190815260200160002081905550826007600083815260200190815260200160002081905550505b6007600085815260200190815260200160002060009055806000848152602001908152602001600020600090555050505050565b6000600160088054905062000c16919062001aff565b905060006009600084815260200190815260200160002054905060006008838154811062000c495762000c4862001b3a565b5b90600052602060002001549050806008838154811062000c6e5762000c6d62001b3a565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548062000cc05762000cbf62001b69565b5b6001900381819060005260206000200160009055905550505050565b6000600162000cf1846200105d60201b60201c565b62000cfd919062001aff565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b62000dc18383836200111a60201b60201c565b62000e7b57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000e3a57806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040162000e31919062001b98565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040162000e7292919062001bb5565b60405180910390fd5b505050565b808062000eba5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156200100557600062000ed384620011ee60201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562000f3f57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801562000f5b575062000f5981846200128160201b60201c565b155b1562000fa057826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040162000f97919062001915565b60405180910390fd5b81156200100357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620010d35760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401620010ca919062001915565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015620011e557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806200119d57506200119c84846200128160201b60201c565b5b80620011e457508273ffffffffffffffffffffffffffffffffffffffff16620011cc836200131560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080620012028362000d7160201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200127857826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016200126f919062001b98565b60405180910390fd5b80915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620013bb8262001370565b810181811067ffffffffffffffff82111715620013dd57620013dc62001381565b5b80604052505050565b6000620013f262001352565b9050620014008282620013b0565b919050565b600067ffffffffffffffff82111562001423576200142262001381565b5b6200142e8262001370565b9050602081019050919050565b60005b838110156200145b5780820151818401526020810190506200143e565b60008484015250505050565b60006200147e620014788462001405565b620013e6565b9050828152602081018484840111156200149d576200149c6200136b565b5b620014aa8482856200143b565b509392505050565b600082601f830112620014ca57620014c962001366565b5b8151620014dc84826020860162001467565b91505092915050565b6000806000606084860312156200150157620015006200135c565b5b600084015167ffffffffffffffff81111562001522576200152162001361565b5b6200153086828701620014b2565b935050602084015167ffffffffffffffff81111562001554576200155362001361565b5b6200156286828701620014b2565b925050604084015167ffffffffffffffff81111562001586576200158562001361565b5b6200159486828701620014b2565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620015f157607f821691505b602082108103620016075762001606620015a9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620016717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001632565b6200167d868362001632565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620016ca620016c4620016be8462001695565b6200169f565b62001695565b9050919050565b6000819050919050565b620016e683620016a9565b620016fe620016f582620016d1565b8484546200163f565b825550505050565b600090565b6200171562001706565b62001722818484620016db565b505050565b5b818110156200174a576200173e6000826200170b565b60018101905062001728565b5050565b601f821115620017995762001763816200160d565b6200176e8462001622565b810160208510156200177e578190505b620017966200178d8562001622565b83018262001727565b50505b505050565b600082821c905092915050565b6000620017be600019846008026200179e565b1980831691505092915050565b6000620017d98383620017ab565b9150826002028217905092915050565b620017f4826200159e565b67ffffffffffffffff81111562001810576200180f62001381565b5b6200181c8254620015d8565b620018298282856200174e565b600060209050601f8311600181146200186157600084156200184c578287015190505b620018588582620017cb565b865550620018c8565b601f19841662001871866200160d565b60005b828110156200189b5784890151825560018201915060208501945060208101905062001874565b86831015620018bb5784890151620018b7601f891682620017ab565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620018fd82620018d0565b9050919050565b6200190f81620018f0565b82525050565b60006020820190506200192c600083018462001904565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200196e8262001695565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620019a357620019a262001932565b5b600182019050919050565b620019b98162001695565b82525050565b600081519050919050565b600082825260208201905092915050565b6000620019e882620019bf565b620019f48185620019ca565b935062001a068185602086016200143b565b62001a118162001370565b840191505092915050565b600060808201905062001a33600083018762001904565b62001a42602083018662001904565b62001a516040830185620019ae565b818103606083015262001a658184620019db565b905095945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62001aa78162001a70565b811462001ab357600080fd5b50565b60008151905062001ac78162001a9c565b92915050565b60006020828403121562001ae65762001ae56200135c565b5b600062001af68482850162001ab6565b91505092915050565b600062001b0c8262001695565b915062001b198362001695565b925082820390508181111562001b345762001b3362001932565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600060208201905062001baf6000830184620019ae565b92915050565b600060408201905062001bcc600083018562001904565b62001bdb6020830184620019ae565b9392505050565b6145828062001bf26000396000f3fe60806040526004361061020e5760003560e01c80637d55094d11610118578063b88d4fde116100a0578063cd09a9881161006f578063cd09a98814610793578063d5abeb01146107d0578063e985e9c5146107fb578063f2fde38b14610838578063f4a0a528146108615761020e565b8063b88d4fde146106d7578063bf28682514610700578063c6859d071461072b578063c87b56dd146107565761020e565b806394d5231f116100e757806394d5231f1461061357806395d89b411461063c5780639cbcc7bb14610667578063a0712d6814610692578063a22cb465146106ae5761020e565b80637d55094d1461057d5780637f6132c9146105945780638da5cb5b146105bf5780638ef79e91146105ea5761020e565b80632f745c591161019b5780635c975abb1161016a5780635c975abb146104965780636352211e146104c15780636817c76c146104fe57806370a0823114610529578063715018a6146105665761020e565b80632f745c59146103c857806342842e0e146104055780634e99b8001461042e5780634f6ccce7146104595761020e565b8063095ea7b3116101e2578063095ea7b3146102e3578063150b7a021461030c57806318160ddd1461034957806323b872dd146103745780632d04f8201461039d5761020e565b80629a9b7b1461021357806301ffc9a71461023e57806306fdde031461027b578063081812fc146102a6575b600080fd5b34801561021f57600080fd5b5061022861088a565b6040516102359190612e7f565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612f06565b610890565b6040516102729190612f4e565b60405180910390f35b34801561028757600080fd5b5061029061090a565b60405161029d9190612ff9565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190613047565b61099c565b6040516102da91906130b5565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906130fc565b6109b8565b005b34801561031857600080fd5b50610333600480360381019061032e91906131a1565b6109ce565b6040516103409190613238565b60405180910390f35b34801561035557600080fd5b5061035e6109e3565b60405161036b9190612e7f565b60405180910390f35b34801561038057600080fd5b5061039b60048036038101906103969190613253565b6109f0565b005b3480156103a957600080fd5b506103b2610af2565b6040516103bf91906130b5565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea91906130fc565b610b0a565b6040516103fc9190612e7f565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190613253565b610bb3565b005b34801561043a57600080fd5b50610443610bd3565b6040516104509190612ff9565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190613047565b610c61565b60405161048d9190612e7f565b60405180910390f35b3480156104a257600080fd5b506104ab610cd7565b6040516104b89190612f4e565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190613047565b610cea565b6040516104f591906130b5565b60405180910390f35b34801561050a57600080fd5b50610513610cfc565b6040516105209190612e7f565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b91906132a6565b610d06565b60405161055d9190612e7f565b60405180910390f35b34801561057257600080fd5b5061057b610dc0565b005b34801561058957600080fd5b50610592610dd4565b005b3480156105a057600080fd5b506105a9610e4e565b6040516105b691906130b5565b60405180910390f35b3480156105cb57600080fd5b506105d4610e66565b6040516105e191906130b5565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190613403565b610e90565b005b34801561061f57600080fd5b5061063a60048036038101906106359190613047565b610eab565b005b34801561064857600080fd5b5061065161106b565b60405161065e9190612ff9565b60405180910390f35b34801561067357600080fd5b5061067c6110fd565b6040516106899190612f4e565b60405180910390f35b6106ac60048036038101906106a79190613047565b611110565b005b3480156106ba57600080fd5b506106d560048036038101906106d09190613478565b6115c1565b005b3480156106e357600080fd5b506106fe60048036038101906106f99190613559565b6115d7565b005b34801561070c57600080fd5b506107156115fc565b6040516107229190612e7f565b60405180910390f35b34801561073757600080fd5b50610740611602565b60405161074d91906130b5565b60405180910390f35b34801561076257600080fd5b5061077d60048036038101906107789190613047565b61161a565b60405161078a9190612ff9565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b591906132a6565b6116a0565b6040516107c79190612e7f565b60405180910390f35b3480156107dc57600080fd5b506107e56116ac565b6040516107f29190612e7f565b60405180910390f35b34801561080757600080fd5b50610822600480360381019061081d91906135dc565b6116b2565b60405161082f9190612f4e565b60405180910390f35b34801561084457600080fd5b5061085f600480360381019061085a91906132a6565b611746565b005b34801561086d57600080fd5b5061088860048036038101906108839190613047565b6117cc565b005b60125481565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610903575061090282611821565b5b9050919050565b6060600080546109199061364b565b80601f01602080910402602001604051908101604052809291908181526020018280546109459061364b565b80156109925780601f1061096757610100808354040283529160200191610992565b820191906000526020600020905b81548152906001019060200180831161097557829003601f168201915b5050505050905090565b60006109a782611903565b506109b18261198b565b9050919050565b6109ca82826109c56119c8565b6119d0565b5050565b600063150b7a0260e01b905095945050505050565b6000600880549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a625760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610a5991906130b5565b60405180910390fd5b6000610a768383610a716119c8565b6119e2565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aec578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610ae39392919061367c565b60405180910390fd5b50505050565b73a74c3ebf7e700175945702cd9ea3d09d5e65432181565b6000610b1583610d06565b8210610b5a5782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610b519291906136b3565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610bce838383604051806020016040528060008152506115d7565b505050565b600e8054610be09061364b565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0c9061364b565b8015610c595780601f10610c2e57610100808354040283529160200191610c59565b820191906000526020600020905b815481529060010190602001808311610c3c57829003601f168201915b505050505081565b6000610c6b6109e3565b8210610cb1576000826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610ca89291906136b3565b60405180910390fd5b60088281548110610cc557610cc46136dc565b5b90600052602060002001549050919050565b601160009054906101000a900460ff1681565b6000610cf582611903565b9050919050565b6000600d54905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d795760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610d7091906130b5565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dc8611aff565b610dd26000611b86565b565b610ddc611aff565b601160009054906101000a900460ff1615601160006101000a81548160ff0219169083151502179055507f6bdfe227d5db299c59aa56d5f846f40dbd73b271aaa78e18ed74fc3e00b8aa6b601160009054906101000a900460ff16604051610e449190612f4e565b60405180910390a1565b73a74c3ebf7e700175945702cd9ea3d09d5e65432181565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e98611aff565b80600e9081610ea791906138b7565b5050565b610eb3611aff565b601160019054906101000a900460ff1615610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa906139fb565b60405180910390fd5b600c546012541115610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f41906139fb565b60405180910390fd5b60008111610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8490613a67565b60405180910390fd5b6000600182601254610f9f9190613ab6565b610fa99190613aea565b9050600c54811115610fbb57600c5490505b600060125490505b81811161102b57610fd43082611c4c565b6001600f600083815260200190815260200160002060006101000a81548160ff0219169083151502179055506010600081548092919061101390613b1e565b9190505550808061102390613b1e565b915050610fc3565b506001816110399190613ab6565b601281905550600c546012541115611067576001601160016101000a81548160ff0219169083151502179055505b5050565b60606001805461107a9061364b565b80601f01602080910402602001604051908101604052809291908181526020018280546110a69061364b565b80156110f35780601f106110c8576101008083540402835291602001916110f3565b820191906000526020600020905b8154815290600101906020018083116110d657829003601f168201915b5050505050905090565b601160019054906101000a900460ff1681565b611118611c6a565b601160009054906101000a900460ff1615611168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115f90613bb2565b60405180910390fd5b600081116111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a290613c44565b60405180910390fd5b8060105410156111f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e790613cb0565b60405180910390fd5b600d54816111fe9190613cd0565b341015611240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123790613d5e565b60405180910390fd5b60005b818110156112ca576000611255611cb0565b905061127230338360405180602001604052806000815250611dd1565b6000600f600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601060008154809291906112b190613d7e565b91905055505080806112c290613b1e565b915050611243565b5060006064601e346112dc9190613cd0565b6112e69190613dd6565b9050600060646014346112f99190613cd0565b6113039190613dd6565b905060008183346113149190613aea565b61131e9190613aea565b9050600073a74c3ebf7e700175945702cd9ea3d09d5e65432173ffffffffffffffffffffffffffffffffffffffff168460405161135a90613e38565b60006040518083038185875af1925050503d8060008114611397576040519150601f19603f3d011682016040523d82523d6000602084013e61139c565b606091505b50509050806113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790613e99565b60405180910390fd5b600073a74c3ebf7e700175945702cd9ea3d09d5e65432173ffffffffffffffffffffffffffffffffffffffff168460405161141a90613e38565b60006040518083038185875af1925050503d8060008114611457576040519150601f19603f3d011682016040523d82523d6000602084013e61145c565b606091505b50509050806114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149790613f2b565b60405180910390fd5b600073a74c3ebf7e700175945702cd9ea3d09d5e65432173ffffffffffffffffffffffffffffffffffffffff16846040516114da90613e38565b60006040518083038185875af1925050503d8060008114611517576040519150601f19603f3d011682016040523d82523d6000602084013e61151c565b606091505b5050905080611560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155790613fbd565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f88346040516115a8929190613fdd565b60405180910390a25050505050506115be611df6565b50565b6115d36115cc6119c8565b8383611e00565b5050565b6115e28484846109f0565b6115f66115ed6119c8565b85858585611f6f565b50505050565b600d5481565b73a74c3ebf7e700175945702cd9ea3d09d5e65432181565b60606001821015801561162f5750600c548211155b61166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590614078565b60405180910390fd5b600e61167983612120565b60405160200161168a9291906141ef565b6040516020818303038152906040529050919050565b60006010549050919050565b600c5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61174e611aff565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117c05760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016117b791906130b5565b60405180910390fd5b6117c981611b86565b50565b6117d4611aff565b60008111611817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180e9061429b565b60405180910390fd5b80600d8190555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806118ec57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806118fc57506118fb826121ee565b5b9050919050565b60008061190f83612258565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361198257826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016119799190612e7f565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6119dd8383836001612295565b505050565b6000806119f085858561245a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a3457611a2f84612674565b611a73565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611a7257611a7181856126bd565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611ab557611ab0846127a8565b611af4565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611af357611af28585612879565b5b5b809150509392505050565b611b076119c8565b73ffffffffffffffffffffffffffffffffffffffff16611b25610e66565b73ffffffffffffffffffffffffffffffffffffffff1614611b8457611b486119c8565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611b7b91906130b5565b60405180910390fd5b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611c66828260405180602001604052806000815250612904565b5050565b6002600b5403611ca6576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600b81905550565b6000806001600c5442600143611cc69190613aea565b40335a604051602001611cdc949392919061434f565b6040516020818303038152906040528051906020012060001c611cff919061439d565b611d099190613ab6565b905060005b600c54811015611d925760006001600c5460018486611d2d9190613ab6565b611d379190613aea565b611d41919061439d565b611d4b9190613ab6565b9050600f600082815260200190815260200160002060009054906101000a900460ff1615611d7e57809350505050611dce565b508080611d8a90613b1e565b915050611d0e565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc59061441a565b60405180910390fd5b90565b611ddc848484612928565b611df0611de76119c8565b85858585611f6f565b50505050565b6001600b81905550565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e7157816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401611e6891906130b5565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611f629190612f4e565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115612119578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401611fce949392919061448f565b6020604051808303816000875af192505050801561200a57506040513d601f19601f8201168201806040525081019061200791906144f0565b60015b61208e573d806000811461203a576040519150601f19603f3d011682016040523d82523d6000602084013e61203f565b606091505b50600081510361208657836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161207d91906130b5565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461211757836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161210e91906130b5565b60405180910390fd5b505b5050505050565b60606000600161212f84612a95565b01905060008167ffffffffffffffff81111561214e5761214d6132d8565b5b6040519080825280601f01601f1916602001820160405280156121805781602001600182028036833780820191505090505b509050600082602001820190505b6001156121e3578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816121d7576121d6613da7565b5b0494506000850361218e575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806122ce5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156124025760006122de84611903565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561234957508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561235c575061235a81846116b2565b155b1561239e57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161239591906130b5565b60405180910390fd5b811561240057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60008061246684612258565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124a8576124a7818486612be8565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612539576124ea600085600080612295565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146125bc576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006126c883610d06565b90506000600760008481526020019081526020016000205490506000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508282146127745760008160008581526020019081526020016000205490508082600085815260200190815260200160002081905550826007600083815260200190815260200160002081905550505b6007600085815260200190815260200160002060009055806000848152602001908152602001600020600090555050505050565b600060016008805490506127bc9190613aea565b90506000600960008481526020019081526020016000205490506000600883815481106127ec576127eb6136dc565b5b90600052602060002001549050806008838154811061280e5761280d6136dc565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061285d5761285c61451d565b5b6001900381819060005260206000200160009055905550505050565b6000600161288684610d06565b6128909190613aea565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b61290e8383612cac565b6129236129196119c8565b6000858585611f6f565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361299a5760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161299191906130b5565b60405180910390fd5b60006129a8838360006119e2565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612a1b57816040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612a129190612e7f565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612a8f578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401612a869392919061367c565b60405180910390fd5b50505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612af3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612ae957612ae8613da7565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612b30576d04ee2d6d415b85acef81000000008381612b2657612b25613da7565b5b0492506020810190505b662386f26fc100008310612b5f57662386f26fc100008381612b5557612b54613da7565b5b0492506010810190505b6305f5e1008310612b88576305f5e1008381612b7e57612b7d613da7565b5b0492506008810190505b6127108310612bad576127108381612ba357612ba2613da7565b5b0492506004810190505b60648310612bd05760648381612bc657612bc5613da7565b5b0492506002810190505b600a8310612bdf576001810190505b80915050919050565b612bf3838383612da5565b612ca757600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c6857806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612c5f9190612e7f565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401612c9e9291906136b3565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d1e5760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612d1591906130b5565b60405180910390fd5b6000612d2c838360006119e2565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612da05760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401612d9791906130b5565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e5d57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612e1e5750612e1d84846116b2565b5b80612e5c57508273ffffffffffffffffffffffffffffffffffffffff16612e448361198b565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000819050919050565b612e7981612e66565b82525050565b6000602082019050612e946000830184612e70565b92915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612ee381612eae565b8114612eee57600080fd5b50565b600081359050612f0081612eda565b92915050565b600060208284031215612f1c57612f1b612ea4565b5b6000612f2a84828501612ef1565b91505092915050565b60008115159050919050565b612f4881612f33565b82525050565b6000602082019050612f636000830184612f3f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fa3578082015181840152602081019050612f88565b60008484015250505050565b6000601f19601f8301169050919050565b6000612fcb82612f69565b612fd58185612f74565b9350612fe5818560208601612f85565b612fee81612faf565b840191505092915050565b600060208201905081810360008301526130138184612fc0565b905092915050565b61302481612e66565b811461302f57600080fd5b50565b6000813590506130418161301b565b92915050565b60006020828403121561305d5761305c612ea4565b5b600061306b84828501613032565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061309f82613074565b9050919050565b6130af81613094565b82525050565b60006020820190506130ca60008301846130a6565b92915050565b6130d981613094565b81146130e457600080fd5b50565b6000813590506130f6816130d0565b92915050565b6000806040838503121561311357613112612ea4565b5b6000613121858286016130e7565b925050602061313285828601613032565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126131615761316061313c565b5b8235905067ffffffffffffffff81111561317e5761317d613141565b5b60208301915083600182028301111561319a57613199613146565b5b9250929050565b6000806000806000608086880312156131bd576131bc612ea4565b5b60006131cb888289016130e7565b95505060206131dc888289016130e7565b94505060406131ed88828901613032565b935050606086013567ffffffffffffffff81111561320e5761320d612ea9565b5b61321a8882890161314b565b92509250509295509295909350565b61323281612eae565b82525050565b600060208201905061324d6000830184613229565b92915050565b60008060006060848603121561326c5761326b612ea4565b5b600061327a868287016130e7565b935050602061328b868287016130e7565b925050604061329c86828701613032565b9150509250925092565b6000602082840312156132bc576132bb612ea4565b5b60006132ca848285016130e7565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61331082612faf565b810181811067ffffffffffffffff8211171561332f5761332e6132d8565b5b80604052505050565b6000613342612e9a565b905061334e8282613307565b919050565b600067ffffffffffffffff82111561336e5761336d6132d8565b5b61337782612faf565b9050602081019050919050565b82818337600083830152505050565b60006133a66133a184613353565b613338565b9050828152602081018484840111156133c2576133c16132d3565b5b6133cd848285613384565b509392505050565b600082601f8301126133ea576133e961313c565b5b81356133fa848260208601613393565b91505092915050565b60006020828403121561341957613418612ea4565b5b600082013567ffffffffffffffff81111561343757613436612ea9565b5b613443848285016133d5565b91505092915050565b61345581612f33565b811461346057600080fd5b50565b6000813590506134728161344c565b92915050565b6000806040838503121561348f5761348e612ea4565b5b600061349d858286016130e7565b92505060206134ae85828601613463565b9150509250929050565b600067ffffffffffffffff8211156134d3576134d26132d8565b5b6134dc82612faf565b9050602081019050919050565b60006134fc6134f7846134b8565b613338565b905082815260208101848484011115613518576135176132d3565b5b613523848285613384565b509392505050565b600082601f8301126135405761353f61313c565b5b81356135508482602086016134e9565b91505092915050565b6000806000806080858703121561357357613572612ea4565b5b6000613581878288016130e7565b9450506020613592878288016130e7565b93505060406135a387828801613032565b925050606085013567ffffffffffffffff8111156135c4576135c3612ea9565b5b6135d08782880161352b565b91505092959194509250565b600080604083850312156135f3576135f2612ea4565b5b6000613601858286016130e7565b9250506020613612858286016130e7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061366357607f821691505b6020821081036136765761367561361c565b5b50919050565b600060608201905061369160008301866130a6565b61369e6020830185612e70565b6136ab60408301846130a6565b949350505050565b60006040820190506136c860008301856130a6565b6136d56020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261376d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613730565b6137778683613730565b95508019841693508086168417925050509392505050565b6000819050919050565b60006137b46137af6137aa84612e66565b61378f565b612e66565b9050919050565b6000819050919050565b6137ce83613799565b6137e26137da826137bb565b84845461373d565b825550505050565b600090565b6137f76137ea565b6138028184846137c5565b505050565b5b818110156138265761381b6000826137ef565b600181019050613808565b5050565b601f82111561386b5761383c8161370b565b61384584613720565b81016020851015613854578190505b61386861386085613720565b830182613807565b50505b505050565b600082821c905092915050565b600061388e60001984600802613870565b1980831691505092915050565b60006138a7838361387d565b9150826002028217905092915050565b6138c082612f69565b67ffffffffffffffff8111156138d9576138d86132d8565b5b6138e3825461364b565b6138ee82828561382a565b600060209050601f831160018114613921576000841561390f578287015190505b613919858261389b565b865550613981565b601f19841661392f8661370b565b60005b8281101561395757848901518255600182019150602085019450602081019050613932565b868310156139745784890151613970601f89168261387d565b8355505b6001600288020188555050505b505050505050565b7f416c6c2072656d61696e696e6720746f6b656e7320616c7265616479206d696e60008201527f7465640000000000000000000000000000000000000000000000000000000000602082015250565b60006139e5602383612f74565b91506139f082613989565b604082019050919050565b60006020820190508181036000830152613a14816139d8565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b6000613a51602083612f74565b9150613a5c82613a1b565b602082019050919050565b60006020820190508181036000830152613a8081613a44565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ac182612e66565b9150613acc83612e66565b9250828201905080821115613ae457613ae3613a87565b5b92915050565b6000613af582612e66565b9150613b0083612e66565b9250828203905081811115613b1857613b17613a87565b5b92915050565b6000613b2982612e66565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b5b57613b5a613a87565b5b600182019050919050565b7f4d696e74696e6720697320706175736564000000000000000000000000000000600082015250565b6000613b9c601183612f74565b9150613ba782613b66565b602082019050919050565b60006020820190508181036000830152613bcb81613b8f565b9050919050565b7f4d696e7420636f756e74206d7573742062652067726561746572207468616e2060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c2e602183612f74565b9150613c3982613bd2565b604082019050919050565b60006020820190508181036000830152613c5d81613c21565b9050919050565b7f4578636565647320617661696c61626c65204e46547300000000000000000000600082015250565b6000613c9a601683612f74565b9150613ca582613c64565b602082019050919050565b60006020820190508181036000830152613cc981613c8d565b9050919050565b6000613cdb82612e66565b9150613ce683612e66565b9250828202613cf481612e66565b91508282048414831517613d0b57613d0a613a87565b5b5092915050565b7f496e636f7272656374207061796d656e7420616d6f756e740000000000000000600082015250565b6000613d48601883612f74565b9150613d5382613d12565b602082019050919050565b60006020820190508181036000830152613d7781613d3b565b9050919050565b6000613d8982612e66565b915060008203613d9c57613d9b613a87565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613de182612e66565b9150613dec83612e66565b925082613dfc57613dfb613da7565b5b828204905092915050565b600081905092915050565b50565b6000613e22600083613e07565b9150613e2d82613e12565b600082019050919050565b6000613e4382613e15565b9150819050919050565b7f5472616e7366657220746f206465762077616c6c6574206661696c6564000000600082015250565b6000613e83601d83612f74565b9150613e8e82613e4d565b602082019050919050565b60006020820190508181036000830152613eb281613e76565b9050919050565b7f5472616e7366657220746f206d61726b6574696e672077616c6c65742066616960008201527f6c65640000000000000000000000000000000000000000000000000000000000602082015250565b6000613f15602383612f74565b9150613f2082613eb9565b604082019050919050565b60006020820190508181036000830152613f4481613f08565b9050919050565b7f5472616e7366657220746f207265666c656374696f6e7320636f6e747261637460008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000613fa7602783612f74565b9150613fb282613f4b565b604082019050919050565b60006020820190508181036000830152613fd681613f9a565b9050919050565b6000604082019050613ff26000830185612e70565b613fff6020830184612e70565b9392505050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000614062602f83612f74565b915061406d82614006565b604082019050919050565b6000602082019050818103600083015261409181614055565b9050919050565b600081905092915050565b600081546140b08161364b565b6140ba8186614098565b945060018216600081146140d557600181146140ea5761411d565b60ff198316865281151582028601935061411d565b6140f38561370b565b60005b83811015614115578154818901526001820191506020810190506140f6565b838801955050505b50505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061415c600183614098565b915061416782614126565b600182019050919050565b600061417d82612f69565b6141878185614098565b9350614197818560208601612f85565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b60006141d9600583614098565b91506141e4826141a3565b600582019050919050565b60006141fb82856140a3565b91506142068261414f565b91506142128284614172565b915061421d826141cc565b91508190509392505050565b7f4d696e74207072696365206d7573742062652067726561746572207468616e2060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b6000614285602183612f74565b915061429082614229565b604082019050919050565b600060208201905081810360008301526142b481614278565b9050919050565b6000819050919050565b6142d66142d182612e66565b6142bb565b82525050565b6000819050919050565b6000819050919050565b6143016142fc826142dc565b6142e6565b82525050565b60008160601b9050919050565b600061431f82614307565b9050919050565b600061433182614314565b9050919050565b61434961434482613094565b614326565b82525050565b600061435b82876142c5565b60208201915061436b82866142f0565b60208201915061437b8285614338565b60148201915061438b82846142c5565b60208201915081905095945050505050565b60006143a882612e66565b91506143b383612e66565b9250826143c3576143c2613da7565b5b828206905092915050565b7f4e6f20617661696c61626c6520746f6b656e20666f756e640000000000000000600082015250565b6000614404601883612f74565b915061440f826143ce565b602082019050919050565b60006020820190508181036000830152614433816143f7565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006144618261443a565b61446b8185614445565b935061447b818560208601612f85565b61448481612faf565b840191505092915050565b60006080820190506144a460008301876130a6565b6144b160208301866130a6565b6144be6040830185612e70565b81810360608301526144d08184614456565b905095945050505050565b6000815190506144ea81612eda565b92915050565b60006020828403121561450657614505612ea4565b5b6000614514848285016144db565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220184b29b06b22f54c456e868cd2333ce9b14e99784cd14996be4a50ca65ad837d64736f6c63430008140033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000034e4654000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034e465400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261666b72656963336b673476766f326570626165656b6f687435346b73746b68617575687437346e323669706c70616e346765676968687a6271000000000000000000000000000000000000000000000000000000000000