UNPKG

@finbourne/lusid-sdk-angular8

Version:

An angular (8+) SDK for secure access to the LUSID® by FINBOURNE web API

236 lines 91.7 kB
/** * LUSID API * # Introduction This page documents the [LUSID APIs](../../../api/swagger), which allows authorised clients to query and update their data within the LUSID platform. SDKs to interact with the LUSID APIs are available in the following languages and frameworks: * [C#](https://github.com/finbourne/lusid-sdk-csharp) * [Java](https://github.com/finbourne/lusid-sdk-java) * [JavaScript](https://github.com/finbourne/lusid-sdk-js) * [Python](https://github.com/finbourne/lusid-sdk-python) * [Angular](https://github.com/finbourne/lusid-sdk-angular) The LUSID platform is made up of a number of sub-applications. You can find the API / swagger documentation by following the links in the table below. | Application | Description | API / Swagger Documentation | |---------------|-----------------------------------------------------------------------------------|------------------------------------------------------| | LUSID | Open, API-first, developer-friendly investment data platform. | [Swagger](../../../api/swagger/index.html) | | Web app | User-facing front end for LUSID. | [Swagger](../../../app/swagger/index.html) | | Scheduler | Automated job scheduler. | [Swagger](../../../scheduler2/swagger/index.html) | | Insights | Monitoring and troubleshooting service. | [Swagger](../../../insights/swagger/index.html) | | Identity | Identity management for LUSID (in conjunction with Access) | [Swagger](../../../identity/swagger/index.html) | | Access | Access control for LUSID (in conjunction with Identity) | [Swagger](../../../access/swagger/index.html) | | Drive | Secure file repository and manager for collaboration. | [Swagger](../../../drive/swagger/index.html) | | Luminesce | Data virtualisation service (query data from multiple providers, including LUSID) | [Swagger](../../../honeycomb/swagger/index.html) | | Notification | Notification service. | [Swagger](../../../notifications/swagger/index.html) | | Configuration | File store for secrets and other sensitive information. | [Swagger](../../../configuration/swagger/index.html) | # Error Codes | Code|Name|Description | | ---|---|--- | | <a name=\"-10\">-10</a>|Server Configuration Error| | | <a name=\"-1\">-1</a>|Unknown error|An unexpected error was encountered on our side. | | <a name=\"102\">102</a>|Version Not Found| | | <a name=\"103\">103</a>|Api Rate Limit Violation| | | <a name=\"104\">104</a>|Instrument Not Found| | | <a name=\"105\">105</a>|Property Not Found| | | <a name=\"106\">106</a>|Portfolio Recursion Depth| | | <a name=\"108\">108</a>|Group Not Found| | | <a name=\"109\">109</a>|Portfolio Not Found| | | <a name=\"110\">110</a>|Property Schema Not Found| | | <a name=\"111\">111</a>|Portfolio Ancestry Not Found| | | <a name=\"112\">112</a>|Portfolio With Id Already Exists| | | <a name=\"113\">113</a>|Orphaned Portfolio| | | <a name=\"119\">119</a>|Missing Base Claims| | | <a name=\"121\">121</a>|Property Not Defined| | | <a name=\"122\">122</a>|Cannot Delete System Property| | | <a name=\"123\">123</a>|Cannot Modify Immutable Property Field| | | <a name=\"124\">124</a>|Property Already Exists| | | <a name=\"125\">125</a>|Invalid Property Life Time| | | <a name=\"126\">126</a>|Property Constraint Style Excludes Properties| | | <a name=\"127\">127</a>|Cannot Modify Default Data Type| | | <a name=\"128\">128</a>|Group Already Exists| | | <a name=\"129\">129</a>|No Such Data Type| | | <a name=\"130\">130</a>|Undefined Value For Data Type| | | <a name=\"131\">131</a>|Unsupported Value Type Defined On Data Type| | | <a name=\"132\">132</a>|Validation Error| | | <a name=\"133\">133</a>|Loop Detected In Group Hierarchy| | | <a name=\"134\">134</a>|Undefined Acceptable Values| | | <a name=\"135\">135</a>|Sub Group Already Exists| | | <a name=\"138\">138</a>|Price Source Not Found| | | <a name=\"139\">139</a>|Analytic Store Not Found| | | <a name=\"141\">141</a>|Analytic Store Already Exists| | | <a name=\"143\">143</a>|Client Instrument Already Exists| | | <a name=\"144\">144</a>|Duplicate In Parameter Set| | | <a name=\"147\">147</a>|Results Not Found| | | <a name=\"148\">148</a>|Order Field Not In Result Set| | | <a name=\"149\">149</a>|Operation Failed| | | <a name=\"150\">150</a>|Elastic Search Error| | | <a name=\"151\">151</a>|Invalid Parameter Value| | | <a name=\"153\">153</a>|Command Processing Failure| | | <a name=\"154\">154</a>|Entity State Construction Failure| | | <a name=\"155\">155</a>|Entity Timeline Does Not Exist| | | <a name=\"156\">156</a>|Concurrency Conflict Failure| | | <a name=\"157\">157</a>|Invalid Request| | | <a name=\"158\">158</a>|Event Publish Unknown| | | <a name=\"159\">159</a>|Event Query Failure| | | <a name=\"160\">160</a>|Blob Did Not Exist| | | <a name=\"162\">162</a>|Sub System Request Failure| | | <a name=\"163\">163</a>|Sub System Configuration Failure| | | <a name=\"165\">165</a>|Failed To Delete| | | <a name=\"166\">166</a>|Upsert Client Instrument Failure| | | <a name=\"167\">167</a>|Illegal As At Interval| | | <a name=\"168\">168</a>|Illegal Bitemporal Query| | | <a name=\"169\">169</a>|Invalid Alternate Id| | | <a name=\"170\">170</a>|Cannot Add Source Portfolio Property Explicitly| | | <a name=\"171\">171</a>|Entity Already Exists In Group| | | <a name=\"173\">173</a>|Entity With Id Already Exists| | | <a name=\"174\">174</a>|Derived Portfolio Details Do Not Exist| | | <a name=\"175\">175</a>|Entity Not In Group| | | <a name=\"176\">176</a>|Portfolio With Name Already Exists| | | <a name=\"177\">177</a>|Invalid Transactions| | | <a name=\"178\">178</a>|Reference Portfolio Not Found| | | <a name=\"179\">179</a>|Duplicate Id| | | <a name=\"180\">180</a>|Command Retrieval Failure| | | <a name=\"181\">181</a>|Data Filter Application Failure| | | <a name=\"182\">182</a>|Search Failed| | | <a name=\"183\">183</a>|Movements Engine Configuration Key Failure| | | <a name=\"184\">184</a>|Fx Rate Source Not Found| | | <a name=\"185\">185</a>|Accrual Source Not Found| | | <a name=\"186\">186</a>|Access Denied| | | <a name=\"187\">187</a>|Invalid Identity Token| | | <a name=\"188\">188</a>|Invalid Request Headers| | | <a name=\"189\">189</a>|Price Not Found| | | <a name=\"190\">190</a>|Invalid Sub Holding Keys Provided| | | <a name=\"191\">191</a>|Duplicate Sub Holding Keys Provided| | | <a name=\"192\">192</a>|Cut Definition Not Found| | | <a name=\"193\">193</a>|Cut Definition Invalid| | | <a name=\"194\">194</a>|Time Variant Property Deletion Date Unspecified| | | <a name=\"195\">195</a>|Perpetual Property Deletion Date Specified| | | <a name=\"196\">196</a>|Time Variant Property Upsert Date Unspecified| | | <a name=\"197\">197</a>|Perpetual Property Upsert Date Specified| | | <a name=\"200\">200</a>|Invalid Unit For Data Type| | | <a name=\"201\">201</a>|Invalid Type For Data Type| | | <a name=\"202\">202</a>|Invalid Value For Data Type| | | <a name=\"203\">203</a>|Unit Not Defined For Data Type| | | <a name=\"204\">204</a>|Units Not Supported On Data Type| | | <a name=\"205\">205</a>|Cannot Specify Units On Data Type| | | <a name=\"206\">206</a>|Unit Schema Inconsistent With Data Type| | | <a name=\"207\">207</a>|Unit Definition Not Specified| | | <a name=\"208\">208</a>|Duplicate Unit Definitions Specified| | | <a name=\"209\">209</a>|Invalid Units Definition| | | <a name=\"210\">210</a>|Invalid Instrument Identifier Unit| | | <a name=\"211\">211</a>|Holdings Adjustment Does Not Exist| | | <a name=\"212\">212</a>|Could Not Build Excel Url| | | <a name=\"213\">213</a>|Could Not Get Excel Version| | | <a name=\"214\">214</a>|Instrument By Code Not Found| | | <a name=\"215\">215</a>|Entity Schema Does Not Exist| | | <a name=\"216\">216</a>|Feature Not Supported On Portfolio Type| | | <a name=\"217\">217</a>|Quote Not Found| | | <a name=\"218\">218</a>|Invalid Quote Identifier| | | <a name=\"219\">219</a>|Invalid Metric For Data Type| | | <a name=\"220\">220</a>|Invalid Instrument Definition| | | <a name=\"221\">221</a>|Instrument Upsert Failure| | | <a name=\"222\">222</a>|Reference Portfolio Request Not Supported| | | <a name=\"223\">223</a>|Transaction Portfolio Request Not Supported| | | <a name=\"224\">224</a>|Invalid Property Value Assignment| | | <a name=\"230\">230</a>|Transaction Type Not Found| | | <a name=\"231\">231</a>|Transaction Type Duplication| | | <a name=\"232\">232</a>|Portfolio Does Not Exist At Given Date| | | <a name=\"233\">233</a>|Query Parser Failure| | | <a name=\"234\">234</a>|Duplicate Constituent| | | <a name=\"235\">235</a>|Unresolved Instrument Constituent| | | <a name=\"236\">236</a>|Unresolved Instrument In Transition| | | <a name=\"237\">237</a>|Missing Side Definitions| | | <a name=\"299\">299</a>|Invalid Recipe| | | <a name=\"300\">300</a>|Missing Recipe| | | <a name=\"301\">301</a>|Dependencies| | | <a name=\"304\">304</a>|Portfolio Preprocess Failure| | | <a name=\"310\">310</a>|Valuation Engine Failure| | | <a name=\"311\">311</a>|Task Factory Failure| | | <a name=\"312\">312</a>|Task Evaluation Failure| | | <a name=\"313\">313</a>|Task Generation Failure| | | <a name=\"314\">314</a>|Engine Configuration Failure| | | <a name=\"315\">315</a>|Model Specification Failure| | | <a name=\"320\">320</a>|Market Data Key Failure| | | <a name=\"321\">321</a>|Market Resolver Failure| | | <a name=\"322\">322</a>|Market Data Failure| | | <a name=\"330\">330</a>|Curve Failure| | | <a name=\"331\">331</a>|Volatility Surface Failure| | | <a name=\"332\">332</a>|Volatility Cube Failure| | | <a name=\"350\">350</a>|Instrument Failure| | | <a name=\"351\">351</a>|Cash Flows Failure| | | <a name=\"352\">352</a>|Reference Data Failure| | | <a name=\"360\">360</a>|Aggregation Failure| | | <a name=\"361\">361</a>|Aggregation Measure Failure| | | <a name=\"370\">370</a>|Result Retrieval Failure| | | <a name=\"371\">371</a>|Result Processing Failure| | | <a name=\"372\">372</a>|Vendor Result Processing Failure| | | <a name=\"373\">373</a>|Vendor Result Mapping Failure| | | <a name=\"374\">374</a>|Vendor Library Unauthorised| | | <a name=\"375\">375</a>|Vendor Connectivity Error| | | <a name=\"376\">376</a>|Vendor Interface Error| | | <a name=\"377\">377</a>|Vendor Pricing Failure| | | <a name=\"378\">378</a>|Vendor Translation Failure| | | <a name=\"379\">379</a>|Vendor Key Mapping Failure| | | <a name=\"380\">380</a>|Vendor Reflection Failure| | | <a name=\"381\">381</a>|Vendor Process Failure| | | <a name=\"382\">382</a>|Vendor System Failure| | | <a name=\"390\">390</a>|Attempt To Upsert Duplicate Quotes| | | <a name=\"391\">391</a>|Corporate Action Source Does Not Exist| | | <a name=\"392\">392</a>|Corporate Action Source Already Exists| | | <a name=\"393\">393</a>|Instrument Identifier Already In Use| | | <a name=\"394\">394</a>|Properties Not Found| | | <a name=\"395\">395</a>|Batch Operation Aborted| | | <a name=\"400\">400</a>|Invalid Iso4217 Currency Code| | | <a name=\"401\">401</a>|Cannot Assign Instrument Identifier To Currency| | | <a name=\"402\">402</a>|Cannot Assign Currency Identifier To Non Currency| | | <a name=\"403\">403</a>|Currency Instrument Cannot Be Deleted| | | <a name=\"404\">404</a>|Currency Instrument Cannot Have Economic Definition| | | <a name=\"405\">405</a>|Currency Instrument Cannot Have Lookthrough Portfolio| | | <a name=\"406\">406</a>|Cannot Create Currency Instrument With Multiple Identifiers| | | <a name=\"407\">407</a>|Specified Currency Is Undefined| | | <a name=\"410\">410</a>|Index Does Not Exist| | | <a name=\"411\">411</a>|Sort Field Does Not Exist| | | <a name=\"413\">413</a>|Negative Pagination Parameters| | | <a name=\"414\">414</a>|Invalid Search Syntax| | | <a name=\"415\">415</a>|Filter Execution Timeout| | | <a name=\"420\">420</a>|Side Definition Inconsistent| | | <a name=\"450\">450</a>|Invalid Quote Access Metadata Rule| | | <a name=\"451\">451</a>|Access Metadata Not Found| | | <a name=\"452\">452</a>|Invalid Access Metadata Identifier| | | <a name=\"460\">460</a>|Standard Resource Not Found| | | <a name=\"461\">461</a>|Standard Resource Conflict| | | <a name=\"462\">462</a>|Calendar Not Found| | | <a name=\"463\">463</a>|Date In A Calendar Not Found| | | <a name=\"464\">464</a>|Invalid Date Source Data| | | <a name=\"465\">465</a>|Invalid Timezone| | | <a name=\"601\">601</a>|Person Identifier Already In Use| | | <a name=\"602\">602</a>|Person Not Found| | | <a name=\"603\">603</a>|Cannot Set Identifier| | | <a name=\"617\">617</a>|Invalid Recipe Specification In Request| | | <a name=\"618\">618</a>|Inline Recipe Deserialisation Failure| | | <a name=\"619\">619</a>|Identifier Types Not Set For Entity| | | <a name=\"620\">620</a>|Cannot Delete All Client Defined Identifiers| | | <a name=\"650\">650</a>|The Order requested was not found.| | | <a name=\"654\">654</a>|The Allocation requested was not found.| | | <a name=\"655\">655</a>|Cannot build the fx forward target with the given holdings.| | | <a name=\"656\">656</a>|Group does not contain expected entities.| | | <a name=\"665\">665</a>|Destination directory not found| | | <a name=\"667\">667</a>|Relation definition already exists| | | <a name=\"672\">672</a>|Could not retrieve file contents| | | <a name=\"673\">673</a>|Missing entitlements for entities in Group| | | <a name=\"674\">674</a>|Next Best Action not found| | | <a name=\"676\">676</a>|Relation definition not defined| | | <a name=\"677\">677</a>|Invalid entity identifier for relation| | | <a name=\"681\">681</a>|Sorting by specified field not supported|One or more of the provided fields to order by were either invalid or not supported. | | <a name=\"682\">682</a>|Too many fields to sort by|The number of fields to sort the data by exceeds the number allowed by the endpoint | | <a name=\"684\">684</a>|Sequence Not Found| | | <a name=\"685\">685</a>|Sequence Already Exists| | | <a name=\"686\">686</a>|Non-cycling sequence has been exhausted| | | <a name=\"687\">687</a>|Legal Entity Identifier Already In Use| | | <a name=\"688\">688</a>|Legal Entity Not Found| | | <a name=\"689\">689</a>|The supplied pagination token is invalid| | | <a name=\"690\">690</a>|Property Type Is Not Supported| | | <a name=\"691\">691</a>|Multiple Tax-lots For Currency Type Is Not Supported| | | <a name=\"692\">692</a>|This endpoint does not support impersonation| | | <a name=\"693\">693</a>|Entity type is not supported for Relationship| | | <a name=\"694\">694</a>|Relationship Validation Failure| | | <a name=\"695\">695</a>|Relationship Not Found| | | <a name=\"697\">697</a>|Derived Property Formula No Longer Valid| | | <a name=\"698\">698</a>|Story is not available| | | <a name=\"703\">703</a>|Corporate Action Does Not Exist| | | <a name=\"720\">720</a>|The provided sort and filter combination is not valid| | | <a name=\"721\">721</a>|A2B generation failed| | | <a name=\"722\">722</a>|Aggregated Return Calculation Failure| | | <a name=\"723\">723</a>|Custom Entity Definition Identifier Already In Use| | | <a name=\"724\">724</a>|Custom Entity Definition Not Found| | | <a name=\"725\">725</a>|The Placement requested was not found.| | | <a name=\"726\">726</a>|The Execution requested was not found.| | | <a name=\"727\">727</a>|The Block requested was not found.| | | <a name=\"728\">728</a>|The Participation requested was not found.| | | <a name=\"729\">729</a>|The Package requested was not found.| | | <a name=\"730\">730</a>|The OrderInstruction requested was not found.| | | <a name=\"732\">732</a>|Custom Entity not found.| | | <a name=\"733\">733</a>|Custom Entity Identifier already in use.| | | <a name=\"735\">735</a>|Calculation Failed.| | | <a name=\"736\">736</a>|An expected key on HttpResponse is missing.| | | <a name=\"737\">737</a>|A required fee detail is missing.| | | <a name=\"738\">738</a>|Zero rows were returned from Luminesce| | | <a name=\"739\">739</a>|Provided Weekend Mask was invalid| | | <a name=\"742\">742</a>|Custom Entity fields do not match the definition| | | <a name=\"746\">746</a>|The provided sequence is not valid.| | | <a name=\"751\">751</a>|The type of the Custom Entity is different than the type provided in the definition.| | | <a name=\"752\">752</a>|Luminesce process returned an error.| | | <a name=\"753\">753</a>|File name or content incompatible with operation.| | | <a name=\"755\">755</a>|Schema of response from Drive is not as expected.| | | <a name=\"757\">757</a>|Schema of response from Luminesce is not as expected.| | | <a name=\"758\">758</a>|Luminesce timed out.| | | <a name=\"763\">763</a>|Invalid Lusid Entity Identifier Unit| | | <a name=\"768\">768</a>|Fee rule not found.| | | <a name=\"769\">769</a>|Cannot update the base currency of a portfolio with transactions loaded| | | <a name=\"771\">771</a>|Transaction configuration source not found| | | <a name=\"774\">774</a>|Compliance rule not found.| | | <a name=\"775\">775</a>|Fund accounting document cannot be processed.| | | <a name=\"778\">778</a>|Unable to look up FX rate from trade ccy to portfolio ccy for some of the trades.| | | <a name=\"782\">782</a>|The Property definition dataType is not matching the derivation formula dataType| | | <a name=\"783\">783</a>|The Property definition domain is not supported for derived properties| | | <a name=\"788\">788</a>|Compliance run not found failure.| | | <a name=\"790\">790</a>|Custom Entity has missing or invalid identifiers| | | <a name=\"791\">791</a>|Custom Entity definition already exists| | | <a name=\"792\">792</a>|Compliance PropertyKey is missing.| | | <a name=\"793\">793</a>|Compliance Criteria Value for matching is missing.| | | <a name=\"795\">795</a>|Cannot delete identifier definition| | | <a name=\"796\">796</a>|Tax rule set not found.| | | <a name=\"797\">797</a>|A tax rule set with this id already exists.| | | <a name=\"798\">798</a>|Multiple rule sets for the same property key are applicable.| | | <a name=\"800\">800</a>|Can not upsert an instrument event of this type.| | | <a name=\"801\">801</a>|The instrument event does not exist.| | | <a name=\"802\">802</a>|The Instrument event is missing salient information.| | | <a name=\"803\">803</a>|The Instrument event could not be processed.| | | <a name=\"804\">804</a>|Some data requested does not follow the order graph assumptions.| | | <a name=\"811\">811</a>|A price could not be found for an order.| | | <a name=\"812\">812</a>|A price could not be found for an allocation.| | | <a name=\"813\">813</a>|Chart of Accounts not found.| | | <a name=\"814\">814</a>|Account not found.| | | <a name=\"815\">815</a>|Abor not found.| | | <a name=\"816\">816</a>|Abor Configuration not found.| | | <a name=\"817\">817</a>|Reconciliation mapping not found| | | <a name=\"818\">818</a>|Attribute type could not be deleted because it doesn\'t exist.| | | <a name=\"819\">819</a>|Reconciliation not found.| | | <a name=\"820\">820</a>|Custodian Account not found.| | | <a name=\"821\">821</a>|Allocation Failure| | * * The version of the OpenAPI document: 0.11.5326 * Contact: info@finbourne.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ /* tslint:disable:no-unused-variable member-ordering */ import { Inject, Injectable, Optional } from '@angular/core'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { CustomHttpUrlEncodingCodec } from '../encoder'; import { BASE_PATH } from '../variables'; import { Configuration } from '../configuration'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; import * as i2 from "../configuration"; export class InstrumentEventsService { constructor(httpClient, basePath, configuration) { this.httpClient = httpClient; this.basePath = 'https://www.lusid.com/api'; this.defaultHeaders = new HttpHeaders(); this.configuration = new Configuration(); if (configuration) { this.configuration = configuration; this.configuration.basePath = configuration.basePath || basePath || this.basePath; } else { this.configuration.basePath = basePath || this.basePath; } } /** * @param consumes string[] mime-types * @return true: consumes contains 'multipart/form-data', false: otherwise */ canConsumeForm(consumes) { const form = 'multipart/form-data'; for (const consume of consumes) { if (form === consume) { return true; } } return false; } queryBucketedCashFlows(queryBucketedCashFlowsRequest, observe = 'body', reportProgress = false) { let headers = this.defaultHeaders; // authentication (oauth2) required if (this.configuration.accessToken) { const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken; headers = headers.set('Authorization', 'Bearer ' + accessToken); } // to determine the Accept header const httpHeaderAccepts = [ 'text/plain', 'application/json', 'text/json' ]; const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); if (httpHeaderAcceptSelected !== undefined) { headers = headers.set('Accept', httpHeaderAcceptSelected); } // to determine the Content-Type header const consumes = [ 'application/json-patch+json', 'application/json', 'text/json', 'application/_*+json' ]; const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes); if (httpContentTypeSelected !== undefined) { headers = headers.set('Content-Type', httpContentTypeSelected); } return this.httpClient.post(`${this.configuration.basePath}/api/instrumentevents/$queryBucketedCashFlows`, queryBucketedCashFlowsRequest, { withCredentials: this.configuration.withCredentials, headers: headers, observe: observe, reportProgress: reportProgress }); } queryCashFlows(limit, page, queryCashFlowsRequest, observe = 'body', reportProgress = false) { let queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() }); if (limit !== undefined && limit !== null) { queryParameters = queryParameters.set('limit', limit); } if (page !== undefined && page !== null) { queryParameters = queryParameters.set('page', page); } let headers = this.defaultHeaders; // authentication (oauth2) required if (this.configuration.accessToken) { const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken; headers = headers.set('Authorization', 'Bearer ' + accessToken); } // to determine the Accept header const httpHeaderAccepts = [ 'text/plain', 'application/json', 'text/json' ]; const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); if (httpHeaderAcceptSelected !== undefined) { headers = headers.set('Accept', httpHeaderAcceptSelected); } // to determine the Content-Type header const consumes = [ 'application/json-patch+json', 'application/json', 'text/json', 'application/_*+json' ]; const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes); if (httpContentTypeSelected !== undefined) { headers = headers.set('Content-Type', httpContentTypeSelected); } return this.httpClient.post(`${this.configuration.basePath}/api/instrumentevents/$queryCashFlows`, queryCashFlowsRequest, { params: queryParameters, withCredentials: this.configuration.withCredentials, headers: headers, observe: observe, reportProgress: reportProgress }); } queryInstrumentEvents(limit, page, queryInstrumentEventsRequest, observe = 'body', reportProgress = false) { let queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() }); if (limit !== undefined && limit !== null) { queryParameters = queryParameters.set('limit', limit); } if (page !== undefined && page !== null) { queryParameters = queryParameters.set('page', page); } let headers = this.defaultHeaders; // authentication (oauth2) required if (this.configuration.accessToken) { const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken; headers = headers.set('Authorization', 'Bearer ' + accessToken); } // to determine the Accept header const httpHeaderAccepts = [ 'text/plain', 'application/json', 'text/json' ]; const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); if (httpHeaderAcceptSelected !== undefined) { headers = headers.set('Accept', httpHeaderAcceptSelected); } // to determine the Content-Type header const consumes = [ 'application/json-patch+json', 'application/json', 'text/json', 'application/_*+json' ]; const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes); if (httpContentTypeSelected !== undefined) { headers = headers.set('Content-Type', httpContentTypeSelected); } return this.httpClient.post(`${this.configuration.basePath}/api/instrumentevents/$query`, queryInstrumentEventsRequest, { params: queryParameters, withCredentials: this.configuration.withCredentials, headers: headers, observe: observe, reportProgress: reportProgress }); } queryTradeTickets(limit, page, queryTradeTicketsRequest, observe = 'body', reportProgress = false) { let queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() }); if (limit !== undefined && limit !== null) { queryParameters = queryParameters.set('limit', limit); } if (page !== undefined && page !== null) { queryParameters = queryParameters.set('page', page); } let headers = this.defaultHeaders; // authentication (oauth2) required if (this.configuration.accessToken) { const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken; headers = headers.set('Authorization', 'Bearer ' + accessToken); } // to determine the Accept header const httpHeaderAccepts = [ 'text/plain', 'application/json', 'text/json' ]; const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); if (httpHeaderAcceptSelected !== undefined) { headers = headers.set('Accept', httpHeaderAcceptSelected); } // to determine the Content-Type header const consumes = [ 'application/json-patch+json', 'application/json', 'text/json', 'application/_*+json' ]; const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes); if (httpContentTypeSelected !== undefined) { headers = headers.set('Content-Type', httpContentTypeSelected); } return this.httpClient.post(`${this.configuration.basePath}/api/instrumentevents/$queryTradeTickets`, queryTradeTicketsRequest, { params: queryParameters, withCredentials: this.configuration.withCredentials, headers: headers, observe: observe, reportProgress: reportProgress }); } } /** @nocollapse */ InstrumentEventsService.ɵfac = function InstrumentEventsService_Factory(t) { return new (t || InstrumentEventsService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(BASE_PATH, 8), i0.ɵɵinject(i2.Configuration, 8)); }; /** @nocollapse */ InstrumentEventsService.ɵprov = i0.ɵɵdefineInjectable({ token: InstrumentEventsService, factory: InstrumentEventsService.ɵfac, providedIn: 'root' }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(InstrumentEventsService, [{ type: Injectable, args: [{ providedIn: 'root' }] }], function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [BASE_PATH] }] }, { type: i2.Configuration, decorators: [{ type: Optional }] }]; }, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudEV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii91c3Ivc3JjL3Byb2plY3RzL2x1c2lkLXNkay1hbmd1bGFyOC9zcmMvIiwic291cmNlcyI6WyJsaWIvZ2VuZXJhdGVkL2FwaS9pbnN0cnVtZW50RXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUNILHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBMkIsZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFDVixNQUFnQyxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBNkIsWUFBWSxDQUFDO0FBZS9FLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQTBCLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQTBDLGtCQUFrQixDQUFDOzs7O0FBTXJGLE1BQU0sT0FBTyx1QkFBdUI7SUFNaEMsWUFBc0IsVUFBc0IsRUFBZ0MsUUFBZ0IsRUFBYyxhQUE0QjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSmxDLGFBQVEsR0FBRywyQkFBMkIsQ0FBQztRQUMxQyxtQkFBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBSXZDLElBQUksYUFBYSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUVyRjthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDM0Q7SUFD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YSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pHLElBQUksdUJBQXVCLEtBQUssU0FBUyxFQUFFO1lBQ3ZDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBcUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsMENBQTBDLEVBQ3BJLHdCQUF3QixFQUN4QjtZQUNJLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWU7WUFDbkQsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsY0FBYyxFQUFFLGNBQWM7U0FDakMsQ0FDSixDQUFDO0lBQ04sQ0FBQzs7aUhBL1JRLHVCQUF1QiwwQ0FNaUMsU0FBUztrRkFOakUsdUJBQXVCLFdBQXZCLHVCQUF1QixtQkFGdEIsTUFBTTtrREFFUCx1QkFBdUI7Y0FIbkMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFPa0QsUUFBUTs7c0JBQUcsTUFBTTt1QkFBQyxTQUFTOztzQkFBcUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTFVTSUQgQVBJXG4gKiAjIEludHJvZHVjdGlvbiAgVGhpcyBwYWdlIGRvY3VtZW50cyB0aGUgW0xVU0lEIEFQSXNdKC4uLy4uLy4uL2FwaS9zd2FnZ2VyKSwgd2hpY2ggYWxsb3dzIGF1dGhvcmlzZWQgY2xpZW50cyB0byBxdWVyeSBhbmQgdXBkYXRlIHRoZWlyIGRhdGEgd2l0aGluIHRoZSBMVVNJRCBwbGF0Zm9ybS4gIFNES3MgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgTFVTSUQgQVBJcyBhcmUgYXZhaWxhYmxlIGluIHRoZSBmb2xsb3dpbmcgbGFuZ3VhZ2VzIGFuZCBmcmFtZXdvcmtzOiAgKiBbQyNdKGh0dHBzOi8vZ2l0aHViLmNvbS9maW5ib3VybmUvbHVzaWQtc2RrLWNzaGFycCkgKiBbSmF2YV0oaHR0cHM6Ly9naXRodWIuY29tL2ZpbmJvdXJuZS9sdXNpZC1zZGstamF2YSkgKiBbSmF2YVNjcmlwdF0oaHR0cHM6Ly9naXRodWIuY29tL2ZpbmJvdXJuZS9sdXNpZC1zZGstanMpICogW1B5dGhvbl0oaHR0cHM6Ly9naXRodWIuY29tL2ZpbmJvdXJuZS9sdXNpZC1zZGstcHl0aG9uKSAqIFtBbmd1bGFyXShodHRwczovL2dpdGh1Yi5jb20vZmluYm91cm5lL2x1c2lkLXNkay1hbmd1bGFyKSAgVGhlIExVU0lEIHBsYXRmb3JtIGlzIG1hZGUgdXAgb2YgYSBudW1iZXIgb2Ygc3ViLWFwcGxpY2F0aW9ucy4gWW91IGNhbiBmaW5kIHRoZSBBUEkgLyBzd2FnZ2VyIGRvY3VtZW50YXRpb24gYnkgZm9sbG93aW5nIHRoZSBsaW5rcyBpbiB0aGUgdGFibGUgYmVsb3cuICAgfCBBcHBsaWNhdGlvbiAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQVBJIC8gU3dhZ2dlciBEb2N1bWVudGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICB8IHwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8IExVU0lEICAgICAgICAgfCBPcGVuLCBBUEktZmlyc3QsIGRldmVsb3Blci1mcmllbmRseSBpbnZlc3RtZW50IGRhdGEgcGxhdGZvcm0uICAgICAgICAgICAgICAgICAgICAgfCBbU3dhZ2dlcl0oLi4vLi4vLi4vYXBpL3N3YWdnZXIvaW5kZXguaHRtbCkgICAgICAgICAgIHwgfCBXZWIgYXBwICAgICAgIHwgVXNlci1mYWNpbmcgZnJvbnQgZW5kIGZvciBMVVNJRC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW1N3YWdnZXJdKC4uLy4uLy4uL2FwcC9zd2FnZ2VyL2luZGV4Lmh0bWwpICAgICAgICAgICB8IHwgU2NoZWR1bGVyICAgICB8IEF1dG9tYXRlZCBqb2Igc2NoZWR1bGVyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtTd2FnZ2VyXSguLi8uLi8uLi9zY2hlZHVsZXIyL3N3YWdnZXIvaW5kZXguaHRtbCkgICAgfCB8IEluc2lnaHRzICAgICAgfCBNb25pdG9yaW5nIGFuZCB0cm91Ymxlc2hvb3Rpbmcgc2VydmljZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbU3dhZ2dlcl0oLi4vLi4vLi4vaW5zaWdodHMvc3dhZ2dlci9pbmRleC5odG1sKSAgICAgIHwgfCBJZGVudGl0eSAgICAgIHwgSWRlbnRpdHkgbWFuYWdlbWVudCBmb3IgTFVTSUQgKGluIGNvbmp1bmN0aW9uIHdpdGggQWNjZXNzKSAgICAgICAgICAgICAgICAgICAgICAgIHwgW1N3YWdnZXJdKC4uLy4uLy4uL2lkZW50aXR5L3N3YWdnZXIvaW5kZXguaHRtbCkgICAgICB8IHwgQWNjZXNzICAgICAgICB8IEFjY2VzcyBjb250cm9sIGZvciBMVVNJRCAoaW4gY29uanVuY3Rpb24gd2l0aCBJZGVudGl0eSkgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtTd2FnZ2VyXSguLi8uLi8uLi9hY2Nlc3Mvc3dhZ2dlci9pbmRleC5odG1sKSAgICAgICAgfCB8IERyaXZlICAgICAgICAgfCBTZWN1cmUgZmlsZSByZXBvc2l0b3J5IGFuZCBtYW5hZ2VyIGZvciBjb2xsYWJvcmF0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbU3dhZ2dlcl0oLi4vLi4vLi4vZHJpdmUvc3dhZ2dlci9pbmRleC5odG1sKSAgICAgICAgIHwgfCBMdW1pbmVzY2UgICAgIHwgRGF0YSB2aXJ0dWFsaXNhdGlvbiBzZXJ2aWNlIChxdWVyeSBkYXRhIGZyb20gbXVsdGlwbGUgcHJvdmlkZXJzLCBpbmNsdWRpbmcgTFVTSUQpIHwgW1N3YWdnZXJdKC4uLy4uLy4uL2hvbmV5Y29tYi9zd2FnZ2VyL2luZGV4Lmh0bWwpICAgICB8IHwgTm90aWZpY2F0aW9uICB8IE5vdGlmaWNhdGlvbiBzZXJ2aWNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFtTd2FnZ2VyXSguLi8uLi8uLi9ub3RpZmljYXRpb25zL3N3YWdnZXIvaW5kZXguaHRtbCkgfCB8IENvbmZpZ3VyYXRpb24gfCBGaWxlIHN0b3JlIGZvciBzZWNyZXRzIGFuZCBvdGhlciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbU3dhZ2dlcl0oLi4vLi4vLi4vY29uZmlndXJhdGlvbi9zd2FnZ2VyL2luZGV4Lmh0bWwpIHwgICAjIEVycm9yIENvZGVzICB8IENvZGV8TmFtZXxEZXNjcmlwdGlvbiB8IHwgLS0tfC0tLXwtLS0gfCB8IDxhIG5hbWU9XFxcIi0xMFxcXCI+LTEwPC9hPnxTZXJ2ZXIgQ29uZmlndXJhdGlvbiBFcnJvcnwgIHwgfCA8YSBuYW1lPVxcXCItMVxcXCI+LTE8L2E+fFVua25vd24gZXJyb3J8QW4gdW5leHBlY3RlZCBlcnJvciB3YXMgZW5jb3VudGVyZWQgb24gb3VyIHNpZGUuIHwgfCA8YSBuYW1lPVxcXCIxMDJcXFwiPjEwMjwvYT58VmVyc2lvbiBOb3QgRm91bmR8ICB8IHwgPGEgbmFtZT1cXFwiMTAzXFxcIj4xMDM8L2E+fEFwaSBSYXRlIExpbWl0IFZpb2xhdGlvbnwgIHwgfCA8YSBuYW1lPVxcXCIxMDRcXFwiPjEwNDwvYT58SW5zdHJ1bWVudCBOb3QgRm91bmR8ICB8IHwgPGEgbmFtZT1cXFwiMTA1XFxcIj4xMDU8L2E+fFByb3BlcnR5IE5vdCBGb3VuZHwgIHwgfCA8YSBuYW1lPVxcXCIxMDZcXFwiPjEwNjwvYT58UG9ydGZvbGlvIFJlY3Vyc2lvbiBEZXB0aHwgIHwgfCA8YSBuYW1lPVxcXCIxMDhcXFwiPjEwODwvYT58R3JvdXAgTm90IEZvdW5kfCAgfCB8IDxhIG5hbWU9XFxcIjEwOVxcXCI+MTA5PC9hPnxQb3J0Zm9saW8gTm90IEZvdW5kfCAgfCB8IDxhIG5hbWU9XFxcIjExMFxcXCI+MTEwPC9hPnxQcm9wZXJ0eSBTY2hlbWEgTm90IEZvdW5kfCAgfCB8IDxhIG5hbWU9XFxcIjExMVxcXCI+MTExPC9hPnxQb3J0Zm9saW8gQW5jZXN0cnkgTm90IEZvdW5kfCAgfCB8IDxhIG5hbWU9XFxcIjExMlxcXCI+MTEyPC9hPnxQb3J0Zm9saW8gV2l0aCBJZCBBbHJlYWR5IEV4aXN0c3wgIHwgfCA8YSBuYW1lPVxcXCIxMTNcXFwiPjExMzwvYT58T3JwaGFuZWQgUG9ydGZvbGlvfCAgfCB8IDxhIG5hbWU9XFxcIjExOVxcXCI+MTE5PC9hPnxNaXNzaW5nIEJhc2UgQ2xhaW1zfCAgfCB8IDxhIG5hbWU9XFxcIjEyMVxcXCI+MTIxPC9hPnxQcm9wZXJ0eSBOb3QgRGVmaW5lZHwgIHwgfCA8YSBuYW1lPVxcXCIxMjJcXFwiPjEyMjwvYT58Q2Fubm90IERlbGV0ZSBTeXN0ZW0gUHJvcGVydHl8ICB8IHwgPGEgbmFtZT1cXFwiMTIzXFxcIj4xMjM8L2E+fENhbm5vdCBNb2RpZnkgSW1tdXRhYmxlIFByb3BlcnR5IEZpZWxkfCAgfCB8IDxhIG5hbWU9XFxcIjEyNFxcXCI+MTI0PC9hPnxQcm9wZXJ0eSBBbHJlYWR5IEV4aXN0c3wgIHwgfCA8YSBuYW1lPVxcXCIxMjVcXFwiPjEyNTwvYT58SW52YWxpZCBQcm9wZXJ0eSBMaWZlIFRpbWV8ICB8IHwgPGEgbmFtZT1cXFwiMTI2XFxcIj4xMjY8L2E+fFByb3BlcnR5IENvbnN0cmFpbnQgU3R5bGUgRXhjbHVkZXMgUHJvcGVydGllc3wgIHwgfCA8YSBuYW1lPVxcXCIxMjdcXFwiPjEyNzwvYT58Q2Fubm90IE1vZGlmeSBEZWZhdWx0IERhdGEgVHlwZXwgIHwgfCA8YSBuYW1lPVxcXCIxMjhcXFwiPjEyODwvYT58R3JvdXAgQWxyZWFkeSBFeGlzdHN8ICB8IHwgPGEgbmFtZT1cXFwiMTI5XFxcIj4xMjk8L2E+fE5vIFN1Y2ggRGF0YSBUeXBlfCAgfCB8IDxhIG5hbWU9XFxcIjEzMFxcXCI+MTMwPC9hPnxVbmRlZmluZWQgVmFsdWUgRm9yIERhdGEgVHlwZXwgIHwgfCA8YSBuYW1lPVxcXCIxMzFcXFwiPjEzMTwvYT58VW5zdXBwb3J0ZWQgVmFsdWUgVHlwZSBEZWZpbmVkIE9uIERhdGEgVHlwZXwgIHwgfCA8YSBuYW1lPVxcXCIxMzJcXFwiPjEzMjwvYT58VmFsaWRhdGlvbiBFcnJvcnwgIHwgfCA8YSBuYW1lPVxcXCIxMzNcXFwiPjEzMzwvYT58TG9vcCBEZXRlY3RlZCBJbiBHcm91cCBIaWVyYXJjaHl8ICB8IHwgPGEgbmFtZT1cXFwiMTM0XFxcIj4xMzQ8L2E+fFVuZGVmaW5lZCBBY2NlcHRhYmxlIFZhbHVlc3wgIHwgfCA8YSBuYW1lPVxcXCIxMzVcXFwiPjEzNTwvYT58U3ViIEdyb3VwIEFscmVhZHkgRXhpc3RzfCAgfCB8IDxhIG5hbWU9XFxcIjEzOFxcXCI+MTM4PC9hPnxQcmljZSBTb3VyY2UgTm90IEZvdW5kfCAgfCB8IDxhIG5hbWU9XFxcIjEzOVxcXCI+MTM5PC9hPnxBbmFseXRpYyBTdG9yZSBOb3QgRm91bmR8ICB8IHwgPGEgbmFtZT1cXFwiMTQxXFxcIj4xNDE8L2E+fEFuYWx5dGljIFN0b3JlIEFscmVhZHkgRXhpc3RzfCAgfCB8IDxhIG5hbWU9XFxcIjE0M1xcXCI+MTQzPC9hPnxDbGllbnQgSW5zdHJ1bWVudCBBbHJlYWR5IEV4aXN0c3wgIHwgfCA8YSBuYW1lPVxcXCIxNDRcXFwiPjE0NDwvYT58RHVwbGljYXRlIEluIFBhcmFtZXRlciBTZXR8ICB8IHwgPGEgbmFtZT1cXFwiMTQ3XFxcIj4xNDc8L2E+fFJlc3VsdHMgTm90IEZvdW5kfCAgfCB8IDxhIG5hbWU9XFxcIjE0OFxcXCI+MTQ4PC9hPnxPcmRlciBGaWVsZCBOb3QgSW4gUmVzdWx0IFNldHwgIHwgfCA8YSBuYW1lPVxcXCIxNDlcXFwiPjE0OTwvYT58T3BlcmF0aW9uIEZhaWxlZHwgIHwgfCA8YSBuYW1lPVxcXCIxNTBcXFwiPjE1MDwvYT58RWxhc3RpYyBTZWFyY2ggRXJyb3J8ICB8IHwgPGEgbmFtZT1cXFwiMTUxXFxcIj4xNTE8L2E+fEludmFsaWQgUGFyYW1ldGVyIFZhbHVlfCAgfCB8IDxhIG5hbWU9XFxcIjE1M1xcXCI+MTUzPC9hPnxDb21tYW5kIFByb2Nlc3NpbmcgRmFpbHVyZXwgIHwgfCA8YSBuYW1lPVxcXCIxNTRcXFwiPjE1NDwvYT58RW50aXR5IFN0YXRlIENvbnN0cnVjdGlvbiBGYWlsdXJlfCAgfCB8IDxhIG5hbWU9XFxcIjE1NVxcXCI+MTU1PC9hPnxFbnRpdHkgVGltZWxpbmUgRG9lcyBOb3QgRXhpc3R8ICB8IHwgPGEgbmFtZT1cXFwiMTU2XFxcIj4xNTY8L2E+fENvbmN1cnJlbmN5IENvbmZsaWN0IEZhaWx1cmV8ICB8IHwgPGEgbmFtZT1cXFwiMTU3XFxcIj4xNTc8L2E+fEludmFsaWQgUmVxdWVzdHwgIHwgfCA8YSBuYW1lPVxcXCIxNThcXFwiPjE1ODwvYT58RXZlbnQgUHVibGlzaCBVbmtub3dufCAgfCB8IDxhIG5hbWU9XFxcIjE1OVxcXCI+MTU5PC9hPnxFdmVudCBRdWVyeSBGYWlsdXJlfCAgfCB8IDxhIG5hbWU9XFxcIjE2MFxcXCI+MTYwPC9hPnxCbG9iIERpZCBOb3QgRXhpc3R8ICB8IHwgPGEgbmFtZT1cXFwiMTYyXFxcIj4xNjI8L2E+fFN1YiBTeXN0ZW0gUmVxdWVzdCBGYWlsdXJlfCAgfCB8IDxhIG5hbWU9XFxcIjE2M1xcXCI+MTYzPC9hPnxTdWIgU3lzdGVtIENvbmZpZ3VyYXRpb24gRmFpbHVyZXwgIHwgfCA8YSBuYW1lPVxcXCIxNjVcXFwiPjE2NTwvYT58RmFpbGVkIFRvIERlbGV0ZXwgIHwgfCA8YSBuYW1lPVxcXCIxNjZcXFwiPjE2NjwvYT58VXBzZXJ0IENsaWVudCBJbnN0cnVtZW50IEZhaWx1cmV8ICB8IHwgPGEgbmFtZT1cXFwiMTY3XFxcIj4xNjc8L2E+fElsbGVnYWwgQXMgQXQgSW50ZXJ2YWx8ICB8IHwgPGEgbmFtZT1cXFwiMTY4XFxcIj4xNjg8L2E+fElsbGVnYWwgQml0ZW1wb3JhbCBRdWVyeXwgIHwgfCA8YSBuYW1lPVxcXCIxNjlcXFwiPjE2OTwvYT58SW52YWxpZCBBbHRlcm5hdGUgSWR8ICB8IHwgPGEgbmFtZT1cXFwiMTcwXFxcIj4xNzA8L2E+fENhbm5vdCBBZGQgU291cmNlIFBvcnRmb2xpbyBQcm9wZXJ0eSBFeHBsaWNpdGx5fCAgfCB8IDxhIG5hbWU9XFxcIjE3MVxcXCI+MTcxPC9hPnxFbnRpdHkgQWxyZWFkeSBFeGlzdHMgSW4gR3JvdXB8ICB8IHwgPGEgbmFtZT1cXFwiMTczXFxcIj4xNzM8L2E+fEVudGl0eSBXaXRoIElkIEFscmVhZHkgRXhpc3RzfCAgfCB8IDxhIG5hbWU9XFxcIjE3NFxcXCI+MTc0PC9hPnxEZXJpdmVkIFBvcnRmb2xpbyBEZXRhaWxzIERvIE5vdCBFeGlzdHwgIHwgfCA8YSBuYW1lPVxcXCIxNzVcXFwiPjE3NTwvYT58RW50aXR5IE5vdCBJbiBHcm91cHwgIHwgfCA8YSBuYW1lPVxcXCIxNzZcXFwiPjE3NjwvYT58UG9ydGZvbGlvIFdpdGggTmFtZSBBbHJlYWR5IEV4aXN0c3wgIHwgfCA8YSBuYW1lPVxcXCIxNzdcXFwiPjE3NzwvYT58SW52YWxpZCBUcmFuc2FjdGlvbnN8ICB8IHwgPGEgbmFtZT1cXFwiMTc4XFxcIj4xNzg8L2E+fFJlZmVyZW5jZSBQb3J0Zm9saW8gTm90IEZvdW5kfCAgfCB8IDxhIG5hbWU9XFxcIjE3OVxcXCI+MTc5PC9hPnxEdXBsaWNhdGUgSWR8ICB8IHwgPGEgbmFtZT1cXFwiMTgwXFxcIj4xODA8L2E+fENvbW1hbmQgUmV0cmlldmFsIEZhaWx1cmV8ICB8IHwgPGEgbmFtZT1cXFwiMTgxXFxcIj4xODE8L2E+fERhdGEgRmlsdGVyIEFwcGxpY2F0aW9uIEZhaWx1cmV8ICB8IHwgPGEgbmFtZT1cXFwiMTgyXFxcIj4xODI8L2E+fFNlYXJjaCBGYWlsZWR8ICB8IHwgPGEgbmFtZT1cXFwiMTgzXFxcIj4xODM8L2E+fE1vdmVtZW50cyBFbmdpbmUgQ29uZmlndXJhdGlvbiBLZXkgRmFpbHVyZXwgIHwgfCA8YSBuYW1lPVxcXCIxODRcXFwiPjE4NDwvYT58RnggUmF0ZSBTb3VyY2UgTm90IEZvdW5kfCAgfCB8IDxhIG5hbWU9XFxcIjE4NVxcXCI+MTg1PC9hPnxBY2NydWFsIFNvdXJjZSBOb3QgRm91bmR8ICB8IHwgPGEgbmFtZT1cXFwiMTg2XFxcIj4xODY8L2E+fEFjY2VzcyBEZW5pZWR8ICB8IHwgPGEgbmFtZT1cXFwiMTg3XFxcIj4xODc8L2E+fEludmFsaWQgSWRlbnRpdHkgVG9rZW58ICB8IHwgPGEgbmFtZT1cXFwiMTg4XFxcIj4xODg8L2E+fEludmFsaWQgUmVxdWVzdCBIZWFkZXJzfCAgfCB8IDxhIG5hbWU9XFxcIjE4OVxcXCI+MTg5PC9hPnxQcmljZSBOb3QgRm91bmR8ICB8IHwgPGEgbmFtZT1cXFwiMTkwXFxcIj4xOTA8L2E+fEludmFsaWQgU3ViIEhvbGRpbmcgS2V5cyBQcm92aWRlZHwgIHwgfCA8YSBuYW1lPVxcXCIxOTFcXFwiPjE5MTwvYT58RHVwbGljYXRlIFN1YiBIb2xkaW5nIEtleXMgUHJvdmlkZWR8ICB8IHwgPGEgbmFtZT1cXFwiMTkyXFxcIj4xOTI8L2E+fEN1dCBEZWZpbml0aW9uIE5vdCBGb3VuZHwgIHwgfCA8YSBuYW1lPVxcXCIxOTNcXFwiPjE5MzwvYT58Q3V0IERlZmluaXRpb24gSW52YWxpZHwgIHwgfCA8YSBuYW1lPVxcXCIxOTRcXFwiPjE5NDwvYT58VGltZSBWYXJpYW50IFByb3BlcnR5IERlbGV0aW9uIERhdGUgVW5zcGVjaWZpZWR8ICB8IHwgPGEgbmFtZT1cXFwiMTk1XFxcIj4xOTU8L2E+fFBlcnBldHVhbCBQcm9wZXJ0eSBEZWxldGlvbiBEYXRlIFNwZWNpZmllZHwgIHwgfCA8YSBuYW1lPVxcXCIxOTZcXFwiPjE5NjwvYT58VGltZSBWYXJpYW50IFByb3BlcnR5IFVwc2VydCBEYXRlIFVuc3BlY2lmaWVkfCAgfCB8IDxhIG5hbWU9XFxcIjE5N1xcXCI+MTk3PC9hPnxQZXJwZXR1YWwgUHJvcGVydHkgVXBzZXJ0IERhdGUgU3BlY2lmaWVkfCAgfCB8IDxhIG5hbWU9XFxcIjIwMFxcXCI+MjAwPC9hPnxJbnZhbGlkIFVuaXQgRm9yIERhdGEgVHlwZXwgIHwgfCA8YSBuYW1lPVxcXCIyMDFcXFwiPjIwMTwvYT58SW52YWxpZCBUeXBlIEZvciBEYXRhIFR5cGV8ICB8IHwgPGEgbmFtZT1cXFwiMjAyXFxcIj4yMDI8L2E+fEludmFsaWQgVmFsdWUgRm9yIERhdGEgVHlwZXwgIHwgfCA8YSBuYW1lPVxcXCIyMDNcXFwiPjIwMzwvYT58VW5pdCBOb3QgRGVmaW5lZCBGb3IgRGF0YSBUeXBlfCAgfCB8IDxhIG5hbWU9XFxcIjIwNFxcXCI+MjA0PC9hPnxVbml0cyBOb3QgU3VwcG9yd