219 txs
387 calls
constructor
constructor(address _owner, address _BBITS, address _router, address _quoter)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
BBITS
viewfunction BBITS() view returns (address)
dead
viewfunction dead() view returns (address)
description
viewfunction description() view returns (bytes)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
metadata
viewfunction metadata(uint256, uint256) view returns (bytes core, bytes name)
metadataForTokenId
viewfunction metadataForTokenId(uint256) view returns (uint256 background, uint256 redFire, uint256 orangeFire, uint256 yellowFire, uint256 noggles)
mintPriceInBBITS
viewfunction mintPriceInBBITS() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
uniV3Quoter
viewfunction uniV3Quoter() view returns (address)
uniV3Router
viewfunction uniV3Router() view returns (address)
WETH
viewfunction WETH() view returns (address)
addArt
nonpayablefunction addArt(uint256 _array, tuple[] _data)
approve
nonpayablefunction approve(address to, uint256 tokenId)
mint
payablefunction mint() payable
mintPriceInWETH
nonpayablefunction mintPriceInWETH() returns (uint256 price)
removeArt
nonpayablefunction removeArt(uint256 _array, uint256[] _indices)
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)
setArt
nonpayablefunction setArt(uint256[] _tokenIds)
setDescription
nonpayablefunction setDescription(bytes _description)
setMintPriceInBBITS
nonpayablefunction setMintPriceInBBITS(uint256 _newPrice)
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)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
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)
IndicesMustBeMonotonicallyDecreasing
error IndicesMustBeMonotonicallyDecreasing()
InputZero
error InputZero()
InsufficientETHPaid
error InsufficientETHPaid()
InvalidArray
error InvalidArray()
InvalidIndex
error InvalidIndex()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
WETHDepositFailed
error WETHDepositFailed()
creation bytecode
0x61020060405260e560e0818152906142d4610100396003906100219082610299565b5034801561002e57600080fd5b506040516143b93803806143b983398101604081905261004d91610370565b604080518082018252601581527f42617365642042697473204275726e6572204e465400000000000000000000006020808301919091528251808401909352600383526221212160e91b9083015290856001600160a01b0381166100cb57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100d4816101a8565b5060046100e18382610299565b5060056100ee8282610299565b50506001600a55506001600160a01b0383811660805282811660a081905290821660c052683782dace9d90000000600b5560405163095ea7b360e01b8152600481019190915260001960248201527342000000000000000000000000000000000000069063095ea7b3906044016020604051808303816000875af115801561017a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019e91906103cf565b50505050506103f8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061022257607f821691505b60208210810361024257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610294576000816000526020600020601f850160051c810160208610156102715750805b601f850160051c820191505b818110156102905782815560010161027d565b5050505b505050565b81516001600160401b038111156102b2576102b26101f8565b6102c6816102c0845461020e565b84610248565b602080601f8311600181146102fb57600084156102e35750858301515b600019600386901b1c1916600185901b178555610290565b600085815260208120601f198616915b8281101561032a5788860151825594840194600190910190840161030b565b50858210156103485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038116811461036d57600080fd5b50565b6000806000806080858703121561038657600080fd5b845161039181610358565b60208601519094506103a281610358565b60408601519093506103b381610358565b60608601519092506103c481610358565b939692955090935050565b6000602082840312156103e157600080fd5b815180151581146103f157600080fd5b9392505050565b60805160a05160c051613e916104436000396000818161047201526111f00152600081816103b40152610d4801526000818161038001528181610c6d01526111580152613e916000f3fe6080604052600436106102025760003560e01c806375ddbbd91161011d578063aaa58f65116100b0578063c87b56dd1161007f578063e985e9c511610064578063e985e9c514610667578063f2fde38b146106bd578063f621cfa2146106dd57600080fd5b8063c87b56dd14610631578063e4c9de4c1461065157600080fd5b8063aaa58f6514610557578063ad5c464814610577578063b88d4fde1461059f578063c0540e56146105bf57600080fd5b80638da5cb5b116100ec5780638da5cb5b146104c957806395d89b41146104f4578063a0b7992b14610509578063a22cb4651461053757600080fd5b806375ddbbd914610440578063795674ff146104605780637e721601146104945780638d2e4352146104a957600080fd5b806336cf7c87116101955780636352211e116101645780636352211e146103d657806370a08231146103f6578063715018a6146104165780637284e4161461042b57600080fd5b806336cf7c871461033857806342842e0e1461034e5780635efa7b5e1461036e5780635fafa589146103a257600080fd5b80630e83c7d7116101d15780630e83c7d7146102cc5780631249c58b146102ec57806318160ddd146102f457806323b872dd1461031857600080fd5b806301ffc9a71461020e57806306fdde0314610243578063081812fc14610265578063095ea7b3146102aa57600080fd5b3661020957005b600080fd5b34801561021a57600080fd5b5061022e610229366004612d38565b6106fd565b60405190151581526020015b60405180910390f35b34801561024f57600080fd5b506102586107e2565b60405161023a9190612dca565b34801561027157600080fd5b50610285610280366004612ddd565b610874565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161023a565b3480156102b657600080fd5b506102ca6102c5366004612e18565b6108aa565b005b3480156102d857600080fd5b506102ca6102e7366004612e90565b6108b9565b6102ca610b51565b34801561030057600080fd5b5061030a600c5481565b60405190815260200161023a565b34801561032457600080fd5b506102ca610333366004612edc565b610df1565b34801561034457600080fd5b5061028561dead81565b34801561035a57600080fd5b506102ca610369366004612edc565b610ee7565b34801561037a57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ae57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e257600080fd5b506102856103f1366004612ddd565b610f07565b34801561040257600080fd5b5061030a610411366004612f1d565b610f12565b34801561042257600080fd5b506102ca610f8d565b34801561043757600080fd5b50610258610f9f565b34801561044c57600080fd5b506102ca61045b366004612e90565b61102d565b34801561046c57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a057600080fd5b5061030a611120565b3480156104b557600080fd5b506102ca6104c4366004612f3a565b611269565b3480156104d557600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610285565b34801561050057600080fd5b506102586112e1565b34801561051557600080fd5b50610529610524366004612f7c565b6112f0565b60405161023a929190612f9e565b34801561054357600080fd5b506102ca610552366004612fcc565b611441565b34801561056357600080fd5b506102ca61057236600461300a565b61144c565b34801561058357600080fd5b5061028573420000000000000000000000000000000000000681565b3480156105ab57600080fd5b506102ca6105ba3660046130ab565b611461565b3480156105cb57600080fd5b506106096105da366004612ddd565b600260208190526000918252604090912080546001820154928201546003830154600490930154919392909185565b604080519586526020860194909452928401919091526060830152608082015260a00161023a565b34801561063d57600080fd5b5061025861064c366004612ddd565b611478565b34801561065d57600080fd5b5061030a600b5481565b34801561067357600080fd5b5061022e6106823660046131a9565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260096020908152604080832093909416825291909152205460ff1690565b3480156106c957600080fd5b506102ca6106d8366004612f1d565b61148d565b3480156106e957600080fd5b506102ca6106f8366004612ddd565b6114f1565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061079057507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806107dc57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600480546107f1906131d7565b80601f016020809104026020016040519081016040528092919081815260200182805461081d906131d7565b801561086a5780601f1061083f5761010080835404028352916020019161086a565b820191906000526020600020905b81548152906001019060200180831161084d57829003601f168201915b5050505050905090565b600061087f826114fe565b5060008281526008602052604090205473ffffffffffffffffffffffffffffffffffffffff166107dc565b6108b582823361155d565b5050565b6108c161156a565b6108ca836115bd565b610900576040517f1ec5aa5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600081900361093c576040517f7314988000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82811015610b495760008681526001602052604090205491508185858381811061096c5761096c61322a565b90506020020135106109aa576040517f63df817100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000811180156109f657508484828181106109c7576109c761322a565b9050602002013585856001846109dd9190613288565b8181106109ec576109ec61322a565b9050602002013511155b15610a2d576040517f451b9d5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600086815260016020819052604090912090610a499084613288565b81548110610a5957610a5961322a565b906000526020600020906002020160016000888152602001908152602001600020868684818110610a8c57610a8c61322a565b9050602002013581548110610aa357610aa361322a565b6000918252602090912060029091020180610abe83826132e3565b50600181810190610ad1908401826132e3565b5050506000868152600160205260409020805480610af157610af161341a565b6000828152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191600283020190610b2f8282612cbc565b610b3d600183016000612cbc565b50509055600101610940565b505050505050565b610b596115d6565b6000610b63611120565b905080341015610b9f576040517f2c316f2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516000907342000000000000000000000000000000000000069034908381818185875af1925050503d8060008114610bf5576040519150601f19603f3d011682016040523d82523d6000602084013e610bfa565b606091505b5050905080610c35576040517f19c2b5a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160e081018252734200000000000000000000000000000000000006815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660208301908152610bb883850190815261dead60608501908152600b54608086019081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60a08701908152600060c0880190815297517f5023b4df000000000000000000000000000000000000000000000000000000008152875187166004820152945186166024860152925162ffffff1660448501529051841660648401525160848301525160a48201529251811660c484015290917f000000000000000000000000000000000000000000000000000000000000000090911690635023b4df9060e4016020604051808303816000875af1158015610d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db79190613449565b50610dc3600c54611619565b600c8054610de2913391906000610dd983613462565b9190505561189b565b505050610def6001600a55565b565b73ffffffffffffffffffffffffffffffffffffffff8216610e46576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6000610e5383833361194c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ee1576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80861660048301526024820184905282166044820152606401610e3d565b50505050565b610f0283838360405180602001604052806000815250611461565b505050565b60006107dc826114fe565b600073ffffffffffffffffffffffffffffffffffffffff8216610f64576040517f89c62b6400000000000000000000000000000000000000000000000000000000815260006004820152602401610e3d565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526007602052604090205490565b610f9561156a565b610def6000611ac9565b60038054610fac906131d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd8906131d7565b80156110255780601f10610ffa57610100808354040283529160200191611025565b820191906000526020600020905b81548152906001019060200180831161100857829003601f168201915b505050505081565b61103561156a565b61103e836115bd565b611074576040517f1ec5aa5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190036110b0576040517f7314988000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156111195760008581526001602052604090208484838181106110db576110db61322a565b90506020028101906110ed919061349a565b81546001810183556000928352602090922090916002020161110f8282613657565b50506001016110b3565b5050505050565b6040805160a081018252734200000000000000000000000000000000000006815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660208301908152600b54838501908152610bb86060850190815260006080860181815296517fbd21704a000000000000000000000000000000000000000000000000000000008152865186166004820152935185166024850152915160448401525162ffffff1660648301529351821660848201527f00000000000000000000000000000000000000000000000000000000000000009091169063bd21704a9060a4016080604051808303816000875af115801561123b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125f9190613794565b5091949350505050565b61127161156a565b8060008190036112ad576040517f7314988000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610ee1576112d98484838181106112cd576112cd61322a565b90506020020135611619565b6001016112b0565b6060600580546107f1906131d7565b6001602052816000526040600020818154811061130c57600080fd5b906000526020600020906002020160009150915050806000018054611330906131d7565b80601f016020809104026020016040519081016040528092919081815260200182805461135c906131d7565b80156113a95780601f1061137e576101008083540402835291602001916113a9565b820191906000526020600020905b81548152906001019060200180831161138c57829003601f168201915b5050505050908060010180546113be906131d7565b80601f01602080910402602001604051908101604052809291908181526020018280546113ea906131d7565b80156114375780601f1061140c57610100808354040283529160200191611437565b820191906000526020600020905b81548152906001019060200180831161141a57829003601f168201915b5050505050905082565b6108b5338383611b3e565b61145461156a565b6003610f0282848361353d565b61146c848484610df1565b610ee184848484611c3b565b6060611483826114fe565b506107dc82611e2b565b61149561156a565b73ffffffffffffffffffffffffffffffffffffffff81166114e5576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610e3d565b6114ee81611ac9565b50565b6114f961156a565b600b55565b60008181526006602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107dc576040517f7e27328900000000000000000000000000000000000000000000000000000000815260048101849052602401610e3d565b610f02838383600161267a565b60005473ffffffffffffffffffffffffffffffffffffffff163314610def576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610e3d565b6000600482116115ce5760016107dc565b600092915050565b6002600a5403611612576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600a55565b604080516020808201849052428284015282518083038401815260608301808552815191830191909120610100840185526000808052600184527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49546101208601839052610140808701839052875180880390910181526101609096019096528451949093019390932092939192909182916116b59190613815565b81526001600081905260208181527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5460408051808401899052808201949094528051808503820181526060909401905282519282019290922092019161171c9190613815565b815260026000819052600160209081527fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f546040805180840189905280820194909452805180850382018152606090940190528251928201929092209201916117859190613815565b815260036000819052600160209081527f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b546040805180840189905280820194909452805180850382018152606090940190528251928201929092209201916117ee9190613815565b815260046000819052600160209081527fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643546040805180840189905280820194909452805180850382018152606090940190528251928201929092209201916118579190613815565b905260009384526002602081815260409586902083518155908301516001820155948201519085015560608101516003850155608001516004909301929092555050565b73ffffffffffffffffffffffffffffffffffffffff82166118eb576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260006004820152602401610e3d565b60006118f98383600061194c565b905073ffffffffffffffffffffffffffffffffffffffff811615610f02576040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260006004820152602401610e3d565b60008281526006602052604081205473ffffffffffffffffffffffffffffffffffffffff9081169083161561198657611986818486612845565b73ffffffffffffffffffffffffffffffffffffffff8116156119fc576119b060008560008061267a565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b73ffffffffffffffffffffffffffffffffffffffff851615611a455773ffffffffffffffffffffffffffffffffffffffff85166000908152600760205260409020805460010190555b60008481526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216611ba3576040517f5b08ba1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610e3d565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526009602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83163b15610ee1576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063150b7a0290611cb0903390889087908790600401613829565b6020604051808303816000875af1925050508015611d09575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611d0691810190613872565b60015b611d98573d808015611d37576040519150601f19603f3d011682016040523d82523d6000602084013e611d3c565b606091505b508051600003611d90576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610e3d565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a020000000000000000000000000000000000000000000000000000000014611119576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610e3d565b6000818152600260208181526040808420815160a08101835281548152600180830154828601529482015492810192909252600381015460608381019190915260049091015460808301528480529290915280517fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb498054939492939091908110611eb757611eb761322a565b9060005260206000209060020201604051806040016040529081600082018054611ee0906131d7565b80601f0160208091040260200160405190810160405280929190818152602001828054611f0c906131d7565b8015611f595780601f10611f2e57610100808354040283529160200191611f59565b820191906000526020600020905b815481529060010190602001808311611f3c57829003601f168201915b50505050508152602001600182018054611f72906131d7565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9e906131d7565b8015611feb5780601f10611fc057610100808354040283529160200191611feb565b820191906000526020600020905b815481529060010190602001808311611fce57829003601f168201915b5050505050815250509050600060016000600181526020019081526020016000208360200151815481106120215761202161322a565b906000526020600020906002020160405180604001604052908160008201805461204a906131d7565b80601f0160208091040260200160405190810160405280929190818152602001828054612076906131d7565b80156120c35780601f10612098576101008083540402835291602001916120c3565b820191906000526020600020905b8154815290600101906020018083116120a657829003601f168201915b505050505081526020016001820180546120dc906131d7565b80601f0160208091040260200160405190810160405280929190818152602001828054612108906131d7565b80156121555780601f1061212a57610100808354040283529160200191612155565b820191906000526020600020905b81548152906001019060200180831161213857829003601f168201915b50505050508152505090506000600160006002815260200190815260200160002084604001518154811061218b5761218b61322a565b90600052602060002090600202016040518060400160405290816000820180546121b4906131d7565b80601f01602080910402602001604051908101604052809291908181526020018280546121e0906131d7565b801561222d5780601f106122025761010080835404028352916020019161222d565b820191906000526020600020905b81548152906001019060200180831161221057829003601f168201915b50505050508152602001600182018054612246906131d7565b80601f0160208091040260200160405190810160405280929190818152602001828054612272906131d7565b80156122bf5780601f10612294576101008083540402835291602001916122bf565b820191906000526020600020905b8154815290600101906020018083116122a257829003601f168201915b5050505050815250509050600060016000600381526020019081526020016000208560600151815481106122f5576122f561322a565b906000526020600020906002020160405180604001604052908160008201805461231e906131d7565b80601f016020809104026020016040519081016040528092919081815260200182805461234a906131d7565b80156123975780601f1061236c57610100808354040283529160200191612397565b820191906000526020600020905b81548152906001019060200180831161237a57829003601f168201915b505050505081526020016001820180546123b0906131d7565b80601f01602080910402602001604051908101604052809291908181526020018280546123dc906131d7565b80156124295780601f106123fe57610100808354040283529160200191612429565b820191906000526020600020905b81548152906001019060200180831161240c57829003601f168201915b50505050508152505090506000600160006004815260200190815260200160002086608001518154811061245f5761245f61322a565b9060005260206000209060020201604051806040016040529081600082018054612488906131d7565b80601f01602080910402602001604051908101604052809291908181526020018280546124b4906131d7565b80156125015780601f106124d657610100808354040283529160200191612501565b820191906000526020600020905b8154815290600101906020018083116124e457829003601f168201915b5050505050815260200160018201805461251a906131d7565b80601f0160208091040260200160405190810160405280929190818152602001828054612546906131d7565b80156125935780601f1061256857610100808354040283529160200191612593565b820191906000526020600020905b81548152906001019060200180831161257657829003601f168201915b505050919092525050865186518651865185516040519697506000966125bc96506020016138ab565b60405160208183030381529060405290506125d6896128f5565b60036125e1836129b3565b6040516020016125f3939291906139dd565b6040516020818303038152906040529050808660200151866020015186602001518660200151866020015160405160200161263396959493929190613b67565b604051602081830303815290604052905061264d816129b3565b60405160200161265d9190613d98565b604051602081830303815290604052975050505050505050919050565b808061269b575073ffffffffffffffffffffffffffffffffffffffff821615155b156127f05760006126ab846114fe565b905073ffffffffffffffffffffffffffffffffffffffff8316158015906126fe57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561273d575073ffffffffffffffffffffffffffffffffffffffff80821660009081526009602090815260408083209387168352929052205460ff16155b1561278c576040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610e3d565b81156127ee57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260086020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612850838383612b13565b610f025773ffffffffffffffffffffffffffffffffffffffff83166128a4576040517f7e27328900000000000000000000000000000000000000000000000000000000815260048101829052602401610e3d565b6040517f177e802f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260248101829052604401610e3d565b6060600061290283612bda565b600101905060008167ffffffffffffffff8111156129225761292261307c565b6040519080825280601f01601f19166020018201604052801561294c576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461295657509392505050565b606081516000036129d257505060408051602081019091526000815290565b6000604051806060016040528060408152602001613e1c6040913990506000600384516002612a019190613ddd565b612a0b9190613df0565b612a16906004613e04565b67ffffffffffffffff811115612a2e57612a2e61307c565b6040519080825280601f01601f191660200182016040528015612a58576020820181803683370190505b50905060018201602082018586518701602081018051600082525b82841015612ace576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865350600185019450612a73565b9052505085516003900660018114612aed5760028114612b0057612b08565b603d6001830353603d6002830353612b08565b603d60018303535b509195945050505050565b600073ffffffffffffffffffffffffffffffffffffffff831615801590612bd257508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612ba1575073ffffffffffffffffffffffffffffffffffffffff80851660009081526009602090815260408083209387168352929052205460ff165b80612bd2575060008281526008602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116145b949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612c23577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612c4f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612c6d57662386f26fc10000830492506010015b6305f5e1008310612c85576305f5e100830492506008015b6127108310612c9957612710830492506004015b60648310612cab576064830492506002015b600a83106107dc5760010192915050565b508054612cc8906131d7565b6000825580601f10612cd8575050565b601f0160209004906000526020600020908101906114ee91905b80821115612d065760008155600101612cf2565b5090565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146114ee57600080fd5b600060208284031215612d4a57600080fd5b8135612d5581612d0a565b9392505050565b60005b83811015612d77578181015183820152602001612d5f565b50506000910152565b60008151808452612d98816020860160208601612d5c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612d556020830184612d80565b600060208284031215612def57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146114ee57600080fd5b60008060408385031215612e2b57600080fd5b8235612e3681612df6565b946020939093013593505050565b60008083601f840112612e5657600080fd5b50813567ffffffffffffffff811115612e6e57600080fd5b6020830191508360208260051b8501011115612e8957600080fd5b9250929050565b600080600060408486031215612ea557600080fd5b83359250602084013567ffffffffffffffff811115612ec357600080fd5b612ecf86828701612e44565b9497909650939450505050565b600080600060608486031215612ef157600080fd5b8335612efc81612df6565b92506020840135612f0c81612df6565b929592945050506040919091013590565b600060208284031215612f2f57600080fd5b8135612d5581612df6565b60008060208385031215612f4d57600080fd5b823567ffffffffffffffff811115612f6457600080fd5b612f7085828601612e44565b90969095509350505050565b60008060408385031215612f8f57600080fd5b50508035926020909101359150565b604081526000612fb16040830185612d80565b8281036020840152612fc38185612d80565b95945050505050565b60008060408385031215612fdf57600080fd5b8235612fea81612df6565b915060208301358015158114612fff57600080fd5b809150509250929050565b6000806020838503121561301d57600080fd5b823567ffffffffffffffff8082111561303557600080fd5b818501915085601f83011261304957600080fd5b81358181111561305857600080fd5b86602082850101111561306a57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156130c157600080fd5b84356130cc81612df6565b935060208501356130dc81612df6565b925060408501359150606085013567ffffffffffffffff8082111561310057600080fd5b818701915087601f83011261311457600080fd5b8135818111156131265761312661307c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561316c5761316c61307c565b816040528281528a602084870101111561318557600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156131bc57600080fd5b82356131c781612df6565b91506020830135612fff81612df6565b600181811c908216806131eb57607f821691505b602082108103613224577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156107dc576107dc613259565b601f821115610f02576000816000526020600020601f850160051c810160208610156132c45750805b601f850160051c820191505b81811015610b49578281556001016132d0565b8181036132ee575050565b6132f882546131d7565b67ffffffffffffffff8111156133105761331061307c565b6133248161331e84546131d7565b8461329b565b6000601f82116001811461337657600083156133405750848201545b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455611119565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690600086815260209020845b838110156133ce57828601548255600195860195909101906020016133ae565b508583101561340a57818501547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006020828403121561345b57600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361349357613493613259565b5060010190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126134ce57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261350d57600080fd5b83018035915067ffffffffffffffff82111561352857600080fd5b602001915036819003821315612e8957600080fd5b67ffffffffffffffff8311156135555761355561307c565b6135698361356383546131d7565b8361329b565b6000601f8411600181146135bb57600085156135855750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611119565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561360a57868501358255602094850194600190920191016135ea565b5086821015613645577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b61366182836134d8565b67ffffffffffffffff8111156136795761367961307c565b61368d8161368785546131d7565b8561329b565b6000601f8211600181146136df57600083156136a95750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178555613775565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690835b8281101561372e578685013582556020948501946001909201910161370e565b5084821015613769577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c19848701351681555b505060018360011b0185555b5050505061378660208301836134d8565b610ee181836001860161353d565b600080600080608085870312156137aa57600080fd5b8451935060208501516137bc81612df6565b604086015190935063ffffffff811681146137d657600080fd5b6060959095015193969295505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613824576138246137e6565b500690565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526138686080830184612d80565b9695505050505050565b60006020828403121561388457600080fd5b8151612d5581612d0a565b600081516138a1818560208601612d5c565b9290920192915050565b7f3c7376672077696474683d2235343022206865696768743d22353430222076698152600060207f6577426f783d22302030203237203237222066696c6c3d226e6f6e652220786d818401527f6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672260408401527f3e0000000000000000000000000000000000000000000000000000000000000060608401526061885161395681838701858d01612d5c565b88519085019061396b81848401868d01612d5c565b885191019061397f81848401868c01612d5c565b875191019061399381848401868b01612d5c565b86519101906139a781848401868a01612d5c565b7f3c2f7376673e000000000000000000000000000000000000000000000000000091019182015260670198975050505050505050565b7f7b226e616d65223a20224275726e6564204269742023000000000000000000008152600084516020613a17826016860160208a01612d5c565b81840191507f222c20226465736372697074696f6e223a2022000000000000000000000000006016830152602960008754613a51816131d7565b60018281168015613a695760018114613aa257613ad4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084166029890152602983151584028901019450613ad4565b8b600052602060002060005b84811015613ac95781548a8201890152908301908801613aae565b505060298389010194505b50507f222c2022696d616765223a2022646174613a696d6167652f7376672b786d6c3b835250507f6261736536342c000000000000000000000000000000000000000000000000006020820152613b5a613b31602783018961388f565b7f2200000000000000000000000000000000000000000000000000000000000000815260010190565b9998505050505050505050565b60008751613b79818460208c01612d5c565b80830190507f2c202261747472696275746573223a205b7b2274726169745f74797065223a2081527f224261636b67726f756e64222c202276616c7565223a2022000000000000000060208201528751613bda816038840160208c01612d5c565b7f227d2c207b2274726169745f74797065223a20225265642046697265222c2022603892909101918201527f76616c7565223a2022000000000000000000000000000000000000000000000060588201528651613c3e816061840160208b01612d5c565b7f227d2c207b2274726169745f74797065223a20224f72616e6765204669726522606192909101918201527f2c202276616c7565223a2022000000000000000000000000000000000000000060818201528551613ca281608d840160208a01612d5c565b613d8a613d61613d5b613d0c613d06608d868801017f227d2c207b2274726169745f74797065223a202259656c6c6f7720466972652281527f2c202276616c7565223a202200000000000000000000000000000000000000006020820152602c0190565b8a61388f565b7f227d2c207b2274726169745f74797065223a20224e6f67676c6573222c20227681527f616c7565223a2022000000000000000000000000000000000000000000000000602082015260280190565b8761388f565b7f227d5d7d00000000000000000000000000000000000000000000000000000000815260040190565b9a9950505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251613dd081601d850160208701612d5c565b91909101601d0192915050565b808201808211156107dc576107dc613259565b600082613dff57613dff6137e6565b500490565b80820281158282048414176107dc576107dc61325956fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa264697066735822122096e0c6fa46fe1c2e746aa7b0a69594bd2eeb4fc7161f3ac9034c8a48b14cc6c564736f6c634300081900334275726e6564204269747320697320612066756c6c79206f6e636861696e204e465420636f6c6c656374696f6e2077697468206172742062792046696c746572382e204576657279206d696e74206275726e732061204261736564204269742c20616e6420746865206d696e742070726963652069732063616c63756c61746564206261736564206f6e207468652042424954532d45544820737761702e2054686520746f74616c20737570706c79206f6620382c3030302077696c6c206e6576657220626520726561636865642e204c65742773206275726e20736f6d65206269747321000000000000000000000000d811f3803bee46fdce64e680aa29df3a4382e7e3000000000000000000000000553c1f87c2ef99cca23b8a7ffaa629c8c2d276660000000000000000000000002626664c2603336e57b271c5c0b26f421741e4810000000000000000000000003d4e44eb1374240ce5f1b871ab261cd16335b76a