608060405234801561000f575f80fd5b50604051613ca8380380613ca883398181016040528101906100319190610364565b8383815f90816100419190610604565b5080600190816100519190610604565b5050506100706100656100c060201b60201c565b6100c760201b60201c565b81600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c81905550505050506106d3565b5f33905090565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101e9826101a3565b810181811067ffffffffffffffff82111715610208576102076101b3565b5b80604052505050565b5f61021a61018a565b905061022682826101e0565b919050565b5f67ffffffffffffffff821115610245576102446101b3565b5b61024e826101a3565b9050602081019050919050565b8281835e5f83830152505050565b5f61027b6102768461022b565b610211565b9050828152602081018484840111156102975761029661019f565b5b6102a284828561025b565b509392505050565b5f82601f8301126102be576102bd61019b565b5b81516102ce848260208601610269565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610300826102d7565b9050919050565b610310816102f6565b811461031a575f80fd5b50565b5f8151905061032b81610307565b92915050565b5f819050919050565b61034381610331565b811461034d575f80fd5b50565b5f8151905061035e8161033a565b92915050565b5f805f806080858703121561037c5761037b610193565b5b5f85015167ffffffffffffffff81111561039957610398610197565b5b6103a5878288016102aa565b945050602085015167ffffffffffffffff8111156103c6576103c5610197565b5b6103d2878288016102aa565b93505060406103e38782880161031d565b92505060606103f487828801610350565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061044e57607f821691505b6020821081036104615761046061040a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610488565b6104cd8683610488565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6105086105036104fe84610331565b6104e5565b610331565b9050919050565b5f819050919050565b610521836104ee565b61053561052d8261050f565b848454610494565b825550505050565b5f90565b61054961053d565b610554818484610518565b505050565b5b818110156105775761056c5f82610541565b60018101905061055a565b5050565b601f8211156105bc5761058d81610467565b61059684610479565b810160208510156105a5578190505b6105b96105b185610479565b830182610559565b50505b505050565b5f82821c905092915050565b5f6105dc5f19846008026105c1565b1980831691505092915050565b5f6105f483836105cd565b9150826002028217905092915050565b61060d82610400565b67ffffffffffffffff811115610626576106256101b3565b5b6106308254610437565b61063b82828561057b565b5f60209050601f83116001811461066c575f841561065a578287015190505b61066485826105e9565b8655506106cb565b601f19841661067a86610467565b5f5b828110156106a15784890151825560018201915060208501945060208101905061067c565b868310156106be57848901516106ba601f8916826105cd565b8355505b6001600288020188555050505b505050505050565b6135c8806106e05f395ff3fe608060405234801561000f575f80fd5b5060043610610156575f3560e01c8063715018a6116100c1578063abaeb2631161007a578063abaeb263146103d6578063b88d4fde146103f4578063c87b56dd14610410578063e985e9c514610440578063f2fde38b14610470578063f7b2a7be1461048c57610156565b8063715018a61461033a5780637b47ec1a146103445780638da5cb5b1461036057806395d89b411461037e5780639d741e5d1461039c578063a22cb465146103ba57610156565b80632f745c59116101135780632f745c591461022e57806342842e0e1461025e5780634f6ccce71461027a5780636352211e146102aa5780636a627842146102da57806370a082311461030a57610156565b806301ffc9a71461015a57806306fdde031461018a578063081812fc146101a8578063095ea7b3146101d857806318160ddd146101f457806323b872dd14610212575b5f80fd5b610174600480360381019061016f919061244e565b6104aa565b6040516101819190612493565b60405180910390f35b610192610523565b60405161019f919061251c565b60405180910390f35b6101c260048036038101906101bd919061256f565b6105b2565b6040516101cf91906125d9565b60405180910390f35b6101f260048036038101906101ed919061261c565b6105f4565b005b6101fc61070a565b6040516102099190612669565b60405180910390f35b61022c60048036038101906102279190612682565b610716565b005b6102486004803603810190610243919061261c565b610776565b6040516102559190612669565b60405180910390f35b61027860048036038101906102739190612682565b610816565b005b610294600480360381019061028f919061256f565b610835565b6040516102a19190612669565b60405180910390f35b6102c460048036038101906102bf919061256f565b6108a3565b6040516102d191906125d9565b60405180910390f35b6102f460048036038101906102ef91906126d2565b610927565b6040516103019190612669565b60405180910390f35b610324600480360381019061031f91906126d2565b61095a565b6040516103319190612669565b60405180910390f35b610342610a0e565b005b61035e6004803603810190610359919061256f565b610a21565b005b610368610a8d565b60405161037591906125d9565b60405180910390f35b610386610ab5565b604051610393919061251c565b60405180910390f35b6103a4610b45565b6040516103b191906125d9565b60405180910390f35b6103d460048036038101906103cf9190612727565b610b6a565b005b6103de610b80565b6040516103eb919061281c565b60405180910390f35b61040e60048036038101906104099190612968565b610c21565b005b61042a6004803603810190610425919061256f565b610c83565b604051610437919061251c565b60405180910390f35b61045a600480360381019061045591906129e8565b610ce8565b6040516104679190612493565b60405180910390f35b61048a600480360381019061048591906126d2565b610d76565b005b610494610df8565b6040516104a19190612669565b60405180910390f35b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061051c575061051b82610dfe565b5b9050919050565b60605f805461053190612a53565b80601f016020809104026020016040519081016040528092919081815260200182805461055d90612a53565b80156105a85780601f1061057f576101008083540402835291602001916105a8565b820191905f5260205f20905b81548152906001019060200180831161058b57829003601f168201915b5050505050905090565b5f6105bc82610edf565b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f6105fe826108a3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361066e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066590612af3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661068d610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614806106bc57506106bb816106b6610f2a565b610ce8565b5b6106fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f290612b81565b60405180910390fd5b6107058383610f31565b505050565b5f600880549050905090565b610727610721610f2a565b82610fe7565b610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c0f565b60405180910390fd5b61077183838361107b565b505050565b5f6107808361095a565b82106107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b890612c9d565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b61083083838360405180602001604052805f815250610c21565b505050565b5f61083e61070a565b821061087f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087690612d2b565b60405180910390fd5b6008828154811061089357610892612d49565b5b905f5260205f2001549050919050565b5f806108ae83611367565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590612dc0565b60405180910390fd5b80915050919050565b5f6109306113a0565b61093a600b61141e565b5f610945600b611432565b9050610951838261143e565b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c090612e4e565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a166113a0565b610a1f5f61145b565b565b610a32610a2c610f2a565b82610fe7565b610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6890612eb6565b60405180910390fd5b610a7a8161151e565b610a8a610a85610f2a565b61165f565b50565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610ac490612a53565b80601f0160208091040260200160405190810160405280929190818152602001828054610af090612a53565b8015610b3b5780601f10610b1257610100808354040283529160200191610b3b565b820191905f5260205f20905b815481529060010190602001808311610b1e57829003601f168201915b5050505050905090565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b7c610b75610f2a565b8383611701565b5050565b60605f610b8b61070a565b90505f8167ffffffffffffffff811115610ba857610ba7612844565b5b604051908082528060200260200182016040528015610bd65781602001602082028036833780820191505090505b5090505f5b82811015610c1857610bec81610835565b828281518110610bff57610bfe612d49565b5b6020026020010181815250508080600101915050610bdb565b50809250505090565b610c32610c2c610f2a565b83610fe7565b610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6890612c0f565b60405180910390fd5b610c7d84848484611868565b50505050565b6060610c8e82610edf565b5f610c976118c4565b90505f815111610cb55760405180602001604052805f815250610ce0565b80610cbf846118da565b604051602001610cd0929190612f0e565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610d7e6113a0565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de390612fa1565b60405180910390fd5b610df58161145b565b50565b600c5481565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ec857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610ed85750610ed7826119a4565b5b9050919050565b610ee881611a0d565b610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612dc0565b60405180910390fd5b50565b5f33905090565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610fa1836108a3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f80610ff2836108a3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061103457506110338185610ce8565b5b8061107257508373ffffffffffffffffffffffffffffffffffffffff1661105a846105b2565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661109b826108a3565b73ffffffffffffffffffffffffffffffffffffffff16146110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e89061302f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361115f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611156906130bd565b60405180910390fd5b61116c8383836001611a4d565b8273ffffffffffffffffffffffffffffffffffffffff1661118c826108a3565b73ffffffffffffffffffffffffffffffffffffffff16146111e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d99061302f565b60405180910390fd5b60045f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540392505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46113628383836001611ba8565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6113a8610f2a565b73ffffffffffffffffffffffffffffffffffffffff166113c6610a8d565b73ffffffffffffffffffffffffffffffffffffffff161461141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141390613125565b60405180910390fd5b565b6001815f015f828254019250508190555050565b5f815f01549050919050565b611457828260405180602001604052805f815250611bae565b5050565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611528826108a3565b9050611537815f846001611a4d565b611540826108a3565b905060045f8381526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254039250508190555060025f8381526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055815f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461165b815f846001611ba8565b5050565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600c546040518363ffffffff1660e01b81526004016116bd929190613143565b6020604051808303815f875af11580156116d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fd919061317e565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361176f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611766906131f3565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161185b9190612493565b60405180910390a3505050565b61187384848461107b565b61187f84848484611c08565b6118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590613281565b60405180910390fd5b50505050565b606060405180602001604052805f815250905090565b60605f60016118e884611d8a565b0190505f8167ffffffffffffffff81111561190657611905612844565b5b6040519080825280601f01601f1916602001820160405280156119385781602001600182028036833780820191505090505b5090505f82602001820190505b600115611999578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161198e5761198d61329f565b5b0494505f8503611945575b819350505050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff16611a2e83611367565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a5984848484611edb565b6001811115611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a949061333c565b60405180910390fd5b5f8290505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611ae257611add81611ee1565b611b21565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611b2057611b1f8582611f25565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b6257611b5d8161207b565b611ba1565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ba057611b9f848261213b565b5b5b5050505050565b50505050565b611bb883836121b3565b611bc45f848484611c08565b611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa90613281565b60405180910390fd5b505050565b5f611c288473ffffffffffffffffffffffffffffffffffffffff166123c6565b15611d7d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611c51610f2a565b8786866040518563ffffffff1660e01b8152600401611c7394939291906133ac565b6020604051808303815f875af1925050508015611cae57506040513d601f19601f82011682018060405250810190611cab919061340a565b60015b611d2d573d805f8114611cdc576040519150601f19603f3d011682016040523d82523d5f602084013e611ce1565b606091505b505f815103611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c90613281565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611d82565b600190505b949350505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611de6577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611ddc57611ddb61329f565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611e23576d04ee2d6d415b85acef81000000008381611e1957611e1861329f565b5b0492506020810190505b662386f26fc100008310611e5257662386f26fc100008381611e4857611e4761329f565b5b0492506010810190505b6305f5e1008310611e7b576305f5e1008381611e7157611e7061329f565b5b0492506008810190505b6127108310611ea0576127108381611e9657611e9561329f565b5b0492506004810190505b60648310611ec35760648381611eb957611eb861329f565b5b0492506002810190505b600a8310611ed2576001810190505b80915050919050565b50505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f6001611f318461095a565b611f3b9190613462565b90505f60075f8481526020019081526020015f20549050818114612012575f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205490508060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055508160075f8381526020019081526020015f2081905550505b60075f8481526020019081526020015f205f905560065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f905550505050565b5f600160088054905061208e9190613462565b90505f60095f8481526020019081526020015f205490505f600883815481106120ba576120b9612d49565b5b905f5260205f200154905080600883815481106120da576120d9612d49565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f9055600880548061212257612121613495565b5b600190038181905f5260205f20015f9055905550505050565b5f6121458361095a565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612221576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122189061350c565b60405180910390fd5b61222a81611a0d565b1561226a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226190613574565b60405180910390fd5b6122775f83836001611a4d565b61228081611a0d565b156122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b790613574565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123c25f83836001611ba8565b5050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61242d816123f9565b8114612437575f80fd5b50565b5f8135905061244881612424565b92915050565b5f60208284031215612463576124626123f1565b5b5f6124708482850161243a565b91505092915050565b5f8115159050919050565b61248d81612479565b82525050565b5f6020820190506124a65f830184612484565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124ee826124ac565b6124f881856124b6565b93506125088185602086016124c6565b612511816124d4565b840191505092915050565b5f6020820190508181035f83015261253481846124e4565b905092915050565b5f819050919050565b61254e8161253c565b8114612558575f80fd5b50565b5f8135905061256981612545565b92915050565b5f60208284031215612584576125836123f1565b5b5f6125918482850161255b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125c38261259a565b9050919050565b6125d3816125b9565b82525050565b5f6020820190506125ec5f8301846125ca565b92915050565b6125fb816125b9565b8114612605575f80fd5b50565b5f81359050612616816125f2565b92915050565b5f8060408385031215612632576126316123f1565b5b5f61263f85828601612608565b92505060206126508582860161255b565b9150509250929050565b6126638161253c565b82525050565b5f60208201905061267c5f83018461265a565b92915050565b5f805f60608486031215612699576126986123f1565b5b5f6126a686828701612608565b93505060206126b786828701612608565b92505060406126c88682870161255b565b9150509250925092565b5f602082840312156126e7576126e66123f1565b5b5f6126f484828501612608565b91505092915050565b61270681612479565b8114612710575f80fd5b50565b5f81359050612721816126fd565b92915050565b5f806040838503121561273d5761273c6123f1565b5b5f61274a85828601612608565b925050602061275b85828601612713565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127978161253c565b82525050565b5f6127a8838361278e565b60208301905092915050565b5f602082019050919050565b5f6127ca82612765565b6127d4818561276f565b93506127df8361277f565b805f5b8381101561280f5781516127f6888261279d565b9750612801836127b4565b9250506001810190506127e2565b5085935050505092915050565b5f6020820190508181035f83015261283481846127c0565b905092915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61287a826124d4565b810181811067ffffffffffffffff8211171561289957612898612844565b5b80604052505050565b5f6128ab6123e8565b90506128b78282612871565b919050565b5f67ffffffffffffffff8211156128d6576128d5612844565b5b6128df826124d4565b9050602081019050919050565b828183375f83830152505050565b5f61290c612907846128bc565b6128a2565b90508281526020810184848401111561292857612927612840565b5b6129338482856128ec565b509392505050565b5f82601f83011261294f5761294e61283c565b5b813561295f8482602086016128fa565b91505092915050565b5f805f80608085870312156129805761297f6123f1565b5b5f61298d87828801612608565b945050602061299e87828801612608565b93505060406129af8782880161255b565b925050606085013567ffffffffffffffff8111156129d0576129cf6123f5565b5b6129dc8782880161293b565b91505092959194509250565b5f80604083850312156129fe576129fd6123f1565b5b5f612a0b85828601612608565b9250506020612a1c85828601612608565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a6a57607f821691505b602082108103612a7d57612a7c612a26565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f612add6021836124b6565b9150612ae882612a83565b604082019050919050565b5f6020820190508181035f830152612b0a81612ad1565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f5f8201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b5f612b6b603d836124b6565b9150612b7682612b11565b604082019050919050565b5f6020820190508181035f830152612b9881612b5f565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e655f8201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b5f612bf9602d836124b6565b9150612c0482612b9f565b604082019050919050565b5f6020820190508181035f830152612c2681612bed565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f755f8201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b5f612c87602b836124b6565b9150612c9282612c2d565b604082019050919050565b5f6020820190508181035f830152612cb481612c7b565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f5f8201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b5f612d15602c836124b6565b9150612d2082612cbb565b604082019050919050565b5f6020820190508181035f830152612d4281612d09565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4552433732313a20696e76616c696420746f6b656e20494400000000000000005f82015250565b5f612daa6018836124b6565b9150612db582612d76565b602082019050919050565b5f6020820190508181035f830152612dd781612d9e565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f7420612076615f8201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b5f612e386029836124b6565b9150612e4382612dde565b604082019050919050565b5f6020820190508181035f830152612e6581612e2c565b9050919050565b7f43616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665645f82015250565b5f612ea06020836124b6565b9150612eab82612e6c565b602082019050919050565b5f6020820190508181035f830152612ecd81612e94565b9050919050565b5f81905092915050565b5f612ee8826124ac565b612ef28185612ed4565b9350612f028185602086016124c6565b80840191505092915050565b5f612f198285612ede565b9150612f258284612ede565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612f8b6026836124b6565b9150612f9682612f31565b604082019050919050565b5f6020820190508181035f830152612fb881612f7f565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f7272656374205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f6130196025836124b6565b915061302482612fbf565b604082019050919050565b5f6020820190508181035f8301526130468161300d565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130a76024836124b6565b91506130b28261304d565b604082019050919050565b5f6020820190508181035f8301526130d48161309b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61310f6020836124b6565b915061311a826130db565b602082019050919050565b5f6020820190508181035f83015261313c81613103565b9050919050565b5f6040820190506131565f8301856125ca565b613163602083018461265a565b9392505050565b5f81519050613178816126fd565b92915050565b5f60208284031215613193576131926123f1565b5b5f6131a08482850161316a565b91505092915050565b7f4552433732313a20617070726f766520746f2063616c6c6572000000000000005f82015250565b5f6131dd6019836124b6565b91506131e8826131a9565b602082019050919050565b5f6020820190508181035f83015261320a816131d1565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f61326b6032836124b6565b915061327682613211565b604082019050919050565b5f6020820190508181035f8301526132988161325f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f455243373231456e756d657261626c653a20636f6e73656375746976652074725f8201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b5f6133266035836124b6565b9150613331826132cc565b604082019050919050565b5f6020820190508181035f8301526133538161331a565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f61337e8261335a565b6133888185613364565b93506133988185602086016124c6565b6133a1816124d4565b840191505092915050565b5f6080820190506133bf5f8301876125ca565b6133cc60208301866125ca565b6133d9604083018561265a565b81810360608301526133eb8184613374565b905095945050505050565b5f8151905061340481612424565b92915050565b5f6020828403121561341f5761341e6123f1565b5b5f61342c848285016133f6565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61346c8261253c565b91506134778361253c565b925082820390508181111561348f5761348e613435565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f6134f66020836124b6565b9150613501826134c2565b602082019050919050565b5f6020820190508181035f830152613523816134ea565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f61355e601c836124b6565b91506135698261352a565b602082019050919050565b5f6020820190508181035f83015261358b81613552565b905091905056fea26469706673582212204de308419642f862e1dbff13fa0ce1bb637f1dc00a6b430f223a1052a713cb9864736f6c63430008190033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000001531bc5de10618c511349f8007c08966e45ce8ef000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004746573740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035453540000000000000000000000000000000000000000000000000000000000