60806040526000600760006101000a81548160ff021916908315150217905550600060085560006009556000600a553480156200003b57600080fd5b50604051806060016040528060338152602001620042e76033913962000067816200013260201b60201c565b50600160038190555062000090620000846200014e60201b60201c565b6200015660201b60201c565b6040518060400160405280600d81526020017f424150205554494c49544945530000000000000000000000000000000000000081525060059080519060200190620000dd9291906200021c565b506040518060400160405280600d81526020017f424150205554494c495449455300000000000000000000000000000000000000815250600690805190602001906200012b9291906200021c565b5062000331565b80600290805190602001906200014a9291906200021c565b5050565b600033905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200022a90620002fb565b90600052602060002090601f0160209004810192826200024e57600085556200029a565b82601f106200026957805160ff19168380011785556200029a565b828001600101855582156200029a579182015b82811115620002995782518255916020019190600101906200027c565b5b509050620002a99190620002ad565b5090565b5b80821115620002c8576000816000905550600101620002ae565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200031457607f821691505b602082108114156200032b576200032a620002cc565b5b50919050565b613fa680620003416000396000f3fe608060405234801561001057600080fd5b50600436106101d95760003560e01c8063715018a611610104578063b74795d9116100a2578063f242432a11610071578063f242432a146104fa578063f2fde38b14610516578063f77452e614610532578063fcfff16f14610550576101d9565b8063b74795d914610474578063cd28ef0d14610492578063e1bc2967146104ae578063e985e9c5146104ca576101d9565b80638da5cb5b116100de5780638da5cb5b1461040057806395d89b411461041e578063a22cb4651461043c578063b390c0ab14610458576101d9565b8063715018a6146103ce5780637c50a088146103d85780638c93b299146103f6576101d9565b806318160ddd1161017c578063677f398d1161014b578063677f398d1461036c5780636a1b62c0146103765780636f02d3d1146103945780636fdca5e0146103b2576101d9565b806318160ddd146102e45780632eb2c2d6146103025780634a7399391461031e5780634e1273f41461033c576101d9565b806306fdde03116101b857806306fdde031461025a57806309f657f3146102785780630d72933b146102965780630e89341c146102b4576101d9565b8062fdd58e146101de57806301ffc9a71461020e57806302fe53051461023e575b600080fd5b6101f860048036038101906101f391906126b3565b61056e565b6040516102059190612702565b60405180910390f35b61022860048036038101906102239190612775565b610637565b60405161023591906127bd565b60405180910390f35b6102586004803603810190610253919061291e565b610719565b005b61026261073b565b60405161026f91906129ef565b60405180910390f35b6102806107c9565b60405161028d9190612702565b60405180910390f35b61029e6107ce565b6040516102ab9190612702565b60405180910390f35b6102ce60048036038101906102c99190612a11565b6107d4565b6040516102db91906129ef565b60405180910390f35b6102ec610808565b6040516102f99190612702565b60405180910390f35b61031c60048036038101906103179190612ba7565b61081f565b005b6103266108c0565b6040516103339190612702565b60405180910390f35b61035660048036038101906103519190612d39565b6108c6565b6040516103639190612e6f565b60405180910390f35b6103746109df565b005b61037e610b4a565b60405161038b9190612702565b60405180910390f35b61039c610b50565b6040516103a99190612702565b60405180910390f35b6103cc60048036038101906103c79190612ebd565b610b56565b005b6103d6610b9e565b005b6103e0610bb2565b6040516103ed9190612702565b60405180910390f35b6103fe610bb8565b005b610408610d24565b6040516104159190612ef9565b60405180910390f35b610426610d4e565b60405161043391906129ef565b60405180910390f35b61045660048036038101906104519190612f14565b610ddc565b005b610472600480360381019061046d9190612f54565b610df2565b005b61047c610e91565b6040516104899190612ef9565b60405180910390f35b6104ac60048036038101906104a79190612f94565b610eb7565b005b6104c860048036038101906104c39190612fc1565b610f73565b005b6104e460048036038101906104df9190613014565b610fdc565b6040516104f191906127bd565b60405180910390f35b610514600480360381019061050f9190613054565b611070565b005b610530600480360381019061052b9190612f94565b611111565b005b61053a611195565b6040516105479190612702565b60405180910390f35b61055861119a565b60405161056591906127bd565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d69061315d565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061070257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107125750610711826111ad565b5b9050919050565b610721611217565b80600b9080519060200190610737929190612568565b5050565b60058054610748906131ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610774906131ac565b80156107c15780601f10610796576101008083540402835291602001916107c1565b820191906000526020600020905b8154815290600101906020018083116107a457829003601f168201915b505050505081565b600181565b6130d481565b6060600b6107e183611295565b6040516020016107f29291906132ae565b6040516020818303038152906040529050919050565b6000600a5460095461081a9190613301565b905090565b61082761136d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061086d575061086c8561086761136d565b610fdc565b5b6108ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a3906133c9565b60405180910390fd5b6108b98585858585611375565b5050505050565b60095481565b6060815183511461090c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109039061345b565b60405180910390fd5b6000835167ffffffffffffffff811115610929576109286127f3565b5b6040519080825280602002602001820160405280156109575781602001602082028036833780820191505090505b50905060005b84518110156109d4576109a485828151811061097c5761097b61347b565b5b60200260200101518583815181106109975761099661347b565b5b602002602001015161056e565b8282815181106109b7576109b661347b565b5b602002602001018181525050806109cd906134aa565b905061095d565b508091505092915050565b6109e7611697565b600760009054906101000a900460ff16610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d9061353f565b60405180910390fd5b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abd906135ab565b60405180910390fd5b6130d460095410610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906135ab565b60405180910390fd5b60096000815480929190610b1f906134aa565b9190505550610b4032600180604051806020016040528060008152506116e7565b610b48611898565b565b600a5481565b6105d281565b610b5e611217565b6000600854148015610b74575060011515811515145b15610b8157426008819055505b80600760006101000a81548160ff02191690831515021790555050565b610ba6611217565b610bb060006118a2565b565b60085481565b610bc0611697565b600760009054906101000a900460ff16610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c069061353f565b60405180910390fd5b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c96906135ab565b60405180910390fd5b6105d2600a5410610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc906135ab565b60405180910390fd5b600a6000815480929190610cf8906134aa565b9190505550610d1a3260026001604051806020016040528060008152506116e7565b610d22611898565b565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60068054610d5b906131ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610d87906131ac565b8015610dd45780601f10610da957610100808354040283529160200191610dd4565b820191906000526020600020905b815481529060010190602001808311610db757829003601f168201915b505050505081565b610dee610de761136d565b8383611968565b5050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e79906135ab565b60405180910390fd5b610e8d328383611ad5565b5050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ebf611217565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690613617565b60405180910390fd5b80600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6001811415610f995760096000815480929190610f8f906134aa565b9190505550610fbc565b6002811415610fbb57600a6000815480929190610fb5906134aa565b91905055505b5b610fd7838284604051806020016040528060008152506116e7565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61107861136d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110be57506110bd856110b861136d565b610fdc565b5b6110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906133c9565b60405180910390fd5b61110a8585858585611d1c565b5050505050565b611119611217565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611189576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611180906136a9565b60405180910390fd5b611192816118a2565b50565b600281565b600760009054906101000a900460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61121f61136d565b73ffffffffffffffffffffffffffffffffffffffff1661123d610d24565b73ffffffffffffffffffffffffffffffffffffffff1614611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90613715565b60405180910390fd5b565b6060600060016112a484611fb8565b01905060008167ffffffffffffffff8111156112c3576112c26127f3565b5b6040519080825280601f01601f1916602001820160405280156112f55781602001600182028036833780820191505090505b509050600082602001820190505b600115611362578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161134c5761134b613735565b5b049450600085141561135d57611362565b611303565b819350505050919050565b600033905090565b81518351146113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b0906137d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142090613868565b60405180910390fd5b600061143361136d565b905061144381878787878761210b565b60005b84518110156115f45760008582815181106114645761146361347b565b5b6020026020010151905060008583815181106114835761148261347b565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b906138fa565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115d99190613301565b92505081905550505050806115ed906134aa565b9050611446565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161166b92919061391a565b60405180910390a4611681818787878787612113565b61168f81878787878761211b565b505050505050565b600260035414156116dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d49061399d565b60405180910390fd5b6002600381905550565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613a2f565b60405180910390fd5b600061176161136d565b9050600061176e856122f3565b9050600061177b856122f3565b905061178c8360008985858961210b565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117eb9190613301565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051611869929190613a4f565b60405180910390a461188083600089858589612113565b61188f8360008989898961236d565b50505050505050565b6001600381905550565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce90613aea565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ac891906127bd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3c90613b7c565b60405180910390fd5b6000611b4f61136d565b90506000611b5c846122f3565b90506000611b69846122f3565b9050611b898387600085856040518060200160405280600081525061210b565b600080600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1790613c0e565b60405180910390fd5b84810360008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051611ced929190613a4f565b60405180910390a4611d1384886000868660405180602001604052806000815250612113565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8390613868565b60405180910390fd5b6000611d9661136d565b90506000611da3856122f3565b90506000611db0856122f3565b9050611dc083898985858961210b565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4e906138fa565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f0c9190613301565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051611f89929190613a4f565b60405180910390a4611f9f848a8a86868a612113565b611fad848a8a8a8a8a61236d565b505050505050505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612016577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161200c5761200b613735565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612053576d04ee2d6d415b85acef8100000000838161204957612048613735565b5b0492506020810190505b662386f26fc10000831061208257662386f26fc10000838161207857612077613735565b5b0492506010810190505b6305f5e10083106120ab576305f5e10083816120a1576120a0613735565b5b0492506008810190505b61271083106120d05761271083816120c6576120c5613735565b5b0492506004810190505b606483106120f357606483816120e9576120e8613735565b5b0492506002810190505b600a8310612102576001810190505b80915050919050565b505050505050565b505050505050565b61213a8473ffffffffffffffffffffffffffffffffffffffff16612545565b156122eb578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612180959493929190613c83565b6020604051808303816000875af19250505080156121bc57506040513d601f19601f820116820180604052508101906121b99190613d00565b60015b612262576121c8613d3a565b806308c379a0141561222557506121dd613d5c565b806121e85750612227565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221c91906129ef565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225990613e64565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e090613ef6565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff811115612312576123116127f3565b5b6040519080825280602002602001820160405280156123405781602001602082028036833780820191505090505b50905082816000815181106123585761235761347b565b5b60200260200101818152505080915050919050565b61238c8473ffffffffffffffffffffffffffffffffffffffff16612545565b1561253d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016123d2959493929190613f16565b6020604051808303816000875af192505050801561240e57506040513d601f19601f8201168201806040525081019061240b9190613d00565b60015b6124b45761241a613d3a565b806308c379a01415612477575061242f613d5c565b8061243a5750612479565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246e91906129ef565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ab90613e64565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461253b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253290613ef6565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054612574906131ac565b90600052602060002090601f01602090048101928261259657600085556125dd565b82601f106125af57805160ff19168380011785556125dd565b828001600101855582156125dd579182015b828111156125dc5782518255916020019190600101906125c1565b5b5090506125ea91906125ee565b5090565b5b808211156126075760008160009055506001016125ef565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061264a8261261f565b9050919050565b61265a8161263f565b811461266557600080fd5b50565b60008135905061267781612651565b92915050565b6000819050919050565b6126908161267d565b811461269b57600080fd5b50565b6000813590506126ad81612687565b92915050565b600080604083850312156126ca576126c9612615565b5b60006126d885828601612668565b92505060206126e98582860161269e565b9150509250929050565b6126fc8161267d565b82525050565b600060208201905061271760008301846126f3565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127528161271d565b811461275d57600080fd5b50565b60008135905061276f81612749565b92915050565b60006020828403121561278b5761278a612615565b5b600061279984828501612760565b91505092915050565b60008115159050919050565b6127b7816127a2565b82525050565b60006020820190506127d260008301846127ae565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61282b826127e2565b810181811067ffffffffffffffff8211171561284a576128496127f3565b5b80604052505050565b600061285d61260b565b90506128698282612822565b919050565b600067ffffffffffffffff821115612889576128886127f3565b5b612892826127e2565b9050602081019050919050565b82818337600083830152505050565b60006128c16128bc8461286e565b612853565b9050828152602081018484840111156128dd576128dc6127dd565b5b6128e884828561289f565b509392505050565b600082601f830112612905576129046127d8565b5b81356129158482602086016128ae565b91505092915050565b60006020828403121561293457612933612615565b5b600082013567ffffffffffffffff8111156129525761295161261a565b5b61295e848285016128f0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129a1578082015181840152602081019050612986565b838111156129b0576000848401525b50505050565b60006129c182612967565b6129cb8185612972565b93506129db818560208601612983565b6129e4816127e2565b840191505092915050565b60006020820190508181036000830152612a0981846129b6565b905092915050565b600060208284031215612a2757612a26612615565b5b6000612a358482850161269e565b91505092915050565b600067ffffffffffffffff821115612a5957612a586127f3565b5b602082029050602081019050919050565b600080fd5b6000612a82612a7d84612a3e565b612853565b90508083825260208201905060208402830185811115612aa557612aa4612a6a565b5b835b81811015612ace5780612aba888261269e565b845260208401935050602081019050612aa7565b5050509392505050565b600082601f830112612aed57612aec6127d8565b5b8135612afd848260208601612a6f565b91505092915050565b600067ffffffffffffffff821115612b2157612b206127f3565b5b612b2a826127e2565b9050602081019050919050565b6000612b4a612b4584612b06565b612853565b905082815260208101848484011115612b6657612b656127dd565b5b612b7184828561289f565b509392505050565b600082601f830112612b8e57612b8d6127d8565b5b8135612b9e848260208601612b37565b91505092915050565b600080600080600060a08688031215612bc357612bc2612615565b5b6000612bd188828901612668565b9550506020612be288828901612668565b945050604086013567ffffffffffffffff811115612c0357612c0261261a565b5b612c0f88828901612ad8565b935050606086013567ffffffffffffffff811115612c3057612c2f61261a565b5b612c3c88828901612ad8565b925050608086013567ffffffffffffffff811115612c5d57612c5c61261a565b5b612c6988828901612b79565b9150509295509295909350565b600067ffffffffffffffff821115612c9157612c906127f3565b5b602082029050602081019050919050565b6000612cb5612cb084612c76565b612853565b90508083825260208201905060208402830185811115612cd857612cd7612a6a565b5b835b81811015612d015780612ced8882612668565b845260208401935050602081019050612cda565b5050509392505050565b600082601f830112612d2057612d1f6127d8565b5b8135612d30848260208601612ca2565b91505092915050565b60008060408385031215612d5057612d4f612615565b5b600083013567ffffffffffffffff811115612d6e57612d6d61261a565b5b612d7a85828601612d0b565b925050602083013567ffffffffffffffff811115612d9b57612d9a61261a565b5b612da785828601612ad8565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612de68161267d565b82525050565b6000612df88383612ddd565b60208301905092915050565b6000602082019050919050565b6000612e1c82612db1565b612e268185612dbc565b9350612e3183612dcd565b8060005b83811015612e62578151612e498882612dec565b9750612e5483612e04565b925050600181019050612e35565b5085935050505092915050565b60006020820190508181036000830152612e898184612e11565b905092915050565b612e9a816127a2565b8114612ea557600080fd5b50565b600081359050612eb781612e91565b92915050565b600060208284031215612ed357612ed2612615565b5b6000612ee184828501612ea8565b91505092915050565b612ef38161263f565b82525050565b6000602082019050612f0e6000830184612eea565b92915050565b60008060408385031215612f2b57612f2a612615565b5b6000612f3985828601612668565b9250506020612f4a85828601612ea8565b9150509250929050565b60008060408385031215612f6b57612f6a612615565b5b6000612f798582860161269e565b9250506020612f8a8582860161269e565b9150509250929050565b600060208284031215612faa57612fa9612615565b5b6000612fb884828501612668565b91505092915050565b600080600060608486031215612fda57612fd9612615565b5b6000612fe886828701612668565b9350506020612ff98682870161269e565b925050604061300a8682870161269e565b9150509250925092565b6000806040838503121561302b5761302a612615565b5b600061303985828601612668565b925050602061304a85828601612668565b9150509250929050565b600080600080600060a086880312156130705761306f612615565b5b600061307e88828901612668565b955050602061308f88828901612668565b94505060406130a08882890161269e565b93505060606130b18882890161269e565b925050608086013567ffffffffffffffff8111156130d2576130d161261a565b5b6130de88828901612b79565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000613147602a83612972565b9150613152826130eb565b604082019050919050565b600060208201905081810360008301526131768161313a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806131c457607f821691505b602082108114156131d8576131d761317d565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461320b816131ac565b61321581866131de565b94506001821660008114613230576001811461324157613274565b60ff19831686528186019350613274565b61324a856131e9565b60005b8381101561326c5781548189015260018201915060208101905061324d565b838801955050505b50505092915050565b600061328882612967565b61329281856131de565b93506132a2818560208601612983565b80840191505092915050565b60006132ba82856131fe565b91506132c6828461327d565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061330c8261267d565b91506133178361267d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561334c5761334b6132d2565b5b828201905092915050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b60006133b3602e83612972565b91506133be82613357565b604082019050919050565b600060208201905081810360008301526133e2816133a6565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000613445602983612972565b9150613450826133e9565b604082019050919050565b6000602082019050818103600083015261347481613438565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006134b58261267d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134e8576134e76132d2565b5b600182019050919050565b7f436f6e747261637420697320636c6f7365640000000000000000000000000000600082015250565b6000613529601283612972565b9150613534826134f3565b602082019050919050565b600060208201905081810360008301526135588161351c565b9050919050565b7f496e76616c69642073656e646572000000000000000000000000000000000000600082015250565b6000613595600e83612972565b91506135a08261355f565b602082019050919050565b600060208201905081810360008301526135c481613588565b9050919050565b7f3230303a5a45524f5f4144445245535300000000000000000000000000000000600082015250565b6000613601601083612972565b915061360c826135cb565b602082019050919050565b60006020820190508181036000830152613630816135f4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613693602683612972565b915061369e82613637565b604082019050919050565b600060208201905081810360008301526136c281613686565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136ff602083612972565b915061370a826136c9565b602082019050919050565b6000602082019050818103600083015261372e816136f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b60006137c0602883612972565b91506137cb82613764565b604082019050919050565b600060208201905081810360008301526137ef816137b3565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613852602583612972565b915061385d826137f6565b604082019050919050565b6000602082019050818103600083015261388181613845565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b60006138e4602a83612972565b91506138ef82613888565b604082019050919050565b60006020820190508181036000830152613913816138d7565b9050919050565b600060408201905081810360008301526139348185612e11565b905081810360208301526139488184612e11565b90509392505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000613987601f83612972565b915061399282613951565b602082019050919050565b600060208201905081810360008301526139b68161397a565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a19602183612972565b9150613a24826139bd565b604082019050919050565b60006020820190508181036000830152613a4881613a0c565b9050919050565b6000604082019050613a6460008301856126f3565b613a7160208301846126f3565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b6000613ad4602983612972565b9150613adf82613a78565b604082019050919050565b60006020820190508181036000830152613b0381613ac7565b9050919050565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b66602383612972565b9150613b7182613b0a565b604082019050919050565b60006020820190508181036000830152613b9581613b59565b9050919050565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000613bf8602483612972565b9150613c0382613b9c565b604082019050919050565b60006020820190508181036000830152613c2781613beb565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613c5582613c2e565b613c5f8185613c39565b9350613c6f818560208601612983565b613c78816127e2565b840191505092915050565b600060a082019050613c986000830188612eea565b613ca56020830187612eea565b8181036040830152613cb78186612e11565b90508181036060830152613ccb8185612e11565b90508181036080830152613cdf8184613c4a565b90509695505050505050565b600081519050613cfa81612749565b92915050565b600060208284031215613d1657613d15612615565b5b6000613d2484828501613ceb565b91505092915050565b60008160e01c9050919050565b600060033d1115613d595760046000803e613d56600051613d2d565b90505b90565b600060443d1015613d6c57613def565b613d7461260b565b60043d036004823e80513d602482011167ffffffffffffffff82111715613d9c575050613def565b808201805167ffffffffffffffff811115613dba5750505050613def565b80602083010160043d038501811115613dd7575050505050613def565b613de682602001850186612822565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000613e4e603483612972565b9150613e5982613df2565b604082019050919050565b60006020820190508181036000830152613e7d81613e41565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000613ee0602883612972565b9150613eeb82613e84565b604082019050919050565b60006020820190508181036000830152613f0f81613ed3565b9050919050565b600060a082019050613f2b6000830188612eea565b613f386020830187612eea565b613f4560408301866126f3565b613f5260608301856126f3565b8181036080830152613f648184613c4a565b9050969550505050505056fea2646970667358221220c5219f10d7a03e5e99b140b2b427ff81390e2f58c162294da04020b6bbbe54ec64736f6c634300080c003368747470733a2f2f73746f726167652e6d696e742e62756c6c73616e646170657370726f6a6563742e636f6d2f7574696c732f