0 txs
1 call
constructor
constructor(address productsModuleAddress)
functions
configureProductSchema
purefunction configureProductSchema() pure returns (string)
isPurchaseAllowed
viewfunction isPurchaseAllowed(uint256, uint256, uint256, address, uint256, bytes) view returns (bool)
onProductPurchaseSchema
purefunction onProductPurchaseSchema() pure returns (string)
PRODUCTS_MODULE
viewfunction PRODUCTS_MODULE() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenData
viewfunction tokenData(uint256 slicerId, uint256 productId, uint256 variantId) view returns (address token, bool revertOnMaxSupplyReached)
configureProduct
nonpayablefunction configureProduct(uint256 slicerId, uint256 productId, uint256 variantId, bytes params)
onProductPurchase
payablefunction onProductPurchase(uint256 slicerId, uint256 productId, uint256 variantId, address buyer, uint256 quantity, bytes data) payable
events
ProductConfigured
event ProductConfigured(uint256 slicerId, uint256 productId, uint256 variantId, bytes params)
errors
InvalidRoyaltyFraction
error InvalidRoyaltyFraction()
MaxSupplyExceeded
error MaxSupplyExceeded()
NotAllowed
error NotAllowed()
NotAuthorized
error NotAuthorized(bytes32 rolesMask)
NotPurchase
error NotPurchase()
creation bytecode
0x60a0604052348015600e575f5ffd5b50604051612d66380380612d66833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b608051612cda61008c5f395f818161013d0152818161037301526104460152612cda5ff3fe608060405260043610610079575f3560e01c80638afd98941161004c5780638afd9894146101195780639203f2331461012c578063c8abaaf614610184578063faee42611461021e575f5ffd5b806301ffc9a71461007d578063181fd18b146100b1578063211f03b3146100d25780635571123b146100f8575b5f5ffd5b348015610088575f5ffd5b5061009c610097366004610869565b610231565b60405190151581526020015b60405180910390f35b3480156100bc575f5ffd5b506100c5610315565b6040516100a891906108fb565b3480156100dd575f5ffd5b5061009c6100ec366004610a44565b60019695505050505050565b348015610103575f5ffd5b50610117610112366004610ab4565b610335565b005b348015610124575f5ffd5b5060606100c5565b348015610137575f5ffd5b5061015f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a8565b34801561018f575f5ffd5b506101f261019e366004610b0a565b5f602081815293815260408082208552928152828120909352825290205473ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900460ff1682565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683529015156020830152016100a8565b61011761022c366004610a44565b61042e565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102c357507fffffffff0000000000000000000000000000000000000000000000000000000082167f510cd94600000000000000000000000000000000000000000000000000000000145b8061030f57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4d6ec3b000000000000000000000000000000000000000000000000000000000145b92915050565b60606040518060c0016040528060988152602001612c3660989139905090565b6040517f11b0738e00000000000000000000000000000000000000000000000000000000815260048101859052600a602482015233604482015284907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906311b0738e906064015f6040518083038186803b1580156103c8575f5ffd5b505afa1580156103da573d5f5f3e3d5ffd5b505050506103ea858585856104b3565b7fcdd8470c81c12ef7fe2fe67ef79d13684d94ff2008417cba55fdd025de21ec188585858560405161041f9493929190610b33565b60405180910390a15050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461049d576040517f47322d0300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ab8686868686866106f1565b505050505050565b5f5f5f5f5f5f5f5f888060200190518101906104cf9190610bcd565b9750975097509750975097509750975061271085111561051b576040517fd28e6cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8c8152602081815260408083208e845282528083208d845290915290205473ffffffffffffffffffffffffffffffffffffffff168061059957888883898989896040516105689061085c565b6105789796959493929190610cbc565b604051809103905ff080158015610591573d5f5f3e3d5ffd5b509050610621565b6040517f4af35d9f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690634af35d9f906105f39085908b908b908b908b90600401610d3e565b5f604051808303815f87803b15801561060a575f5ffd5b505af115801561061c573d5f5f3e3d5ffd5b505050505b60405180604001604052808273ffffffffffffffffffffffffffffffffffffffff1681526020018415158152505f5f8f81526020019081526020015f205f8e81526020019081526020015f205f8d81526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f0160146101000a81548160ff02191690831515021790555090505050505050505050505050505050565b5f868152602081815260408083208884528252808320878452825280832081518083018352905473ffffffffffffffffffffffffffffffffffffffff8082168084527401000000000000000000000000000000000000000090920460ff16151583860152835190891660248201526044808201899052845180830390910181526064909101845293840180517f40c10f19000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90911617905291519093926107cf91610d96565b5f604051808303815f865af19150503d805f8114610808576040519150601f19603f3d011682016040523d82523d5f602084013e61080d565b606091505b505090508160200151156108525780610852576040517f8a164f6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050565b611e8980610dad83390190565b5f60208284031215610879575f5ffd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146108a8575f5ffd5b9392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6108a860208301846108af565b73ffffffffffffffffffffffffffffffffffffffff8116811461092e575f5ffd5b50565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156109a5576109a5610931565b604052919050565b5f67ffffffffffffffff8211156109c6576109c6610931565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112610a01575f5ffd5b8135610a14610a0f826109ad565b61095e565b818152846020838601011115610a28575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f5f5f5f60c08789031215610a59575f5ffd5b8635955060208701359450604087013593506060870135610a798161090d565b92506080870135915060a087013567ffffffffffffffff811115610a9b575f5ffd5b610aa789828a016109f2565b9150509295509295509295565b5f5f5f5f60808587031215610ac7575f5ffd5b843593506020850135925060408501359150606085013567ffffffffffffffff811115610af2575f5ffd5b610afe878288016109f2565b91505092959194509250565b5f5f5f60608486031215610b1c575f5ffd5b505081359360208301359350604090920135919050565b848152836020820152826040820152608060608201525f610b5760808301846108af565b9695505050505050565b5f82601f830112610b70575f5ffd5b8151610b7e610a0f826109ad565b818152846020838601011115610b92575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b8051610bb98161090d565b919050565b80518015158114610bb9575f5ffd5b5f5f5f5f5f5f5f5f610100898b031215610be5575f5ffd5b885167ffffffffffffffff811115610bfb575f5ffd5b610c078b828c01610b61565b985050602089015167ffffffffffffffff811115610c23575f5ffd5b610c2f8b828c01610b61565b975050610c3e60408a01610bae565b60608a015160808b0151919750955067ffffffffffffffff811115610c61575f5ffd5b610c6d8b828c01610b61565b94505060a089015167ffffffffffffffff811115610c89575f5ffd5b610c958b828c01610b61565b935050610ca460c08a01610bbe565b60e09990990151979a96995094979396929591945050565b60e081525f610cce60e083018a6108af565b8281036020840152610ce0818a6108af565b905087604084015273ffffffffffffffffffffffffffffffffffffffff8716606084015285608084015282810360a0840152610d1c81866108af565b905082810360c0840152610d3081856108af565b9a9950505050505050505050565b85815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260a060608201525f610d7860a08301856108af565b8281036080840152610d8a81856108af565b98975050505050505050565b5f82518060208501845e5f92019182525091905056fe60a060405234801561000f575f5ffd5b50604051611e89380380611e8983398101604081905261002e9161016f565b8686600261003c83826102d1565b50600361004982826102d1565b50505f8055503360805261005c856100a2565b600a80546001600160a01b0319166001600160a01b038616179055600b839055600c61008883826102d1565b50600d61009582826102d1565b505050505050505061038b565b80156100ae57806100b1565b5f195b60095550565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126100da575f5ffd5b81516001600160401b038111156100f3576100f36100b7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610121576101216100b7565b604052818152838201602001851015610138575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b038116811461016a575f5ffd5b919050565b5f5f5f5f5f5f5f60e0888a031215610185575f5ffd5b87516001600160401b0381111561019a575f5ffd5b6101a68a828b016100cb565b60208a015190985090506001600160401b038111156101c3575f5ffd5b6101cf8a828b016100cb565b60408a015190975095506101e7905060608901610154565b608089015160a08a015191955093506001600160401b03811115610209575f5ffd5b6102158a828b016100cb565b60c08a015190935090506001600160401b03811115610232575f5ffd5b61023e8a828b016100cb565b91505092959891949750929550565b600181811c9082168061026157607f821691505b60208210810361027f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102cc57805f5260205f20601f840160051c810160208510156102aa5750805b601f840160051c820191505b818110156102c9575f81556001016102b6565b50505b505050565b81516001600160401b038111156102ea576102ea6100b7565b6102fe816102f8845461024d565b84610285565b6020601f821160018114610330575f83156103195750848201515b5f19600385901b1c1916600184901b1784556102c9565b5f84815260208120601f198516915b8281101561035f578785015182556020948501946001909201910161033f565b508482101561037c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b608051611ad86103b15f395f8181610480015281816108ab01526109840152611ad85ff3fe608060405260043610610178575f3560e01c806370a08231116100d1578063d2401fa41161007c578063e985e9c511610057578063e985e9c514610407578063f259a29e1461045b578063fe6d81241461046f575f5ffd5b8063d2401fa4146103c9578063d5abeb01146103dd578063e7dee99f146103f2575f5ffd5b8063a22cb465116100ac578063a22cb46514610378578063b88d4fde14610397578063c87b56dd146103aa575f5ffd5b806370a082311461031957806395d89b41146103385780639fbc87131461034c575f5ffd5b806323b872dd1161013157806342842e0e1161010c57806342842e0e146102c85780634af35d9f146102db5780636352211e146102fa575f5ffd5b806323b872dd1461024b5780632a55205a1461025e57806340c10f19146102a9575f5ffd5b8063081812fc11610161578063081812fc146101d1578063095ea7b31461021557806318160ddd1461022a575f5ffd5b806301ffc9a71461017c57806306fdde03146101b0575b5f5ffd5b348015610187575f5ffd5b5061019b610196366004611442565b6104a2565b60405190151581526020015b60405180910390f35b3480156101bb575f5ffd5b506101c46104fe565b6040516101a791906114a9565b3480156101dc575f5ffd5b506101f06101eb3660046114bb565b61058e565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6102286102233660046114f5565b6105ed565b005b348015610235575f5ffd5b506001545f54035b6040519081526020016101a7565b61022861025936600461151d565b6105fd565b348015610269575f5ffd5b5061027d610278366004611557565b610851565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b3480156102b4575f5ffd5b506102286102c33660046114f5565b610893565b6102286102d636600461151d565b61094d565b3480156102e6575f5ffd5b506102286102f5366004611657565b61096c565b348015610305575f5ffd5b506101f06103143660046114bb565b610a4a565b348015610324575f5ffd5b5061023d6103333660046116de565b610a54565b348015610343575f5ffd5b506101c4610acb565b348015610357575f5ffd5b50600a546101f09073ffffffffffffffffffffffffffffffffffffffff1681565b348015610383575f5ffd5b506102286103923660046116f7565b610ada565b6102286103a5366004611730565b610b70565b3480156103b5575f5ffd5b506101c46103c43660046114bb565b610bd7565b3480156103d4575f5ffd5b506101c4610ceb565b3480156103e8575f5ffd5b5061023d60095481565b3480156103fd575f5ffd5b5061023d600b5481565b348015610412575f5ffd5b5061019b6104213660046117a7565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260076020908152604080832093909416825291909152205460ff1690565b348015610466575f5ffd5b506101c4610d77565b34801561047a575f5ffd5b506101f07f000000000000000000000000000000000000000000000000000000000000000081565b5f6104ac82610d84565b806104f857507fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000145b92915050565b60606002805461050d906117cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610539906117cf565b80156105845780601f1061055b57610100808354040283529160200191610584565b820191905f5260205f20905b81548152906001019060200180831161056757829003601f168201915b5050505050905090565b5f61059882610e64565b6105c5576105c57fcf4700e400000000000000000000000000000000000000000000000000000000610ebf565b505f9081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6105f982826001610ec7565b5050565b5f61060782610fdc565b73ffffffffffffffffffffffffffffffffffffffff9485169490915081168414610654576106547fa114810000000000000000000000000000000000000000000000000000000000610ebf565b5f82815260066020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff8816909114176106e65773ffffffffffffffffffffffffffffffffffffffff86165f90815260076020908152604080832033845290915290205460ff166106e6576106e67f59c896be00000000000000000000000000000000000000000000000000000000610ebf565b80156106f0575f82555b73ffffffffffffffffffffffffffffffffffffffff8681165f9081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000175f858152600460205260408120919091557c0200000000000000000000000000000000000000000000000000000000841690036107da57600184015f8181526004602052604081205490036107d8575f5481146107d8575f8181526004602052604090208490555b505b73ffffffffffffffffffffffffffffffffffffffff85168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4805f03610848576108487fea553b3400000000000000000000000000000000000000000000000000000000610ebf565b50505050505050565b600a54600b5473ffffffffffffffffffffffffffffffffffffffff909116905f9061271090610880908561184d565b61088a9190611864565b90509250929050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610902576040517ff8d2906c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61090c8282611107565b6009546001545f540311156105f9576040517f8a164f6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61096783838360405180602001604052805f815250610b70565b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146109db576040517ff8d2906c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616179055600b839055600c610a2c83826118e0565b50600d610a3982826118e0565b50610a4385611201565b5050505050565b5f6104f882610fdc565b5f73ffffffffffffffffffffffffffffffffffffffff8216610a9957610a997f8f4eb60400000000000000000000000000000000000000000000000000000000610ebf565b5073ffffffffffffffffffffffffffffffffffffffff165f9081526005602052604090205467ffffffffffffffff1690565b60606003805461050d906117cf565b335f81815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610b7b8484846105fd565b73ffffffffffffffffffffffffffffffffffffffff83163b15610bd157610ba484848484611235565b610bd157610bd17fd1a57ed600000000000000000000000000000000000000000000000000000000610ebf565b50505050565b6060610be282610e64565b610c18576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610c216113a2565b905080515f03610cb957600d8054610c38906117cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610c64906117cf565b8015610caf5780601f10610c8657610100808354040283529160200191610caf565b820191905f5260205f20905b815481529060010190602001808311610c9257829003601f168201915b5050505050610ce4565b80610cc3846113b1565b604051602001610cd4929190611a0e565b6040516020818303038152906040525b9392505050565b600d8054610cf8906117cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610d24906117cf565b8015610d6f5780601f10610d4657610100808354040283529160200191610d6f565b820191905f5260205f20905b815481529060010190602001808311610d5257829003601f168201915b505050505081565b600c8054610cf8906117cf565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161480610e1657507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806104f85750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b5f5f54821015610eba575f5b505f8281526004602052604081205490819003610e9757610e9083611a22565b9250610e70565b7c0100000000000000000000000000000000000000000000000000000000161590505b919050565b805f5260045ffd5b5f610ed183610a4a565b9050818015610ef657503373ffffffffffffffffffffffffffffffffffffffff821614155b15610f5b5773ffffffffffffffffffffffffffffffffffffffff81165f90815260076020908152604080832033845290915290205460ff16610f5b57610f5b7fcfb3b94200000000000000000000000000000000000000000000000000000000610ebf565b5f8381526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff88811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b5f81815260046020526040902054805f036110b3575f548210611022576110227fdf2d9b4200000000000000000000000000000000000000000000000000000000610ebf565b5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015f818152600460205260409020548015611023577c010000000000000000000000000000000000000000000000000000000081165f0361108557919050565b6110ae7fdf2d9b4200000000000000000000000000000000000000000000000000000000610ebf565b611023565b7c010000000000000000000000000000000000000000000000000000000081165f036110de57919050565b610eba7fdf2d9b4200000000000000000000000000000000000000000000000000000000610ebf565b5f80549082900361113b5761113b7fb562e8dd00000000000000000000000000000000000000000000000000000000610ebf565b5f81815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff87164260a01b6001881460e11b178117909155808452600590925282208054680100000000000000018602019055908190036111bf576111bf7f2e07630000000000000000000000000000000000000000000000000000000000610ebf565b818301825b80835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa48181600101915081036111c457505f5550505050565b801561120d578061122f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b60095550565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061128f903390899088908890600401611a56565b6020604051808303815f875af19250505080156112e7575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526112e491810190611ab0565b60015b611353573d808015611314576040519150601f19603f3d011682016040523d82523d5f602084013e611319565b606091505b5080515f0361134b5761134b7fd1a57ed600000000000000000000000000000000000000000000000000000000610ebf565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b6060600c805461050d906117cf565b606060a06040510180604052602081039150505f815280825b600183039250600a81066030018353600a9004806113ca57508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461143f575f5ffd5b50565b5f60208284031215611452575f5ffd5b8135610ce481611412565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610ce4602083018461145d565b5f602082840312156114cb575f5ffd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610eba575f5ffd5b5f5f60408385031215611506575f5ffd5b61150f836114d2565b946020939093013593505050565b5f5f5f6060848603121561152f575f5ffd5b611538846114d2565b9250611546602085016114d2565b929592945050506040919091013590565b5f5f60408385031215611568575f5ffd5b50508035926020909101359150565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f67ffffffffffffffff8411156115be576115be611577565b506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85018116603f0116810181811067ffffffffffffffff8211171561160b5761160b611577565b604052838152905080828401851015611622575f5ffd5b838360208301375f60208583010152509392505050565b5f82601f830112611648575f5ffd5b610ce4838335602085016115a4565b5f5f5f5f5f60a0868803121561166b575f5ffd5b8535945061167b602087016114d2565b935060408601359250606086013567ffffffffffffffff81111561169d575f5ffd5b6116a988828901611639565b925050608086013567ffffffffffffffff8111156116c5575f5ffd5b6116d188828901611639565b9150509295509295909350565b5f602082840312156116ee575f5ffd5b610ce4826114d2565b5f5f60408385031215611708575f5ffd5b611711836114d2565b915060208301358015158114611725575f5ffd5b809150509250929050565b5f5f5f5f60808587031215611743575f5ffd5b61174c856114d2565b935061175a602086016114d2565b925060408501359150606085013567ffffffffffffffff81111561177c575f5ffd5b8501601f8101871361178c575f5ffd5b61179b878235602084016115a4565b91505092959194509250565b5f5f604083850312156117b8575f5ffd5b6117c1836114d2565b915061088a602084016114d2565b600181811c908216806117e357607f821691505b60208210810361181a577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820281158282048414176104f8576104f8611820565b5f82611897577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b601f82111561096757805f5260205f20601f840160051c810160208510156118c15750805b601f840160051c820191505b81811015610a43575f81556001016118cd565b815167ffffffffffffffff8111156118fa576118fa611577565b61190e8161190884546117cf565b8461189c565b6020601f82116001811461195f575f83156119295750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455610a43565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156119ac578785015182556020948501946001909201910161198c565b50848210156119e857868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f81518060208401855e5f93019283525090919050565b5f61139a611a1c83866119f7565b846119f7565b5f81611a3057611a30611820565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f611aa6608083018461145d565b9695505050505050565b5f60208284031215611ac0575f5ffd5b8151610ce48161141256fea164736f6c634300081e000a737472696e67206e616d652c737472696e672073796d626f6c2c6164647265737320726f79616c747952656365697665722c75696e7432353620726f79616c74794672616374696f6e2c737472696e6720626173655552492c737472696e6720746f6b656e5552492c626f6f6c207265766572744f6e4d6178537570706c79526561636865642c75696e74323536206d6178537570706c79a164736f6c634300081e000a000000000000000000000000b9d5b99d5d0fa04dd7eb2b0cd7753317c2ea1a84