60806040523480156200001157600080fd5b506040518060400160405280601081526020017f53706c697474696e67204d45204e4654000000000000000000000000000000008152506040518060400160405280600481526020017f424e46540000000000000000000000000000000000000000000000000000000081525081600090816200008f919062000453565b508060019081620000a1919062000453565b505050620000c4620000b86200010b60201b60201c565b6200011360201b60201c565b33600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200053a565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200025b57607f821691505b60208210810362000271576200027062000213565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002db7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200029c565b620002e786836200029c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003346200032e6200032884620002ff565b62000309565b620002ff565b9050919050565b6000819050919050565b620003508362000313565b620003686200035f826200033b565b848454620002a9565b825550505050565b600090565b6200037f62000370565b6200038c81848462000345565b505050565b5b81811015620003b457620003a860008262000375565b60018101905062000392565b5050565b601f8211156200040357620003cd8162000277565b620003d8846200028c565b81016020851015620003e8578190505b62000400620003f7856200028c565b83018262000391565b50505b505050565b600082821c905092915050565b6000620004286000198460080262000408565b1980831691505092915050565b600062000443838362000415565b9150826002028217905092915050565b6200045e82620001d9565b67ffffffffffffffff8111156200047a5762000479620001e4565b5b62000486825462000242565b62000493828285620003b8565b600060209050601f831160018114620004cb5760008415620004b6578287015190505b620004c2858262000435565b86555062000532565b601f198416620004db8662000277565b60005b828110156200050557848901518255600182019150602085019450602081019050620004de565b8683101562000525578489015162000521601f89168262000415565b8355505b6001600288020188555050505b505050505050565b613748806200054a6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638da5cb5b116100c3578063c87b56dd1161007c578063c87b56dd14610372578063e985e9c5146103a2578063eacabe14146103d2578063f2fde38b14610402578063f345cae31461041e578063f3b1633d1461043c5761014d565b80638da5cb5b146102c657806394ab67fe146102e457806395d89b4114610300578063a22cb4651461031e578063b88d4fde1461033a578063c4d66de8146103565761014d565b80632724d591116101155780632724d5911461020857806342842e0e1461022457806342966c68146102405780636352211e1461025c57806370a082311461028c578063715018a6146102bc5761014d565b806301ffc9a71461015257806306fdde0314610182578063081812fc146101a0578063095ea7b3146101d057806323b872dd146101ec575b600080fd5b61016c600480360381019061016791906122b5565b61045a565b60405161017991906122fd565b60405180910390f35b61018a6104bb565b60405161019791906123a8565b60405180910390f35b6101ba60048036038101906101b59190612400565b61054d565b6040516101c7919061246e565b60405180910390f35b6101ea60048036038101906101e591906124b5565b610593565b005b610206600480360381019061020191906124f5565b6106aa565b005b610222600480360381019061021d9190612548565b61070a565b005b61023e600480360381019061023991906124f5565b61071e565b005b61025a60048036038101906102559190612400565b61073e565b005b61027660048036038101906102719190612400565b6107c0565b604051610283919061246e565b60405180910390f35b6102a660048036038101906102a19190612548565b610846565b6040516102b39190612584565b60405180910390f35b6102c46108fd565b005b6102ce610911565b6040516102db919061246e565b60405180910390f35b6102fe60048036038101906102f991906124b5565b61093b565b005b6103086109c0565b60405161031591906123a8565b60405180910390f35b610338600480360381019061033391906125cb565b610a52565b005b610354600480360381019061034f9190612740565b610a68565b005b610370600480360381019061036b9190612548565b610aca565b005b61038c60048036038101906103879190612400565b610ba6565b60405161039991906123a8565b60405180910390f35b6103bc60048036038101906103b791906127c3565b610cb8565b6040516103c991906122fd565b60405180910390f35b6103ec60048036038101906103e791906128a4565b610d4c565b6040516103f99190612584565b60405180910390f35b61041c60048036038101906104179190612548565b610e14565b005b610426610e97565b604051610433919061246e565b60405180910390f35b610444610ebd565b60405161045191906129be565b60405180910390f35b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104b457506104b382610fa0565b5b9050919050565b6060600080546104ca90612a0f565b80601f01602080910402602001604051908101604052809291908181526020018280546104f690612a0f565b80156105435780601f1061051857610100808354040283529160200191610543565b820191906000526020600020905b81548152906001019060200180831161052657829003601f168201915b5050505050905090565b600061055882611082565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061059e826107c0565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361060e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060590612ab2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661062d6110cd565b73ffffffffffffffffffffffffffffffffffffffff16148061065c575061065b816106566110cd565b610cb8565b5b61069b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069290612b44565b60405180910390fd5b6106a583836110d5565b505050565b6106bb6106b56110cd565b8261118e565b6106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f190612bd6565b60405180910390fd5b610705838383611223565b505050565b61071261151c565b61071b81610e14565b50565b61073983838360405180602001604052806000815250610a68565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1661075e826107c0565b73ffffffffffffffffffffffffffffffffffffffff16146107b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ab90612c68565b60405180910390fd5b6107bd8161159a565b50565b6000806107cc836115ed565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083490612cd4565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ad90612d66565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090561151c565b61090f600061162a565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1661095b826107c0565b73ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a890612c68565b60405180910390fd5b6109bc33838361071e565b5050565b6060600180546109cf90612a0f565b80601f01602080910402602001604051908101604052809291908181526020018280546109fb90612a0f565b8015610a485780601f10610a1d57610100808354040283529160200191610a48565b820191906000526020600020905b815481529060010190602001808311610a2b57829003601f168201915b5050505050905090565b610a64610a5d6110cd565b83836116f0565b5050565b610a79610a736110cd565b8361118e565b610ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaf90612bd6565b60405180910390fd5b610ac48484848461185c565b50505050565b610ad261151c565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5990612dd2565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060610bb182611082565b6000600660008481526020019081526020016000208054610bd190612a0f565b80601f0160208091040260200160405190810160405280929190818152602001828054610bfd90612a0f565b8015610c4a5780601f10610c1f57610100808354040283529160200191610c4a565b820191906000526020600020905b815481529060010190602001808311610c2d57829003601f168201915b505050505090506000610c5b6118b8565b90506000815103610c70578192505050610cb3565b600082511115610ca5578082604051602001610c8d929190612e2e565b60405160208183030381529060405292505050610cb3565b610cae846118cf565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd590612dd2565b60405180910390fd5b610de86008611937565b6000610df4600861194d565b9050610e00848261195b565b610e0a8184611b78565b8091505092915050565b610e1c61151c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8290612ec4565b60405180910390fd5b610e948161162a565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000610ecb600861194d565b67ffffffffffffffff811115610ee457610ee3612615565b5b604051908082528060200260200182016040528015610f125781602001602082028036833780820191505090505b50905060005b610f22600861194d565b811015610f98573373ffffffffffffffffffffffffffffffffffffffff16610f49826107c0565b73ffffffffffffffffffffffffffffffffffffffff1603610f855780828281518110610f7857610f77612ee4565b5b6020026020010181815250505b8080610f9090612f42565b915050610f18565b508091505090565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061106b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061107b575061107a82611c1c565b5b9050919050565b61108b81611c86565b6110ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c190612cd4565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611148836107c0565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061119a836107c0565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111dc57506111db8185610cb8565b5b8061121a57508373ffffffffffffffffffffffffffffffffffffffff166112028461054d565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611243826107c0565b73ffffffffffffffffffffffffffffffffffffffff1614611299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129090612ffc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff9061308e565b60405180910390fd5b6113158383836001611cc7565b8273ffffffffffffffffffffffffffffffffffffffff16611335826107c0565b73ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612ffc565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46115178383836001611ccd565b505050565b6115246110cd565b73ffffffffffffffffffffffffffffffffffffffff16611542610911565b73ffffffffffffffffffffffffffffffffffffffff1614611598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158f906130fa565b60405180910390fd5b565b6115a381611cd3565b60006006600083815260200190815260200160002080546115c390612a0f565b9050146115ea576006600082815260200190815260200160002060006115e991906121ec565b5b50565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590613166565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161184f91906122fd565b60405180910390a3505050565b611867848484611223565b61187384848484611e21565b6118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a9906131f8565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606118da82611082565b60006118e46118b8565b90506000815111611904576040518060200160405280600081525061192f565b8061190e84611fa8565b60405160200161191f929190612e2e565b6040516020818303038152906040525b915050919050565b6001816000016000828254019250508190555050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613264565b60405180910390fd5b6119d381611c86565b15611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a906132d0565b60405180910390fd5b611a21600083836001611cc7565b611a2a81611c86565b15611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a61906132d0565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611b74600083836001611ccd565b5050565b611b8182611c86565b611bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb790613362565b60405180910390fd5b80600660008481526020019081526020016000209081611be0919061352e565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051611c109190612584565b60405180910390a15050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16611ca8836115ed565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b6000611cde826107c0565b9050611cee816000846001611cc7565b611cf7826107c0565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611e1d816000846001611ccd565b5050565b6000611e428473ffffffffffffffffffffffffffffffffffffffff16612076565b15611f9b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611e6b6110cd565b8786866040518563ffffffff1660e01b8152600401611e8d9493929190613655565b6020604051808303816000875af1925050508015611ec957506040513d601f19601f82011682018060405250810190611ec691906136b6565b60015b611f4b573d8060008114611ef9576040519150601f19603f3d011682016040523d82523d6000602084013e611efe565b606091505b506000815103611f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3a906131f8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611fa0565b600190505b949350505050565b606060006001611fb784612099565b01905060008167ffffffffffffffff811115611fd657611fd5612615565b5b6040519080825280601f01601f1916602001820160405280156120085781602001600182028036833780820191505090505b509050600082602001820190505b60011561206b578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161205f5761205e6136e3565b5b04945060008503612016575b819350505050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106120f7577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816120ed576120ec6136e3565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612134576d04ee2d6d415b85acef8100000000838161212a576121296136e3565b5b0492506020810190505b662386f26fc10000831061216357662386f26fc100008381612159576121586136e3565b5b0492506010810190505b6305f5e100831061218c576305f5e1008381612182576121816136e3565b5b0492506008810190505b61271083106121b15761271083816121a7576121a66136e3565b5b0492506004810190505b606483106121d457606483816121ca576121c96136e3565b5b0492506002810190505b600a83106121e3576001810190505b80915050919050565b5080546121f890612a0f565b6000825580601f1061220a5750612229565b601f016020900490600052602060002090810190612228919061222c565b5b50565b5b8082111561224557600081600090555060010161222d565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122928161225d565b811461229d57600080fd5b50565b6000813590506122af81612289565b92915050565b6000602082840312156122cb576122ca612253565b5b60006122d9848285016122a0565b91505092915050565b60008115159050919050565b6122f7816122e2565b82525050565b600060208201905061231260008301846122ee565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612352578082015181840152602081019050612337565b60008484015250505050565b6000601f19601f8301169050919050565b600061237a82612318565b6123848185612323565b9350612394818560208601612334565b61239d8161235e565b840191505092915050565b600060208201905081810360008301526123c2818461236f565b905092915050565b6000819050919050565b6123dd816123ca565b81146123e857600080fd5b50565b6000813590506123fa816123d4565b92915050565b60006020828403121561241657612415612253565b5b6000612424848285016123eb565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124588261242d565b9050919050565b6124688161244d565b82525050565b6000602082019050612483600083018461245f565b92915050565b6124928161244d565b811461249d57600080fd5b50565b6000813590506124af81612489565b92915050565b600080604083850312156124cc576124cb612253565b5b60006124da858286016124a0565b92505060206124eb858286016123eb565b9150509250929050565b60008060006060848603121561250e5761250d612253565b5b600061251c868287016124a0565b935050602061252d868287016124a0565b925050604061253e868287016123eb565b9150509250925092565b60006020828403121561255e5761255d612253565b5b600061256c848285016124a0565b91505092915050565b61257e816123ca565b82525050565b60006020820190506125996000830184612575565b92915050565b6125a8816122e2565b81146125b357600080fd5b50565b6000813590506125c58161259f565b92915050565b600080604083850312156125e2576125e1612253565b5b60006125f0858286016124a0565b9250506020612601858286016125b6565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61264d8261235e565b810181811067ffffffffffffffff8211171561266c5761266b612615565b5b80604052505050565b600061267f612249565b905061268b8282612644565b919050565b600067ffffffffffffffff8211156126ab576126aa612615565b5b6126b48261235e565b9050602081019050919050565b82818337600083830152505050565b60006126e36126de84612690565b612675565b9050828152602081018484840111156126ff576126fe612610565b5b61270a8482856126c1565b509392505050565b600082601f8301126127275761272661260b565b5b81356127378482602086016126d0565b91505092915050565b6000806000806080858703121561275a57612759612253565b5b6000612768878288016124a0565b9450506020612779878288016124a0565b935050604061278a878288016123eb565b925050606085013567ffffffffffffffff8111156127ab576127aa612258565b5b6127b787828801612712565b91505092959194509250565b600080604083850312156127da576127d9612253565b5b60006127e8858286016124a0565b92505060206127f9858286016124a0565b9150509250929050565b600067ffffffffffffffff82111561281e5761281d612615565b5b6128278261235e565b9050602081019050919050565b600061284761284284612803565b612675565b90508281526020810184848401111561286357612862612610565b5b61286e8482856126c1565b509392505050565b600082601f83011261288b5761288a61260b565b5b813561289b848260208601612834565b91505092915050565b600080604083850312156128bb576128ba612253565b5b60006128c9858286016124a0565b925050602083013567ffffffffffffffff8111156128ea576128e9612258565b5b6128f685828601612876565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612935816123ca565b82525050565b6000612947838361292c565b60208301905092915050565b6000602082019050919050565b600061296b82612900565b612975818561290b565b93506129808361291c565b8060005b838110156129b1578151612998888261293b565b97506129a383612953565b925050600181019050612984565b5085935050505092915050565b600060208201905081810360008301526129d88184612960565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a2757607f821691505b602082108103612a3a57612a396129e0565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a9c602183612323565b9150612aa782612a40565b604082019050919050565b60006020820190508181036000830152612acb81612a8f565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612b2e603d83612323565b9150612b3982612ad2565b604082019050919050565b60006020820190508181036000830152612b5d81612b21565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612bc0602d83612323565b9150612bcb82612b64565b604082019050919050565b60006020820190508181036000830152612bef81612bb3565b9050919050565b7f596f7520617265206e6f7420746865206f776e6572206f662074686973204e4660008201527f5400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c52602183612323565b9150612c5d82612bf6565b604082019050919050565b60006020820190508181036000830152612c8181612c45565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612cbe601883612323565b9150612cc982612c88565b602082019050919050565b60006020820190508181036000830152612ced81612cb1565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612d50602983612323565b9150612d5b82612cf4565b604082019050919050565b60006020820190508181036000830152612d7f81612d43565b9050919050565b7f596f7520617265206e6f742074686520466163746f7279546f6b656e00000000600082015250565b6000612dbc601c83612323565b9150612dc782612d86565b602082019050919050565b60006020820190508181036000830152612deb81612daf565b9050919050565b600081905092915050565b6000612e0882612318565b612e128185612df2565b9350612e22818560208601612334565b80840191505092915050565b6000612e3a8285612dfd565b9150612e468284612dfd565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612eae602683612323565b9150612eb982612e52565b604082019050919050565b60006020820190508181036000830152612edd81612ea1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f4d826123ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f7f57612f7e612f13565b5b600182019050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000612fe6602583612323565b9150612ff182612f8a565b604082019050919050565b6000602082019050818103600083015261301581612fd9565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613078602483612323565b91506130838261301c565b604082019050919050565b600060208201905081810360008301526130a78161306b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130e4602083612323565b91506130ef826130ae565b602082019050919050565b60006020820190508181036000830152613113816130d7565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613150601983612323565b915061315b8261311a565b602082019050919050565b6000602082019050818103600083015261317f81613143565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006131e2603283612323565b91506131ed82613186565b604082019050919050565b60006020820190508181036000830152613211816131d5565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061324e602083612323565b915061325982613218565b602082019050919050565b6000602082019050818103600083015261327d81613241565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006132ba601c83612323565b91506132c582613284565b602082019050919050565b600060208201905081810360008301526132e9816132ad565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b600061334c602e83612323565b9150613357826132f0565b604082019050919050565b6000602082019050818103600083015261337b8161333f565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026133e47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826133a7565b6133ee86836133a7565b95508019841693508086168417925050509392505050565b6000819050919050565b600061342b613426613421846123ca565b613406565b6123ca565b9050919050565b6000819050919050565b61344583613410565b61345961345182613432565b8484546133b4565b825550505050565b600090565b61346e613461565b61347981848461343c565b505050565b5b8181101561349d57613492600082613466565b60018101905061347f565b5050565b601f8211156134e2576134b381613382565b6134bc84613397565b810160208510156134cb578190505b6134df6134d785613397565b83018261347e565b50505b505050565b600082821c905092915050565b6000613505600019846008026134e7565b1980831691505092915050565b600061351e83836134f4565b9150826002028217905092915050565b61353782612318565b67ffffffffffffffff8111156135505761354f612615565b5b61355a8254612a0f565b6135658282856134a1565b600060209050601f8311600181146135985760008415613586578287015190505b6135908582613512565b8655506135f8565b601f1984166135a686613382565b60005b828110156135ce578489015182556001820191506020850194506020810190506135a9565b868310156135eb57848901516135e7601f8916826134f4565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b600082825260208201905092915050565b600061362782613600565b613631818561360b565b9350613641818560208601612334565b61364a8161235e565b840191505092915050565b600060808201905061366a600083018761245f565b613677602083018661245f565b6136846040830185612575565b8181036060830152613696818461361c565b905095945050505050565b6000815190506136b081612289565b92915050565b6000602082840312156136cc576136cb612253565b5b60006136da848285016136a1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea264697066735822122097f1fe2ca32c1f683a6ab97b9f24f6d3579c6e8f995d1b821c3deb9b6cdd40fd64736f6c63430008120033