38 txs
49 calls
constructor
constructor(address _WETH)
functions
customFeeBP
viewfunction customFeeBP(address) view returns (uint8)
defaultFeeBP
viewfunction defaultFeeBP() view returns (uint8)
discountToken
viewfunction discountToken() view returns (address)
feeTiers
viewfunction feeTiers(uint256) view returns (uint256 amount, uint8 discount)
getActualSwapAmount
viewfunction getActualSwapAmount(address token, uint256 amount) view returns (uint256 actualSwapAmount, uint256 feeAmount)
getFeeLadder
viewfunction getFeeLadder() view returns (tuple[])
getFeeLadderDiscount
viewfunction getFeeLadderDiscount(address account) view returns (uint256)
getInviteesOf
viewfunction getInviteesOf(uint256 page, uint256 pageSize) view returns (address[] items, uint256 total)
getSwapFee
viewfunction getSwapFee(address account, address token) view returns (uint256 effectiveFeeBP, tuple[] ladder)
inviteesOf
viewfunction inviteesOf(address, uint256) view returns (address)
inviterOf
viewfunction inviterOf(address) view returns (address)
isFeeExemptToken
viewfunction isFeeExemptToken(address) view returns (bool)
owner
viewfunction owner() view returns (address)
swapAddress
viewfunction swapAddress() view returns (address)
walletAddress
viewfunction walletAddress() view returns (address)
WETH
viewfunction WETH() view returns (address)
inviterSwap
payablefunction inviterSwap(tuple desc, uint256 deadline, address inviter) payable returns (uint256 amountOut, uint256 gasUsed)
ownerWithdraw
nonpayablefunction ownerWithdraw(address token, uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setCustomFeeToken
nonpayablefunction setCustomFeeToken(address token, uint8 fee)
setDefaultSwapFee
nonpayablefunction setDefaultSwapFee(uint8 fee)
setFeeLadder
nonpayablefunction setFeeLadder(tuple[] fees)
setFreeSwapToken
nonpayablefunction setFreeSwapToken(address token, bool isFree)
setSwapAddress
nonpayablefunction setSwapAddress(address _address)
setSwaptorXToken
nonpayablefunction setSwaptorXToken(address token)
setWalletAddress
nonpayablefunction setWalletAddress(address _address)
swap
payablefunction swap(tuple desc, uint256 deadline) payable returns (uint256 amountOut, uint256 gasUsed)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
DefaultFeeChanged
event DefaultFeeChanged(address indexed owner, uint8 fee)
FeeTokenChanged
event FeeTokenChanged(address indexed owner, address indexed token, uint8 fee)
FreeTokenChanged
event FreeTokenChanged(address indexed owner, address indexed token, bool free)
InviterBound
event InviterBound(address indexed user, address indexed inviter)
InviterFeeFailed
event InviterFeeFailed(address indexed user, address indexed inviter, address indexed token, uint256 amount)
InviterFeePaid
event InviterFeePaid(address indexed user, address indexed inviter, address indexed token, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SwapAddressSet
event SwapAddressSet(address indexed owner, address indexed previousAddress, address indexed newAddress)
Swapped
event Swapped(address indexed sender, address tokenIn, address tokenOut, uint256 amountIn, uint256 amountOut, address indexed recipient)
WalletAddressSet
event WalletAddressSet(address indexed owner, address indexed previousWallet, address indexed newWallet)
Withdraw
event Withdraw(address indexed sender, address indexed token, address indexed to, uint256 amount)
errors
No errors.
creation bytecode
0x60c06040525f60055f6101000a81548160ff021916908360ff1602179055506e22d473030f116ddee9f6b43ac78ba373ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525034801561006b575f80fd5b50604051615483380380615483833981810160405281019061008d91906101d2565b335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361013a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013190610257565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050610275565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a182610178565b9050919050565b6101b181610197565b81146101bb575f80fd5b50565b5f815190506101cc816101a8565b92915050565b5f602082840312156101e7576101e6610174565b5b5f6101f4848285016101be565b91505092915050565b5f82825260208201905092915050565b7f53776170746f72583a20574554482063616e6e6f74206265207a65726f0000005f82015250565b5f610241601d836101fd565b915061024c8261020d565b602082019050919050565b5f6020820190508181035f83015261026e81610235565b9050919050565b60805160a0516151d16102b25f395f612ba401525f818161178b015281816128fd0152818161297d01528181612dad0152612dec01526151d15ff3fe6080604052600436106101ba575f3560e01c80639b9c592f116100eb578063b7a8554511610089578063dce9d9a311610063578063dce9d9a314610649578063df73245a14610671578063ea61226c14610699578063f2fde38b146106c3576101c1565b8063b7a85545146105a9578063c8ced355146105e5578063d9c88e1414610621576101c1565b8063aaca6ac4116100c5578063aaca6ac4146104ea578063aad355ec1461051b578063ac1a386a14610557578063ad5c46481461057f576101c1565b80639b9c592f146104555780639cd7b149146104915780639f73a360146104b9576101c1565b80636ad5b3ea1161015857806380f6d7821161013257806380f6d7821461038857806381df36d4146103b25780638b2f6c18146103ee5780638da5cb5b1461042b576101c1565b80636ad5b3ea14610320578063715018a61461034a5780637dc4b9cc14610360576101c1565b80632de192dc116101945780632de192dc146102675780634413229f146102a457806354a43209146102ce57806364487525146102f8576101c1565b8063040f6a28146101c557806316ce96fc146101ed578063230ed44a1461022a576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101eb60048036038101906101e69190613617565b6106eb565b005b3480156101f8575f80fd5b50610213600480360381019061020e91906136cf565b61082a565b60405161022192919061371c565b60405180910390f35b348015610235575f80fd5b50610250600480360381019061024b9190613743565b61086b565b60405161025e92919061377d565b60405180910390f35b348015610272575f80fd5b5061028d600480360381019061028891906137a4565b6108a6565b60405161029b9291906138d5565b60405180910390f35b3480156102af575f80fd5b506102b8610b15565b6040516102c59190613903565b60405180910390f35b3480156102d9575f80fd5b506102e2610b27565b6040516102ef919061391c565b60405180910390f35b348015610303575f80fd5b5061031e6004803603810190610319919061399d565b610ba8565b005b34801561032b575f80fd5b50610334610cae565b60405161034191906139f7565b60405180910390f35b348015610355575f80fd5b5061035e610cd4565b005b34801561036b575f80fd5b5061038660048036038101906103819190613a10565b610d6c565b005b348015610393575f80fd5b5061039c610f41565b6040516103a991906139f7565b60405180910390f35b3480156103bd575f80fd5b506103d860048036038101906103d39190613a10565b610f66565b6040516103e59190613a55565b60405180910390f35b3480156103f9575f80fd5b50610414600480360381019061040f9190613a6e565b610f83565b604051610422929190613b63565b60405180910390f35b348015610436575f80fd5b5061043f6111c1565b60405161044c91906139f7565b60405180910390f35b348015610460575f80fd5b5061047b600480360381019061047691906136cf565b6111e4565b60405161048891906139f7565b60405180910390f35b34801561049c575f80fd5b506104b760048036038101906104b29190613bbb565b61122c565b005b6104d360048036038101906104ce9190613c1b565b611376565b6040516104e192919061371c565b60405180910390f35b61050460048036038101906104ff9190613c75565b6113d9565b60405161051292919061371c565b60405180910390f35b348015610526575f80fd5b50610541600480360381019061053c9190613a10565b611446565b60405161054e9190613ce1565b60405180910390f35b348015610562575f80fd5b5061057d60048036038101906105789190613a10565b6115b2565b005b34801561058a575f80fd5b50610593611789565b6040516105a091906139f7565b60405180910390f35b3480156105b4575f80fd5b506105cf60048036038101906105ca9190613a10565b6117ad565b6040516105dc9190613903565b60405180910390f35b3480156105f0575f80fd5b5061060b60048036038101906106069190613a10565b6117ca565b60405161061891906139f7565b60405180910390f35b34801561062c575f80fd5b50610647600480360381019061064291906136cf565b6117fa565b005b348015610654575f80fd5b5061066f600480360381019061066a9190613cfa565b611a1b565b005b34801561067c575f80fd5b5061069760048036038101906106929190613a10565b611bad565b005b3480156106a4575f80fd5b506106ad611c7d565b6040516106ba91906139f7565b60405180910390f35b3480156106ce575f80fd5b506106e960048036038101906106e49190613a10565b611ca2565b005b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076f90613d92565b60405180910390fd5b8060ff16606410156107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690613dfa565b60405180910390fd5b8060055f6101000a81548160ff021916908360ff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f0392bea7ef37e4d641c8494ac5df247e23621bf044dfaf806939681ba4d6716b8260405161081f9190613903565b60405180910390a250565b5f805f61083733866108a6565b50905061271081856108499190613e45565b6108539190613eb3565b915081846108619190613ee3565b9250509250929050565b6002818154811061087a575f80fd5b905f5260205f2090600202015f91509050805f015490806001015f9054906101000a900460ff16905082565b5f60605f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610901575f90506109bf565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1611156109a95760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1690506109be565b60055f9054906101000a900460ff1660ff1690505b5b5f8103610a4e575f600280805480602002602001604051908101604052809291908181526020015f905b82821015610a3e578382905f5260205f2090600202016040518060400160405290815f8201548152602001600182015f9054906101000a900460ff1660ff1660ff1681525050815260200190600101906109e9565b5050505090509250925050610b0e565b5f610a5886611446565b90505f811115610a89576064816064610a719190613ee3565b83610a7c9190613e45565b610a869190613eb3565b91505b81600280805480602002602001604051908101604052809291908181526020015f905b82821015610b01578382905f5260205f2090600202016040518060400160405290815f8201548152602001600182015f9054906101000a900460ff1660ff1660ff168152505081526020019060010190610aac565b5050505090509350935050505b9250929050565b60055f9054906101000a900460ff1681565b60606002805480602002602001604051908101604052809291908181526020015f905b82821015610b9f578382905f5260205f2090600202016040518060400160405290815f8201548152602001600182015f9054906101000a900460ff1660ff1660ff168152505081526020019060010190610b4a565b50505050905090565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c90613d92565b60405180910390fd5b60025f610c42919061357f565b5f5b82829050811015610ca9576002838383818110610c6457610c63613f16565b5b905060400201908060018154018082558091505060019003905f5260205f2090600202015f909190919091508181610c9c91906140c2565b5050806001019050610c44565b505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890613d92565b60405180910390fd5b610d6a5f611da9565b565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090613d92565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e90614140565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe56ffd1dcc40a4c88a9b03492a3d6f93418f6416851ca05115822708049359ea60405160405180910390a45050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052805f5260405f205f915054906101000a900460ff1681565b60605f808385610f939190613e45565b90505f60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561105057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611007575b5050505050905080519250805182106110b5575f67ffffffffffffffff81111561107d5761107c61415e565b5b6040519080825280602002602001820160405280156110ab5781602001602082028036833780820191505090505b50935050506111ba565b5f85836110c2919061418b565b905081518111156110d257815190505b5f83826110df9190613ee3565b90508067ffffffffffffffff8111156110fb576110fa61415e565b5b6040519080825280602002602001820160405280156111295781602001602082028036833780820191505090505b5095505f5b818110156111b457838186611143919061418b565b8151811061115457611153613f16565b5b602002602001015187828151811061116f5761116e613f16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080600101905061112e565b50505050505b9250929050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008602052815f5260405f2081815481106111fd575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b090613d92565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f5aa4741595783fbabd32f180df08362734a0830e60dafbd28d3446a31203dfd28360405161136a9190613a55565b60405180910390a35050565b5f8082428110156113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390614208565b60405180910390fd5b5f5a90506113c986611e6a565b93505a8103925050509250929050565b5f80834281101561141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690614208565b60405180910390fd5b5f5a905061142c85612316565b61143587611e6a565b93505a810392505050935093915050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806114a657505f600280549050145b156114b3575f90506115ad565b5f6114df60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125b5565b90505f81036114f1575f9150506115ad565b5f805b6002805490508110156115a6576002818154811061151557611514613f16565b5b905f5260205f2090600202015f0154831061159b57816002828154811061153f5761153e613f16565b5b905f5260205f2090600202016001015f9054906101000a900460ff1660ff16111561159a576002818154811061157857611577613f16565b5b905f5260205f2090600202016001015f9054906101000a900460ff1660ff1691505b5b8060010190506114f4565b5080925050505b919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163690613d92565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490614296565b60405180910390fd5b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6972f6774c8c58489b0d6ddf22bb06502764dce4feb3d825b3bc78771b3aba3b60405160405180910390a45050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6004602052805f5260405f205f915054906101000a900460ff1681565b6007602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900460ff1615611849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611840906142fe565b60405180910390fd5b600160095f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea90614366565b60405180910390fd5b6118fc826126b1565b156119325761192d600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826126fc565b611960565b61195f82600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836127a9565b5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f7846040516119f69190613ce1565b60405180910390a45f60095f6101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f90613d92565b60405180910390fd5b8060ff1660641015611aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae6906143ce565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908360ff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f180bb0038fa9138b235773bd62aee0a35fcfcb252dadf015cccdf70192a63f9083604051611ba19190613903565b60405180910390a35050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3190613d92565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2690613d92565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d949061445c565b60405180910390fd5b611da681611da9565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60095f9054906101000a900460ff1615611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb1906142fe565b60405180910390fd5b600160095f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16825f016020810190611efd9190613a10565b73ffffffffffffffffffffffffffffffffffffffff1603611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a906144c4565b60405180910390fd5b816020016020810190611f669190613a10565b73ffffffffffffffffffffffffffffffffffffffff16825f016020810190611f8e9190613a10565b73ffffffffffffffffffffffffffffffffffffffff1603611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb90614552565b60405180910390fd5b5f82606001351161202a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612021906145e0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168260a00160208101906120549190613a10565b73ffffffffffffffffffffffffffffffffffffffff16036120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a19061466e565b60405180910390fd5b5f6120c5835f0160208101906120c09190613a10565b6126b1565b15612166575f341161210c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612103906146fc565b60405180910390fd5b82604001353414612152576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121499061478a565b60405180910390fd5b34905061215f83826128d9565b9150612257565b5f34146121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f90614818565b60405180910390fd5b5f838060c001906121b99190614842565b9050036121e6576121df835f0160208101906121d59190613a10565b8460400135612a02565b9050612218565b612215835f0160208101906121fb9190613a10565b8460400135858060c001906122109190614842565b612a8c565b90505b61223383602001602081019061222e9190613a10565b6126b1565b15612249576122428382612d47565b9150612256565b6122538382612f30565b91505b5b8260a001602081019061226a9190613a10565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f1eeaa4acf3c225a4033105c2647625dbb298dec93b14e16253c4231e26c02b1d855f0160208101906122ca9190613a10565b8660200160208101906122dd9190613a10565b85876040516122ef94939291906148a4565b60405180910390a3505f60095f6101000a81548160ff021916908315150217905550919050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603156125b2573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603156125b2573073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603156125b2575f73ffffffffffffffffffffffffffffffffffffffff1660075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036125b2578060075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2033908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fad19acbfe329ed02112851f095801de1e5474be0e6fcb5810aaf795fb120249f60405160405180910390a35b50565b5f805f8473ffffffffffffffffffffffffffffffffffffffff166370a08231856040516024016125e591906139f7565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126339190614939565b5f60405180830381855afa9150503d805f811461266b576040519150601f19603f3d011682016040523d82523d5f602084013e612670565b606091505b5091509150811580612683575060208151105b15612692575f925050506126ab565b808060200190518101906126a69190614963565b925050505b92915050565b5f73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051612721906149b1565b5f6040518083038185875af1925050503d805f811461275b576040519150601f19603f3d011682016040523d82523d5f602084013e612760565b606091505b50509050806127a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279b90614a0f565b60405180910390fd5b505050565b5f808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040516024016127da929190614a2d565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128289190614939565b5f604051808303815f865af19150503d805f8114612861576040519150601f19603f3d011682016040523d82523d5f602084013e612866565b606091505b509150915081801561289357505f815114806128925750808060200190518101906128919190614a68565b5b5b6128d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c990614add565b60405180910390fd5b5050505050565b5f805f6128f7855f0160208101906128f19190613a10565b8561082a565b915091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004015f604051808303818588803b158015612961575f80fd5b505af1158015612973573d5f803e3d5ffd5b50505050506129dd7f00000000000000000000000000000000000000000000000000000000000000008660200160208101906129af9190613a10565b8488606001358980608001906129c59190614842565b8b60a00160208101906129d89190613a10565b612fcd565b92506129fa855f0160208101906129f49190613a10565b8261310e565b505092915050565b5f80612a0e84306125b5565b9050612a1c8433308661344c565b5f612a2785306125b5565b90505f8282612a369190613ee3565b11612a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6d90614b6b565b60405180910390fd5b8181612a829190613ee3565b9250505092915050565b5f805f8484810190612a9e9190614c94565b9150915060018103612b8c575f8773ffffffffffffffffffffffffffffffffffffffff1663d505accf60e01b84604051602001612adc929190614d39565b604051602081830303815290604052604051612af89190614939565b5f604051808303815f865af19150503d805f8114612b31576040519150601f19603f3d011682016040523d82523d5f602084013e612b36565b606091505b5050905080612b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7190614daa565b60405180910390fd5b612b848888612a02565b935050612d3d565b60028103612d01575f612b9f88306125b5565b90505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166330f28b7a60e01b85604051602001612bf3929190614d39565b604051602081830303815290604052604051612c0f9190614939565b5f604051808303815f865af19150503d805f8114612c48576040519150601f19603f3d011682016040523d82523d5f602084013e612c4d565b606091505b5050905080612c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8890614e12565b60405180910390fd5b5f612c9c8a306125b5565b90505f8382612cab9190613ee3565b11612ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce290614ea0565b60405180910390fd5b8281612cf79190613ee3565b9550505050612d3c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3390614f2e565b60405180910390fd5b5b5050949350505050565b5f805f612d65855f016020810190612d5f9190613a10565b8561082a565b915091505f8560a0016020810190612d7d9190613a10565b73ffffffffffffffffffffffffffffffffffffffff16319050612de8865f016020810190612dab9190613a10565b7f00000000000000000000000000000000000000000000000000000000000000008589606001358a8060800190612de29190614842565b30612fcd565b93507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d856040518263ffffffff1660e01b8152600401612e439190613ce1565b5f604051808303815f87803b158015612e5a575f80fd5b505af1158015612e6c573d5f803e3d5ffd5b50505050612e8c8660a0016020810190612e869190613a10565b856126fc565b5f8660a0016020810190612ea09190613a10565b73ffffffffffffffffffffffffffffffffffffffff16319050866060013582612ec9919061418b565b811015612f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0290614fbc565b60405180910390fd5b612f26875f016020810190612f209190613a10565b8461310e565b5050505092915050565b5f805f612f4e855f016020810190612f489190613a10565b8561082a565b91509150612fa8855f016020810190612f679190613a10565b866020016020810190612f7a9190613a10565b848860600135898060800190612f909190614842565b8b60a0016020810190612fa39190613a10565b612fcd565b9250612fc5855f016020810190612fbf9190613a10565b8261310e565b505092915050565b5f612ffa8860065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886127a9565b5f61300588846125b5565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636d8d339e8a88888888336040518763ffffffff1660e01b815260040161306b96959493929190615016565b5f604051808303815f87803b158015613082575f80fd5b505af1158015613094573d5f803e3d5ffd5b505050505f6130a389856125b5565b905086826130b1919061418b565b8110156130f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ea906150e0565b60405180910390fd5b81816130ff9190613ee3565b92505050979650505050505050565b6003811115613448575f60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613446575f6064601e846131ba9190613e45565b6131c49190613eb3565b90505f6131d0856126b1565b15613248578273ffffffffffffffffffffffffffffffffffffffff1682617530906040516131fd906149b1565b5f60405180830381858888f193505050503d805f8114613238576040519150601f19603f3d011682016040523d82523d5f602084013e61323d565b606091505b50508091505061333f565b5f808673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8686604051602401613279929190614a2d565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516132c79190614939565b5f604051808303815f865af19150503d805f8114613300576040519150601f19603f3d011682016040523d82523d5f602084013e613305565b606091505b509150915081801561333257505f815114806133315750808060200190518101906133309190614a68565b5b5b1561333c57600192505b50505b80156133c6578473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2f53f4bc51eacf2a763977cdcd71796df85a447da196668cb3b2d34dbe1090f1856040516133b99190613ce1565b60405180910390a4613443565b8473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb9c939330099311c6ddc823739cb6c67865d871f77ebba134c841e39c7dce72a8560405161343a9190613ce1565b60405180910390a45b50505b505b5050565b5f808573ffffffffffffffffffffffffffffffffffffffff166323b872dd86868660405160240161347f939291906150fe565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516134cd9190614939565b5f604051808303815f865af19150503d805f8114613506576040519150601f19603f3d011682016040523d82523d5f602084013e61350b565b606091505b509150915081801561353857505f815114806135375750808060200190518101906135369190614a68565b5b5b613577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356e9061517d565b60405180910390fd5b505050505050565b5080545f8255600202905f5260205f209081019061359d91906135a0565b50565b5b808211156135cc575f8082015f9055600182015f6101000a81549060ff0219169055506002016135a1565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f60ff82169050919050565b6135f6816135e1565b8114613600575f80fd5b50565b5f81359050613611816135ed565b92915050565b5f6020828403121561362c5761362b6135d9565b5b5f61363984828501613603565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61366b82613642565b9050919050565b61367b81613661565b8114613685575f80fd5b50565b5f8135905061369681613672565b92915050565b5f819050919050565b6136ae8161369c565b81146136b8575f80fd5b50565b5f813590506136c9816136a5565b92915050565b5f80604083850312156136e5576136e46135d9565b5b5f6136f285828601613688565b9250506020613703858286016136bb565b9150509250929050565b6137168161369c565b82525050565b5f60408201905061372f5f83018561370d565b61373c602083018461370d565b9392505050565b5f60208284031215613758576137576135d9565b5b5f613765848285016136bb565b91505092915050565b613777816135e1565b82525050565b5f6040820190506137905f83018561370d565b61379d602083018461376e565b9392505050565b5f80604083850312156137ba576137b96135d9565b5b5f6137c785828601613688565b92505060206137d885828601613688565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6138148161369c565b82525050565b613823816135e1565b82525050565b604082015f82015161383d5f85018261380b565b506020820151613850602085018261381a565b50505050565b5f6138618383613829565b60408301905092915050565b5f602082019050919050565b5f613883826137e2565b61388d81856137ec565b9350613898836137fc565b805f5b838110156138c85781516138af8882613856565b97506138ba8361386d565b92505060018101905061389b565b5085935050505092915050565b5f6040820190506138e85f83018561370d565b81810360208301526138fa8184613879565b90509392505050565b5f6020820190506139165f83018461376e565b92915050565b5f6020820190508181035f8301526139348184613879565b905092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261395d5761395c61393c565b5b8235905067ffffffffffffffff81111561397a57613979613940565b5b60208301915083604082028301111561399657613995613944565b5b9250929050565b5f80602083850312156139b3576139b26135d9565b5b5f83013567ffffffffffffffff8111156139d0576139cf6135dd565b5b6139dc85828601613948565b92509250509250929050565b6139f181613661565b82525050565b5f602082019050613a0a5f8301846139e8565b92915050565b5f60208284031215613a2557613a246135d9565b5b5f613a3284828501613688565b91505092915050565b5f8115159050919050565b613a4f81613a3b565b82525050565b5f602082019050613a685f830184613a46565b92915050565b5f8060408385031215613a8457613a836135d9565b5b5f613a91858286016136bb565b9250506020613aa2858286016136bb565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ade81613661565b82525050565b5f613aef8383613ad5565b60208301905092915050565b5f602082019050919050565b5f613b1182613aac565b613b1b8185613ab6565b9350613b2683613ac6565b805f5b83811015613b56578151613b3d8882613ae4565b9750613b4883613afb565b925050600181019050613b29565b5085935050505092915050565b5f6040820190508181035f830152613b7b8185613b07565b9050613b8a602083018461370d565b9392505050565b613b9a81613a3b565b8114613ba4575f80fd5b50565b5f81359050613bb581613b91565b92915050565b5f8060408385031215613bd157613bd06135d9565b5b5f613bde85828601613688565b9250506020613bef85828601613ba7565b9150509250929050565b5f80fd5b5f60e08284031215613c1257613c11613bf9565b5b81905092915050565b5f8060408385031215613c3157613c306135d9565b5b5f83013567ffffffffffffffff811115613c4e57613c4d6135dd565b5b613c5a85828601613bfd565b9250506020613c6b858286016136bb565b9150509250929050565b5f805f60608486031215613c8c57613c8b6135d9565b5b5f84013567ffffffffffffffff811115613ca957613ca86135dd565b5b613cb586828701613bfd565b9350506020613cc6868287016136bb565b9250506040613cd786828701613688565b9150509250925092565b5f602082019050613cf45f83018461370d565b92915050565b5f8060408385031215613d1057613d0f6135d9565b5b5f613d1d85828601613688565b9250506020613d2e85828601613603565b9150509250929050565b5f82825260208201905092915050565b7f53776170746f72583a2063616c6c6572206973206e6f74206f776e65720000005f82015250565b5f613d7c601d83613d38565b9150613d8782613d48565b602082019050919050565b5f6020820190508181035f830152613da981613d70565b9050919050565b7f53776170746f72583a20696e76616c69642064656661756c74206665650000005f82015250565b5f613de4601d83613d38565b9150613def82613db0565b602082019050919050565b5f6020820190508181035f830152613e1181613dd8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613e4f8261369c565b9150613e5a8361369c565b9250828202613e688161369c565b91508282048414831517613e7f57613e7e613e18565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ebd8261369c565b9150613ec88361369c565b925082613ed857613ed7613e86565b5b828204905092915050565b5f613eed8261369c565b9150613ef88361369c565b9250828203905081811115613f1057613f0f613e18565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8135613f4f816136a5565b80915050919050565b5f815f1b9050919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613f8e84613f58565b9350801983169250808416831791505092915050565b5f819050919050565b5f613fc7613fc2613fbd8461369c565b613fa4565b61369c565b9050919050565b5f819050919050565b613fe082613fad565b613ff3613fec82613fce565b8354613f63565b8255505050565b5f8135614006816135ed565b80915050919050565b5f60ff61401b84613f58565b9350801983169250808416831791505092915050565b5f61404b614046614041846135e1565b613fa4565b6135e1565b9050919050565b5f819050919050565b61406482614031565b61407761407082614052565b835461400f565b8255505050565b5f81015f83018061408e81613f43565b905061409a8184613fd7565b5050506001810160208301806140af81613ffa565b90506140bb818461405b565b5050505050565b6140cc828261407e565b5050565b7f53776170746f72583a207377617020616464726573732063616e6e6f742062655f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61412a602583613d38565b9150614135826140d0565b604082019050919050565b5f6020820190508181035f8301526141578161411e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6141958261369c565b91506141a08361369c565b92508282019050808211156141b8576141b7613e18565b5b92915050565b7f53776170746f72583a20646561646c696e6520657870697265640000000000005f82015250565b5f6141f2601a83613d38565b91506141fd826141be565b602082019050919050565b5f6020820190508181035f83015261421f816141e6565b9050919050565b7f53776170746f72583a2077616c6c657420616464726573732063616e6e6f74205f8201527f6265207a65726f00000000000000000000000000000000000000000000000000602082015250565b5f614280602783613d38565b915061428b82614226565b604082019050919050565b5f6020820190508181035f8301526142ad81614274565b9050919050565b7f53776170746f72583a207265656e7472616e63790000000000000000000000005f82015250565b5f6142e8601483613d38565b91506142f3826142b4565b602082019050919050565b5f6020820190508181035f830152614315816142dc565b9050919050565b7f53776170746f72583a2077616c6c6574206e6f7420636f6e66696775726564005f82015250565b5f614350601f83613d38565b915061435b8261431c565b602082019050919050565b5f6020820190508181035f83015261437d81614344565b9050919050565b7f53776170746f72583a20696e76616c6964206665652076616c756500000000005f82015250565b5f6143b8601b83613d38565b91506143c382614384565b602082019050919050565b5f6020820190508181035f8301526143e5816143ac565b9050919050565b7f53776170746f72583a206e6577206f776e65722063616e6e6f74206265207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f614446602283613d38565b9150614451826143ec565b604082019050919050565b5f6020820190508181035f8301526144738161443a565b9050919050565b7f53776170746f72583a20696e76616c696420746f6b656e496e000000000000005f82015250565b5f6144ae601983613d38565b91506144b98261447a565b602082019050919050565b5f6020820190508181035f8301526144db816144a2565b9050919050565b7f53776170746f72583a20746f6b656e496e20657175616c7320746f6b656e4f755f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f61453c602183613d38565b9150614547826144e2565b604082019050919050565b5f6020820190508181035f83015261456981614530565b9050919050565b7f53776170746f72583a20616d6f756e744d696e4f7574206d757374206265203e5f8201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b5f6145ca602283613d38565b91506145d582614570565b604082019050919050565b5f6020820190508181035f8301526145f7816145be565b9050919050565b7f53776170746f72583a20726563697069656e742063616e6e6f74206265207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f614658602283613d38565b9150614663826145fe565b604082019050919050565b5f6020820190508181035f8301526146858161464c565b9050919050565b7f53776170746f72583a206d73672e76616c7565206d757374206265203e2030205f8201527f666f722045544820696e70757400000000000000000000000000000000000000602082015250565b5f6146e6602d83613d38565b91506146f18261468c565b604082019050919050565b5f6020820190508181035f830152614713816146da565b9050919050565b7f53776170746f72583a206d73672e76616c7565206d69736d61746368207769745f8201527f6820616d6f756e74496e00000000000000000000000000000000000000000000602082015250565b5f614774602a83613d38565b915061477f8261471a565b604082019050919050565b5f6020820190508181035f8301526147a181614768565b9050919050565b7f53776170746f72583a206e6f2045544820616c6c6f77656420666f72204552435f8201527f323020696e707574000000000000000000000000000000000000000000000000602082015250565b5f614802602883613d38565b915061480d826147a8565b604082019050919050565b5f6020820190508181035f83015261482f816147f6565b9050919050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261485e5761485d614836565b5b80840192508235915067ffffffffffffffff8211156148805761487f61483a565b5b60208301925060018202360383131561489c5761489b61483e565b5b509250929050565b5f6080820190506148b75f8301876139e8565b6148c460208301866139e8565b6148d1604083018561370d565b6148de606083018461370d565b95945050505050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f614913826148e7565b61491d81856148f1565b935061492d8185602086016148fb565b80840191505092915050565b5f6149448284614909565b915081905092915050565b5f8151905061495d816136a5565b92915050565b5f60208284031215614978576149776135d9565b5b5f6149858482850161494f565b91505092915050565b50565b5f61499c5f836148f1565b91506149a78261498e565b5f82019050919050565b5f6149bb82614991565b9150819050919050565b7f53776170746f72583a20455448207472616e73666572206661696c65640000005f82015250565b5f6149f9601d83613d38565b9150614a04826149c5565b602082019050919050565b5f6020820190508181035f830152614a26816149ed565b9050919050565b5f604082019050614a405f8301856139e8565b614a4d602083018461370d565b9392505050565b5f81519050614a6281613b91565b92915050565b5f60208284031215614a7d57614a7c6135d9565b5b5f614a8a84828501614a54565b91505092915050565b7f53776170746f72583a53540000000000000000000000000000000000000000005f82015250565b5f614ac7600b83613d38565b9150614ad282614a93565b602082019050919050565b5f6020820190508181035f830152614af481614abb565b9050919050565b7f53776170746f72583a20696e76616c6964207472616e7366657220616d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f614b55602183613d38565b9150614b6082614afb565b604082019050919050565b5f6020820190508181035f830152614b8281614b49565b9050919050565b5f80fd5b5f601f19601f8301169050919050565b614ba682614b8d565b810181811067ffffffffffffffff82111715614bc557614bc461415e565b5b80604052505050565b5f614bd76135d0565b9050614be38282614b9d565b919050565b5f67ffffffffffffffff821115614c0257614c0161415e565b5b614c0b82614b8d565b9050602081019050919050565b828183375f83830152505050565b5f614c38614c3384614be8565b614bce565b905082815260208101848484011115614c5457614c53614b89565b5b614c5f848285614c18565b509392505050565b5f82601f830112614c7b57614c7a61393c565b5b8135614c8b848260208601614c26565b91505092915050565b5f8060408385031215614caa57614ca96135d9565b5b5f83013567ffffffffffffffff811115614cc757614cc66135dd565b5b614cd385828601614c67565b9250506020614ce4858286016136bb565b9150509250929050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b614d33614d2e82614cee565b614d19565b82525050565b5f614d448285614d22565b600482019150614d548284614909565b91508190509392505050565b7f53776170746f72583a207065726d6974206661696c65640000000000000000005f82015250565b5f614d94601783613d38565b9150614d9f82614d60565b602082019050919050565b5f6020820190508181035f830152614dc181614d88565b9050919050565b7f53776170746f72583a207065726d6974322063616c6c206661696c65640000005f82015250565b5f614dfc601d83613d38565b9150614e0782614dc8565b602082019050919050565b5f6020820190508181035f830152614e2981614df0565b9050919050565b7f53776170746f72583a207065726d69743220646964206e6f7420696e637265615f8201527f73652062616c616e636500000000000000000000000000000000000000000000602082015250565b5f614e8a602a83613d38565b9150614e9582614e30565b604082019050919050565b5f6020820190508181035f830152614eb781614e7e565b9050919050565b7f53776170746f72583a20756e737570706f72746564207065726d6974207665725f8201527f73696f6e00000000000000000000000000000000000000000000000000000000602082015250565b5f614f18602483613d38565b9150614f2382614ebe565b604082019050919050565b5f6020820190508181035f830152614f4581614f0c565b9050919050565b7f53776170746f72583a20696e73756666696369656e7420455448206f757470755f8201527f7420726563656976656400000000000000000000000000000000000000000000602082015250565b5f614fa6602a83613d38565b9150614fb182614f4c565b604082019050919050565b5f6020820190508181035f830152614fd381614f9a565b9050919050565b5f82825260208201905092915050565b5f614ff58385614fda565b9350615002838584614c18565b61500b83614b8d565b840190509392505050565b5f60a0820190506150295f8301896139e8565b615036602083018861370d565b8181036040830152615049818688614fea565b905061505860608301856139e8565b61506560808301846139e8565b979650505050505050565b7f53776170746f72583a20696e73756666696369656e74206f75747075742072655f8201527f6365697665640000000000000000000000000000000000000000000000000000602082015250565b5f6150ca602683613d38565b91506150d582615070565b604082019050919050565b5f6020820190508181035f8301526150f7816150be565b9050919050565b5f6060820190506151115f8301866139e8565b61511e60208301856139e8565b61512b604083018461370d565b949350505050565b7f53776170746f72583a53544600000000000000000000000000000000000000005f82015250565b5f615167600c83613d38565b915061517282615133565b602082019050919050565b5f6020820190508181035f8301526151948161515b565b905091905056fea2646970667358221220081b72895f93231e0d283959da366ba34da2ff954e5c098cc6aa9e3189d9d89964736f6c634300081a00330000000000000000000000004200000000000000000000000000000000000006