60806040525f60065f6101000a81548160ff02191690831515021790555034801562000029575f80fd5b50604051620039de380380620039de83398181016040528101906200004f9190620002ba565b8160405180602001604052805f81525062000070816200014560201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000e4575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000db919062000310565b60405180910390fd5b620000f5816200015a60201b60201c565b508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060058190555050506200066a565b806002908162000156919062000586565b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200024c8262000221565b9050919050565b6200025e8162000240565b811462000269575f80fd5b50565b5f815190506200027c8162000253565b92915050565b5f819050919050565b620002968162000282565b8114620002a1575f80fd5b50565b5f81519050620002b4816200028b565b92915050565b5f8060408385031215620002d357620002d26200021d565b5b5f620002e2858286016200026c565b9250506020620002f585828601620002a4565b9150509250929050565b6200030a8162000240565b82525050565b5f602082019050620003255f830184620002ff565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620003a757607f821691505b602082108103620003bd57620003bc62000362565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003e4565b6200042d8683620003e4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200046e62000468620004628462000282565b62000445565b62000282565b9050919050565b5f819050919050565b62000489836200044e565b620004a1620004988262000475565b848454620003f0565b825550505050565b5f90565b620004b7620004a9565b620004c48184846200047e565b505050565b5b81811015620004eb57620004df5f82620004ad565b600181019050620004ca565b5050565b601f8211156200053a576200050481620003c3565b6200050f84620003d5565b810160208510156200051f578190505b620005376200052e85620003d5565b830182620004c9565b50505b505050565b5f82821c905092915050565b5f6200055c5f19846008026200053f565b1980831691505092915050565b5f6200057683836200054b565b9150826002028217905092915050565b62000591826200032b565b67ffffffffffffffff811115620005ad57620005ac62000335565b5b620005b982546200038f565b620005c6828285620004ef565b5f60209050601f831160018114620005fc575f8415620005e7578287015190505b620005f3858262000569565b86555062000662565b601f1984166200060c86620003c3565b5f5b8281101562000635578489015182556001820191506020850194506020810190506200060e565b8683101562000655578489015162000651601f8916826200054b565b8355505b6001600288020188555050505b505050505050565b61336680620006785f395ff3fe60806040526004361061013e575f3560e01c80638a71bb2d116100b5578063cce7ec131161006e578063cce7ec1314610443578063ce606ee01461045f578063de74e57b14610489578063e985e9c5146104c7578063f242432a14610503578063f2fde38b1461052b5761013e565b80638a71bb2d1461034f5780638da5cb5b14610379578063964bc33f146103a35780639fe9f623146103cb578063a22cb465146103f3578063a9059cbb1461041b5761013e565b80634cd412d5116101075780634cd412d51461025b5780634e1273f41461028557806361ba27da146102c1578063704ecd0e146102e9578063715018a61461031157806377097fc8146103275761013e565b8062fdd58e1461014257806301ffc9a71461017e5780630e89341c146101ba5780632a55205a146101f65780632eb2c2d614610233575b5f80fd5b34801561014d575f80fd5b5061016860048036038101906101639190611ef3565b610553565b6040516101759190611f40565b60405180910390f35b348015610189575f80fd5b506101a4600480360381019061019f9190611fae565b6105a8565b6040516101b19190611ff3565b60405180910390f35b3480156101c5575f80fd5b506101e060048036038101906101db919061200c565b610689565b6040516101ed91906120c1565b60405180910390f35b348015610201575f80fd5b5061021c600480360381019061021791906120e1565b61071b565b60405161022a92919061212e565b60405180910390f35b34801561023e575f80fd5b5061025960048036038101906102549190612345565b610764565b005b348015610266575f80fd5b5061026f61080b565b60405161027c9190611ff3565b60405180910390f35b348015610290575f80fd5b506102ab60048036038101906102a691906124d0565b61081d565b6040516102b891906125fd565b60405180910390f35b3480156102cc575f80fd5b506102e760048036038101906102e2919061200c565b610924565b005b3480156102f4575f80fd5b5061030f600480360381019061030a919061261d565b610936565b005b34801561031c575f80fd5b50610325610a02565b005b348015610332575f80fd5b5061034d6004803603810190610348919061270b565b610a15565b005b34801561035a575f80fd5b50610363610a66565b6040516103709190611f40565b60405180910390f35b348015610384575f80fd5b5061038d610a6c565b60405161039a9190612765565b60405180910390f35b3480156103ae575f80fd5b506103c960048036038101906103c4919061200c565b610a94565b005b3480156103d6575f80fd5b506103f160048036038101906103ec91906127a8565b610b6f565b005b3480156103fe575f80fd5b50610419600480360381019061041491906127d3565b610b93565b005b348015610426575f80fd5b50610441600480360381019061043c9190611ef3565b610ba9565b005b61045d60048036038101906104589190611ef3565b610c1c565b005b34801561046a575f80fd5b50610473610dc2565b6040516104809190612765565b60405180910390f35b348015610494575f80fd5b506104af60048036038101906104aa919061200c565b610de7565b6040516104be93929190612811565b60405180910390f35b3480156104d2575f80fd5b506104ed60048036038101906104e89190612846565b610e39565b6040516104fa9190611ff3565b60405180910390f35b34801561050e575f80fd5b5061052960048036038101906105249190612884565b610ec7565b005b348015610536575f80fd5b50610551600480360381019061054c9190612917565b610f75565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061067257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610682575061068182610ff9565b5b9050919050565b6060600280546106989061296f565b80601f01602080910402602001604051908101604052809291908181526020018280546106c49061296f565b801561070f5780601f106106e65761010080835404028352916020019161070f565b820191905f5260205f20905b8154815290600101906020018083116106f257829003601f168201915b50505050509050919050565b5f8060646005548461072d91906129cc565b6107379190612a3a565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691509250929050565b5f61076d611062565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156107b257506107b08682610e39565b155b156107f65780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016107ed929190612a6a565b60405180910390fd5b6108038686868686611069565b505050505050565b60065f9054906101000a900460ff1681565b6060815183511461086957815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610860929190612a91565b60405180910390fd5b5f835167ffffffffffffffff81111561088557610884612159565b5b6040519080825280602002602001820160405280156108b35781602001602082028036833780820191505090505b5090505f5b8451811015610919576108ef6108d7828761115d90919063ffffffff16565b6108ea838761117090919063ffffffff16565b610553565b82828151811061090257610901612ab8565b5b6020026020010181815250508060010190506108b8565b508091505092915050565b61092c611183565b8060058190555050565b5f6109413385610553565b11610981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097890612b55565b60405180910390fd5b5f60075f8581526020019081526020015f20905082815f018190555081816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018160010160146101000a81548160ff02191690831515021790555050505050565b610a0a611183565b610a135f61120a565b565b610a1d611183565b610a5960045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600160405180602001604052805f8152506112cd565b610a6281611362565b5050565b60055481565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075f8281526020019081526020015f2060010160149054906101000a900460ff16610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90612bbd565b60405180910390fd5b5f610b003383610553565b11610b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3790612c4b565b60405180910390fd5b5f60075f8381526020019081526020015f2060010160146101000a81548160ff02191690831515021790555050565b610b77611183565b8060065f6101000a81548160ff02191690831515021790555050565b610ba5610b9e611062565b8383611375565b5050565b610bb1611183565b5f610bbc3383610553565b11610bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf390612cd9565b60405180910390fd5b610c18338383600160405180602001604052805f8152506114de565b5050565b60075f8281526020019081526020015f2060010160149054906101000a900460ff16610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490612d41565b60405180910390fd5b5f60075f8381526020019081526020015f205f01549050803403610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90612da9565b60405180910390fd5b5f80610ce2848461071b565b915091505f8184610cf39190612dc7565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015610d38573d5f803e3d5ffd5b508573ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610d7c573d5f803e3d5ffd5b50610dba60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163387600160405180602001604052805f8152506114de565b505050505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f91509050805f015490806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16905083565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60065f9054906101000a900460ff16610f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0c90612e44565b60405180910390fd5b81610f208685610553565b1015610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890612eac565b60405180910390fd5b610f6e85858585856115e4565b5050505050565b610f7d611183565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fed575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610fe49190612765565b60405180910390fd5b610ff68161120a565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110d9575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016110d09190612765565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611149575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016111409190612765565b60405180910390fd5b611156858585858561168b565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b61118b611062565b73ffffffffffffffffffffffffffffffffffffffff166111a9610a6c565b73ffffffffffffffffffffffffffffffffffffffff1614611208576111cc611062565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111ff9190612765565b60405180910390fd5b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133d575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113349190612765565b60405180910390fd5b5f806113498585611737565b9150915061135a5f8784848761168b565b505050505050565b80600290816113719190613067565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e5575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016113dc9190612765565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114d19190611ff3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361154e575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016115459190612765565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036115be575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016115b59190612765565b60405180910390fd5b5f806115ca8585611737565b915091506115db878784848761168b565b50505050505050565b5f6115ed611062565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561163257506116308682610e39565b155b156116765780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161166d929190612a6a565b60405180910390fd5b61168386868686866114de565b505050505050565b61169785858585611767565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611730575f6116d3611062565b9050600184510361171f575f6116f25f8661117090919063ffffffff16565b90505f6117085f8661117090919063ffffffff16565b9050611718838989858589611af7565b505061172e565b61172d818787878787611ca6565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b80518251146117b157815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016117a8929190612a91565b60405180910390fd5b5f6117ba611062565b90505f5b83518110156119b6575f6117db828661117090919063ffffffff16565b90505f6117f1838661117090919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611914575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156118c057888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016118b79493929190613136565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146119a957805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546119a19190613179565b925050819055505b50508060010190506117be565b506001835103611a71575f6119d45f8561117090919063ffffffff16565b90505f6119ea5f8561117090919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a62929190612a91565b60405180910390a45050611af0565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611ae79291906131ac565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611c9e578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b57959493929190613233565b6020604051808303815f875af1925050508015611b9257506040513d601f19601f82011682018060405250810190611b8f919061329f565b60015b611c13573d805f8114611bc0576040519150601f19603f3d011682016040523d82523d5f602084013e611bc5565b606091505b505f815103611c0b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c029190612765565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c9c57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c939190612765565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611e4d578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611d069594939291906132ca565b6020604051808303815f875af1925050508015611d4157506040513d601f19601f82011682018060405250810190611d3e919061329f565b60015b611dc2573d805f8114611d6f576040519150601f19603f3d011682016040523d82523d5f602084013e611d74565b606091505b505f815103611dba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611db19190612765565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611e429190612765565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e8f82611e66565b9050919050565b611e9f81611e85565b8114611ea9575f80fd5b50565b5f81359050611eba81611e96565b92915050565b5f819050919050565b611ed281611ec0565b8114611edc575f80fd5b50565b5f81359050611eed81611ec9565b92915050565b5f8060408385031215611f0957611f08611e5e565b5b5f611f1685828601611eac565b9250506020611f2785828601611edf565b9150509250929050565b611f3a81611ec0565b82525050565b5f602082019050611f535f830184611f31565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f8d81611f59565b8114611f97575f80fd5b50565b5f81359050611fa881611f84565b92915050565b5f60208284031215611fc357611fc2611e5e565b5b5f611fd084828501611f9a565b91505092915050565b5f8115159050919050565b611fed81611fd9565b82525050565b5f6020820190506120065f830184611fe4565b92915050565b5f6020828403121561202157612020611e5e565b5b5f61202e84828501611edf565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561206e578082015181840152602081019050612053565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61209382612037565b61209d8185612041565b93506120ad818560208601612051565b6120b681612079565b840191505092915050565b5f6020820190508181035f8301526120d98184612089565b905092915050565b5f80604083850312156120f7576120f6611e5e565b5b5f61210485828601611edf565b925050602061211585828601611edf565b9150509250929050565b61212881611e85565b82525050565b5f6040820190506121415f83018561211f565b61214e6020830184611f31565b9392505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61218f82612079565b810181811067ffffffffffffffff821117156121ae576121ad612159565b5b80604052505050565b5f6121c0611e55565b90506121cc8282612186565b919050565b5f67ffffffffffffffff8211156121eb576121ea612159565b5b602082029050602081019050919050565b5f80fd5b5f61221261220d846121d1565b6121b7565b90508083825260208201905060208402830185811115612235576122346121fc565b5b835b8181101561225e578061224a8882611edf565b845260208401935050602081019050612237565b5050509392505050565b5f82601f83011261227c5761227b612155565b5b813561228c848260208601612200565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156122b3576122b2612159565b5b6122bc82612079565b9050602081019050919050565b828183375f83830152505050565b5f6122e96122e484612299565b6121b7565b90508281526020810184848401111561230557612304612295565b5b6123108482856122c9565b509392505050565b5f82601f83011261232c5761232b612155565b5b813561233c8482602086016122d7565b91505092915050565b5f805f805f60a0868803121561235e5761235d611e5e565b5b5f61236b88828901611eac565b955050602061237c88828901611eac565b945050604086013567ffffffffffffffff81111561239d5761239c611e62565b5b6123a988828901612268565b935050606086013567ffffffffffffffff8111156123ca576123c9611e62565b5b6123d688828901612268565b925050608086013567ffffffffffffffff8111156123f7576123f6611e62565b5b61240388828901612318565b9150509295509295909350565b5f67ffffffffffffffff82111561242a57612429612159565b5b602082029050602081019050919050565b5f61244d61244884612410565b6121b7565b905080838252602082019050602084028301858111156124705761246f6121fc565b5b835b8181101561249957806124858882611eac565b845260208401935050602081019050612472565b5050509392505050565b5f82601f8301126124b7576124b6612155565b5b81356124c784826020860161243b565b91505092915050565b5f80604083850312156124e6576124e5611e5e565b5b5f83013567ffffffffffffffff81111561250357612502611e62565b5b61250f858286016124a3565b925050602083013567ffffffffffffffff8111156125305761252f611e62565b5b61253c85828601612268565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61257881611ec0565b82525050565b5f612589838361256f565b60208301905092915050565b5f602082019050919050565b5f6125ab82612546565b6125b58185612550565b93506125c083612560565b805f5b838110156125f05781516125d7888261257e565b97506125e283612595565b9250506001810190506125c3565b5085935050505092915050565b5f6020820190508181035f83015261261581846125a1565b905092915050565b5f805f6060848603121561263457612633611e5e565b5b5f61264186828701611edf565b935050602061265286828701611edf565b925050604061266386828701611eac565b9150509250925092565b5f67ffffffffffffffff82111561268757612686612159565b5b61269082612079565b9050602081019050919050565b5f6126af6126aa8461266d565b6121b7565b9050828152602081018484840111156126cb576126ca612295565b5b6126d68482856122c9565b509392505050565b5f82601f8301126126f2576126f1612155565b5b813561270284826020860161269d565b91505092915050565b5f806040838503121561272157612720611e5e565b5b5f61272e85828601611edf565b925050602083013567ffffffffffffffff81111561274f5761274e611e62565b5b61275b858286016126de565b9150509250929050565b5f6020820190506127785f83018461211f565b92915050565b61278781611fd9565b8114612791575f80fd5b50565b5f813590506127a28161277e565b92915050565b5f602082840312156127bd576127bc611e5e565b5b5f6127ca84828501612794565b91505092915050565b5f80604083850312156127e9576127e8611e5e565b5b5f6127f685828601611eac565b925050602061280785828601612794565b9150509250929050565b5f6060820190506128245f830186611f31565b612831602083018561211f565b61283e6040830184611fe4565b949350505050565b5f806040838503121561285c5761285b611e5e565b5b5f61286985828601611eac565b925050602061287a85828601611eac565b9150509250929050565b5f805f805f60a0868803121561289d5761289c611e5e565b5b5f6128aa88828901611eac565b95505060206128bb88828901611eac565b94505060406128cc88828901611edf565b93505060606128dd88828901611edf565b925050608086013567ffffffffffffffff8111156128fe576128fd611e62565b5b61290a88828901612318565b9150509295509295909350565b5f6020828403121561292c5761292b611e5e565b5b5f61293984828501611eac565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061298657607f821691505b60208210810361299957612998612942565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6129d682611ec0565b91506129e183611ec0565b92508282026129ef81611ec0565b91508282048414831517612a0657612a0561299f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a4482611ec0565b9150612a4f83611ec0565b925082612a5f57612a5e612a0d565b5b828204905092915050565b5f604082019050612a7d5f83018561211f565b612a8a602083018461211f565b9392505050565b5f604082019050612aa45f830185611f31565b612ab16020830184611f31565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f596f75206d757374206f776e2074686520746f6b656e20746f206c69737420695f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b3f602183612041565b9150612b4a82612ae5565b604082019050919050565b5f6020820190508181035f830152612b6c81612b33565b9050919050565b7f546f6b656e206973206e6f74206c6973746564000000000000000000000000005f82015250565b5f612ba7601383612041565b9150612bb282612b73565b602082019050919050565b5f6020820190508181035f830152612bd481612b9b565b9050919050565b7f596f75206d757374206f776e2074686520746f6b656e20746f2064656c6973745f8201527f2069740000000000000000000000000000000000000000000000000000000000602082015250565b5f612c35602383612041565b9150612c4082612bdb565b604082019050919050565b5f6020820190508181035f830152612c6281612c29565b9050919050565b7f596f75206d757374206f776e2074686520746f6b656e20746f207472616e73665f8201527f6572206974000000000000000000000000000000000000000000000000000000602082015250565b5f612cc3602583612041565b9150612cce82612c69565b604082019050919050565b5f6020820190508181035f830152612cf081612cb7565b9050919050565b7f546f6b656e206e6f74206c697374656420666f722073616c65000000000000005f82015250565b5f612d2b601983612041565b9150612d3682612cf7565b602082019050919050565b5f6020820190508181035f830152612d5881612d1f565b9050919050565b7f496e73756666696369656e74204554482073656e7400000000000000000000005f82015250565b5f612d93601583612041565b9150612d9e82612d5f565b602082019050919050565b5f6020820190508181035f830152612dc081612d87565b9050919050565b5f612dd182611ec0565b9150612ddc83611ec0565b9250828203905081811115612df457612df361299f565b5b92915050565b7f5472616e7366657273206172652063757272656e746c792064697361626c65645f82015250565b5f612e2e602083612041565b9150612e3982612dfa565b602082019050919050565b5f6020820190508181035f830152612e5b81612e22565b9050919050565b7f496e73756666696369656e7420746f6b656e2062616c616e63650000000000005f82015250565b5f612e96601a83612041565b9150612ea182612e62565b602082019050919050565b5f6020820190508181035f830152612ec381612e8a565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612f267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612eeb565b612f308683612eeb565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612f6b612f66612f6184611ec0565b612f48565b611ec0565b9050919050565b5f819050919050565b612f8483612f51565b612f98612f9082612f72565b848454612ef7565b825550505050565b5f90565b612fac612fa0565b612fb7818484612f7b565b505050565b5b81811015612fda57612fcf5f82612fa4565b600181019050612fbd565b5050565b601f82111561301f57612ff081612eca565b612ff984612edc565b81016020851015613008578190505b61301c61301485612edc565b830182612fbc565b50505b505050565b5f82821c905092915050565b5f61303f5f1984600802613024565b1980831691505092915050565b5f6130578383613030565b9150826002028217905092915050565b61307082612037565b67ffffffffffffffff81111561308957613088612159565b5b613093825461296f565b61309e828285612fde565b5f60209050601f8311600181146130cf575f84156130bd578287015190505b6130c7858261304c565b86555061312e565b601f1984166130dd86612eca565b5f5b82811015613104578489015182556001820191506020850194506020810190506130df565b86831015613121578489015161311d601f891682613030565b8355505b6001600288020188555050505b505050505050565b5f6080820190506131495f83018761211f565b6131566020830186611f31565b6131636040830185611f31565b6131706060830184611f31565b95945050505050565b5f61318382611ec0565b915061318e83611ec0565b92508282019050808211156131a6576131a561299f565b5b92915050565b5f6040820190508181035f8301526131c481856125a1565b905081810360208301526131d881846125a1565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f613205826131e1565b61320f81856131eb565b935061321f818560208601612051565b61322881612079565b840191505092915050565b5f60a0820190506132465f83018861211f565b613253602083018761211f565b6132606040830186611f31565b61326d6060830185611f31565b818103608083015261327f81846131fb565b90509695505050505050565b5f8151905061329981611f84565b92915050565b5f602082840312156132b4576132b3611e5e565b5b5f6132c18482850161328b565b91505092915050565b5f60a0820190506132dd5f83018861211f565b6132ea602083018761211f565b81810360408301526132fc81866125a1565b9050818103606083015261331081856125a1565b9050818103608083015261332481846131fb565b9050969550505050505056fea2646970667358221220ca5b70d87e26f3a573a0de2b58163f749e5c99d0a0203fc6b3843ffaaccd383064736f6c63430008180033000000000000000000000000fd8cd1da32884e57bc5196d421318fbf9c3e0d4a000000000000000000000000000000000000000000000000000000000000000a