0x60c06040523480156200001157600080fd5b5060405162006464380380620064648339818101604052810190620000379190620002bb565b81806040518060400160405280600d81526020017f43726f7373436861696e4e4654000000000000000000000000000000000000008152506040518060400160405280600581526020017f43434e4654000000000000000000000000000000000000000000000000000000815250620000c5620000b96200014a60201b60201c565b6200015260201b60201c565b8160019081620000d6919062000572565b508060029081620000e8919062000572565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050505080600d819055506201869f600d546200013b919062000688565b60a081815250505050620006c3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000248826200021b565b9050919050565b6200025a816200023b565b81146200026657600080fd5b50565b6000815190506200027a816200024f565b92915050565b6000819050919050565b620002958162000280565b8114620002a157600080fd5b50565b600081519050620002b5816200028a565b92915050565b60008060408385031215620002d557620002d462000216565b5b6000620002e58582860162000269565b9250506020620002f885828601620002a4565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200038457607f821691505b6020821081036200039a57620003996200033c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003c5565b620004108683620003c5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620004536200044d620004478462000280565b62000428565b62000280565b9050919050565b6000819050919050565b6200046f8362000432565b620004876200047e826200045a565b848454620003d2565b825550505050565b600090565b6200049e6200048f565b620004ab81848462000464565b505050565b5b81811015620004d357620004c760008262000494565b600181019050620004b1565b5050565b601f8211156200052257620004ec81620003a0565b620004f784620003b5565b8101602085101562000507578190505b6200051f6200051685620003b5565b830182620004b0565b50505b505050565b600082821c905092915050565b6000620005476000198460080262000527565b1980831691505092915050565b600062000562838362000534565b9150826002028217905092915050565b6200057d8262000302565b67ffffffffffffffff8111156200059957620005986200030d565b5b620005a582546200036b565b620005b2828285620004d7565b600060209050601f831160018114620005ea5760008415620005d5578287015190505b620005e1858262000554565b86555062000651565b601f198416620005fa86620003a0565b60005b828110156200062457848901518255600182019150602085019450602081019050620005fd565b8683101562000644578489015162000640601f89168262000534565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006958262000280565b9150620006a28362000280565b9250828201905080821115620006bd57620006bc62000659565b5b92915050565b60805160a051615d356200072f600039600081816110e90152611172015260008181610a6401528181610e3c0152818161105b015281816112790152818161142c015281816115f301528181611ca001528181611e1f0152818161234c0152612b1c0152615d356000f3fe6080604052600436106102655760003560e01c806370a0823111610144578063b88d4fde116100b6578063d1deba1f1161007a578063d1deba1f14610951578063df2a5b3b1461096d578063e985e9c514610996578063eb8d72b7146109d3578063f2fde38b146109fc578063f5ecbdbc14610a2557610265565b8063b88d4fde1461086e578063baf3292d14610897578063c4461834146108c0578063c87b56dd146108eb578063cbed8b9c1461092857610265565b8063950c8a7411610108578063950c8a741461075e57806395d89b41146107895780639f38369a146107b4578063a22cb465146107f1578063a6c3d1651461081a578063b353aaa71461084357610265565b806370a0823114610665578063715018a6146106a25780637533d788146106b95780638cfd8f5c146106f65780638da5cb5b1461073357610265565b80631e128296116101dd57806342842e0e116101a157806342842e0e1461054557806342d65a8d1461056e5780635b8c41e61461059757806361bc221a146105d45780636352211e146105ff57806366ad5c8a1461063c57610265565b80631e1282961461044957806323b872dd14610465578063362790f61461048e5780633d8b38f6146104cb5780633f1f4fa41461050857610265565b8063081812fc1161022f578063081812fc1461034f578063095ea7b31461038c5780630df37483146103b557806310ddb137146103de5780631249c58b1461040757806317bac0521461041e57610265565b80621d35671461026a5780629a9b7b1461029357806301ffc9a7146102be57806306fdde03146102fb57806307e0db1714610326575b600080fd5b34801561027657600080fd5b50610291600480360381019061028c9190613a92565b610a62565b005b34801561029f57600080fd5b506102a8610cb8565b6040516102b59190613b52565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190613bc5565b610cbe565b6040516102f29190613c0d565b60405180910390f35b34801561030757600080fd5b50610310610da0565b60405161031d9190613cb8565b60405180910390f35b34801561033257600080fd5b5061034d60048036038101906103489190613cda565b610e32565b005b34801561035b57600080fd5b5061037660048036038101906103719190613d33565b610ec8565b6040516103839190613da1565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613de8565b610f0e565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190613e28565b611025565b005b3480156103ea57600080fd5b5061040560048036038101906104009190613cda565b611051565b005b34801561041357600080fd5b5061041c6110e7565b005b34801561042a57600080fd5b50610433611170565b6040516104409190613b52565b60405180910390f35b610463600480360381019061045e9190613e28565b611194565b005b34801561047157600080fd5b5061048c60048036038101906104879190613e68565b61136d565b005b34801561049a57600080fd5b506104b560048036038101906104b09190613e28565b6113cd565b6040516104c29190613b52565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed9190613ebb565b6114dd565b6040516104ff9190613c0d565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a9190613cda565b6115b1565b60405161053c9190613b52565b60405180910390f35b34801561055157600080fd5b5061056c60048036038101906105679190613e68565b6115c9565b005b34801561057a57600080fd5b5061059560048036038101906105909190613ebb565b6115e9565b005b3480156105a357600080fd5b506105be60048036038101906105b9919061404b565b611685565b6040516105cb91906140d3565b60405180910390f35b3480156105e057600080fd5b506105e96116cd565b6040516105f69190613b52565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190613d33565b6116d3565b6040516106339190613da1565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190613a92565b611759565b005b34801561067157600080fd5b5061068c600480360381019061068791906140ee565b61186a565b6040516106999190613b52565b60405180910390f35b3480156106ae57600080fd5b506106b7611921565b005b3480156106c557600080fd5b506106e060048036038101906106db9190613cda565b611935565b6040516106ed9190614170565b60405180910390f35b34801561070257600080fd5b5061071d60048036038101906107189190614192565b6119d5565b60405161072a9190613b52565b60405180910390f35b34801561073f57600080fd5b506107486119fa565b6040516107559190613da1565b60405180910390f35b34801561076a57600080fd5b50610773611a23565b6040516107809190613da1565b60405180910390f35b34801561079557600080fd5b5061079e611a49565b6040516107ab9190613cb8565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d69190613cda565b611adb565b6040516107e89190614170565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906141fe565b611bf4565b005b34801561082657600080fd5b50610841600480360381019061083c9190613ebb565b611c0a565b005b34801561084f57600080fd5b50610858611c9e565b604051610865919061429d565b60405180910390f35b34801561087a57600080fd5b50610895600480360381019061089091906142b8565b611cc2565b005b3480156108a357600080fd5b506108be60048036038101906108b991906140ee565b611d24565b005b3480156108cc57600080fd5b506108d5611da7565b6040516108e29190613b52565b60405180910390f35b3480156108f757600080fd5b50610912600480360381019061090d9190613d33565b611dad565b60405161091f9190613cb8565b60405180910390f35b34801561093457600080fd5b5061094f600480360381019061094a919061433b565b611e15565b005b61096b60048036038101906109669190613a92565b611eb7565b005b34801561097957600080fd5b50610994600480360381019061098f91906143c3565b6120fa565b005b3480156109a257600080fd5b506109bd60048036038101906109b89190614416565b6121be565b6040516109ca9190613c0d565b60405180910390f35b3480156109df57600080fd5b506109fa60048036038101906109f59190613ebb565b612252565b005b348015610a0857600080fd5b50610a236004803603810190610a1e91906140ee565b6122c5565b005b348015610a3157600080fd5b50610a4c6004803603810190610a479190614456565b612348565b604051610a599190614170565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610aa16123f9565b73ffffffffffffffffffffffffffffffffffffffff1614610af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aee90614509565b60405180910390fd5b6000600760008861ffff1661ffff1681526020019081526020016000208054610b1f90614558565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4b90614558565b8015610b985780601f10610b6d57610100808354040283529160200191610b98565b820191906000526020600020905b815481529060010190602001808311610b7b57829003601f168201915b50505050509050805186869050148015610bb3575060008151115b8015610bdc575080805190602001208686604051610bd29291906145b9565b6040518091039020145b610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290614644565b60405180910390fd5b610caf8787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612401565b50505050505050565b600d5481565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d8957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610d995750610d98826124cc565b5b9050919050565b606060018054610daf90614558565b80601f0160208091040260200160405190810160405280929190818152602001828054610ddb90614558565b8015610e285780601f10610dfd57610100808354040283529160200191610e28565b820191906000526020600020905b815481529060010190602001808311610e0b57829003601f168201915b5050505050905090565b610e3a612536565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166307e0db17826040518263ffffffff1660e01b8152600401610e939190614673565b600060405180830381600087803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b5050505050565b6000610ed3826125b4565b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610f19826116d3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8090614700565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610fa86123f9565b73ffffffffffffffffffffffffffffffffffffffff161480610fd75750610fd681610fd16123f9565b6121be565b5b611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90614792565b60405180910390fd5b61102083836125ff565b505050565b61102d612536565b80600960008461ffff1661ffff168152602001908152602001600020819055505050565b611059612536565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310ddb137826040518263ffffffff1660e01b81526004016110b29190614673565b600060405180830381600087803b1580156110cc57600080fd5b505af11580156110e0573d6000803e3d6000fd5b5050505050565b7f0000000000000000000000000000000000000000000000000000000000000000600d5403611142576040517f7d3d824900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61114e33600d546126b8565b600d6000815460010191905081905550600c6000815460010191905081905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b61119d816116d3565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611201576040517f59dc379f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c60008154600190039190508190555061121b816128d5565b600033826040516020016112309291906147b2565b6040516020818303038152906040529050600060019050600062055730905060008282604051602001611264929190614832565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340a7bb108830886000876040518663ffffffff1660e01b81526004016112d995949392919061485e565b6040805180830381865afa1580156112f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131991906148d4565b509050803411611355576040517f1c26714c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61136487863360008634612a23565b50505050505050565b61137e6113786123f9565b82612bb9565b6113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490614986565b60405180910390fd5b6113c8838383612c4e565b505050565b60008033836040516020016113e39291906147b2565b6040516020818303038152906040529050600060019050600062055730905060008282604051602001611417929190614832565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340a7bb108930886000876040518663ffffffff1660e01b815260040161148c95949392919061485e565b6040805180830381865afa1580156114a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cc91906148d4565b509050809550505050505092915050565b600080600760008661ffff1661ffff168152602001908152602001600020805461150690614558565b80601f016020809104026020016040519081016040528092919081815260200182805461153290614558565b801561157f5780601f106115545761010080835404028352916020019161157f565b820191906000526020600020905b81548152906001019060200180831161156257829003601f168201915b5050505050905083836040516115969291906145b9565b60405180910390208180519060200120149150509392505050565b60096020528060005260406000206000915090505481565b6115e483838360405180602001604052806000815250611cc2565b505050565b6115f1612536565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166342d65a8d8484846040518463ffffffff1660e01b815260040161164e939291906149d3565b600060405180830381600087803b15801561166857600080fd5b505af115801561167c573d6000803e3d6000fd5b50505050505050565b600b6020528260005260406000208280516020810182018051848252602083016020850120818352809550505050505060205280600052604060002060009250925050505481565b600c5481565b6000806116df83612f47565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174790614a51565b60405180910390fd5b80915050919050565b3073ffffffffffffffffffffffffffffffffffffffff166117786123f9565b73ffffffffffffffffffffffffffffffffffffffff16146117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c590614ae3565b60405180910390fd5b6118628686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612f84565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d190614b75565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611929612536565b611933600061300a565b565b6007602052806000526040600020600091509050805461195490614558565b80601f016020809104026020016040519081016040528092919081815260200182805461198090614558565b80156119cd5780601f106119a2576101008083540402835291602001916119cd565b820191906000526020600020905b8154815290600101906020018083116119b057829003601f168201915b505050505081565b6008602052816000526040600020602052806000526040600020600091509150505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060028054611a5890614558565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8490614558565b8015611ad15780601f10611aa657610100808354040283529160200191611ad1565b820191906000526020600020905b815481529060010190602001808311611ab457829003601f168201915b5050505050905090565b60606000600760008461ffff1661ffff1681526020019081526020016000208054611b0590614558565b80601f0160208091040260200160405190810160405280929190818152602001828054611b3190614558565b8015611b7e5780601f10611b5357610100808354040283529160200191611b7e565b820191906000526020600020905b815481529060010190602001808311611b6157829003601f168201915b505050505090506000815103611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090614be1565b60405180910390fd5b611bec600060148351611bdc9190614c30565b836130ce9092919063ffffffff16565b915050919050565b611c06611bff6123f9565b83836131ec565b5050565b611c12612536565b818130604051602001611c2793929190614cac565b604051602081830303815290604052600760008561ffff1661ffff1681526020019081526020016000209081611c5d9190614e78565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051611c91939291906149d3565b60405180910390a1505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611cd3611ccd6123f9565b83612bb9565b611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0990614986565b60405180910390fd5b611d1e84848484613358565b50505050565b611d2c612536565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b81604051611d9c9190613da1565b60405180910390a150565b61271081565b6060611db8826125b4565b6000611dc26133b4565b90506000815111611de25760405180602001604052806000815250611e0d565b80611dec846133cb565b604051602001611dfd929190614f86565b6040516020818303038152906040525b915050919050565b611e1d612536565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663cbed8b9c86868686866040518663ffffffff1660e01b8152600401611e7e959493929190614faa565b600060405180830381600087803b158015611e9857600080fd5b505af1158015611eac573d6000803e3d6000fd5b505050505050505050565b6000600b60008861ffff1661ffff1681526020019081526020016000208686604051611ee49291906145b9565b908152602001604051809103902060008567ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000205490506000801b8103611f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f569061506a565b60405180910390fd5b808383604051611f709291906145b9565b604051809103902014611fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faf906150fc565b60405180910390fd5b6000801b600b60008961ffff1661ffff1681526020019081526020016000208787604051611fe79291906145b9565b908152602001604051809103902060008667ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020819055506120b28787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612f84565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516120e995949392919061512b565b60405180910390a150505050505050565b612102612536565b60008111612145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213c906151c5565b60405180910390fd5b80600860008561ffff1661ffff16815260200190815260200160002060008461ffff1661ffff168152602001908152602001600020819055507f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac08383836040516121b1939291906151e5565b60405180910390a1505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61225a612536565b8181600760008661ffff1661ffff1681526020019081526020016000209182612284929190615227565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab8383836040516122b8939291906149d3565b60405180910390a1505050565b6122cd612536565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361233c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233390615369565b60405180910390fd5b6123458161300a565b50565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f5ecbdbc868630866040518563ffffffff1660e01b81526004016123a99493929190615389565b600060405180830381865afa1580156123c6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906123ef919061543e565b9050949350505050565b600033905090565b6000806124ad5a60966366ad5c8a60e01b898989896040516024016124299493929190615487565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050503073ffffffffffffffffffffffffffffffffffffffff16613499909392919063ffffffff16565b91509150816124c4576124c38686868685613531565b5b505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61253e6123f9565b73ffffffffffffffffffffffffffffffffffffffff1661255c6119fa565b73ffffffffffffffffffffffffffffffffffffffff16146125b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a990615526565b60405180910390fd5b565b6125bd816135df565b6125fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f390614a51565b60405180910390fd5b50565b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612672836116d3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271e90615592565b60405180910390fd5b612730816135df565b15612770576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612767906155fe565b60405180910390fd5b61277e600083836001613620565b612787816135df565b156127c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127be906155fe565b60405180910390fd5b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46128d1600083836001613626565b5050565b60006128e0826116d3565b90506128f0816000846001613620565b6128f9826116d3565b90506005600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506003600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612a1f816000846001613626565b5050565b6000600760008861ffff1661ffff1681526020019081526020016000208054612a4b90614558565b80601f0160208091040260200160405190810160405280929190818152602001828054612a7790614558565b8015612ac45780601f10612a9957610100808354040283529160200191612ac4565b820191906000526020600020905b815481529060010190602001808311612aa757829003601f168201915b505050505090506000815103612b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0690615690565b60405180910390fd5b612b1a87875161362c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c58031008389848a8a8a8a6040518863ffffffff1660e01b8152600401612b7e969594939291906156d1565b6000604051808303818588803b158015612b9757600080fd5b505af1158015612bab573d6000803e3d6000fd5b505050505050505050505050565b600080612bc5836116d3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612c075750612c0681856121be565b5b80612c4557508373ffffffffffffffffffffffffffffffffffffffff16612c2d84610ec8565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612c6e826116d3565b73ffffffffffffffffffffffffffffffffffffffff1614612cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cbb906157b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2a9061584b565b60405180910390fd5b612d408383836001613620565b8273ffffffffffffffffffffffffffffffffffffffff16612d60826116d3565b73ffffffffffffffffffffffffffffffffffffffff1614612db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dad906157b9565b60405180910390fd5b6005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612f428383836001613626565b505050565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006014840151905060008083806020019051810190612fa49190615897565b91509150612fb282826126b8565b600c60008154600101919050819055507f31ae2bb20187b24b2039def7711f43f56311ec96de17b7ef01d1b1da40eb2eee878483600c54604051612ff994939291906158d7565b60405180910390a150505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b606081601f836130de919061591c565b101561311f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131169061599c565b60405180910390fd5b818361312b919061591c565b8451101561316e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316590615a08565b60405180910390fd5b606082156000811461318f57604051915060008252602082016040526131e0565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156131cd57805183526020830192506020810190506131b0565b50868552601f19601f8301166040525050505b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361325a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325190615a74565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161334b9190613c0d565b60405180910390a3505050565b613363848484612c4e565b61336f848484846136a2565b6133ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133a590615b06565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060600060016133da84613829565b01905060008167ffffffffffffffff8111156133f9576133f8613f20565b5b6040519080825280601f01601f19166020018201604052801561342b5781602001600182028036833780820191505090505b509050600082602001820190505b60011561348e578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161348257613481615b26565b5b04945060008503613439575b819350505050919050565b6000606060008060008661ffff1667ffffffffffffffff8111156134c0576134bf613f20565b5b6040519080825280601f01601f1916602001820160405280156134f25781602001600182028036833780820191505090505b50905060008087516020890160008d8df191503d925086831115613514578692505b828152826000602083013e81819450945050505094509492505050565b8180519060200120600b60008761ffff1661ffff168152602001908152602001600020856040516135629190615b86565b908152602001604051809103902060008567ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020819055507fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c85858585856040516135d0959493929190615b9d565b60405180910390a15050505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661360183612f47565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b6000600960008461ffff1661ffff1681526020019081526020016000205490506000810361365a5761271090505b8082111561369d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369490615c51565b60405180910390fd5b505050565b60006136c38473ffffffffffffffffffffffffffffffffffffffff1661397c565b1561381c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026136ec6123f9565b8786866040518563ffffffff1660e01b815260040161370e9493929190615c71565b6020604051808303816000875af192505050801561374a57506040513d601f19601f820116820180604052508101906137479190615cd2565b60015b6137cc573d806000811461377a576040519150601f19603f3d011682016040523d82523d6000602084013e61377f565b606091505b5060008151036137c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137bb90615b06565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613821565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613887577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161387d5761387c615b26565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106138c4576d04ee2d6d415b85acef810000000083816138ba576138b9615b26565b5b0492506020810190505b662386f26fc1000083106138f357662386f26fc1000083816138e9576138e8615b26565b5b0492506010810190505b6305f5e100831061391c576305f5e100838161391257613911615b26565b5b0492506008810190505b612710831061394157612710838161393757613936615b26565b5b0492506004810190505b60648310613964576064838161395a57613959615b26565b5b0492506002810190505b600a8310613973576001810190505b80915050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b600061ffff82169050919050565b6139ca816139b3565b81146139d557600080fd5b50565b6000813590506139e7816139c1565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613a1257613a116139ed565b5b8235905067ffffffffffffffff811115613a2f57613a2e6139f2565b5b602083019150836001820283011115613a4b57613a4a6139f7565b5b9250929050565b600067ffffffffffffffff82169050919050565b613a6f81613a52565b8114613a7a57600080fd5b50565b600081359050613a8c81613a66565b92915050565b60008060008060008060808789031215613aaf57613aae6139a9565b5b6000613abd89828a016139d8565b965050602087013567ffffffffffffffff811115613ade57613add6139ae565b5b613aea89828a016139fc565b95509550506040613afd89828a01613a7d565b935050606087013567ffffffffffffffff811115613b1e57613b1d6139ae565b5b613b2a89828a016139fc565b92509250509295509295509295565b6000819050919050565b613b4c81613b39565b82525050565b6000602082019050613b676000830184613b43565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613ba281613b6d565b8114613bad57600080fd5b50565b600081359050613bbf81613b99565b92915050565b600060208284031215613bdb57613bda6139a9565b5b6000613be984828501613bb0565b91505092915050565b60008115159050919050565b613c0781613bf2565b82525050565b6000602082019050613c226000830184613bfe565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c62578082015181840152602081019050613c47565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c8a82613c28565b613c948185613c33565b9350613ca4818560208601613c44565b613cad81613c6e565b840191505092915050565b60006020820190508181036000830152613cd28184613c7f565b905092915050565b600060208284031215613cf057613cef6139a9565b5b6000613cfe848285016139d8565b91505092915050565b613d1081613b39565b8114613d1b57600080fd5b50565b600081359050613d2d81613d07565b92915050565b600060208284031215613d4957613d486139a9565b5b6000613d5784828501613d1e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d8b82613d60565b9050919050565b613d9b81613d80565b82525050565b6000602082019050613db66000830184613d92565b92915050565b613dc581613d80565b8114613dd057600080fd5b50565b600081359050613de281613dbc565b92915050565b60008060408385031215613dff57613dfe6139a9565b5b6000613e0d85828601613dd3565b9250506020613e1e85828601613d1e565b9150509250929050565b60008060408385031215613e3f57613e3e6139a9565b5b6000613e4d858286016139d8565b9250506020613e5e85828601613d1e565b9150509250929050565b600080600060608486031215613e8157613e806139a9565b5b6000613e8f86828701613dd3565b9350506020613ea086828701613dd3565b9250506040613eb186828701613d1e565b9150509250925092565b600080600060408486031215613ed457613ed36139a9565b5b6000613ee2868287016139d8565b935050602084013567ffffffffffffffff811115613f0357613f026139ae565b5b613f0f868287016139fc565b92509250509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613f5882613c6e565b810181811067ffffffffffffffff82111715613f7757613f76613f20565b5b80604052505050565b6000613f8a61399f565b9050613f968282613f4f565b919050565b600067ffffffffffffffff821115613fb657613fb5613f20565b5b613fbf82613c6e565b9050602081019050919050565b82818337600083830152505050565b6000613fee613fe984613f9b565b613f80565b90508281526020810184848401111561400a57614009613f1b565b5b614015848285613fcc565b509392505050565b600082601f830112614032576140316139ed565b5b8135614042848260208601613fdb565b91505092915050565b600080600060608486031215614064576140636139a9565b5b6000614072868287016139d8565b935050602084013567ffffffffffffffff811115614093576140926139ae565b5b61409f8682870161401d565b92505060406140b086828701613a7d565b9150509250925092565b6000819050919050565b6140cd816140ba565b82525050565b60006020820190506140e860008301846140c4565b92915050565b600060208284031215614104576141036139a9565b5b600061411284828501613dd3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60006141428261411b565b61414c8185614126565b935061415c818560208601613c44565b61416581613c6e565b840191505092915050565b6000602082019050818103600083015261418a8184614137565b905092915050565b600080604083850312156141a9576141a86139a9565b5b60006141b7858286016139d8565b92505060206141c8858286016139d8565b9150509250929050565b6141db81613bf2565b81146141e657600080fd5b50565b6000813590506141f8816141d2565b92915050565b60008060408385031215614215576142146139a9565b5b600061422385828601613dd3565b9250506020614234858286016141e9565b9150509250929050565b6000819050919050565b600061426361425e61425984613d60565b61423e565b613d60565b9050919050565b600061427582614248565b9050919050565b60006142878261426a565b9050919050565b6142978161427c565b82525050565b60006020820190506142b2600083018461428e565b92915050565b600080600080608085870312156142d2576142d16139a9565b5b60006142e087828801613dd3565b94505060206142f187828801613dd3565b935050604061430287828801613d1e565b925050606085013567ffffffffffffffff811115614323576143226139ae565b5b61432f8782880161401d565b91505092959194509250565b600080600080600060808688031215614357576143566139a9565b5b6000614365888289016139d8565b9550506020614376888289016139d8565b945050604061438788828901613d1e565b935050606086013567ffffffffffffffff8111156143a8576143a76139ae565b5b6143b4888289016139fc565b92509250509295509295909350565b6000806000606084860312156143dc576143db6139a9565b5b60006143ea868287016139d8565b93505060206143fb868287016139d8565b925050604061440c86828701613d1e565b9150509250925092565b6000806040838503121561442d5761442c6139a9565b5b600061443b85828601613dd3565b925050602061444c85828601613dd3565b9150509250929050565b600080600080608085870312156144705761446f6139a9565b5b600061447e878288016139d8565b945050602061448f878288016139d8565b93505060406144a087828801613dd3565b92505060606144b187828801613d1e565b91505092959194509250565b7f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c65720000600082015250565b60006144f3601e83613c33565b91506144fe826144bd565b602082019050919050565b60006020820190508181036000830152614522816144e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061457057607f821691505b60208210810361458357614582614529565b5b50919050565b600081905092915050565b60006145a08385614589565b93506145ad838584613fcc565b82840190509392505050565b60006145c6828486614594565b91508190509392505050565b7f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b600061462e602683613c33565b9150614639826145d2565b604082019050919050565b6000602082019050818103600083015261465d81614621565b9050919050565b61466d816139b3565b82525050565b60006020820190506146886000830184614664565b92915050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006146ea602183613c33565b91506146f58261468e565b604082019050919050565b60006020820190508181036000830152614719816146dd565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b600061477c603d83613c33565b915061478782614720565b604082019050919050565b600060208201905081810360008301526147ab8161476f565b9050919050565b60006040820190506147c76000830185613d92565b6147d46020830184613b43565b9392505050565b60008160f01b9050919050565b60006147f3826147db565b9050919050565b61480b614806826139b3565b6147e8565b82525050565b6000819050919050565b61482c61482782613b39565b614811565b82525050565b600061483e82856147fa565b60028201915061484e828461481b565b6020820191508190509392505050565b600060a0820190506148736000830188614664565b6148806020830187613d92565b81810360408301526148928186614137565b90506148a16060830185613bfe565b81810360808301526148b38184614137565b90509695505050505050565b6000815190506148ce81613d07565b92915050565b600080604083850312156148eb576148ea6139a9565b5b60006148f9858286016148bf565b925050602061490a858286016148bf565b9150509250929050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000614970602d83613c33565b915061497b82614914565b604082019050919050565b6000602082019050818103600083015261499f81614963565b9050919050565b60006149b28385614126565b93506149bf838584613fcc565b6149c883613c6e565b840190509392505050565b60006040820190506149e86000830186614664565b81810360208301526149fb8184866149a6565b9050949350505050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000614a3b601883613c33565b9150614a4682614a05565b602082019050919050565b60006020820190508181036000830152614a6a81614a2e565b9050919050565b7f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d75737420626560008201527f204c7a4170700000000000000000000000000000000000000000000000000000602082015250565b6000614acd602683613c33565b9150614ad882614a71565b604082019050919050565b60006020820190508181036000830152614afc81614ac0565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000614b5f602983613c33565b9150614b6a82614b03565b604082019050919050565b60006020820190508181036000830152614b8e81614b52565b9050919050565b7f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000600082015250565b6000614bcb601d83613c33565b9150614bd682614b95565b602082019050919050565b60006020820190508181036000830152614bfa81614bbe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614c3b82613b39565b9150614c4683613b39565b9250828203905081811115614c5e57614c5d614c01565b5b92915050565b60008160601b9050919050565b6000614c7c82614c64565b9050919050565b6000614c8e82614c71565b9050919050565b614ca6614ca182613d80565b614c83565b82525050565b6000614cb9828587614594565b9150614cc58284614c95565b601482019150819050949350505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614d387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614cfb565b614d428683614cfb565b95508019841693508086168417925050509392505050565b6000614d75614d70614d6b84613b39565b61423e565b613b39565b9050919050565b6000819050919050565b614d8f83614d5a565b614da3614d9b82614d7c565b848454614d08565b825550505050565b600090565b614db8614dab565b614dc3818484614d86565b505050565b5b81811015614de757614ddc600082614db0565b600181019050614dc9565b5050565b601f821115614e2c57614dfd81614cd6565b614e0684614ceb565b81016020851015614e15578190505b614e29614e2185614ceb565b830182614dc8565b50505b505050565b600082821c905092915050565b6000614e4f60001984600802614e31565b1980831691505092915050565b6000614e688383614e3e565b9150826002028217905092915050565b614e818261411b565b67ffffffffffffffff811115614e9a57614e99613f20565b5b614ea48254614558565b614eaf828285614deb565b600060209050601f831160018114614ee25760008415614ed0578287015190505b614eda8582614e5c565b865550614f42565b601f198416614ef086614cd6565b60005b82811015614f1857848901518255600182019150602085019450602081019050614ef3565b86831015614f355784890151614f31601f891682614e3e565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000614f6082613c28565b614f6a8185614f4a565b9350614f7a818560208601613c44565b80840191505092915050565b6000614f928285614f55565b9150614f9e8284614f55565b91508190509392505050565b6000608082019050614fbf6000830188614664565b614fcc6020830187614664565b614fd96040830186613b43565b8181036060830152614fec8184866149a6565b90509695505050505050565b7f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360008201527f6167650000000000000000000000000000000000000000000000000000000000602082015250565b6000615054602383613c33565b915061505f82614ff8565b604082019050919050565b6000602082019050818103600083015261508381615047565b9050919050565b7f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6160008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006150e6602183613c33565b91506150f18261508a565b604082019050919050565b60006020820190508181036000830152615115816150d9565b9050919050565b61512581613a52565b82525050565b60006080820190506151406000830188614664565b81810360208301526151538186886149a6565b9050615162604083018561511c565b61516f60608301846140c4565b9695505050505050565b7f4c7a4170703a20696e76616c6964206d696e4761730000000000000000000000600082015250565b60006151af601583613c33565b91506151ba82615179565b602082019050919050565b600060208201905081810360008301526151de816151a2565b9050919050565b60006060820190506151fa6000830186614664565b6152076020830185614664565b6152146040830184613b43565b949350505050565b600082905092915050565b615231838361521c565b67ffffffffffffffff81111561524a57615249613f20565b5b6152548254614558565b61525f828285614deb565b6000601f83116001811461528e576000841561527c578287013590505b6152868582614e5c565b8655506152ee565b601f19841661529c86614cd6565b60005b828110156152c45784890135825560018201915060208501945060208101905061529f565b868310156152e157848901356152dd601f891682614e3e565b8355505b6001600288020188555050505b50505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615353602683613c33565b915061535e826152f7565b604082019050919050565b6000602082019050818103600083015261538281615346565b9050919050565b600060808201905061539e6000830187614664565b6153ab6020830186614664565b6153b86040830185613d92565b6153c56060830184613b43565b95945050505050565b60006153e16153dc84613f9b565b613f80565b9050828152602081018484840111156153fd576153fc613f1b565b5b615408848285613c44565b509392505050565b600082601f830112615425576154246139ed565b5b81516154358482602086016153ce565b91505092915050565b600060208284031215615454576154536139a9565b5b600082015167ffffffffffffffff811115615472576154716139ae565b5b61547e84828501615410565b91505092915050565b600060808201905061549c6000830187614664565b81810360208301526154ae8186614137565b90506154bd604083018561511c565b81810360608301526154cf8184614137565b905095945050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000615510602083613c33565b915061551b826154da565b602082019050919050565b6000602082019050818103600083015261553f81615503565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061557c602083613c33565b915061558782615546565b602082019050919050565b600060208201905081810360008301526155ab8161556f565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006155e8601c83613c33565b91506155f3826155b2565b602082019050919050565b60006020820190508181036000830152615617816155db565b9050919050565b7f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060008201527f61207472757374656420736f7572636500000000000000000000000000000000602082015250565b600061567a603083613c33565b91506156858261561e565b604082019050919050565b600060208201905081810360008301526156a98161566d565b9050919050565b60006156bb82613d60565b9050919050565b6156cb816156b0565b82525050565b600060c0820190506156e66000830189614664565b81810360208301526156f88188614137565b9050818103604083015261570c8187614137565b905061571b60608301866156c2565b6157286080830185613d92565b81810360a083015261573a8184614137565b9050979650505050505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006157a3602583613c33565b91506157ae82615747565b604082019050919050565b600060208201905081810360008301526157d281615796565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000615835602483613c33565b9150615840826157d9565b604082019050919050565b6000602082019050818103600083015261586481615828565b9050919050565b615874816156b0565b811461587f57600080fd5b50565b6000815190506158918161586b565b92915050565b600080604083850312156158ae576158ad6139a9565b5b60006158bc85828601615882565b92505060206158cd858286016148bf565b9150509250929050565b60006080820190506158ec6000830187614664565b6158f96020830186613d92565b6159066040830185613b43565b6159136060830184613b43565b95945050505050565b600061592782613b39565b915061593283613b39565b925082820190508082111561594a57615949614c01565b5b92915050565b7f736c6963655f6f766572666c6f77000000000000000000000000000000000000600082015250565b6000615986600e83613c33565b915061599182615950565b602082019050919050565b600060208201905081810360008301526159b581615979565b9050919050565b7f736c6963655f6f75744f66426f756e6473000000000000000000000000000000600082015250565b60006159f2601183613c33565b91506159fd826159bc565b602082019050919050565b60006020820190508181036000830152615a21816159e5565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000615a5e601983613c33565b9150615a6982615a28565b602082019050919050565b60006020820190508181036000830152615a8d81615a51565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000615af0603283613c33565b9150615afb82615a94565b604082019050919050565b60006020820190508181036000830152615b1f81615ae3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000615b608261411b565b615b6a8185614589565b9350615b7a818560208601613c44565b80840191505092915050565b6000615b928284615b55565b915081905092915050565b600060a082019050615bb26000830188614664565b8181036020830152615bc48187614137565b9050615bd3604083018661511c565b8181036060830152615be58185614137565b90508181036080830152615bf98184614137565b90509695505050505050565b7f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c61726765600082015250565b6000615c3b602083613c33565b9150615c4682615c05565b602082019050919050565b60006020820190508181036000830152615c6a81615c2e565b9050919050565b6000608082019050615c866000830187613d92565b615c936020830186613d92565b615ca06040830185613b43565b8181036060830152615cb28184614137565b905095945050505050565b600081519050615ccc81613b99565b92915050565b600060208284031215615ce857615ce76139a9565b5b6000615cf684828501615cbd565b9150509291505056fea264697066735822122093aa0f0a0f247e724eda4844a1e6f5c4f731c090cfc7c0247ab8fbdded3adf4464736f6c6343000811003300000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd6750000000000000000000000000000000000000000000000000000000000000000