0x6080604052600436106102005763ffffffff60e060020a6000350416630a72b1ab811461025c5780630ec61b791461027e578063150b7a02146102b4578063213a2596146102e1578063257011b6146103015780632b26a6bf14610314578063361b31bf14610334578063392a62b91461036157806341ff1bcc1461038e5780634cc7125b146103a15780634fb2e45d146103c157806350cc6707146103e1578063536686a91461040157806354c0de4a146104215780635c60da1b14610441578063704b6c0214610463578063715018a614610483578063715f250c1461049857806373e29b0d146104b857806373fa58f5146104de57806379ba5097146104fe5780638061babf146105135780638da5cb5b146105335780639011691614610548578063926731ea14610575578063a3d1e38114610595578063a6f9dae1146105b5578063a8b38205146105d5578063b179e1e7146105ea578063b64ed6db146105ff578063b9b8af0b14610612578063bbf485ab14610634578063bc197c8114610654578063be5212a814610674578063d4ee1d9014610694578063d52012bc146106a9578063e02dee8c146106c9578063e7c00f6e146106dc578063e92e2c1b146106f1578063ed8d47e614610706578063f0baef5214610726578063f23a6e6114610746578063f495438714610766578063f851a44014610786575b601554600160a060020a03168015156102375760405160e560020a62461bcd02815260040161022e90614721565b60405180910390fd5b60405136600082376000803683855af43d806000843e818015610258578184f35b8184fd5b34801561026857600080fd5b5061027c6102773660046132ae565b61079b565b005b34801561028a57600080fd5b5061029e610299366004613dd7565b61087d565b6040516102ab91906148cf565b60405180910390f35b3480156102c057600080fd5b506102d46102cf3660046133d3565b6108c8565b6040516102ab91906146f3565b3480156102ed57600080fd5b5061027c6102fc366004613589565b6108f1565b61027c61030f366004613a4e565b6109f1565b34801561032057600080fd5b5061027c61032f3660046135fa565b610c13565b34801561034057600080fd5b5061035461034f36600461351f565b610c45565b6040516102ab91906146b5565b34801561036d57600080fd5b5061038161037c3660046135fa565b610d92565b6040516102ab91906146e5565b61027c61039c366004613acc565b610da4565b3480156103ad57600080fd5b5061027c6103bc366004613c8f565b610feb565b3480156103cd57600080fd5b5061027c6103dc366004613288565b611090565b3480156103ed57600080fd5b5061027c6103fc36600461387b565b611161565b34801561040d57600080fd5b5061027c61041c3660046134dd565b6113f8565b34801561042d57600080fd5b5061027c61043c366004613df5565b611575565b34801561044d57600080fd5b5061045661162d565b6040516102ab919061465b565b34801561046f57600080fd5b5061027c61047e366004613288565b61163d565b34801561048f57600080fd5b5061027c6116d2565b3480156104a457600080fd5b506103816104b33660046135fa565b611724565b3480156104c457600080fd5b506104cd611736565b6040516102ab959493929190614669565b3480156104ea57600080fd5b5061027c6104f936600461387b565b611761565b34801561050a57600080fd5b5061027c6118b5565b34801561051f57600080fd5b5061038161052e366004613d78565b611901565b34801561053f57600080fd5b5061045661191d565b34801561055457600080fd5b506105686105633660046134dd565b611931565b6040516102ab91906146c6565b34801561058157600080fd5b5061027c610590366004613cff565b6119bf565b3480156105a157600080fd5b5061027c6105b0366004613636565b611a67565b3480156105c157600080fd5b5061027c6105d0366004613288565b611c52565b3480156105e157600080fd5b50610381611cb3565b3480156105f657600080fd5b50610381611cb9565b61027c61060d366004613a19565b611cbf565b34801561061e57600080fd5b50610627611f0c565b6040516102ab91906146d7565b34801561064057600080fd5b5061027c61064f366004613742565b611f1c565b34801561066057600080fd5b506102d461066f366004613323565b612101565b34801561068057600080fd5b5061038161068f366004613e13565b61212b565b3480156106a057600080fd5b506104566121ef565b3480156106b557600080fd5b5061027c6106c4366004613554565b6121fe565b61027c6106d736600461394a565b6123e4565b3480156106e857600080fd5b50610381612614565b3480156106fd57600080fd5b50610381612630565b34801561071257600080fd5b5061027c6107213660046135fa565b612636565b34801561073257600080fd5b5061027c610741366004613e13565b612675565b34801561075257600080fd5b506102d461076136600461344c565b6126f1565b34801561077257600080fd5b5061027c6107813660046135be565b61271b565b34801561079257600080fd5b5061045661277c565b6013546101009004600160a060020a031633146107cd5760405160e560020a62461bcd02815260040161022e90614771565b600160a060020a038516158015906107ed5750600160a060020a03841615155b80156108015750600160a060020a03811615155b15156108225760405160e560020a62461bcd02815260040161022e90614711565b600b805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a0396871617909155600a8054821696861696909617909555600c805486169385169390931790925550600d80549093169116179055565b610885612c50565b81516000908152600f6020908152604080832082860180518552908352818420548552945183526010825280832094518352938152929020549181019190915290565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b601754600090600160a060020a031633146109215760405160e560020a62461bcd02815260040161022e906147a1565b5060005b81518110156109ed57818181518110151561093c57fe5b906020019060200201516020015160186000848481518110151561095c57fe5b602090810290910181015151825281019190915260400160002055815182908290811061098557fe5b90602001906020020151600001517fdfa3e1a2556a2caf7af0a1cb98a9eed056ae433c4e109e3398edff9863d45bf583838151811015156109c257fe5b90602001906020020151602001516040516109dd91906146e5565b60405180910390a2600101610925565b5050565b60006109fb612c67565b60145460a060020a900460ff1615610a285760405160e560020a62461bcd02815260040161022e90614741565b600b5460405160e160020a634af46b45028152889160009182918291600160a060020a03909116906395e8d68a90610a649087906004016146e5565b606060405180830381600087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ab69190810190613e43565b9194509250905060ff83166005148015610ad05750814210155b8015610adc5750804211155b1515610afd5760405160e560020a62461bcd02815260040161022e90614791565b610b0561278b565b6040805160e0810182528d815260208082018e90528183018d9052601654606083015260008e8152601882528390205460808301528251601f8c018290048202810182019093528a83529298509160a0830191908b908b9081908401838280828437505050928452505050600160a060020a0388166020909101526040517fbbb71abb00000000000000000000000000000000000000000000000000000000815290955073990825c5d894385f1c5bd36b6427c5336d984e079063bbb71abb90610bd690600590899060040161486d565b60006040518083038186803b158015610bee57600080fd5b505af4158015610c02573d6000803e3d6000fd5b505050505050505050505050505050565b601754600160a060020a03163314610c405760405160e560020a62461bcd02815260040161022e906147a1565b601955565b606060008251604051908082528060200260200182016040528015610c8457816020015b610c71612c50565b815260200190600190039081610c695790505b509150600090505b8251811015610d8c576005600a0160008483815181101515610caa57fe5b9060200190602002015160000151815260200190815260200160002060008483815181101515610cd657fe5b90602001906020020151602001518152602001908152602001600020548282815181101515610d0157fe5b60209081029091010151528251601090600090859084908110610d2057fe5b9060200190602002015160000151815260200190815260200160002060008483815181101515610d4c57fe5b90602001906020020151602001518152602001908152602001600020548282815181101515610d7757fe5b60209081029091018101510152600101610c8c565b50919050565b60009081526018602052604090205490565b6000610dae612cb1565b60145460a060020a900460ff1615610ddb5760405160e560020a62461bcd02815260040161022e90614741565b600b5460405160e160020a634af46b450281528a9160009182918291600160a060020a03909116906395e8d68a90610e179087906004016146e5565b606060405180830381600087803b158015610e3157600080fd5b505af1158015610e45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e699190810190613e43565b9194509250905060ff83166005148015610e835750814210155b8015610e8f5750804211155b1515610eb05760405160e560020a62461bcd02815260040161022e90614791565b610eb861278b565b9550610120604051908101604052808e6000191681526020018d81526020018c815260200160165481526020018b8152602001601860008f81526020019081526020016000205481526020018a600160a060020a0316815260200189898080601f016020809104026020016040519081016040528093929190818152602001838380828437505050928452505050600160a060020a0388166020909101526040517f0f9a9c9a00000000000000000000000000000000000000000000000000000000815290955073990825c5d894385f1c5bd36b6427c5336d984e0790630f9a9c9a90610fac90600590899060040161482d565b60006040518083038186803b158015610fc457600080fd5b505af4158015610fd8573d6000803e3d6000fd5b5050505050505050505050505050505050565b601754600160a060020a031633146110185760405160e560020a62461bcd02815260040161022e906147a1565b61108a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8a0181900481028201810190925288815294508893508792508291508401838280828437506000969594505063ffffffff6127be1692505050565b50505050565b6013546101009004600160a060020a031633146110c25760405160e560020a62461bcd02815260040161022e90614771565b600160a060020a03811615156110ed5760405160e560020a62461bcd02815260040161022e90614731565b601354604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360138054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6000606061116d612d13565b60145460009060a060020a900460ff161561119d5760405160e560020a62461bcd02815260040161022e90614741565b6111a68d612884565b8094508195505050610100604051908101604052808f6000191681526020018e6000191681526020018d81526020018c81526020018b81526020018a600160a060020a0316815260200189600160a060020a031681526020016000600160a060020a0316600560070160009054906101000a9004600160a060020a0316600160a060020a03161461124257600c54600160a060020a0316611254565b6013546101009004600160a060020a03165b600160a060020a031690526040517fb3f78be000000000000000000000000000000000000000000000000000000000815290925073990825c5d894385f1c5bd36b6427c5336d984e079063b3f78be0906112b59060059086906004016147d1565b60006040518083038186803b1580156112cd57600080fd5b505af41580156112e1573d6000803e3d6000fd5b5050505060026016548f8e8e8e8e8e6040516020016113069796959493929190614a3b565b6040516020818303038152906040526040518082805190602001908083835b602083106113445780518252601f199092019160209182019101611325565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015611385573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506113a89190810190613618565b90506113e88482858a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437508e94506129939350505050565b5050505050505050505050505050565b600c546000908190600160a060020a031681811515611425576013546101009004600160a060020a031691505b600160a060020a03821615156114505760405160e560020a62461bcd02815260040161022e90614781565b5060005b8481101561152c57600e600087878481811061146c57fe5b602090810292909201358352508101919091526040016000908120549350600e9087878481811061149957fe5b602090810292909201358352508101919091526040016000908120556114c5848463ffffffff612a9e16565b9350600160a060020a038216428787848181106114de57fe5b9050602002013560001916600019167ff12b3f379096849c585fc75843457b18f02c980d39f9462c0ccefc992f2cb87b8660405161151c91906146e5565b60405180910390a4600101611454565b600084111561156d57604051600160a060020a0383169085156108fc029086906000818181858888f1935050505015801561156b573d6000803e3d6000fd5b505b505050505050565b601754600160a060020a031633146115a25760405160e560020a62461bcd02815260040161022e906147a1565b6040808201805183516000908152600f6020908152848220818701805184529082528583209390935560608601805187518452601083528684208551855290925291859020559051845192519151935190937f2c40e30353ae48a032fd20f1fece20031c1b80a2bc8512a2c172ff4de2e595199261162292909190614a8a565b60405180910390a350565b601554600160a060020a03165b90565b6013546101009004600160a060020a0316331461166f5760405160e560020a62461bcd02815260040161022e90614771565b6017805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790556040517f5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a1906116c790839061465b565b60405180910390a150565b6013546101009004600160a060020a031633146117045760405160e560020a62461bcd02815260040161022e90614771565b6013805474ffffffffffffffffffffffffffffffffffffffff0019169055565b6000908152600e602052604090205490565b600a54600b54600c54600954600d54600160a060020a03948516959385169492831693918316921690565b6000606061176d612d13565b60145460009060a060020a900460ff161561179d5760405160e560020a62461bcd02815260040161022e90614741565b6117a68d612884565b8094508195505050610100604051908101604052808f6000191681526020018e6000191681526020018d81526020018c81526020018b81526020018a600160a060020a0316815260200189600160a060020a031681526020016000600160a060020a0316600560070160009054906101000a9004600160a060020a0316600160a060020a03161461184257600c54600160a060020a0316611854565b6013546101009004600160a060020a03165b600160a060020a031690526040517f60b10a2900000000000000000000000000000000000000000000000000000000815290925073990825c5d894385f1c5bd36b6427c5336d984e07906360b10a29906112b59060059086906004016147d1565b601454600160a060020a03163314156118ff5760145460138054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555b565b600061191481848463ffffffff612ab716565b90505b92915050565b6013546101009004600160a060020a031681565b6060600083839050604051908082528060200260200182016040528015611962578160200160208202803883390190505b509150600090505b828110156119b8576018600085858481811061198257fe5b9050602002013581526020019081526020016000205482828151811015156119a657fe5b6020908102909101015260010161196a565b5092915050565b601754600160a060020a031633146119ec5760405160e560020a62461bcd02815260040161022e906147a1565b611a6085858080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8b0181900481028201810190925289815294508993508892508291508401838280828437506000969594508893505063ffffffff612b8016915050565b5050505050565b60006060611a73612d57565b60145460009060a060020a900460ff1615611aa35760405160e560020a62461bcd02815260040161022e90614741565b611aac8c612884565b809450819550505060e0604051908101604052808e6000191681526020018d6000191681526020018c81526020018b81526020018a815260200189600160a060020a0316815260200188600160a060020a03168152509150736a60b5099b68ac80b28f44eb30894c7d165a72f663972c12ea6005846040518363ffffffff1660e060020a028152600401611b419291906147ed565b60006040518083038186803b158015611b5957600080fd5b505af4158015611b6d573d6000803e3d6000fd5b5050505060026016548e8d8d8d8d8d604051602001611b929796959493929190614945565b6040516020818303038152906040526040518082805190602001908083835b60208310611bd05780518252601f199092019160209182019101611bb1565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015611c11573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250611c349190810190613618565b9050611c438482858989612993565b50505050505050505050505050565b6013546101009004600160a060020a03163314611c845760405160e560020a62461bcd02815260040161022e90614771565b6014805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60115481565b60165481565b611cc7612d92565b60145460a060020a900460ff1615611cf45760405160e560020a62461bcd02815260040161022e90614741565b600b5460405160e160020a634af46b45028152879160009182918291600160a060020a03909116906395e8d68a90611d309087906004016146e5565b606060405180830381600087803b158015611d4a57600080fd5b505af1158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d829190810190613e43565b9194509250905060ff83166005148015611d9c5750814210155b8015611da85750804211155b1515611dc95760405160e560020a62461bcd02815260040161022e90614791565b60008851118015611de25750611ddd612614565b885111155b1515611e035760405160e560020a62461bcd02815260040161022e90614701565b8651885114611e275760405160e560020a62461bcd02815260040161022e90614761565b610100604051908101604052808b6000191681526020018a81526020018981526020018881526020016016548152602001601860008c8152602001908152602001600020548152602001878152602001611e7f61278b565b600160a060020a031690526040517f3b737991000000000000000000000000000000000000000000000000000000008152909550736a60b5099b68ac80b28f44eb30894c7d165a72f690633b73799190611ee090600590899060040161484d565b60006040518083038186803b158015611ef857600080fd5b505af41580156113e8573d6000803e3d6000fd5b60145460a060020a900460ff1681565b60006060611f28612de4565b60145460009060a060020a900460ff1615611f585760405160e560020a62461bcd02815260040161022e90614741565b611f618d612884565b8094508195505050610100604051908101604052808f6000191681526020018e6000191681526020018d81526020018c81526020018b81526020018a815260200189600160a060020a0316815260200188600160a060020a03168152509150736a60b5099b68ac80b28f44eb30894c7d165a72f663dbd9a2b56005846040518363ffffffff1660e060020a028152600401611ffd9291906147b1565b60006040518083038186803b15801561201557600080fd5b505af4158015612029573d6000803e3d6000fd5b5050505060026016548f8e8e8e8e8e8e6040516020016120509897969594939291906149af565b6040516020818303038152906040526040518082805190602001908083835b6020831061208e5780518252601f19909201916020918201910161206f565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af11580156120cf573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506120f29190810190613618565b90506113e88482858989612993565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b6000828152601860205260408082205460165491517fc921ea930000000000000000000000000000000000000000000000000000000081528392736a60b5099b68ac80b28f44eb30894c7d165a72f69263c921ea9392612197926005928a929091908a9060040161488d565b604080518083038186803b1580156121ae57600080fd5b505af41580156121c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121e691908101906134a3565b95945050505050565b601454600160a060020a031681565b601754600090600160a060020a0316331461222e5760405160e560020a62461bcd02815260040161022e906147a1565b5060005b81518110156109ed57818181518110151561224957fe5b90602001906020020151604001516005600a016000848481518110151561226c57fe5b906020019060200201516000015181526020019081526020016000206000848481518110151561229857fe5b906020019060200201516020015181526020019081526020016000208190555081818151811015156122c657fe5b90602001906020020151606001516005600b01600084848151811015156122e957fe5b906020019060200201516000015181526020019081526020016000206000848481518110151561231557fe5b9060200190602002015160200151815260200190815260200160002081905550818181518110151561234357fe5b9060200190602002015160200151828281518110151561235f57fe5b90602001906020020151600001517f2c40e30353ae48a032fd20f1fece20031c1b80a2bc8512a2c172ff4de2e59519848481518110151561239c57fe5b906020019060200201516040015185858151811015156123b857fe5b90602001906020020151606001516040516123d4929190614a8a565b60405180910390a3600101612232565b6123ec612e27565b60145460a060020a900460ff16156124195760405160e560020a62461bcd02815260040161022e90614741565b600b5460405160e160020a634af46b45028152889160009182918291600160a060020a03909116906395e8d68a906124559087906004016146e5565b606060405180830381600087803b15801561246f57600080fd5b505af1158015612483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124a79190810190613e43565b9194509250905060ff831660051480156124c15750814210155b80156124cd5750804211155b15156124ee5760405160e560020a62461bcd02815260040161022e90614791565b600089511180156125075750612502612614565b895111155b15156125285760405160e560020a62461bcd02815260040161022e90614701565b875189511461254c5760405160e560020a62461bcd02815260040161022e90614761565b610120604051908101604052808c6000191681526020018b81526020018a81526020018981526020016016548152602001601860008d815260200190815260200160002054815260200188600160a060020a031681526020018781526020016125b361278b565b600160a060020a031690526040517f06528fbc000000000000000000000000000000000000000000000000000000008152909550736a60b5099b68ac80b28f44eb30894c7d165a72f6906306528fbc90610bd690600590899060040161480d565b6000601954600014156126295750601461163a565b5060195490565b60125481565b601754600160a060020a031633146126635760405160e560020a62461bcd02815260040161022e906147a1565b60165415156126725760168190555b50565b601754600160a060020a031633146126a25760405160e560020a62461bcd02815260040161022e906147a1565b600082815260186020526040908190208290555182907fdfa3e1a2556a2caf7af0a1cb98a9eed056ae433c4e109e3398edff9863d45bf5906126e59084906146e5565b60405180910390a25050565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b6013546101009004600160a060020a0316331461274d5760405160e560020a62461bcd02815260040161022e90614771565b6014805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b601754600160a060020a031681565b600c54600090600160a060020a031680156127a657806127b8565b6013546101009004600160a060020a03165b91505090565b82600001826040518082805190602001908083835b602083106127f25780518252601f1990920191602091820191016127d3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842085519094869450925082918401908083835b6020831061284e5780518252601f19909201916020918201910161282f565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220600090555050505050565b600b546040517f44cefb69000000000000000000000000000000000000000000000000000000008152600091606091839182918291600160a060020a0316906344cefb69906128d79089906004016146e5565b600060405180830381600087803b1580156128f157600080fd5b505af1158015612905573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261292d9190810190613b71565b949e50919c50969a5098509096506005955061294a945050505050565b60ff168360ff1614801561295e5750814210155b801561296a5750804211155b151561298b5760405160e560020a62461bcd02815260040161022e90614791565b505050915091565b6000806000806129a4876000612c48565b93506129b1876020612c48565b92506129be866000612c48565b91506129cb866020612c48565b9050600560080160009054906101000a9004600160a060020a0316600160a060020a0316634587b7b48a87878787878f6040518863ffffffff1660e060020a028152600401612a2097969594939291906148dd565b602060405180830381600087803b158015612a3a57600080fd5b505af1158015612a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a7291908101906135dc565b1515612a935760405160e560020a62461bcd02815260040161022e90614751565b505050505050505050565b600082820183811015612ab057600080fd5b9392505050565b600083600001836040518082805190602001908083835b60208310612aed5780518252601f199092019160209182019101612ace565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b60208310612b495780518252601f199092019160209182019101612b2a565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054925050509392505050565b8084600001846040518082805190602001908083835b60208310612bb55780518252601f199092019160209182019101612b96565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842087519094889450925082918401908083835b60208310612c115780518252601f199092019160209182019101612bf2565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092909255505050505050565b016020015190565b604080518082019091526000808252602082015290565b60e0604051908101604052806000801916815260200160008152602001600081526020016000815260200160008152602001606081526020016000600160a060020a031681525090565b610120604051908101604052806000801916815260200160008152602001600081526020016000815260200160008152602001600081526020016000600160a060020a03168152602001606081526020016000600160a060020a031681525090565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b6040805160e0810182526000808252602082018190529181018290526060808201819052608082015260a0810182905260c081019190915290565b61010060405190810160405280600080191681526020016000815260200160608152602001606081526020016000815260200160008152602001606081526020016000600160a060020a031681525090565b604080516101008101825260008082526020820181905291810182905260608082018190526080820181905260a082015260c0810182905260e081019190915290565b610120604051908101604052806000801916815260200160008152602001606081526020016060815260200160008152602001600081526020016000600160a060020a03168152602001606081526020016000600160a060020a031681525090565b60006119148235614b1f565b60006119148251614b1f565b600080601f83018413612eb357600080fd5b50813567ffffffffffffffff811115612ecb57600080fd5b602083019150836020820283011115612ee357600080fd5b9250929050565b6000601f82018313612efb57600080fd5b8135612f0e612f0982614acc565b614aa5565b91508181835260208401935060208101905083856040840282011115612f3357600080fd5b60005b83811015612f615781612f4988826131c6565b84525060209092019160409190910190600101612f36565b5050505092915050565b6000601f82018313612f7c57600080fd5b8135612f8a612f0982614acc565b91508181835260208401935060208101905083856080840282011115612faf57600080fd5b60005b83811015612f615781612fc5888261320d565b84525060209092019160809190910190600101612fb2565b6000601f82018313612fee57600080fd5b8135612ffc612f0982614acc565b9150818183526020840193506020810190508385604084028201111561302157600080fd5b60005b83811015612f61578161303788826131c6565b84525060209092019160409190910190600101613024565b6000601f8201831361306057600080fd5b813561306e612f0982614acc565b9150818183526020840193506020810190508385602084028201111561309357600080fd5b60005b83811015612f6157816130a988826130d7565b8452506020928301929190910190600101613096565b60006119148235614b2b565b60006119148251614b2b565b6000611914823561163a565b6000611914825161163a565b600080601f8301841361310157600080fd5b50813567ffffffffffffffff81111561311957600080fd5b602083019150836001820283011115612ee357600080fd5b6000601f8201831361314257600080fd5b8135613150612f0982614aed565b9150808252602083016020830185838301111561316c57600080fd5b613177838284614b5b565b50505092915050565b6000601f8201831361319157600080fd5b815161319f612f0982614aed565b915080825260208301602083018583830111156131bb57600080fd5b613177838284614b67565b6000604082840312156131d857600080fd5b6131e26040614aa5565b905060006131f084846130d7565b8252506020613201848483016130d7565b60208301525092915050565b60006080828403121561321f57600080fd5b6132296080614aa5565b9050600061323784846130d7565b8252506020613248848483016130d7565b602083015250604061325c848285016130d7565b6040830152506060613270848285016130d7565b60608301525092915050565b60006119148251614b55565b60006020828403121561329a57600080fd5b60006132a68484612e89565b949350505050565b600080600080600060a086880312156132c657600080fd5b60006132d28888612e89565b95505060206132e388828901612e89565b94505060406132f488828901612e89565b935050606061330588828901612e89565b925050608061331688828901612e89565b9150509295509295909350565b600080600080600060a0868803121561333b57600080fd5b60006133478888612e89565b955050602061335888828901612e89565b945050604086013567ffffffffffffffff81111561337557600080fd5b6133818882890161304f565b935050606086013567ffffffffffffffff81111561339e57600080fd5b6133aa8882890161304f565b925050608086013567ffffffffffffffff8111156133c757600080fd5b61331688828901613131565b600080600080608085870312156133e957600080fd5b60006133f58787612e89565b945050602061340687828801612e89565b9350506040613417878288016130d7565b925050606085013567ffffffffffffffff81111561343457600080fd5b61344087828801613131565b91505092959194509250565b600080600080600060a0868803121561346457600080fd5b60006134708888612e89565b955050602061348188828901612e89565b9450506040613492888289016130d7565b93505060606133aa888289016130d7565b600080604083850312156134b657600080fd5b60006134c28585612e95565b92505060206134d3858286016130e3565b9150509250929050565b600080602083850312156134f057600080fd5b823567ffffffffffffffff81111561350757600080fd5b61351385828601612ea1565b92509250509250929050565b60006020828403121561353157600080fd5b813567ffffffffffffffff81111561354857600080fd5b6132a684828501612eea565b60006020828403121561356657600080fd5b813567ffffffffffffffff81111561357d57600080fd5b6132a684828501612f6b565b60006020828403121561359b57600080fd5b813567ffffffffffffffff8111156135b257600080fd5b6132a684828501612fdd565b6000602082840312156135d057600080fd5b60006132a684846130bf565b6000602082840312156135ee57600080fd5b60006132a684846130cb565b60006020828403121561360c57600080fd5b60006132a684846130d7565b60006020828403121561362a57600080fd5b60006132a684846130e3565b60008060008060008060008060006101208a8c03121561365557600080fd5b60006136618c8c6130d7565b99505060206136728c828d016130d7565b98505060406136838c828d016130d7565b97505060608a013567ffffffffffffffff8111156136a057600080fd5b6136ac8c828d0161304f565b96505060808a013567ffffffffffffffff8111156136c957600080fd5b6136d58c828d0161304f565b95505060a06136e68c828d01612e89565b94505060c06136f78c828d01612e89565b93505060e08a013567ffffffffffffffff81111561371457600080fd5b6137208c828d01613131565b9250506101006137328c828d016130d7565b9150509295985092959850929598565b6000806000806000806000806000806101408b8d03121561376257600080fd5b600061376e8d8d6130d7565b9a5050602061377f8d828e016130d7565b99505060406137908d828e016130d7565b98505060608b013567ffffffffffffffff8111156137ad57600080fd5b6137b98d828e0161304f565b97505060808b013567ffffffffffffffff8111156137d657600080fd5b6137e28d828e0161304f565b96505060a08b013567ffffffffffffffff8111156137ff57600080fd5b61380b8d828e01613131565b95505060c061381c8d828e01612e89565b94505060e061382d8d828e01612e89565b9350506101008b013567ffffffffffffffff81111561384b57600080fd5b6138578d828e01613131565b9250506101206138698d828e016130d7565b9150509295989b9194979a5092959850565b6000806000806000806000806000806101208b8d03121561389b57600080fd5b60006138a78d8d6130d7565b9a505060206138b88d828e016130d7565b99505060406138c98d828e016130d7565b98505060606138da8d828e016130d7565b97505060806138eb8d828e016130d7565b96505060a06138fc8d828e01612e89565b95505060c061390d8d828e01612e89565b94505060e08b013567ffffffffffffffff81111561392a57600080fd5b6139368d828e016130ef565b93509350506101006138698d828e016130d7565b60008060008060008060c0878903121561396357600080fd5b600061396f89896130d7565b965050602061398089828a016130d7565b955050604087013567ffffffffffffffff81111561399d57600080fd5b6139a989828a0161304f565b945050606087013567ffffffffffffffff8111156139c657600080fd5b6139d289828a0161304f565b93505060806139e389828a01612e89565b92505060a087013567ffffffffffffffff811115613a0057600080fd5b613a0c89828a01613131565b9150509295509295509295565b600080600080600060a08688031215613a3157600080fd5b6000613a3d88886130d7565b9550506020613358888289016130d7565b600080600080600060808688031215613a6657600080fd5b6000613a7288886130d7565b9550506020613a83888289016130d7565b9450506040613a94888289016130d7565b935050606086013567ffffffffffffffff811115613ab157600080fd5b613abd888289016130ef565b92509250509295509295909350565b600080600080600080600060c0888a031215613ae757600080fd5b6000613af38a8a6130d7565b9750506020613b048a828b016130d7565b9650506040613b158a828b016130d7565b9550506060613b268a828b016130d7565b9450506080613b378a828b01612e89565b93505060a088013567ffffffffffffffff811115613b5457600080fd5b613b608a828b016130ef565b925092505092959891949750929550565b60008060008060008060008060008060006101608c8e031215613b9357600080fd5b6000613b9f8e8e6130e3565b9b50506020613bb08e828f0161327c565b9a50506040613bc18e828f016130e3565b9950506060613bd28e828f016130e3565b9850506080613be38e828f016130e3565b97505060a0613bf48e828f016130e3565b96505060c0613c058e828f016130e3565b95505060e08c015167ffffffffffffffff811115613c2257600080fd5b613c2e8e828f01613180565b9450506101008c015167ffffffffffffffff811115613c4c57600080fd5b613c588e828f01613180565b935050610120613c6a8e828f016130e3565b925050610140613c7c8e828f016130e3565b9150509295989b509295989b9093969950565b60008060008060408587031215613ca557600080fd5b843567ffffffffffffffff811115613cbc57600080fd5b613cc8878288016130ef565b9450945050602085013567ffffffffffffffff811115613ce757600080fd5b613cf3878288016130ef565b95989497509550505050565b600080600080600060608688031215613d1757600080fd5b853567ffffffffffffffff811115613d2e57600080fd5b613d3a888289016130ef565b9550955050602086013567ffffffffffffffff811115613d5957600080fd5b613d65888289016130ef565b93509350506040613316888289016130d7565b60008060408385031215613d8b57600080fd5b823567ffffffffffffffff811115613da257600080fd5b613dae85828601613131565b925050602083013567ffffffffffffffff811115613dcb57600080fd5b6134d385828601613131565b600060408284031215613de957600080fd5b60006132a684846131c6565b600060808284031215613e0757600080fd5b60006132a6848461320d565b60008060408385031215613e2657600080fd5b6000613e3285856130d7565b92505060206134d3858286016130d7565b600080600060608486031215613e5857600080fd5b6000613e64868661327c565b9350506020613e75868287016130e3565b9250506040613e86868287016130e3565b9150509250925092565b613e9981614b1f565b82525050565b6000613eaa82614b1b565b808452602084019350613ebc83614b15565b60005b82811015613eec57613ed28683516141f4565b613edb82614b15565b604096909601959150600101613ebf565b5093949350505050565b6000613f0182614b1b565b808452602084019350613f1383614b15565b60005b82811015613eec57613f29868351613f99565b613f3282614b15565b602096909601959150600101613f16565b6000613f4e82614b1b565b808452602084019350613f6083614b15565b60005b82811015613eec57613f76868351613f99565b613f7f82614b15565b602096909601959150600101613f63565b613e9981614b2b565b613e998161163a565b613e9981614b30565b6000613fb682614b1b565b808452613fca816020860160208601614b67565b613fd381614b93565b9093016020019392505050565b600e81527f496e76616c6964206c656e677468000000000000000000000000000000000000602082015260400190565b601481527f506172616d6574657220697320696e76616c6964000000000000000000000000602082015260400190565b601f81527f696d706c656d656e746174696f6e20636f6e7472616374206e6f742073657400602082015260400190565b601d81527f4e6577206f776e657220697320746865207a65726f2061646472657373000000602082015260400190565b601881527f536d61727420636f6e74726163742069732068616c7465640000000000000000602082015260400190565b601d81527f5369676e617475726520766572696669636174696f6e206661696c6564000000602082015260400190565b600f81527f4c656e677468206d69736d617463680000000000000000000000000000000000602082015260400190565b600981527f4e6f74206f776e65720000000000000000000000000000000000000000000000602082015260400190565b601381527f696e76616c696420736d6746656550726f787900000000000000000000000000602082015260400190565b600f81527f504b206973206e6f742072656164790000000000000000000000000000000000602082015260400190565b600981527f6e6f742061646d696e0000000000000000000000000000000000000000000000602082015260400190565b9052565b805160408301906142058482613f99565b50602082015161108a6020850182613f99565b805160009061010084019061422d8582613f99565b5060208301516142406020860182613f99565b5060408301516142536040860182613f99565b506060830151848203606086015261426b8282613f43565b915050608083015184820360808601526142858282613f43565b91505060a083015184820360a086015261429f8282613fab565b91505060c08301516142b460c0860182613e90565b5060e08301516142c760e0860182613e90565b509392505050565b80516101008301906142e18482613f99565b5060208201516142f46020850182613f99565b5060408201516143076040850182613f99565b50606082015161431a6060850182613f99565b50608082015161432d6080850182613f99565b5060a082015161434060a0850182613e90565b5060c082015161435360c0850182613e90565b5060e082015161108a60e0850182613e90565b805160009060e084019061437a8582613f99565b50602083015161438d6020860182613f99565b5060408301516143a06040860182613f99565b50606083015184820360608601526143b88282613f43565b915050608083015184820360808601526143d28282613f43565b91505060a08301516143e760a0860182613e90565b5060c08301516142c760c0860182613e90565b805160009061012084019061440f8582613f99565b5060208301516144226020860182613f99565b506040830151848203604086015261443a8282613f43565b915050606083015184820360608601526144548282613f43565b91505060808301516144696080860182613f99565b5060a083015161447c60a0860182613f99565b5060c083015161448f60c0860182613e90565b5060e083015184820360e08601526144a78282613fab565b9150506101008301516142c7610100860182613e90565b80516000906101208401906144d38582613f99565b5060208301516144e66020860182613f99565b5060408301516144f96040860182613f99565b50606083015161450c6060860182613f99565b5060808301516144696080860182613f99565b80516000906101008401906145348582613f99565b5060208301516145476020860182613f99565b506040830151848203604086015261455f8282613f43565b915050606083015184820360608601526145798282613f43565b915050608083015161458e6080860182613f99565b5060a08301516145a160a0860182613f99565b5060c083015184820360c08601526145b98282613fab565b91505060e08301516142c760e0860182613e90565b805160009060e08401906145e28582613f99565b5060208301516145f56020860182613f99565b5060408301516146086040860182613f99565b50606083015161461b6060860182613f99565b50608083015161462e6080860182613f99565b5060a083015184820360a08601526146468282613fab565b91505060c08301516142c760c0860182613e90565b602081016119178284613e90565b60a081016146778288613e90565b6146846020830187613e90565b6146916040830186613e90565b61469e6060830185613e90565b6146ab6080830184613e90565b9695505050505050565b602080825281016119148184613e9f565b602080825281016119148184613ef6565b602081016119178284613f90565b602081016119178284613f99565b602081016119178284613fa2565b6020808252810161191781613fe0565b6020808252810161191781614010565b6020808252810161191781614040565b6020808252810161191781614070565b60208082528101611917816140a0565b60208082528101611917816140d0565b6020808252810161191781614100565b6020808252810161191781614130565b6020808252810161191781614160565b6020808252810161191781614190565b60208082528101611917816141c0565b604081016147bf82856141f0565b81810360208301526132a68184614218565b61012081016147e082856141f0565b612ab060208301846142cf565b604081016147fb82856141f0565b81810360208301526132a68184614366565b6040810161481b82856141f0565b81810360208301526132a681846143fa565b6040810161483b82856141f0565b81810360208301526132a681846144be565b6040810161485b82856141f0565b81810360208301526132a6818461451f565b6040810161487b82856141f0565b81810360208301526132a681846145ce565b60a0810161489b82886141f0565b6148a86020830187613f99565b6148b56040830186613f99565b6148c26060830185613f99565b6146ab6080830184613f99565b6040810161191782846141f4565b60e081016148eb828a613f99565b6148f86020830189613f99565b6149056040830188613f99565b6149126060830187613f99565b61491f6080830186613f99565b61492c60a0830185613f99565b61493960c0830184613f99565b98975050505050505050565b60e08101614953828a613f99565b6149606020830189613f99565b61496d6040830188613f99565b818103606083015261497f8187613ef6565b905081810360808301526149938186613ef6565b90506149a260a0830185613e90565b61493960c0830184613e90565b61010081016149be828b613f99565b6149cb602083018a613f99565b6149d86040830189613f99565b81810360608301526149ea8188613ef6565b905081810360808301526149fe8187613ef6565b905081810360a0830152614a128186613fab565b9050614a2160c0830185613e90565b614a2e60e0830184613e90565b9998505050505050505050565b60e08101614a49828a613f99565b614a566020830189613f99565b614a636040830188613f99565b614a706060830187613f99565b614a7d6080830186613f99565b6149a260a0830185613e90565b60408101614a988285613f99565b612ab06020830184613f99565b60405181810167ffffffffffffffff81118282101715614ac457600080fd5b604052919050565b600067ffffffffffffffff821115614ae357600080fd5b5060209081020190565b600067ffffffffffffffff821115614b0457600080fd5b506020601f91909101601f19160190565b60200190565b5190565b600160a060020a031690565b151590565b7fffffffff000000000000000000000000000000000000000000000000000000001690565b60ff1690565b82818337506000910152565b60005b83811015614b82578181015183820152602001614b6a565b8381111561108a5750506000910152565b601f01601f1916905600a265627a7a72305820f2bc84465e5a52aaccfb3f929bfb7a3f77e3fb0269d9690d437f40b6eab310d66c6578706572696d656e74616cf50037