60e0604052602b6006557f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6600755348015610038575f80fd5b506040516138f63803806138f68339810160408190526100579161034b565b80516001600160a01b0390811660a0908152602083015190911660c0908152604083015160015560608301516080908152830151600280549385015192850151600480546001600160801b039283166001600160801b03199182161790915560e08701516101008801516001600160401b039081166801000000000000000002968416600160801b0290921690821617949094176003556101208601519093166501000000000002600160281b600160681b0319939092166d01000000000000000000000000000292909216600160281b600160e81b03199093169290921791909117905561014081015160059061014f90826104d9565b5061015a5f3361016f565b50600754610168903361016f565b5050610598565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1661020f575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556101c73390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610212565b505f5b92915050565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b038111828210171561024f5761024f610218565b60405290565b604051601f8201601f191681016001600160401b038111828210171561027d5761027d610218565b604052919050565b80516001600160a01b038116811461029b575f80fd5b919050565b80516001600160801b038116811461029b575f80fd5b80516001600160401b038116811461029b575f80fd5b5f82601f8301126102db575f80fd5b81516001600160401b038111156102f4576102f4610218565b6020610308601f8301601f19168201610255565b828152858284870101111561031b575f80fd5b5f5b8381101561033857858101830151828201840152820161031d565b505f928101909101919091529392505050565b5f6020828403121561035b575f80fd5b81516001600160401b0380821115610371575f80fd5b908301906101608286031215610385575f80fd5b61038d61022c565b61039683610285565b81526103a460208401610285565b602082015260408301516040820152606083015160608201526103c9608084016102a0565b60808201526103da60a084016102a0565b60a08201526103eb60c084016102a0565b60c08201526103fc60e084016102b6565b60e082015261010061040f8185016102b6565b908201526101206104218482016102b6565b908201526101408381015183811115610438575f80fd5b610444888287016102cc565b918301919091525095945050505050565b600181811c9082168061046957607f821691505b60208210810361048757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104d457805f5260205f20601f840160051c810160208510156104b25750805b601f840160051c820191505b818110156104d1575f81556001016104be565b50505b505050565b81516001600160401b038111156104f2576104f2610218565b610506816105008454610455565b8461048d565b602080601f831160018114610539575f84156105225750858301515b5f19600386901b1c1916600185901b178555610590565b5f85815260208120601f198616915b8281101561056757888601518255948401946001909101908401610548565b508582101561058457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a05160c0516133266105d05f395f8181610cb5015261272201525f6126af01525f818161044b01526125ef01526133265ff3fe6080604052600436106102ed575f3560e01c80639a0a508311610186578063ceca52be116100dc578063e985e9c511610087578063f8e6f95e11610062578063f8e6f95e14610984578063fc1a1c36146109a3578063ffc9896b146109df575f80fd5b8063e985e9c51461091d578063ec0d755714610951578063f5aa406d14610965575f80fd5b8063e1c29fb5116100b7578063e1c29fb5146108cc578063e2f46ff3146108df578063e58306f9146108fe575f80fd5b8063ceca52be1461086f578063d18d50e91461088e578063d547741f146108ad575f80fd5b8063a5d33df41161013c578063c2ca0ac511610117578063c2ca0ac514610802578063c582951414610821578063c87b56dd14610850575f80fd5b8063a5d33df4146107b1578063b38a45b9146107d0578063b88d4fde146107ef575f80fd5b8063a0bcfc7f1161016c578063a0bcfc7f14610760578063a217fddf1461077f578063a22cb46514610792575f80fd5b80639a0a5083146106fb578063a035b1fe14610727575f80fd5b806342842e0e116102465780637501f741116101f157806391d14854116101cc57806391d148541461064e578063957aa58c1461069d57806395d89b41146106b6575f80fd5b80637501f741146105cd5780637a95f5bf1461060f5780637db3aecc1461062e575f80fd5b80636dc92b65116102215780636dc92b651461050657806370a0823114610565578063719be3eb14610584575f80fd5b806342842e0e146104b557806348758697146104c85780636352211e146104e7575f80fd5b8063248a9ca3116102a657806336568abe1161028157806336568abe1461046d578063386bfc981461048c5780633ccfd60b146104a1575f80fd5b8063248a9ca3146103df5780632f2ff15d1461041b57806332cb6b0c1461043a575f80fd5b8063081812fc116102d6578063081812fc14610373578063095ea7b3146103b757806323b872dd146103cc575f80fd5b806301ffc9a7146102f157806306fdde0314610325575b5f80fd5b3480156102fc575f80fd5b5061031061030b366004612a5b565b610a19565b60405190151581526020015b60405180910390f35b348015610330575f80fd5b5060408051808201909152601e81527f43727970746f56616c6c65797320416476656e747572657273204e465473000060208201525b60405161031c9190612abc565b34801561037e575f80fd5b5061039261038d366004612b0c565b610a55565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161031c565b6103ca6103c5366004612b46565b610aa5565b005b6103ca6103da366004612b6e565b610ab4565b3480156103ea575f80fd5b5061040d6103f9366004612b0c565b5f9081526020819052604090206001015490565b60405190815260200161031c565b348015610426575f80fd5b506103ca610435366004612ba7565b610bfa565b348015610445575f80fd5b5061040d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610478575f80fd5b506103ca610487366004612ba7565b610c24565b348015610497575f80fd5b5061040d60015481565b3480156104ac575f80fd5b506103ca610c7d565b6103ca6104c3366004612b6e565b610dcf565b3480156104d3575f80fd5b5061040d6104e2366004612b0c565b610dfb565b3480156104f2575f80fd5b50610392610501366004612b0c565b610ea1565b348015610511575f80fd5b5060025460035460ff821691610100900463ffffffff169067ffffffffffffffff8082169168010000000000000000900416604080519415158552602085019390935291830152606082015260800161031c565b348015610570575f80fd5b5061040d61057f366004612bd1565b610eff565b34801561058f575f80fd5b506004546105ac906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff909116815260200161031c565b3480156105d8575f80fd5b506002546105f69065010000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161031c565b34801561061a575f80fd5b506103ca610629366004612bea565b610f4c565b348015610639575f80fd5b506003546105f69067ffffffffffffffff1681565b348015610659575f80fd5b50610310610668366004612ba7565b5f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156106a8575f80fd5b506002546103109060ff1681565b3480156106c1575f80fd5b5060408051808201909152600781527f4356534f554c53000000000000000000000000000000000000000000000000006020820152610366565b348015610706575f80fd5b506003546105f69068010000000000000000900467ffffffffffffffff1681565b348015610732575f80fd5b506002546105ac906d010000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b34801561076b575f80fd5b506103ca61077a366004612c4f565b611191565b34801561078a575f80fd5b5061040d5f81565b34801561079d575f80fd5b506103ca6107ac366004612c9b565b6111a8565b3480156107bc575f80fd5b506103106107cb366004612d11565b6111fb565b3480156107db575f80fd5b506103ca6107ea366004612b0c565b611266565b6103ca6107fd366004612d59565b611276565b34801561080d575f80fd5b506103ca61081c366004612b0c565b6112d0565b34801561082c575f80fd5b5061084061083b366004612b0c565b61147c565b60405161031c9493929190612dc3565b34801561085b575f80fd5b5061036661086a366004612b0c565b61165b565b34801561087a575f80fd5b506103ca610889366004612e6e565b6117a8565b348015610899575f80fd5b506103ca6108a8366004612ea6565b6117f7565b3480156108b8575f80fd5b506103ca6108c7366004612ba7565b6118a4565b6103ca6108da366004612ee6565b6118c8565b3480156108ea575f80fd5b506103ca6108f9366004612f01565b61199c565b348015610909575f80fd5b506103ca610918366004612b46565b611a87565b348015610928575f80fd5b50610310610937366004612f29565b601c52670a5a2e7a000000006008525f526030600c205490565b34801561095c575f80fd5b506103ca611aec565b348015610970575f80fd5b506103ca61097f366004612b0c565b611b29565b34801561098f575f80fd5b506103ca61099e366004612f51565b611b39565b3480156109ae575f80fd5b506003546105ac9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b3480156109ea575f80fd5b506109fe6109f9366004612bd1565b611d68565b6040805193845260208401929092529082015260600161031c565b5f610a40826301ffc9a760e09190911c9081146380ac58cd821417635b5e139f9091141790565b80610a4f5750610a4f82611db4565b92915050565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f2082018201805460601b610a9b5763ceea21b65f526004601cfd5b6001015492915050565b610ab0338383611e4a565b5050565b610abf838383611ef9565b5f8181527f7d8825530a5a2e7a0000000000000000000000000000000000000000000000003317601c526020902081018101805473ffffffffffffffffffffffffffffffffffffffff9485169493841693811691908286148302610b325767ceea21b6a1148100831560021b526004601cfd5b855f528160010154925082331486331417610b5e576030600c2054610b5e57634b6e7f185f526004601cfd5b8215610b6b575f82600101555b85851818905550601c600c81812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555f84905220805460010163ffffffff81168402610bcb5767ea553b3401336cea841560021b526004601cfd5b90558082847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a45b505050565b5f82815260208190526040902060010154610c1481611fad565b610c1e8383611fb7565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610c73576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bf582826120b0565b5f610c8781611fad565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a9059cbb90339083906370a08231906024016020604051808303815f875af1158015610d1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3e9190612fac565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303815f875af1158015610dab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab09190612fc3565b610dda838383610ab4565b813b15610bf557610bf583838360405180602001604052805f815250612169565b5f8082610e38845f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52602090208101015460a01c90565b604051602001610e7792919091825260a01b7fffffffffffffffffffffffff0000000000000000000000000000000000000000166020820152602c0190565b604051602081830303815290604052805190602001205f1c9050610e9a816121ea565b9392505050565b5f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260209020810181015473ffffffffffffffffffffffffffffffffffffffff1680610efa5763ceea21b65f526004601cfd5b919050565b5f81610f1257638f4eb6045f526004601cfd5b7f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52815f5263ffffffff601c600c2054169050919050565b5f610f5681611fad565b5f8381527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260209020830183015460601b610fc0576040517fceea21b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8381527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260209020830183015460a081901c9060e01c15611031576040517f5a049a9000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110bb846b3fffffffffffffffffffffff868660405160200161105e929190918252602082015260400190565b604051602081830303815290604052805190602001205f1c16815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f208201820180548060a01c831860a01b8118825550505050565b5f6110c585610ea1565b90505f8061111f611105847f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c9081525f91909152600c205460201c90565b63ffffffff81811692602083901c82169260401c90911690565b919350909150611188905083604083901b6bffffffff00000000000000001663ffffffff8516175b7f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52815f52601c600c2080548060201c831860201b8118825550505050565b50505050505050565b5f61119b81611fad565b6005610c1e83858361309a565b801515905081601c52670a5a2e7a00000000600852335f52806030600c2055805f528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160205fa35050565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018290525f90819060540160405160208183030381529060405280519060200120905061125d85856001548461224b565b95945050505050565b5f61127081611fad565b50600655565b611281858585610ab4565b833b156112c9576112c985858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061216992505050565b5050505050565b336112da82610ea1565b73ffffffffffffffffffffffffffffffffffffffff1614611327576040517f4b6e7f1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80611365611105337f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c9081525f91909152600c205460201c90565b92505091505f6113a5845f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52602090208101015460a01c90565b6bffffffffffffffffffffffff169050604081901c5f146113f2576040517f5a049a9000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80408061142b576040517f3e068cb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611458856b3fffffffffffffffffffffff878460405160200161105e929190918252602082015260400190565b6112c933604085901b6bffffffff00000000000000001663ffffffff871617611147565b5f806114b16040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b60607401000000080000000800000008000000080000000885611504815f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52602090208101015460a01c90565b60405160200161154392919091825260a01b7fffffffffffffffffffffffff0000000000000000000000000000000000000000166020820152602c0190565b604051602081830303815290604052805190602001205f1c9450611566856121ea565b93505f848015611595576001811461159e57600281146115a757600381146115b057600481146115b9576115be565b600a91506115be565b600f91506115be565b601691506115be565b602091506115be565b602d91505b506115ca828288612283565b91506040518060c001604052806115ea5f8561232e90919063ffffffff16565b81526020016116028460016020021c63ffffffff1690565b815260200163ffffffff604085901c16815260200163ffffffff606085901c16815260200163ffffffff608085901c16815260200163ffffffff60a085901c1690529350611650868661233b565b925050509193509193565b6060611699825f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52602090208101015460601b151590565b6116cf576040517fceea21b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600580546116dd9061300b565b80601f01602080910402602001604051908101604052809291908181526020018280546117099061300b565b80156117545780601f1061172b57610100808354040283529160200191611754565b820191905f5260205f20905b81548152906001019060200180831161173757829003601f168201915b5050505050905080515f036117775760405180602001604052805f815250610e9a565b80611781846124d4565b6040516020016117929291906131b0565b6040516020818303038152906040529392505050565b5f6117b281611fad565b506002805467ffffffffffffffff90921665010000000000027fffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffff909216919091179055565b5f61180181611fad565b50600280547fffffff00000000000000000000000000000000ffffffffffffffffffffffffff166d01000000000000000000000000006fffffffffffffffffffffffffffffffff958616021790556003805484167001000000000000000000000000000000009385169390930292909217909155600480547fffffffffffffffffffffffffffffffff000000000000000000000000000000001691909216179055565b5f828152602081905260409020600101546118be81611fad565b610c1e83836120b0565b60025460ff16611904576040517f0aea1c5d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035468010000000000000000900467ffffffffffffffff16421015611956576040517f10d3e4c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611999815f611994337f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c9081525f91909152600c205460201c90565b612534565b50565b5f6119a681611fad565b8167ffffffffffffffff168367ffffffffffffffff1611156119f4576040517f80784dd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8267ffffffffffffffff165f03611a37576040517f80784dd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506003805467ffffffffffffffff92831668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009091169290931691909117919091179055565b600754611a9381611fad565b60028054610bf5918591610100900463ffffffff16906001611ab48361320b565b91906101000a81548163ffffffff021916908363ffffffff16021790555063ffffffff166b3fffffffffffffffffffffff851661292b565b5f611af681611fad565b50600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00811660ff90911615179055565b5f611b3381611fad565b50600155565b60025460ff16611b75576040517f0aea1c5d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035467ffffffffffffffff16421015611bbb576040517f1e94bf2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035468010000000000000000900467ffffffffffffffff16421115611c0d576040517f1e94bf2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80611c4b611105337f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c9081525f91909152600c205460201c90565b50909250905083611c5d83600161322d565b1115611c95576040517fb9213f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b16602082015260348101869052611cf49188918891906054016040516020818303038152906040528051906020012061224b565b611d2a576040517facab000c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d60836001604087901b6bffffffff000000000000000016602085901b67ffffffff000000001663ffffffff87161717612534565b505050505050565b5f805f611da7611105857f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c9081525f91909152600c205460201c90565b9250925092509193909250565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610a4f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a4f565b5f1960601c82811692508381169350815f52837f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f208201820180548216915081611ea25763ceea21b65f526004601cfd5b818514851517611ec657815f526030600c2054611ec657634b6e7f185f526004601cfd5b6001018390558183827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f38a450505050565b73ffffffffffffffffffffffffffffffffffffffff831615801590611f7657506040611f55825f8181527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52602090208101015460a01c90565b6bffffffffffffffffffffffff16901c6bffffffffffffffffffffffff165f145b15610bf5576040517f0ea6dccc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61199981336129d2565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff166120a9575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556120473390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610a4f565b505f610a4f565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16156120a9575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610a4f565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a084015280156121b0578060c08401826020870160045afa505b60208360a48301601c86015f8a5af16121d1573d156121d1573d5f843e3d83fd5b508060e01b825114611d605763d1a57ed65f526004601cfd5b5f806121f760648461326d565b9050602d81101561220a575f9150612245565b604b81101561221c5760019150612245565b605a81101561222e5760029150612245565b60628110156122405760039150612245565b600491505b50919050565b5f831561227b578360051b8501855b803580851160051b94855260209485185260405f20930181811061225a5750505b501492915050565b5f805f805b85156123235761229960068661326d565b9250826005036122ac5760019150612300565b600a86106122bb5760046122be565b60025b60ff169050826004036122d9576122d6600282613280565b90505b8086106122e657806122e8565b855b6122f2908661326d565b6122fd90600161322d565b91505b61230a8287613293565b95506020830282901b87019650600585901c9450612288565b509495945050505050565b6020021c63ffffffff1690565b60605f6064840683801561236e57600181146123795760028114612384576003811461239257600481146123a0576123a5565b6019821092506123a5565b6032821092506123a5565b600a821060010192506123a5565b604b821060010192506123a5565b600292505b5050805f036123b45750610a4f565b8067ffffffffffffffff8111156123cd576123cd612fde565b6040519080825280602002602001820160405280156123f6578160200160208202803683370190505b50915060065484612407919061326d565b61241290600161322d565b825f81518110612424576124246132a6565b602002602001018181525050806002036124cd575f600654600886901c61244b919061326d565b61245690600161322d565b90505b825f8151811061246b5761246b6132a6565b602002602001015181036124a157600654600886901c9561248f919060101c61326d565b61249a90600161322d565b9050612459565b6124ac81600161322d565b836001815181106124bf576124bf6132a6565b602002602001018181525050505b5092915050565b60606080604051019050602081016040525f8152805f19835b928101926030600a8206018453600a9004806124ed5750508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b63ffffffff81811690602083901c811690604084901c1661255660018461322d565b92508115612590576040517f0ea6dccc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025465010000000000900467ffffffffffffffff168311156125df576040517f024fcb2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254610100900463ffffffff167f00000000000000000000000000000000000000000000000000000000000000006126198260016132d3565b63ffffffff161115612657576040517f7d3d824900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b861561272057600480546040517f49a01c290000000000000000000000000000000000000000000000000000000081523392810192909252600160248301526fffffffffffffffffffffffffffffffff1660448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906349a01c29906064015f604051808303815f87803b158015612705575f80fd5b505af1158015612717573d5f803e3d5ffd5b5050505061289e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd33308961278e576002546d010000000000000000000000000090046fffffffffffffffffffffffffffffffff166127b8565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff165b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff93841660048201529290911660248301526fffffffffffffffffffffffffffffffff1660448201526064016020604051808303815f875af1158015612840573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128649190612fc3565b15155f0361289e576040517ff499da2000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6128d233604084901b6bffffffff000000000000000016602084901b67ffffffff000000001663ffffffff88161717611147565b6128f73363ffffffff831667ffffffffffffffff6128f143600561322d565b1661292b565b6129028160016132d3565b600260016101000a81548163ffffffff021916908363ffffffff16021790555050505050505050565b6129365f8484611ef9565b8260601b60601c9250815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52828160a01b1760205f208301830155825f52601c600c20600181540163ffffffff811685026129a45767ea553b3401336cea851560021b526004601cfd5b905581835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8138a4505050565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610ab0576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024810183905260440160405180910390fd5b5f60208284031215612a6b575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e9a575f80fd5b5f5b83811015612ab4578181015183820152602001612a9c565b50505f910152565b602081525f8251806020840152612ada816040850160208701612a9a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b5f60208284031215612b1c575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610efa575f80fd5b5f8060408385031215612b57575f80fd5b612b6083612b23565b946020939093013593505050565b5f805f60608486031215612b80575f80fd5b612b8984612b23565b9250612b9760208501612b23565b9150604084013590509250925092565b5f8060408385031215612bb8575f80fd5b82359150612bc860208401612b23565b90509250929050565b5f60208284031215612be1575f80fd5b610e9a82612b23565b5f8060408385031215612bfb575f80fd5b50508035926020909101359150565b5f8083601f840112612c1a575f80fd5b50813567ffffffffffffffff811115612c31575f80fd5b602083019150836020828501011115612c48575f80fd5b9250929050565b5f8060208385031215612c60575f80fd5b823567ffffffffffffffff811115612c76575f80fd5b612c8285828601612c0a565b90969095509350505050565b8015158114611999575f80fd5b5f8060408385031215612cac575f80fd5b612cb583612b23565b91506020830135612cc581612c8e565b809150509250929050565b5f8083601f840112612ce0575f80fd5b50813567ffffffffffffffff811115612cf7575f80fd5b6020830191508360208260051b8501011115612c48575f80fd5b5f805f60408486031215612d23575f80fd5b833567ffffffffffffffff811115612d39575f80fd5b612d4586828701612cd0565b909790965060209590950135949350505050565b5f805f805f60808688031215612d6d575f80fd5b612d7686612b23565b9450612d8460208701612b23565b935060408601359250606086013567ffffffffffffffff811115612da6575f80fd5b612db288828901612c0a565b969995985093965092949392505050565b5f6101208083018784526020876020860152865160408601526020870151606086015260408701516080860152606087015160a0860152608087015160c086015260a087015160e0860152826101008601528192508551808352610140860193506020870192505f5b81811015612e4857835185529382019392820192600101612e2c565b50929998505050505050505050565b803567ffffffffffffffff81168114610efa575f80fd5b5f60208284031215612e7e575f80fd5b610e9a82612e57565b80356fffffffffffffffffffffffffffffffff81168114610efa575f80fd5b5f805f60608486031215612eb8575f80fd5b612ec184612e87565b9250612ecf60208501612e87565b9150612edd60408501612e87565b90509250925092565b5f60208284031215612ef6575f80fd5b8135610e9a81612c8e565b5f8060408385031215612f12575f80fd5b612f1b83612e57565b9150612bc860208401612e57565b5f8060408385031215612f3a575f80fd5b612f4383612b23565b9150612bc860208401612b23565b5f805f8060608587031215612f64575f80fd5b843567ffffffffffffffff811115612f7a575f80fd5b612f8687828801612cd0565b909550935050602085013591506040850135612fa181612c8e565b939692955090935050565b5f60208284031215612fbc575f80fd5b5051919050565b5f60208284031215612fd3575f80fd5b8151610e9a81612c8e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061301f57607f821691505b602082108103612245577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f821115610bf557805f5260205f20601f840160051c8101602085101561307b5750805b601f840160051c820191505b818110156112c9575f8155600101613087565b67ffffffffffffffff8311156130b2576130b2612fde565b6130c6836130c0835461300b565b83613056565b5f601f841160018114613116575f85156130e05750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556112c9565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b828110156131635786850135825560209485019460019092019101613143565b508682101561319e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f83516131c1818460208801612a9a565b8351908301906131d5818360208801612a9a565b01949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f63ffffffff808316818103613223576132236131de565b6001019392505050565b80820180821115610a4f57610a4f6131de565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f8261327b5761327b613240565b500690565b5f8261328e5761328e613240565b500490565b81810381811115610a4f57610a4f6131de565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b63ffffffff8181168382160190808211156124cd576124cd6131de56fea264697066735822122096601f3c3d70634ef731b06b72ec2c7d8517212abde9330e02980184bf08a07564736f6c6343000819003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000004a0633143df750d5116c081d9925f64dd2a7affe000000000000000000000000ba399d1eea8b4268a0bc2f9cc1f6093ca13510c0c197bdc9e0ef9bfb8143761da009492a768b4804ad2834f249e4ebc7378649330000000000000000000000000000000000000000000000000000000000000bb80000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066309502000000000000000000000000000000000000000000000000000000006631e682000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000001368747470733a2f2f736f756c6e66742e696f2f00000000000000000000000000