From dbc3cedd0d6ad91f20275da3e4f6477346a3970d Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Thu, 19 Jan 2023 10:18:52 +0530 Subject: [PATCH 1/2] Fix comments and sign the plugin --- dist/MANIFEST.txt | 47 +++++++++++++++++++ dist/module.js | 2 +- dist/module.js.map | 2 +- dist/plugin.json | 2 +- releases/parseable-datasource-1.0.0.zip | Bin 1024774 -> 1024696 bytes releases/parseable-datasource-1.0.0.zip.sha1 | 2 +- src/datasource.ts | 7 --- 7 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 dist/MANIFEST.txt diff --git a/dist/MANIFEST.txt b/dist/MANIFEST.txt new file mode 100644 index 0000000..6cbba34 --- /dev/null +++ b/dist/MANIFEST.txt @@ -0,0 +1,47 @@ + +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +{ + "manifestVersion": "2.0.0", + "signatureType": "community", + "signedByOrg": "parseable", + "signedByOrgName": "parseable", + "plugin": "parseable-parseable-datasource", + "version": "1.0.0", + "time": 1674103699007, + "keyId": "7e4d0c6a708866e7", + "files": { + "LICENSE": "20b067f86de375aae6db0f283ab2e65de24d537733b89bd58432c101259d84cf", + "CHANGELOG.md": "ba613d6f914b27dce9ace4d8c0cb074273c9eb6c536d8e7ac24c5ce6ae941fd0", + "module.js.map": "e7c9f7e3b94ba2c67608d7bc332919dda02720bd3001e04f53afa2aa9d065fc9", + "plugin.json": "278cf69593ae48fa75656eda0179faa9b36f101c16bf95b40dee3ce095e8b6ac", + "README.md": "84d21067fd37e309ec194beb136f24ea3f1e682076f489d2b06c8b621f50c75b", + "img/configuration.png": "c545a51bcc88809b2b4f87aac517a7d27ad61281344b0485c9826370b915b4d8", + "img/log-view-text.png": "8c6555af9c391cb1a8368c79b9bcc7386887beeea061e3483b0e020feec9d73d", + "img/query-editor.png": "b646a29a0ff8bd524e617614bdd6a555924331bc8cbc0dc3e8d0078a20474865", + "img/logo.svg": "76d1a2c5bde6f58ba8742fcec71f8da1a8171ed438d329cb2a69e258665e3f9f", + "img/log-visualisation.png": "e8958c2be07abc962f72c9a824eba02363f1facd32d59fefeab8e34172ac5fed", + "stories/assets/plugin.svg": "571483147bfb6c26ac9e3cd5fe0c4062253c17a35b966772641e8934b11276c3", + "stories/assets/comments.svg": "f15a68374a73c8e6cf024a7a9bf8f6678efe3303427bc03b1de9000541209b71", + "stories/assets/stackalt.svg": "2ad815430376dd520212b274cf6e00dc4baa4534f7201e26c546a1b4aa722ef6", + "stories/assets/colors.svg": "ac9401f382465486f15c7012f1b8ffec360794f9773b789e3f72f07c9325f447", + "stories/assets/direction.svg": "94a9917f1c9300cd2e157adaa30a9d2e288af23819645e9c37a273a82a36a240", + "stories/assets/code-brackets.svg": "9ef6443ebd43351be1a6edbab492003b84f2e30c8f80207ec8c4138fa440f7f4", + "stories/assets/flow.svg": "275142c67bb630246cbdfb0fc3493f17dd695544777ec8da852dbbe94976d323", + "stories/assets/repo.svg": "fb4ece472009833a03b9f1fbc775f13a010d9432cae3844e8b05710ba028100d", + "module.js": "89ef79c006f69d81b77269a7b576c3d48fb00d78110462cf6abc8c0559f2a607", + "dashboards/log-view.json": "b708febe7c3a1214237ad409db877f13d6682d66b7b60c0f435883b115a90b64" + } +} +-----BEGIN PGP SIGNATURE----- +Version: OpenPGP.js v4.10.10 +Comment: https://openpgpjs.org + +wrgEARMKAAYFAmPIy5MAIQkQfk0ManCIZucWIQTzOyW2kQdOhGNlcPN+TQxq +cIhm563uAgkB0oyhi22xa+icbOpKOXeUzqT8W+V0G6gsLNgymT14iZXB0iu6 +l3ZJfHOf0EyzHqAaiexZbmrzVoL5K29CMwfC38ECCKsL4LFbJJA/SUc8HMgj +PPIx3ezZ4yK6k0ZjaQW8+sjfDOVzHkg/Wp0D6V5Lvfay60oi48lTHQYVjReV +JfkSsipB +=c0cH +-----END PGP SIGNATURE----- diff --git a/dist/module.js b/dist/module.js index 2715a0d..3149963 100644 --- a/dist/module.js +++ b/dist/module.js @@ -1,2 +1,2 @@ -define(["@grafana/data","@grafana/runtime","rxjs","lodash","react","@grafana/ui"],((e,t,r,n,o,i)=>(()=>{"use strict";var a={305:t=>{t.exports=e},545:e=>{e.exports=t},388:e=>{e.exports=i},980:e=>{e.exports=n},650:e=>{e.exports=o},177:e=>{e.exports=r}},u={};function s(e){var t=u[e];if(void 0!==t)return t.exports;var r=u[e]={exports:{}};return a[e](r,r.exports,s),r.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var c={};return(()=>{s.r(c),s.d(c,{plugin:()=>ue});var e=s(305),t=s(545),r=s(177);function n(e){return"function"==typeof e}function o(e){return function(t){if(function(e){return n(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function u(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function f(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function p(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o1||u(e,t)}))})}function u(e,t){try{(r=o[e](t)).value instanceof d?Promise.resolve(r.value.v).then(s,c):l(i[0][2],r)}catch(e){l(i[0][3],e)}var r}function s(e){u("next",e)}function c(e){u("throw",e)}function l(e,t){e(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}Object.create,Object.create;var v,y=((v=function(e){var t;t=this,Error.call(t),t.stack=(new Error).stack,this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e}).prototype=Object.create(Error.prototype),v.prototype.constructor=v,v);function b(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var m=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,r,o,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var u=l(a),s=u.next();!s.done;s=u.next())s.value.remove(this)}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}else a.remove(this);var c=this.initialTeardown;if(n(c))try{c()}catch(e){i=e instanceof y?e.errors:[e]}var d=this._finalizers;if(d){this._finalizers=null;try{for(var h=l(d),v=h.next();!v.done;v=h.next()){var b=v.value;try{g(b)}catch(e){i=null!=i?i:[],e instanceof y?i=p(p([],f(i)),f(e.errors)):i.push(e)}}}catch(e){r={error:e}}finally{try{v&&!v.done&&(o=h.return)&&o.call(h)}finally{if(r)throw r.error}}}if(i)throw new y(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)g(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(r=this._finalizers)&&void 0!==r?r:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&b(t,e)},e.prototype.remove=function(t){var r=this._finalizers;r&&b(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function w(e){return e instanceof m||e&&"closed"in e&&n(e.remove)&&n(e.add)&&n(e.unsubscribe)}function g(e){n(e)?e():e.unsubscribe()}m.EMPTY;var S=null,x=null,T=void 0,O=!1,_=!1,E={setTimeout:function(e,t){for(var r=[],n=2;n!e.hide)),0===e.targets.length)return Promise.resolve({data:[]});const{range:n}=e;if(!n)return Promise.resolve({data:[]});const o=n.from,i=n.to,a=e.targets.map((e=>{const n={query:e.queryText,startTime:o.toISOString(),endTime:i.toISOString()};return(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/query",data:n,method:"POST"}).pipe(V((e=>t.arrayToDataFrame(e.data))),J((e=>(console.error(e),(0,r.of)({data:[]}))))))}));return{data:yield Promise.all(a)}}))()}doFetch(e){return e.withCredentials=this.withCredentials,e.headers=this.headers,(0,t.getBackendSrv)().fetch(e)}arrayToDataFrame(t){let r=new e.MutableDataFrame;if(t.length>0){const n=Object.keys(t[0]).map((r=>({name:r,type:(0,e.guessFieldTypeFromValue)(t[0][r])})));let o=!1;for(const t of n)if("p_timestamp"===t.name.toLowerCase()){t.type=e.FieldType.time,o=!0;break}if(!o)for(const t of n)("time"===t.name.toLowerCase()||"datetime"===t.name.toLowerCase()||"timestamp"===t.name.toLowerCase()||"date"===t.name.toLowerCase())&&(t.type=e.FieldType.time);console.log(n),r=new e.MutableDataFrame({fields:n}),t.forEach(((e,t)=>{r.appendRow(Object.values(e))}))}return r}listStreams(){var e=this;return Z((function*(){return(0,r.lastValueFrom)(e.doFetch({url:e.url+"/api/v1/logstream",method:"GET"}).pipe(V((e=>(0,K.isArray)(e.data)?e.data:[])),J((e=>(console.error(e),(0,r.of)([]))))))}))()}streamStats(e){var t=this;return Z((function*(){return e?(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/logstream/"+e.value+"/stats",method:"GET"}).pipe(V((e=>"object"!=typeof e.data||(0,K.isNull)(e.data)?{}:e.data)),J((e=>(console.error(e),(0,r.of)({status:"error",message:e.statusText})))))):{}}))()}streamSchema(e){var t=this;return Z((function*(){return e?(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/logstream/"+e.value+"/schema",method:"GET"}).pipe(V((e=>"object"!=typeof e.data||(0,K.isNull)(e.data)?{}:e.data)),J((e=>(console.error(e),(0,r.of)({status:"error",message:e.statusText})))))):{fields:[]}}))()}testDatasource(){var e=this;return Z((function*(){const t="Parseable server is not reachable";try{const n=yield(0,r.lastValueFrom)(e.doFetch({url:e.url+"/api/v1/readiness",method:"GET"}).pipe(V((e=>e))));return 200===n.status?{status:"success",message:"Parseable server is reachable",title:"Success"}:{message:n.statusText?n.statusText:t,status:"error",title:"Error"}}catch(e){var n,o;if("string"==typeof e)return{status:"error",message:e};let r=e;var i;let a=null!==(i=r.statusText)&&void 0!==i?i:t;return void 0!==(null===(n=r.data)||void 0===n||null===(o=n.error)||void 0===o?void 0:o.code)&&(a+=`: ${r.data.error.code}. ${r.data.error.message}`),{status:"error",message:a,title:"Error"}}}))()}constructor(e){var t,r;super(e),this.url=void 0===e.url?"":e.url,this.withCredentials=void 0!==e.withCredentials,this.defaultEditorMode=null!==(r=null===(t=e.jsonData)||void 0===t?void 0:t.defaultEditorMode)&&void 0!==r?r:"code"}}var te=s(650),re=s.n(te),ne=s(388);class oe extends te.PureComponent{render(){const{onOptionsChange:e,options:t}=this.props;return re().createElement("div",{className:"gf-form-group"},re().createElement(ne.DataSourceHttpSettings,{defaultUrl:"https://demo.parseable.io",dataSourceConfig:t,showAccessOptions:!0,onChange:e}))}}function ie(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const{FormField:ae}=ne.LegacyForms,ue=new e.DataSourcePlugin(ee).setConfigEditor(oe).setQueryEditor((({datasource:e,onChange:t,onRunQuery:r,query:n})=>{const{queryText:o}=n,i=re().useCallback((()=>e.listStreams().then((e=>e.map((e=>({label:e.name,value:e.name})))),(e=>{throw new Error(e.statusText)}))),[e]),[a,u]=(0,te.useState)(),[s="",c]=re().useState(),[l="",f]=re().useState(),[p="",d]=re().useState(),[h="",v]=re().useState(),[y="",b]=re().useState(),[m="",w]=re().useState(),g=re().useCallback((t=>t?e.streamSchema(t).then((e=>{if(e.fields){const t=e.fields.map((e=>e.name)),r=t.join(", ");return c(r),t}return s}),(e=>{throw new Error(e.statusText)})):""),[e,s]),S=re().useCallback((t=>t?e.streamStats(t).then((e=>{if(e.ingestion){var t;const r=e.ingestion.count,n=e.ingestion.size,o=null===(t=e.storage)||void 0===t?void 0:t.size,i=e.stream,a=e.time;return d(n),v(o),b(i),f(r),w(a),r}return l}),(e=>{throw new Error(e.statusText)})):""),[e,l]);return re().useEffect((()=>{const e=setTimeout((()=>{r()}),2e3);return()=>clearTimeout(e)}),[r,o]),re().useEffect((()=>{g(a)}),[g,a]),re().useEffect((()=>{S(a)}),[S,a]),re().createElement(re().Fragment,null,re().createElement(ne.InlineFieldRow,null,re().createElement(ne.InlineField,null,re().createElement(ne.Label,null,"Select a log stream:")),re().createElement(ne.InlineField,null,re().createElement(ne.AsyncSelect,{loadOptions:i,defaultOptions:!0,value:a,onChange:e=>{u(e)}}))),re().createElement(ne.InlineFieldRow,null,re().createElement(ne.InlineField,null,re().createElement(ne.SeriesTable,{series:[{color:"#299c46",isActive:!0,label:"Stream name",value:y},{color:"#299c46",isActive:!1,label:"Column names",value:s},{color:"#299c46",isActive:!1,label:"Total ingested event count",value:l},{color:"#299c46",isActive:!1,label:"Total ingested json size",value:p},{color:"#299c46",isActive:!1,label:"Total stored data size",value:h}],timestamp:m}))),re().createElement("br",null),re().createElement(ae,{labelWidth:12,inputWidth:100,value:o||"",onChange:e=>{var r,o;t((r=function(e){for(var t=1;t(()=>{"use strict";var a={305:t=>{t.exports=e},545:e=>{e.exports=t},388:e=>{e.exports=i},980:e=>{e.exports=n},650:e=>{e.exports=o},177:e=>{e.exports=r}},u={};function s(e){var t=u[e];if(void 0!==t)return t.exports;var r=u[e]={exports:{}};return a[e](r,r.exports,s),r.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var c={};return(()=>{s.r(c),s.d(c,{plugin:()=>ue});var e=s(305),t=s(545),r=s(177);function n(e){return"function"==typeof e}function o(e){return function(t){if(function(e){return n(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function u(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function f(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function p(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o1||u(e,t)}))})}function u(e,t){try{(r=o[e](t)).value instanceof d?Promise.resolve(r.value.v).then(s,c):l(i[0][2],r)}catch(e){l(i[0][3],e)}var r}function s(e){u("next",e)}function c(e){u("throw",e)}function l(e,t){e(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}Object.create,Object.create;var v,y=((v=function(e){var t;t=this,Error.call(t),t.stack=(new Error).stack,this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e}).prototype=Object.create(Error.prototype),v.prototype.constructor=v,v);function b(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var m=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,r,o,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var u=l(a),s=u.next();!s.done;s=u.next())s.value.remove(this)}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}else a.remove(this);var c=this.initialTeardown;if(n(c))try{c()}catch(e){i=e instanceof y?e.errors:[e]}var d=this._finalizers;if(d){this._finalizers=null;try{for(var h=l(d),v=h.next();!v.done;v=h.next()){var b=v.value;try{g(b)}catch(e){i=null!=i?i:[],e instanceof y?i=p(p([],f(i)),f(e.errors)):i.push(e)}}}catch(e){r={error:e}}finally{try{v&&!v.done&&(o=h.return)&&o.call(h)}finally{if(r)throw r.error}}}if(i)throw new y(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)g(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(r=this._finalizers)&&void 0!==r?r:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&b(t,e)},e.prototype.remove=function(t){var r=this._finalizers;r&&b(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function w(e){return e instanceof m||e&&"closed"in e&&n(e.remove)&&n(e.add)&&n(e.unsubscribe)}function g(e){n(e)?e():e.unsubscribe()}m.EMPTY;var S=null,x=null,T=void 0,O=!1,_=!1,E={setTimeout:function(e,t){for(var r=[],n=2;n!e.hide)),0===e.targets.length)return Promise.resolve({data:[]});const{range:n}=e;if(!n)return Promise.resolve({data:[]});const o=n.from,i=n.to,a=e.targets.map((e=>{const n={query:e.queryText,startTime:o.toISOString(),endTime:i.toISOString()};return(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/query",data:n,method:"POST"}).pipe(V((e=>t.arrayToDataFrame(e.data))),J((e=>(0,r.of)({data:[]})))))}));return{data:yield Promise.all(a)}}))()}doFetch(e){return e.withCredentials=this.withCredentials,e.headers=this.headers,(0,t.getBackendSrv)().fetch(e)}arrayToDataFrame(t){let r=new e.MutableDataFrame;if(t.length>0){const n=Object.keys(t[0]).map((r=>({name:r,type:(0,e.guessFieldTypeFromValue)(t[0][r])})));let o=!1;for(const t of n)if("p_timestamp"===t.name.toLowerCase()){t.type=e.FieldType.time,o=!0;break}if(!o)for(const t of n)("time"===t.name.toLowerCase()||"datetime"===t.name.toLowerCase()||"timestamp"===t.name.toLowerCase()||"date"===t.name.toLowerCase())&&(t.type=e.FieldType.time);r=new e.MutableDataFrame({fields:n}),t.forEach(((e,t)=>{r.appendRow(Object.values(e))}))}return r}listStreams(){var e=this;return Z((function*(){return(0,r.lastValueFrom)(e.doFetch({url:e.url+"/api/v1/logstream",method:"GET"}).pipe(V((e=>(0,K.isArray)(e.data)?e.data:[])),J((e=>(0,r.of)([])))))}))()}streamStats(e){var t=this;return Z((function*(){return e?(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/logstream/"+e.value+"/stats",method:"GET"}).pipe(V((e=>"object"!=typeof e.data||(0,K.isNull)(e.data)?{}:e.data)),J((e=>(0,r.of)({status:"error",message:e.statusText}))))):{}}))()}streamSchema(e){var t=this;return Z((function*(){return e?(0,r.lastValueFrom)(t.doFetch({url:t.url+"/api/v1/logstream/"+e.value+"/schema",method:"GET"}).pipe(V((e=>"object"!=typeof e.data||(0,K.isNull)(e.data)?{}:e.data)),J((e=>(0,r.of)({status:"error",message:e.statusText}))))):{fields:[]}}))()}testDatasource(){var e=this;return Z((function*(){const t="Parseable server is not reachable";try{const n=yield(0,r.lastValueFrom)(e.doFetch({url:e.url+"/api/v1/readiness",method:"GET"}).pipe(V((e=>e))));return 200===n.status?{status:"success",message:"Parseable server is reachable",title:"Success"}:{message:n.statusText?n.statusText:t,status:"error",title:"Error"}}catch(e){var n,o;if("string"==typeof e)return{status:"error",message:e};let r=e;var i;let a=null!==(i=r.statusText)&&void 0!==i?i:t;return void 0!==(null===(n=r.data)||void 0===n||null===(o=n.error)||void 0===o?void 0:o.code)&&(a+=`: ${r.data.error.code}. ${r.data.error.message}`),{status:"error",message:a,title:"Error"}}}))()}constructor(e){var t,r;super(e),this.url=void 0===e.url?"":e.url,this.withCredentials=void 0!==e.withCredentials,this.defaultEditorMode=null!==(r=null===(t=e.jsonData)||void 0===t?void 0:t.defaultEditorMode)&&void 0!==r?r:"code"}}var te=s(650),re=s.n(te),ne=s(388);class oe extends te.PureComponent{render(){const{onOptionsChange:e,options:t}=this.props;return re().createElement("div",{className:"gf-form-group"},re().createElement(ne.DataSourceHttpSettings,{defaultUrl:"https://demo.parseable.io",dataSourceConfig:t,showAccessOptions:!0,onChange:e}))}}function ie(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const{FormField:ae}=ne.LegacyForms,ue=new e.DataSourcePlugin(ee).setConfigEditor(oe).setQueryEditor((({datasource:e,onChange:t,onRunQuery:r,query:n})=>{const{queryText:o}=n,i=re().useCallback((()=>e.listStreams().then((e=>e.map((e=>({label:e.name,value:e.name})))),(e=>{throw new Error(e.statusText)}))),[e]),[a,u]=(0,te.useState)(),[s="",c]=re().useState(),[l="",f]=re().useState(),[p="",d]=re().useState(),[h="",v]=re().useState(),[y="",b]=re().useState(),[m="",w]=re().useState(),g=re().useCallback((t=>t?e.streamSchema(t).then((e=>{if(e.fields){const t=e.fields.map((e=>e.name)),r=t.join(", ");return c(r),t}return s}),(e=>{throw new Error(e.statusText)})):""),[e,s]),S=re().useCallback((t=>t?e.streamStats(t).then((e=>{if(e.ingestion){var t;const r=e.ingestion.count,n=e.ingestion.size,o=null===(t=e.storage)||void 0===t?void 0:t.size,i=e.stream,a=e.time;return d(n),v(o),b(i),f(r),w(a),r}return l}),(e=>{throw new Error(e.statusText)})):""),[e,l]);return re().useEffect((()=>{const e=setTimeout((()=>{r()}),2e3);return()=>clearTimeout(e)}),[r,o]),re().useEffect((()=>{g(a)}),[g,a]),re().useEffect((()=>{S(a)}),[S,a]),re().createElement(re().Fragment,null,re().createElement(ne.InlineFieldRow,null,re().createElement(ne.InlineField,null,re().createElement(ne.Label,null,"Select a log stream:")),re().createElement(ne.InlineField,null,re().createElement(ne.AsyncSelect,{loadOptions:i,defaultOptions:!0,value:a,onChange:e=>{u(e)}}))),re().createElement(ne.InlineFieldRow,null,re().createElement(ne.InlineField,null,re().createElement(ne.SeriesTable,{series:[{color:"#299c46",isActive:!0,label:"Stream name",value:y},{color:"#299c46",isActive:!1,label:"Column names",value:s},{color:"#299c46",isActive:!1,label:"Total ingested event count",value:l},{color:"#299c46",isActive:!1,label:"Total ingested json size",value:p},{color:"#299c46",isActive:!1,label:"Total stored data size",value:h}],timestamp:m}))),re().createElement("br",null),re().createElement(ae,{labelWidth:12,inputWidth:100,value:o||"",onChange:e=>{var r,o;t((r=function(e){for(var t=1;t {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate(function (source, subscriber) {\n var innerSub = null;\n var syncUnsub = false;\n var handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n//# sourceMappingURL=catchError.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","import { getBackendSrv, BackendSrvRequest, FetchResponse } from \"@grafana/runtime\";\nimport {\n DataQueryRequest,\n DataQueryResponse,\n DataSourceApi,\n DataSourceInstanceSettings,\n MutableDataFrame,\n DataFrame,\n FieldType,\n guessFieldTypeFromValue,\n} from '@grafana/data';\nimport { lastValueFrom, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { isArray, isNull } from \"lodash\";\n\nimport {\n MyQuery,\n MyDataSourceOptions,\n QueryEditorMode,\n StreamName,\n StreamList,\n //Fields,\n StreamSchemaResponse,\n StreamStatsResponse\n} from './types';\nexport class DataSource extends DataSourceApi {\n url: string;\n withCredentials: boolean;\n headers: any;\n defaultEditorMode: QueryEditorMode;\n constructor(instanceSettings: DataSourceInstanceSettings) {\n super(instanceSettings);\n this.url = instanceSettings.url === undefined ? '' : instanceSettings.url;\n this.withCredentials = instanceSettings.withCredentials !== undefined;\n this.defaultEditorMode = instanceSettings.jsonData?.defaultEditorMode ?? \"code\"\n }\n\n async doRequest(query: MyQuery) {\n const routePath = '/api/v1'\n const result = await getBackendSrv().datasourceRequest({\n method: \"GET\",\n url: this.url + routePath + '/readiness',\n params: query,\n })\n return result;\n }\n\n async query(options: DataQueryRequest): Promise {\n options.targets = options.targets.filter((t) => !t.hide);\n if (options.targets.length === 0) {\n return Promise.resolve({ data: [] });\n }\n\n const { range } = options;\n if (!range) {\n return Promise.resolve({ data: [] });\n }\n const start = range!.from;\n const end = range!.to;\n\n const calls = options.targets.map(target => {\n const request = {\n \"query\": target.queryText,\n \"startTime\": start.toISOString(),\n \"endTime\": end.toISOString()\n };\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/query',\n data: request,\n method: 'POST',\n }).pipe(\n map((response) => {\n return this.arrayToDataFrame(response.data);\n }),\n catchError((err) => {\n console.error(err);\n return of({ data: [] });\n })\n )\n );\n });\n\n const data = await Promise.all(calls);\n return {\n data,\n };\n }\n\n doFetch(options: BackendSrvRequest) {\n options.withCredentials = this.withCredentials;\n options.headers = this.headers;\n\n return getBackendSrv().fetch(options);\n }\n\n arrayToDataFrame(array: any[]): DataFrame {\n let dataFrame: MutableDataFrame = new MutableDataFrame();\n if (array.length > 0) {\n const fields = Object.keys(array[0]).map(field => {\n return { name: field, type: guessFieldTypeFromValue(array[0][field]) };\n });\n\n let timeFieldFound = false;\n for (const field of fields) {\n // Check for p_timestamp first\n // because if it is present we want to use this field\n // as we know the format (ISO8601)\n if (field.name.toLowerCase() === 'p_timestamp') {\n field.type = FieldType.time;\n timeFieldFound = true;\n break;\n }\n }\n // fallback to other possible time fields\n // if p_timestamp is not present\n if (!timeFieldFound) { \n for (const field of fields) {\n if (field.name.toLowerCase() === 'time') {\n field.type = FieldType.time;\n } else if (field.name.toLowerCase() === 'datetime') {\n field.type = FieldType.time;\n } else if (field.name.toLowerCase() === 'timestamp') {\n field.type = FieldType.time;\n } else if (field.name.toLowerCase() === 'date') {\n field.type = FieldType.time;\n }\n }\n }\n\n\n console.log(fields);\n dataFrame = new MutableDataFrame({ fields });\n array.forEach((row, index) => {\n dataFrame.appendRow(Object.values(row));\n });\n }\n return dataFrame;\n }\n\n async listStreams(): Promise {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream',\n method: 'GET',\n }).pipe(\n map((response) =>\n isArray(response.data)\n ? response.data\n : []\n ),\n catchError((err) => {\n console.error(err);\n\n return of([]);\n }))\n );\n }\n\n async streamStats(streamname: StreamName): Promise {\n if (streamname) {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream/' + streamname.value + '/stats',\n method: 'GET',\n }).pipe(\n map((response) =>\n (typeof response.data === 'object' && !isNull(response.data))\n ? response.data\n : {}\n ),\n catchError((err) => {\n console.error(err);\n return of({\n status: 'error',\n message: err.statusText\n })\n\n }))\n )\n }\n return {}\n }\n\n async streamSchema(streamname: StreamName): Promise {\n if (streamname) {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream/' + streamname.value + '/schema',\n method: 'GET',\n }).pipe(\n map((response) =>\n (typeof response.data === 'object' && !isNull(response.data))\n ? response.data\n : {}\n ),\n catchError((err) => {\n console.error(err);\n return of({\n status: 'error',\n message: err.statusText\n })\n\n }))\n )\n }\n return { fields: [] }\n }\n\n async testDatasource() {\n const errorMessageBase = 'Parseable server is not reachable';\n try {\n const response = await lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/readiness',\n method: 'GET',\n }).pipe(map((response) => response))\n );\n\n if (response.status === 200) {\n return { status: 'success', message: 'Parseable server is reachable', title: 'Success' };\n }\n\n return {\n message: response.statusText ? response.statusText : errorMessageBase,\n status: 'error',\n title: 'Error',\n };\n } catch (err) {\n if (typeof err === 'string') {\n return {\n status: 'error',\n message: err,\n };\n }\n\n let error = err as FetchResponse;\n let message = error.statusText ?? errorMessageBase;\n if (error.data?.error?.code !== undefined) {\n message += `: ${error.data.error.code}. ${error.data.error.message}`;\n }\n\n return { status: 'error', message, title: 'Error' };\n }\n }\n}\n","import React, { PureComponent } from 'react';\nimport { DataSourceHttpSettings } from '@grafana/ui';\nimport { DataSourcePluginOptionsEditorProps } from '@grafana/data';\nimport { MyDataSourceOptions, MySecureJsonData } from '../types';\n\n//const { SecretFormField, FormField } = LegacyForms;\n\ninterface Props extends DataSourcePluginOptionsEditorProps {}\n\ninterface State {}\n\nexport class ConfigEditor extends PureComponent {\n render() {\n const { onOptionsChange, options } = this.props;\n return (\n
\n \n
\n );\n }\n}\n","import React, { ComponentType, ChangeEvent, useState } from 'react';\nimport { LegacyForms, AsyncSelect, InlineField, InlineFieldRow, SeriesTable, Label} from '@grafana/ui';\nimport { QueryEditorProps, SelectableValue, GraphSeriesValue } from '@grafana/data';\nimport { DataSource } from '../datasource';\nimport { SchemaFields, MyDataSourceOptions, MyQuery } from '../types';\n\nconst { FormField } = LegacyForms;\n\ninterface Props extends QueryEditorProps {\n payload?: string;\n}\n\nexport const QueryEditor: ComponentType = ({ datasource, onChange, onRunQuery, query }) => {\n\n const { queryText } = query;\n //const [stream, setStream] = React.useState>();\n\n const loadAsyncOptions = React.useCallback(() => {\n return datasource.listStreams().then(\n (result) => {\n const stream = result.map((data) => ({ label: data.name, value: data.name }));\n return stream;\n },\n (response) => {\n //setStream({ label: '', value: '' });\n throw new Error(response.statusText);\n }\n );\n }, [datasource]);\n\n const [value, setValue] = useState>();\n const [schema = '', setSchema] = React.useState();\n const [count = '', setEventCount] = React.useState();\n const [jsonsize = '', setJsonSize] = React.useState();\n const [parquetsize = '', setParquetSize] = React.useState();\n const [streamname = '', setStreamName] = React.useState();\n const [time = '', setTime] = React.useState();\n //const [fielder, setFielder] = React.useState();\n\n const loadStreamSchema = React.useCallback((value) => {\n if (value) {\n return datasource.streamSchema(value).then(\n (result) => {\n if (result.fields) {\n const schema = result.fields.map((data: SchemaFields) => (data.name));\n const schemaToText = schema.join(\", \")\n setSchema(schemaToText);\n return schema;\n }\n return schema;\n },\n (response) => {\n throw new Error(response.statusText);\n }\n );\n }\n return '';\n }, [datasource, schema]);\n\n const loadStreamStats = React.useCallback((value) => {\n if (value) {\n return datasource.streamStats(value).then(\n (result) => {\n if (result.ingestion) {\n const count = result.ingestion.count;\n const jsonsize = result.ingestion.size;\n const parquetsize = result.storage?.size;\n const streamname = result.stream;\n const time = result.time;\n setJsonSize(jsonsize);\n setParquetSize(parquetsize);\n setStreamName(streamname);\n setEventCount(count);\n setTime(time);\n return count;\n }\n return count;\n },\n (response) => {\n throw new Error(response.statusText);\n }\n );\n }\n return '';\n }, [datasource, count]);\n\n const onQueryTextChange = (event: ChangeEvent) => {\n onChange({ ...query, queryText: event.target.value });\n };\n\n React.useEffect(() => {\n const getData = setTimeout(() => {\n onRunQuery()\n },\n 2000)\n return () => clearTimeout(getData)\n }, [onRunQuery, queryText])\n\n React.useEffect(() => {\n loadStreamSchema(value)\n }, [loadStreamSchema, value]);\n\n React.useEffect(() => {\n loadStreamStats(value)\n }, [loadStreamStats, value]);\n\n return (\n <>\n \n \n \n \n \n {\n setValue(v);\n }}/>\n \n {/* \n \n */}\n \n\n \n \n \n \n \n\n

\n \n \n );\n};\n","import { DataSourcePlugin } from '@grafana/data';\nimport { DataSource } from './datasource';\nimport { ConfigEditor } from './components/ConfigEditor';\nimport { QueryEditor } from './components/QueryEditor';\nimport { MyQuery, MyDataSourceOptions } from './types';\n\nexport const plugin = new DataSourcePlugin(DataSource)\n .setConfigEditor(ConfigEditor)\n .setQueryEditor(QueryEditor);\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__305__","__WEBPACK_EXTERNAL_MODULE__545__","__WEBPACK_EXTERNAL_MODULE__388__","__WEBPACK_EXTERNAL_MODULE__980__","__WEBPACK_EXTERNAL_MODULE__650__","__WEBPACK_EXTERNAL_MODULE__177__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","isFunction","operate","init","source","lift","hasLift","liftedSource","this","err","error","TypeError","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","String","__","constructor","create","__generator","thisArg","body","f","y","t","g","_","label","sent","trys","ops","next","verb","iterator","v","op","done","pop","length","push","e","step","__values","s","m","i","__read","ar","__spreadArray","to","from","pack","arguments","l","slice","concat","__await","__asyncGenerator","_arguments","generator","asyncIterator","apply","q","Promise","resume","resolve","then","fulfill","reject","settle","shift","ctorFunc","UnsubscriptionError","errors","instance","Error","stack","message","map","toString","join","name","arrRemove","arr","item","index","indexOf","splice","Subscription","initialTeardown","closed","_parentage","_finalizers","empty","unsubscribe","e_1","_a","e_2","_b","isArray","_parentage_1","_parentage_1_1","remove","e_1_1","return","initialFinalizer","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","add","teardown","_hasParent","_addParent","parent","includes","_removeParent","EMPTY","isSubscription","config","timeoutProvider","setTimeout","handler","timeout","args","_i","delegate","clearTimeout","handle","reportUnhandledError","noop","COMPLETE_NOTIFICATION","createNotification","kind","context","Subscriber","_super","destination","_this","isStopped","EMPTY_OBSERVER","complete","SafeSubscriber","handleStoppedNotification","nextNotification","_next","_error","_complete","_bind","Function","bind","fn","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","errorThrown","notification","subscriber","onStoppedNotification","createOperatorSubscriber","onNext","onComplete","onError","onFinalize","OperatorSubscriber","shouldUnsubscribe","closed_1","project","subscribe","observable","identity","x","pipeFromArray","fns","input","reduce","prev","Observable","_subscribe","operator","isObserver","cb","isRoot","errorContext","_trySubscribe","sink","forEach","promiseCtor","getPromiseCtor","pipe","operations","toPromise","fromAsyncIterable","asyncIterable","asyncIterable_1","asyncIterable_1_1","P","__asyncValues","fulfilled","rejected","result","process","catch","catchError","selector","handledResult","innerSub","syncUnsub","isInteropObservable","obs","array","promise","isAsyncIterable","isIterable","iterable","iterable_1","iterable_1_1","getReader","isReadableStreamLike","readableStream","reader","read","releaseLock","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","innerFrom","DataSource","DataSourceApi","doRequest","query","getBackendSrv","datasourceRequest","method","url","params","options","targets","filter","hide","data","range","start","end","calls","target","request","queryText","toISOString","lastValueFrom","doFetch","response","arrayToDataFrame","console","of","all","withCredentials","headers","fetch","dataFrame","MutableDataFrame","fields","keys","field","type","guessFieldTypeFromValue","timeFieldFound","toLowerCase","FieldType","log","row","appendRow","values","listStreams","streamStats","streamname","isNull","status","statusText","streamSchema","testDatasource","errorMessageBase","title","code","instanceSettings","super","defaultEditorMode","jsonData","ConfigEditor","PureComponent","render","onOptionsChange","props","div","className","DataSourceHttpSettings","defaultUrl","dataSourceConfig","showAccessOptions","onChange","FormField","LegacyForms","plugin","DataSourcePlugin","setConfigEditor","setQueryEditor","datasource","onRunQuery","loadAsyncOptions","React","setValue","useState","schema","setSchema","count","setEventCount","jsonsize","setJsonSize","parquetsize","setParquetSize","setStreamName","time","setTime","loadStreamSchema","schemaToText","loadStreamStats","ingestion","size","storage","stream","getData","InlineFieldRow","InlineField","Label","AsyncSelect","loadOptions","defaultOptions","SeriesTable","series","color","isActive","timestamp","br","labelWidth","inputWidth","event","tooltip"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"module.js","mappings":"oIAAAA,EAAOC,QAAUC,C,UCAjBF,EAAOC,QAAUE,C,UCAjBH,EAAOC,QAAUG,C,UCAjBJ,EAAOC,QAAUI,C,UCAjBL,EAAOC,QAAUK,C,UCAjBN,EAAOC,QAAUM,C,GCCbC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaV,QAGrB,IAAID,EAASQ,EAAyBE,GAAY,CAGjDT,QAAS,CAAC,GAOX,OAHAY,EAAoBH,GAAUV,EAAQA,EAAOC,QAASQ,GAG/CT,EAAOC,OACf,CCrBAQ,EAAoBK,EAAKd,IACxB,IAAIe,EAASf,GAAUA,EAAOgB,WAC7B,IAAOhB,EAAiB,QACxB,IAAM,EAEP,OADAS,EAAoBQ,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdN,EAAoBQ,EAAI,CAAChB,EAASkB,KACjC,IAAI,IAAIC,KAAOD,EACXV,EAAoBY,EAAEF,EAAYC,KAASX,EAAoBY,EAAEpB,EAASmB,IAC5EE,OAAOC,eAAetB,EAASmB,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDX,EAAoBY,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFlB,EAAoBsB,EAAK9B,IACH,oBAAX+B,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAetB,EAAS+B,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAetB,EAAS,aAAc,CAAEiC,OAAO,GAAO,E,kFCLvD,SAASC,EAAWD,GACvB,MAAwB,mBAAVA,CAClB,CCEO,SAASE,EAAQC,GACpB,OAAO,SAAUC,GACb,GALD,SAAiBA,GACpB,OAAOH,EAAWG,aAAuC,EAASA,EAAOC,KAC7E,CAGYC,CAAQF,GACR,OAAOA,EAAOC,MAAK,SAAUE,GACzB,IACI,OAAOJ,EAAKI,EAAcC,KAI9B,CAFA,MAAOC,GACHD,KAAKE,MAAMD,EACf,CACJ,IAEJ,MAAM,IAAIE,UAAU,yCACxB,CACJ,CCFA,IAAIC,EAAgB,SAAS7B,EAAG8B,GAI5B,OAHAD,EAAgBxB,OAAO0B,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUjC,EAAG8B,GAAK9B,EAAEgC,UAAYF,CAAG,GAC1E,SAAU9B,EAAG8B,GAAK,IAAK,IAAII,KAAKJ,EAAOzB,OAAOM,UAAUC,eAAeC,KAAKiB,EAAGI,KAAIlC,EAAEkC,GAAKJ,EAAEI,GAAI,EAC7FL,EAAc7B,EAAG8B,EAC5B,EAEO,SAASK,EAAUnC,EAAG8B,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIF,UAAU,uBAAyBQ,OAAON,GAAK,iCAE7D,SAASO,IAAOZ,KAAKa,YAActC,CAAG,CADtC6B,EAAc7B,EAAG8B,GAEjB9B,EAAEW,UAAkB,OAANmB,EAAazB,OAAOkC,OAAOT,IAAMO,EAAG1B,UAAYmB,EAAEnB,UAAW,IAAI0B,EACnF,CAkDO,SAASG,EAAYC,EAASC,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEM,KAAMC,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXtC,SAA0B+B,EAAE/B,OAAOuC,UAAY,WAAa,OAAO7B,IAAM,GAAIqB,EACvJ,SAASO,EAAKxD,GAAK,OAAO,SAAU0D,GAAK,OACzC,SAAcC,GACV,GAAIb,EAAG,MAAM,IAAIf,UAAU,mCAC3B,KAAOmB,OACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARW,EAAG,GAASZ,EAAU,OAAIY,EAAG,GAAKZ,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEhC,KAAK+B,GAAI,GAAKA,EAAEQ,SAAWP,EAAIA,EAAEhC,KAAK+B,EAAGY,EAAG,KAAKC,KAAM,OAAOZ,EAE3J,OADID,EAAI,EAAGC,IAAGW,EAAK,CAAS,EAARA,EAAG,GAAQX,EAAE5B,QACzBuC,EAAG,IACP,KAAK,EAAG,KAAK,EAAGX,EAAIW,EAAI,MACxB,KAAK,EAAc,OAAXT,EAAEC,QAAgB,CAAE/B,MAAOuC,EAAG,GAAIC,MAAM,GAChD,KAAK,EAAGV,EAAEC,QAASJ,EAAIY,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKT,EAAEI,IAAIO,MAAOX,EAAEG,KAAKQ,MAAO,SACxC,QACI,MAAkBb,GAAZA,EAAIE,EAAEG,MAAYS,OAAS,GAAKd,EAAEA,EAAEc,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAET,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVS,EAAG,MAAcX,GAAMW,EAAG,GAAKX,EAAE,IAAMW,EAAG,GAAKX,EAAE,IAAM,CAAEE,EAAEC,MAAQQ,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYT,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIW,EAAI,KAAO,CACpE,GAAIX,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIS,KAAKJ,GAAK,KAAO,CAC9DX,EAAE,IAAIE,EAAEI,IAAIO,MAChBX,EAAEG,KAAKQ,MAAO,SAEtBF,EAAKd,EAAK7B,KAAK4B,EAASM,GAC1B,MAAOc,GAAKL,EAAK,CAAC,EAAGK,GAAIjB,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARW,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEvC,MAAOuC,EAAG,GAAKA,EAAG,QAAK,EAAQC,MAAM,EAC9E,CAtBgDK,CAAK,CAACjE,EAAG0D,GAAK,CAAG,CAuBrE,CAkBO,SAASQ,EAAS3D,GACrB,IAAI4D,EAAsB,mBAAXjD,QAAyBA,OAAOuC,SAAUW,EAAID,GAAK5D,EAAE4D,GAAIE,EAAI,EAC5E,GAAID,EAAG,OAAOA,EAAEpD,KAAKT,GACrB,GAAIA,GAAyB,iBAAbA,EAAEuD,OAAqB,MAAO,CAC1CP,KAAM,WAEF,OADIhD,GAAK8D,GAAK9D,EAAEuD,SAAQvD,OAAI,GACrB,CAAEa,MAAOb,GAAKA,EAAE8D,KAAMT,MAAOrD,EACxC,GAEJ,MAAM,IAAIwB,UAAUoC,EAAI,0BAA4B,kCACxD,CAEO,SAASG,EAAO/D,EAAGP,GACtB,IAAIoE,EAAsB,mBAAXlD,QAAyBX,EAAEW,OAAOuC,UACjD,IAAKW,EAAG,OAAO7D,EACf,IAAmBU,EAAY+C,EAA3BK,EAAID,EAAEpD,KAAKT,GAAOgE,EAAK,GAC3B,IACI,WAAc,IAANvE,GAAgBA,KAAM,MAAQiB,EAAIoD,EAAEd,QAAQK,MAAMW,EAAGR,KAAK9C,EAAEG,MAQxE,CANA,MAAOU,GAASkC,EAAI,CAAElC,MAAOA,EAAS,CACtC,QACI,IACQb,IAAMA,EAAE2C,OAASQ,EAAIC,EAAU,SAAID,EAAEpD,KAAKqD,EAElB,CAAhC,QAAU,GAAIL,EAAG,MAAMA,EAAElC,KAAO,CACpC,CACA,OAAOyC,CACX,CAkBO,SAASC,EAAcC,EAAIC,EAAMC,GACpC,GAAIA,GAA6B,IAArBC,UAAUd,OAAc,IAAK,IAA4BS,EAAxBF,EAAI,EAAGQ,EAAIH,EAAKZ,OAAYO,EAAIQ,EAAGR,KACxEE,GAAQF,KAAKK,IACRH,IAAIA,EAAKnC,MAAMtB,UAAUgE,MAAM9D,KAAK0D,EAAM,EAAGL,IAClDE,EAAGF,GAAKK,EAAKL,IAGrB,OAAOI,EAAGM,OAAOR,GAAMnC,MAAMtB,UAAUgE,MAAM9D,KAAK0D,GACtD,CAEO,SAASM,EAAQtB,GACpB,OAAO9B,gBAAgBoD,GAAWpD,KAAK8B,EAAIA,EAAG9B,MAAQ,IAAIoD,EAAQtB,EACtE,CAEO,SAASuB,EAAiBrC,EAASsC,EAAYC,GAClD,IAAKjE,OAAOkE,cAAe,MAAM,IAAIrD,UAAU,wCAC/C,IAAoDsC,EAAhDpB,EAAIkC,EAAUE,MAAMzC,EAASsC,GAAc,IAAQI,EAAI,GAC3D,OAAOjB,EAAI,CAAC,EAAGb,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWa,EAAEnD,OAAOkE,eAAiB,WAAc,OAAOxD,IAAM,EAAGyC,EACpH,SAASb,EAAKxD,GAASiD,EAAEjD,KAAIqE,EAAErE,GAAK,SAAU0D,GAAK,OAAO,IAAI6B,SAAQ,SAAUnF,EAAG6B,GAAKqD,EAAEvB,KAAK,CAAC/D,EAAG0D,EAAGtD,EAAG6B,IAAM,GAAKuD,EAAOxF,EAAG0D,EAAI,GAAI,EAAG,CACzI,SAAS8B,EAAOxF,EAAG0D,GAAK,KACVzC,EADqBgC,EAAEjD,GAAG0D,IACnBtC,iBAAiB4D,EAAUO,QAAQE,QAAQxE,EAAEG,MAAMsC,GAAGgC,KAAKC,EAASC,GAAUC,EAAOP,EAAE,GAAG,GAAIrE,EADpC,CAAhC,MAAO+C,GAAK6B,EAAOP,EAAE,GAAG,GAAItB,EAAI,CAC/E,IAAc/C,CADmE,CAEjF,SAAS0E,EAAQvE,GAASoE,EAAO,OAAQpE,EAAQ,CACjD,SAASwE,EAAOxE,GAASoE,EAAO,QAASpE,EAAQ,CACjD,SAASyE,EAAO/C,EAAGY,GAASZ,EAAEY,GAAI4B,EAAEQ,QAASR,EAAExB,QAAQ0B,EAAOF,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACrF,CArF6B9E,OAAOkC,OA0GXlC,OAAOkC,OCpNzB,ICICqD,EDJGC,ICIHD,EDHG,SAAiCE,GCD3B,IAAUC,IDEZtE,KCDPuE,MAAMnF,KAAKkF,GACXA,EAASE,OAAQ,IAAID,OAAQC,MDC7BxE,KAAKyE,QAAUJ,EACTA,EAAOnC,OAAS,4CAA8CmC,EAAOK,KAAI,SAAUzE,EAAKwC,GAAK,OAAOA,EAAI,EAAI,KAAOxC,EAAI0E,UAAY,IAAGC,KAAK,QAC3I,GACN5E,KAAK6E,KAAO,sBACZ7E,KAAKqE,OAASA,CAClB,GCHSnF,UAAYN,OAAOkC,OAAOyD,MAAMrF,WACzCiF,EAASjF,UAAU2B,YAAcsD,EAC1BA,GCRJ,SAASW,EAAUC,EAAKC,GAC3B,GAAID,EAAK,CACL,IAAIE,EAAQF,EAAIG,QAAQF,GACxB,GAAKC,GAASF,EAAII,OAAOF,EAAO,EACpC,CACJ,CCDA,IAAIG,EAAgB,WAChB,SAASA,EAAaC,GAClBrF,KAAKqF,gBAAkBA,EACvBrF,KAAKsF,QAAS,EACdtF,KAAKuF,WAAa,KAClBvF,KAAKwF,YAAc,IACvB,CA+GqB,IACbC,EAIR,OAnHAL,EAAalG,UAAUwG,YAAc,WACjC,IAAIC,EAAKC,EAAIC,EAAKC,EACdzB,EACJ,IAAKrE,KAAKsF,OAAQ,CACdtF,KAAKsF,QAAS,EACd,IAAIC,EAAavF,KAAKuF,WACtB,GAAIA,EAEA,GADAvF,KAAKuF,WAAa,KACd/E,MAAMuF,QAAQR,GACd,IACI,IAAK,IAAIS,EAAe1D,EAASiD,GAAaU,EAAiBD,EAAarE,QAASsE,EAAejE,KAAMiE,EAAiBD,EAAarE,OACrHsE,EAAezG,MACrB0G,OAAOlG,KASxB,CANA,MAAOmG,GAASR,EAAM,CAAEzF,MAAOiG,EAAS,CACxC,QACI,IACQF,IAAmBA,EAAejE,OAAS4D,EAAKI,EAAaI,SAASR,EAAGxG,KAAK4G,EAElD,CAApC,QAAU,GAAIL,EAAK,MAAMA,EAAIzF,KAAO,CACxC,MAGAqF,EAAWW,OAAOlG,MAG1B,IAAIqG,EAAmBrG,KAAKqF,gBAC5B,GAAI5F,EAAW4G,GACX,IACIA,GAIJ,CAFA,MAAOjE,GACHiC,EAASjC,aAAagC,EAAsBhC,EAAEiC,OAAS,CAACjC,EAC5D,CAEJ,IAAIoD,EAAcxF,KAAKwF,YACvB,GAAIA,EAAa,CACbxF,KAAKwF,YAAc,KACnB,IACI,IAAK,IAAIc,EAAgBhE,EAASkD,GAAce,EAAkBD,EAAc3E,QAAS4E,EAAgBvE,KAAMuE,EAAkBD,EAAc3E,OAAQ,CACnJ,IAAI6E,EAAYD,EAAgB/G,MAChC,IACIiH,EAAcD,EAUlB,CARA,MAAOvG,GACHoE,EAASA,QAAuCA,EAAS,GACrDpE,aAAemE,EACfC,EAASzB,EAAcA,EAAc,GAAIF,EAAO2B,IAAU3B,EAAOzC,EAAIoE,SAGrEA,EAAOlC,KAAKlC,EAEpB,CACJ,CAQJ,CANA,MAAOyG,GAASb,EAAM,CAAE3F,MAAOwG,EAAS,CACxC,QACI,IACQH,IAAoBA,EAAgBvE,OAAS8D,EAAKQ,EAAcF,SAASN,EAAG1G,KAAKkH,EAErD,CAApC,QAAU,GAAIT,EAAK,MAAMA,EAAI3F,KAAO,CACxC,CACJ,CACA,GAAImE,EACA,MAAM,IAAID,EAAoBC,EAEtC,CACJ,EACAe,EAAalG,UAAUyH,IAAM,SAAUC,GACnC,IAAIhB,EACJ,GAAIgB,GAAYA,IAAa5G,KACzB,GAAIA,KAAKsF,OACLmB,EAAcG,OAEb,CACD,GAAIA,aAAoBxB,EAAc,CAClC,GAAIwB,EAAStB,QAAUsB,EAASC,WAAW7G,MACvC,OAEJ4G,EAASE,WAAW9G,KACxB,EACCA,KAAKwF,YAA0C,QAA3BI,EAAK5F,KAAKwF,mBAAgC,IAAPI,EAAgBA,EAAK,IAAIzD,KAAKyE,EAC1F,CAER,EACAxB,EAAalG,UAAU2H,WAAa,SAAUE,GAC1C,IAAIxB,EAAavF,KAAKuF,WACtB,OAAOA,IAAewB,GAAWvG,MAAMuF,QAAQR,IAAeA,EAAWyB,SAASD,EACtF,EACA3B,EAAalG,UAAU4H,WAAa,SAAUC,GAC1C,IAAIxB,EAAavF,KAAKuF,WACtBvF,KAAKuF,WAAa/E,MAAMuF,QAAQR,IAAeA,EAAWpD,KAAK4E,GAASxB,GAAcA,EAAa,CAACA,EAAYwB,GAAUA,CAC9H,EACA3B,EAAalG,UAAU+H,cAAgB,SAAUF,GAC7C,IAAIxB,EAAavF,KAAKuF,WAClBA,IAAewB,EACf/G,KAAKuF,WAAa,KAEb/E,MAAMuF,QAAQR,IACnBT,EAAUS,EAAYwB,EAE9B,EACA3B,EAAalG,UAAUgH,OAAS,SAAUU,GACtC,IAAIpB,EAAcxF,KAAKwF,YACvBA,GAAeV,EAAUU,EAAaoB,GAClCA,aAAoBxB,GACpBwB,EAASK,cAAcjH,KAE/B,EACAoF,EAAa8B,QACLzB,EAAQ,IAAIL,GACVE,QAAS,EACRG,GAEJL,CACX,CA3HmB,GA8HZ,SAAS+B,EAAe3H,GAC3B,OAAQA,aAAiB4F,GACpB5F,GAAS,WAAYA,GAASC,EAAWD,EAAM0G,SAAWzG,EAAWD,EAAMmH,MAAQlH,EAAWD,EAAMkG,YAC7G,CACA,SAASe,EAAcD,GACf/G,EAAW+G,GACXA,IAGAA,EAAUd,aAElB,CAZgCN,EAAa8B,MCjItC,IAAIE,EACW,KADXA,EAEgB,KAFhBA,OAGElJ,EAHFkJ,GAIgC,EAJhCA,GAKmB,ECJnBC,EAAkB,CACzBC,WAAY,SAAUC,EAASC,GAE3B,IADA,IAAIC,EAAO,GACFC,EAAK,EAAGA,EAAK1E,UAAUd,OAAQwF,IACpCD,EAAKC,EAAK,GAAK1E,UAAU0E,GAE7B,IAAIC,EAAWN,EAAgBM,SAC/B,OAAIA,aAA2C,EAASA,EAASL,YACtDK,EAASL,WAAW7D,MAAMkE,EAAU/E,EAAc,CAAC2E,EAASC,GAAU9E,EAAO+E,KAEjFH,WAAW7D,WAAM,EAAQb,EAAc,CAAC2E,EAASC,GAAU9E,EAAO+E,IAC7E,EACAG,aAAc,SAAUC,GACpB,IAAIF,EAAWN,EAAgBM,SAC/B,QAASA,aAA2C,EAASA,EAASC,eAAiBA,cAAcC,EACzG,EACAF,cAAUzJ,GCfP,SAAS4J,EAAqB7H,GACjCoH,EAAgBC,YAAW,WAEvB,IADuBF,EAKnB,MAAMnH,EALamH,EAEFnH,EAKzB,GACJ,CCZO,SAAS8H,IAAS,CCAlB,IAAIC,EAA8CC,EAAmB,SAAK/J,OAAWA,GAOrF,SAAS+J,EAAmBC,EAAM1I,EAAOU,GAC5C,MAAO,CACHgI,KAAMA,EACN1I,MAAOA,EACPU,MAAOA,EAEf,CCZA,IAAIiI,EAAU,KCQVC,EAAc,SAAUC,GAExB,SAASD,EAAWE,GAChB,IAAIC,EAAQF,EAAOjJ,KAAKY,OAASA,KAWjC,OAVAuI,EAAMC,WAAY,EACdF,GACAC,EAAMD,YAAcA,EAChBnB,EAAemB,IACfA,EAAY3B,IAAI4B,IAIpBA,EAAMD,YAAcG,EAEjBF,CACX,CAwDA,OAtEA7H,EAAU0H,EAAYC,GAetBD,EAAWtH,OAAS,SAAUa,EAAMzB,EAAOwI,GACvC,OAAO,IAAIC,EAAehH,EAAMzB,EAAOwI,EAC3C,EACAN,EAAWlJ,UAAUyC,KAAO,SAAUnC,GAC9BQ,KAAKwI,UACLI,EF1BL,SAA0BpJ,GAC7B,OAAOyI,EAAmB,IAAKzI,OAAOtB,EAC1C,CEwBsC2K,CAAiBrJ,GAAQQ,MAGnDA,KAAK8I,MAAMtJ,EAEnB,EACA4I,EAAWlJ,UAAUgB,MAAQ,SAAUD,GAC/BD,KAAKwI,UACLI,EFpCDX,EAAmB,SAAK/J,EEoCqB+B,GAAMD,OAGlDA,KAAKwI,WAAY,EACjBxI,KAAK+I,OAAO9I,GAEpB,EACAmI,EAAWlJ,UAAUwJ,SAAW,WACxB1I,KAAKwI,UACLI,EAA0BZ,EAAuBhI,OAGjDA,KAAKwI,WAAY,EACjBxI,KAAKgJ,YAEb,EACAZ,EAAWlJ,UAAUwG,YAAc,WAC1B1F,KAAKsF,SACNtF,KAAKwI,WAAY,EACjBH,EAAOnJ,UAAUwG,YAAYtG,KAAKY,MAClCA,KAAKsI,YAAc,KAE3B,EACAF,EAAWlJ,UAAU4J,MAAQ,SAAUtJ,GACnCQ,KAAKsI,YAAY3G,KAAKnC,EAC1B,EACA4I,EAAWlJ,UAAU6J,OAAS,SAAU9I,GACpC,IACID,KAAKsI,YAAYpI,MAAMD,EAI3B,CAFA,QACID,KAAK0F,aACT,CACJ,EACA0C,EAAWlJ,UAAU8J,UAAY,WAC7B,IACIhJ,KAAKsI,YAAYI,UAIrB,CAFA,QACI1I,KAAK0F,aACT,CACJ,EACO0C,CACX,CAxEiB,CAwEfhD,GAEE6D,EAAQC,SAAShK,UAAUiK,KAC/B,SAASA,EAAKC,EAAIpI,GACd,OAAOiI,EAAM7J,KAAKgK,EAAIpI,EAC1B,CACA,IAAIqI,EAAoB,WACpB,SAASA,EAAiBC,GACtBtJ,KAAKsJ,gBAAkBA,CAC3B,CAqCA,OApCAD,EAAiBnK,UAAUyC,KAAO,SAAUnC,GACxC,IAAI8J,EAAkBtJ,KAAKsJ,gBAC3B,GAAIA,EAAgB3H,KAChB,IACI2H,EAAgB3H,KAAKnC,EAIzB,CAFA,MAAOU,GACHqJ,EAAqBrJ,EACzB,CAER,EACAmJ,EAAiBnK,UAAUgB,MAAQ,SAAUD,GACzC,IAAIqJ,EAAkBtJ,KAAKsJ,gBAC3B,GAAIA,EAAgBpJ,MAChB,IACIoJ,EAAgBpJ,MAAMD,EAI1B,CAFA,MAAOC,GACHqJ,EAAqBrJ,EACzB,MAGAqJ,EAAqBtJ,EAE7B,EACAoJ,EAAiBnK,UAAUwJ,SAAW,WAClC,IAAIY,EAAkBtJ,KAAKsJ,gBAC3B,GAAIA,EAAgBZ,SAChB,IACIY,EAAgBZ,UAIpB,CAFA,MAAOxI,GACHqJ,EAAqBrJ,EACzB,CAER,EACOmJ,CACX,CAzCuB,GA0CnBV,EAAkB,SAAUN,GAE5B,SAASM,EAAea,EAAgBtJ,EAAOwI,GAC3C,IACIY,EASIG,EAVJlB,EAAQF,EAAOjJ,KAAKY,OAASA,KAyBjC,OAvBIP,EAAW+J,KAAoBA,EAC/BF,EAAkB,CACd3H,KAAO6H,QAAuDA,OAAiBtL,EAC/EgC,MAAOA,QAAqCA,OAAQhC,EACpDwK,SAAUA,QAA2CA,OAAWxK,GAKhEqK,GAASnB,IACTqC,EAAY7K,OAAOkC,OAAO0I,IAChB9D,YAAc,WAAc,OAAO6C,EAAM7C,aAAe,EAClE4D,EAAkB,CACd3H,KAAM6H,EAAe7H,MAAQwH,EAAKK,EAAe7H,KAAM8H,GACvDvJ,MAAOsJ,EAAetJ,OAASiJ,EAAKK,EAAetJ,MAAOuJ,GAC1Df,SAAUc,EAAed,UAAYS,EAAKK,EAAed,SAAUe,KAIvEH,EAAkBE,EAG1BjB,EAAMD,YAAc,IAAIe,EAAiBC,GAClCf,CACX,CACA,OA7BA7H,EAAUiI,EAAgBN,GA6BnBM,CACX,CA/BqB,CA+BnBP,GAEF,SAASmB,EAAqBrJ,GD7IvB,IAAsBD,EC8IrBmH,GD9IqBnH,EC+IRC,ED9IbkH,GAAgDe,IAChDA,EAAQuB,aAAc,EACtBvB,EAAQjI,MAAQD,IC+IhB6H,EAAqB5H,EAE7B,CAIA,SAAS0I,EAA0Be,EAAcC,GAC7C,IAAIC,EAAwBzC,EAC5ByC,GAAyBxC,EAAgBC,YAAW,WAAc,OAAOuC,EAAsBF,EAAcC,EAAa,GAC9H,CACO,IAAInB,EAAiB,CACxBnD,QAAQ,EACR3D,KAAMoG,EACN7H,MAVJ,SAA6BD,GACzB,MAAMA,CACV,EASIyI,SAAUX,GCnLP,SAAS+B,EAAyBxB,EAAayB,EAAQC,EAAYC,EAASC,GAC/E,OAAO,IAAIC,EAAmB7B,EAAayB,EAAQC,EAAYC,EAASC,EAC5E,CACA,IAAIC,EAAsB,SAAU9B,GAEhC,SAAS8B,EAAmB7B,EAAayB,EAAQC,EAAYC,EAASC,EAAYE,GAC9E,IAAI7B,EAAQF,EAAOjJ,KAAKY,KAAMsI,IAAgBtI,KAuC9C,OAtCAuI,EAAM2B,WAAaA,EACnB3B,EAAM6B,kBAAoBA,EAC1B7B,EAAMO,MAAQiB,EACR,SAAUvK,GACR,IACIuK,EAAOvK,EAIX,CAFA,MAAOS,GACHqI,EAAYpI,MAAMD,EACtB,CACJ,EACEoI,EAAOnJ,UAAU4J,MACvBP,EAAMQ,OAASkB,EACT,SAAUhK,GACR,IACIgK,EAAQhK,EAOZ,CALA,MAAOA,GACHqI,EAAYpI,MAAMD,EACtB,CACA,QACID,KAAK0F,aACT,CACJ,EACE2C,EAAOnJ,UAAU6J,OACvBR,EAAMS,UAAYgB,EACZ,WACE,IACIA,GAOJ,CALA,MAAO/J,GACHqI,EAAYpI,MAAMD,EACtB,CACA,QACID,KAAK0F,aACT,CACJ,EACE2C,EAAOnJ,UAAU8J,UAChBT,CACX,CASA,OAnDA7H,EAAUyJ,EAAoB9B,GA2C9B8B,EAAmBjL,UAAUwG,YAAc,WACvC,IAAIE,EACJ,IAAK5F,KAAKoK,mBAAqBpK,KAAKoK,oBAAqB,CACrD,IAAIC,EAAWrK,KAAKsF,OACpB+C,EAAOnJ,UAAUwG,YAAYtG,KAAKY,OACjCqK,IAAwC,QAA1BzE,EAAK5F,KAAKkK,kBAA+B,IAAPtE,GAAyBA,EAAGxG,KAAKY,MACtF,CACJ,EACOmK,CACX,CArDyB,CAqDvB/B,GCxDK,SAAS1D,EAAI4F,EAAStJ,GACzB,OAAOtB,GAAQ,SAAUE,EAAQgK,GAC7B,IAAI3E,EAAQ,EACZrF,EAAO2K,UAAUT,EAAyBF,GAAY,SAAUpK,GAC5DoK,EAAWjI,KAAK2I,EAAQlL,KAAK4B,EAASxB,EAAOyF,KACjD,IACJ,GACJ,CCTO,IAAIuF,EAAsD,mBAAXlL,QAAyBA,OAAOkL,YAAe,eCA9F,SAASC,EAASC,GACrB,OAAOA,CACX,CCMO,SAASC,EAAcC,GAC1B,OAAmB,IAAfA,EAAI1I,OACGuI,EAEQ,IAAfG,EAAI1I,OACG0I,EAAI,GAER,SAAeC,GAClB,OAAOD,EAAIE,QAAO,SAAUC,EAAM3B,GAAM,OAAOA,EAAG2B,EAAO,GAAGF,EAChE,CACJ,CCXA,IAAIG,EAAc,WACd,SAASA,EAAWT,GACZA,IACAvK,KAAKiL,WAAaV,EAE1B,CA4EA,OA3EAS,EAAW9L,UAAUW,KAAO,SAAUqL,GAClC,IAAIV,EAAa,IAAIQ,EAGrB,OAFAR,EAAW5K,OAASI,KACpBwK,EAAWU,SAAWA,EACfV,CACX,EACAQ,EAAW9L,UAAUqL,UAAY,SAAUf,EAAgBtJ,EAAOwI,GAC9D,IA8EclJ,EA9EV+I,EAAQvI,KACR4J,GA6EUpK,EA7EgBgK,IA8EjBhK,aAAiB4I,GAJtC,SAAoB5I,GAChB,OAAOA,GAASC,EAAWD,EAAMmC,OAASlC,EAAWD,EAAMU,QAAUT,EAAWD,EAAMkJ,SAC1F,CAEsDyC,CAAW3L,IAAU2H,EAAe3H,GA9ElCgK,EAAiB,IAAIb,EAAea,EAAgBtJ,EAAOwI,GAY3G,OP/BD,SAAsB0C,GACzB,GAAIhE,EAA8C,CAC9C,IAAIiE,GAAUlD,EAKd,GAJIkD,IACAlD,EAAU,CAAEuB,aAAa,EAAOxJ,MAAO,OAE3CkL,IACIC,EAAQ,CACR,IAAIzF,EAAKuC,EAASuB,EAAc9D,EAAG8D,YAAaxJ,EAAQ0F,EAAG1F,MAE3D,GADAiI,EAAU,KACNuB,EACA,MAAMxJ,CAEd,CACJ,MAEIkL,GAER,COEQE,EAAa,WACT,IAAI1F,EAAK2C,EAAO2C,EAAWtF,EAAGsF,SAAUtL,EAASgG,EAAGhG,OACpDgK,EAAWjD,IAAIuE,EAEPA,EAAS9L,KAAKwK,EAAYhK,GAC5BA,EAEM2I,EAAM0C,WAAWrB,GAEjBrB,EAAMgD,cAAc3B,GACpC,IACOA,CACX,EACAoB,EAAW9L,UAAUqM,cAAgB,SAAUC,GAC3C,IACI,OAAOxL,KAAKiL,WAAWO,EAI3B,CAFA,MAAOvL,GACHuL,EAAKtL,MAAMD,EACf,CACJ,EACA+K,EAAW9L,UAAUuM,QAAU,SAAU9J,EAAM+J,GAC3C,IAAInD,EAAQvI,KAEZ,OAAO,IADP0L,EAAcC,EAAeD,KACN,SAAU7H,EAASG,GACtC,IAAI4F,EAAa,IAAIjB,EAAe,CAChChH,KAAM,SAAUnC,GACZ,IACImC,EAAKnC,EAKT,CAHA,MAAOS,GACH+D,EAAO/D,GACP2J,EAAWlE,aACf,CACJ,EACAxF,MAAO8D,EACP0E,SAAU7E,IAEd0E,EAAMgC,UAAUX,EACpB,GACJ,EACAoB,EAAW9L,UAAU+L,WAAa,SAAUrB,GACxC,IAAIhE,EACJ,OAA8B,QAAtBA,EAAK5F,KAAKJ,cAA2B,IAAPgG,OAAgB,EAASA,EAAG2E,UAAUX,EAChF,EACAoB,EAAW9L,UAAU,GAAqB,WACtC,OAAOc,IACX,EACAgL,EAAW9L,UAAU0M,KAAO,WAExB,IADA,IAAIC,EAAa,GACRnE,EAAK,EAAGA,EAAK1E,UAAUd,OAAQwF,IACpCmE,EAAWnE,GAAM1E,UAAU0E,GAE/B,OAAOiD,EAAckB,EAAdlB,CAA0B3K,KACrC,EACAgL,EAAW9L,UAAU4M,UAAY,SAAUJ,GACvC,IAAInD,EAAQvI,KAEZ,OAAO,IADP0L,EAAcC,EAAeD,KACN,SAAU7H,EAASG,GACtC,IAAIxE,EACJ+I,EAAMgC,WAAU,SAAUG,GAAK,OAAQlL,EAAQkL,CAAI,IAAG,SAAUzK,GAAO,OAAO+D,EAAO/D,EAAM,IAAG,WAAc,OAAO4D,EAAQrE,EAAQ,GACvI,GACJ,EACAwL,EAAWlK,OAAS,SAAUyJ,GAC1B,OAAO,IAAIS,EAAWT,EAC1B,EACOS,CACX,CAlFiB,GAoFjB,SAASW,EAAeD,GACpB,IAAI9F,EACJ,OAAgG,QAAxFA,EAAK8F,QAAiDA,EAActE,SAAmC,IAAPxB,EAAgBA,EAAKjC,OACjI,CCxFO,IAAI9B,EALe,mBAAXvC,QAA0BA,OAAOuC,SAGrCvC,OAAOuC,SAFH,aCuFR,SAASkK,EAAkBC,GAC9B,OAAO,IAAIhB,GAAW,SAAUpB,IAOpC,SAAiBoC,EAAepC,GAC5B,IAAIqC,EAAiBC,EACjBrG,EAAKD,EnB9Ba5E,EAASsC,EAAY6I,EAAG5I,EmB+B9C,OnB/BsBvC,EmB+BLhB,KnB/BcsD,OmB+BR,EnB/BuBC,EmB+BP,WACnC,IAAI/D,EAAOkH,EACX,OAAO3F,EAAYf,MAAM,SAAU8F,GAC/B,OAAQA,EAAGvE,OACP,KAAK,EACDuE,EAAGrE,KAAKU,KAAK,CAAC,EAAG,EAAG,EAAG,KACvB8J,EnB8Fb,SAAuBtN,GAC1B,IAAKW,OAAOkE,cAAe,MAAM,IAAIrD,UAAU,wCAC/C,IAAiCsC,EAA7BD,EAAI7D,EAAEW,OAAOkE,eACjB,OAAOhB,EAAIA,EAAEpD,KAAKT,IAAMA,EAAqC2D,EAAS3D,GAA2B8D,EAAI,CAAC,EAAGb,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWa,EAAEnD,OAAOkE,eAAiB,WAAc,OAAOxD,IAAM,EAAGyC,GAC9M,SAASb,EAAKxD,GAAKqE,EAAErE,GAAKO,EAAEP,IAAM,SAAU0D,GAAK,OAAO,IAAI6B,SAAQ,SAAUE,EAASG,IACvF,SAAgBH,EAASG,EAAQzF,EAAGuD,GAAK6B,QAAQE,QAAQ/B,GAAGgC,MAAK,SAAShC,GAAK+B,EAAQ,CAAErE,MAAOsC,EAAGE,KAAMzD,GAAM,GAAGyF,EAAS,CADbC,CAAOJ,EAASG,GAA7BlC,EAAInD,EAAEP,GAAG0D,IAA8BE,KAAMF,EAAEtC,MAAQ,GAAI,CAAG,CAEnK,CmBpGsC4M,CAAcJ,GAChClG,EAAGvE,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAG0K,EAAgBtK,QACnC,KAAK,EACD,IAAMuK,EAAoBpG,EAAGtE,QAA2BQ,KAAO,MAAO,CAAC,EAAG,GAG1E,GAFAxC,EAAQ0M,EAAkB1M,MAC1BoK,EAAWjI,KAAKnC,GACZoK,EAAWtE,OACX,MAAO,CAAC,GAEZQ,EAAGvE,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAG,GACnB,KAAK,EAAG,MAAO,CAAC,EAAG,IACnB,KAAK,EAGD,OAFAmF,EAAQZ,EAAGtE,OACXqE,EAAM,CAAE3F,MAAOwG,GACR,CAAC,EAAG,IACf,KAAK,EAED,OADAZ,EAAGrE,KAAKU,KAAK,CAAC,EAAG,CAAE,EAAG,KAChB+J,IAAsBA,EAAkBlK,OAAS4D,EAAKqG,EAAgB7F,QACrE,CAAC,EAAGR,EAAGxG,KAAK6M,IAD0E,CAAC,EAAG,GAErG,KAAK,EACDnG,EAAGtE,OACHsE,EAAGvE,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAG,IACnB,KAAK,EACD,GAAIsE,EAAK,MAAMA,EAAI3F,MACnB,MAAO,CAAC,GACZ,KAAK,GAAI,MAAO,CAAC,GACjB,KAAK,GAED,OADA0J,EAAWlB,WACJ,CAAC,GAEpB,GACJ,EnBrEO,KAFoCyD,OmB+BZ,KnB7BbA,EAAIxI,WAAU,SAAUE,EAASG,GAC/C,SAASqI,EAAU7M,GAAS,IAAM6C,EAAKkB,EAAU5B,KAAKnC,GAAkC,CAAvB,MAAO4C,GAAK4B,EAAO5B,EAAI,CAAE,CAC1F,SAASkK,EAAS9M,GAAS,IAAM6C,EAAKkB,EAAiB,MAAE/D,GAAkC,CAAvB,MAAO4C,GAAK4B,EAAO5B,EAAI,CAAE,CAC7F,SAASC,EAAKkK,GAJlB,IAAe/M,EAIa+M,EAAOvK,KAAO6B,EAAQ0I,EAAO/M,QAJ1CA,EAIyD+M,EAAO/M,MAJhDA,aAAiB2M,EAAI3M,EAAQ,IAAI2M,GAAE,SAAUtI,GAAWA,EAAQrE,EAAQ,KAIjBsE,KAAKuI,EAAWC,EAAW,CAC7GjK,GAAMkB,EAAYA,EAAUE,MAAMzC,EAASsC,GAAc,KAAK3B,OAClE,GmBiEJ,EAlDQ6K,CAAQR,EAAepC,GAAY6C,OAAM,SAAUxM,GAAO,OAAO2J,EAAW1J,MAAMD,EAAM,GAC5F,GACJ,CC1FO,SAASyM,EAAWC,GACvB,OAAOjN,GAAQ,SAAUE,EAAQgK,GAC7B,IAEIgD,EAFAC,EAAW,KACXC,GAAY,EAEhBD,EAAWjN,EAAO2K,UAAUT,EAAyBF,OAAY1L,OAAWA,GAAW,SAAU+B,GAC7F2M,EDGL,SAAmB/B,GACtB,GAAIA,aAAiBG,EACjB,OAAOH,EAEX,GAAa,MAATA,EAAe,CACf,GEfD,SAA6BA,GAChC,OAAOpL,EAAWoL,EAAM,GAC5B,CFaYkC,CAAoBlC,GACpB,OAoB0B7L,EApBG6L,EAqB9B,IAAIG,GAAW,SAAUpB,GAC5B,IAAIoD,EAAMhO,EAAI,KACd,GAAIS,EAAWuN,EAAIzC,WACf,OAAOyC,EAAIzC,UAAUX,GAEzB,MAAM,IAAIzJ,UAAU,iEACxB,IAzBI,IGpB4BuK,EHoBZG,IGpBiD,iBAAbH,EAAExI,QAAoC,mBAANwI,EHqBhF,OA0BkBuC,EA1BGpC,EA2BtB,IAAIG,GAAW,SAAUpB,GAC5B,IAAK,IAAInH,EAAI,EAAGA,EAAIwK,EAAM/K,SAAW0H,EAAWtE,OAAQ7C,IACpDmH,EAAWjI,KAAKsL,EAAMxK,IAE1BmH,EAAWlB,UACf,IA9BI,GIrBGjJ,EAAWD,OADIA,EJsBJqL,QIrBqC,EAASrL,EAAMsE,MJsB9D,OA+BgBoJ,EA/BGrC,EAgCpB,IAAIG,GAAW,SAAUpB,GAC5BsD,EACKpJ,MAAK,SAAUtE,GACXoK,EAAWtE,SACZsE,EAAWjI,KAAKnC,GAChBoK,EAAWlB,WAEnB,IAAG,SAAUzI,GAAO,OAAO2J,EAAW1J,MAAMD,EAAM,IAC7C6D,KAAK,KAAMgE,EACpB,IAvCI,GKzBD,SAAyB9I,GAC5B,OAAOM,OAAOkE,eAAiB/D,EAAWT,aAAiC,EAASA,EAAIM,OAAOkE,eACnG,CLuBY2J,CAAgBtC,GAChB,OAAOkB,EAAkBlB,GAE7B,GM3BD,SAAoBA,GACvB,OAAOpL,EAAWoL,aAAqC,EAASA,EAAM,GAC1E,CNyBYuC,CAAWvC,GACX,OAqCiBwC,EArCGxC,EAsCrB,IAAIG,GAAW,SAAUpB,GAC5B,IAAIjE,EAAKC,EACT,IACI,IAAK,IAAI0H,EAAahL,EAAS+K,GAAWE,EAAeD,EAAW3L,QAAS4L,EAAavL,KAAMuL,EAAeD,EAAW3L,OAAQ,CAC9H,IAAInC,EAAQ+N,EAAa/N,MAEzB,GADAoK,EAAWjI,KAAKnC,GACZoK,EAAWtE,OACX,MAER,CAQJ,CANA,MAAOa,GAASR,EAAM,CAAEzF,MAAOiG,EAAS,CACxC,QACI,IACQoH,IAAiBA,EAAavL,OAAS4D,EAAK0H,EAAWlH,SAASR,EAAGxG,KAAKkO,EAE5C,CAApC,QAAU,GAAI3H,EAAK,MAAMA,EAAIzF,KAAO,CACxC,CACA0J,EAAWlB,UACf,IAvDI,GOGD,SAA8B1J,GACjC,OAAOS,EAAWT,aAAiC,EAASA,EAAIwO,UACpE,CPLYC,CAAqB5C,GACrB,OA8DDkB,EO7FJ,SAA4C2B,GAC/C,OAAOrK,EAAiBrD,KAAMgD,WAAW,WACrC,IAAI2K,EAAQ/H,EAAIpG,EAChB,OAAOuB,EAAYf,MAAM,SAAU8F,GAC/B,OAAQA,EAAGvE,OACP,KAAK,EACDoM,EAASD,EAAeF,YACxB1H,EAAGvE,MAAQ,EACf,KAAK,EACDuE,EAAGrE,KAAKU,KAAK,CAAC,EAAG,CAAE,EAAG,KACtB2D,EAAGvE,MAAQ,EACf,KAAK,EAED,MAAO,CAAC,EAAG6B,EAAQuK,EAAOC,SAC9B,KAAK,EAED,OADAhI,EAAKE,EAAGtE,OAAQhC,EAAQoG,EAAGpG,MAAcoG,EAAG5D,KAErC,CAAC,EAAGoB,OAAQ,IADD,CAAC,EAAG,GAE1B,KAAK,EAAG,MAAO,CAAC,EAAG0C,EAAGtE,QACtB,KAAK,EAAG,MAAO,CAAC,EAAG4B,EAAQ5D,IAC3B,KAAK,EAAG,MAAO,CAAC,EAAGsG,EAAGtE,QACtB,KAAK,EAED,OADAsE,EAAGtE,OACI,CAAC,EAAG,GACf,KAAK,EAAG,MAAO,CAAC,EAAG,IACnB,KAAK,EAED,OADAmM,EAAOE,cACA,CAAC,GACZ,KAAK,GAAI,MAAO,CAAC,GAEzB,GACJ,GACJ,CP6D6BC,CA9DajD,GAEtC,CA2DG,IA3BsBwC,EAZDH,EItDF1N,EJ8CIyN,EG/CMvC,EHsCE1L,EAFlC,MQpCG,SAA0C6L,GAC7C,OAAO,IAAI1K,UAAU,iBAA6B,OAAV0K,GAAmC,iBAAVA,EAAqB,oBAAsB,IAAMA,EAAQ,KAAO,2HACrI,CRkCUkD,CAAiClD,EAC3C,CC5B4BmD,CAAUrB,EAAS1M,EAAKyM,EAAWC,EAAXD,CAAqB9M,KACzDiN,GACAA,EAASnH,cACTmH,EAAW,KACXD,EAAcrC,UAAUX,IAGxBkD,GAAY,CAEpB,KACIA,IACAD,EAASnH,cACTmH,EAAW,KACXD,EAAcrC,UAAUX,GAEhC,GACJ,C,aQzBA,0B,kSAyBO,MAAMqE,WAAmBC,EAAAA,cAYxBC,UAAUC,G,kBAAhB,eAOE,aALqBC,EAAAA,EAAAA,iBAAgBC,kBAAkB,CACrDC,OAAQ,MACRC,IAAK,EAAKA,IAAL,oBACLC,OAAQL,GAGZ,GARA,E,CAUMA,MAAMM,G,kBAAZ,eAEE,GADAA,EAAQC,QAAUD,EAAQC,QAAQC,QAAQxN,IAAOA,EAAEyN,OACpB,IAA3BH,EAAQC,QAAQzM,OAClB,OAAOyB,QAAQE,QAAQ,CAAEiL,KAAM,KAGjC,MAAM,MAAEC,GAAUL,EAClB,IAAKK,EACH,OAAOpL,QAAQE,QAAQ,CAAEiL,KAAM,KAEjC,MAAME,EAAQD,EAAOjM,KACfmM,EAAMF,EAAOlM,GAEbqM,EAAQR,EAAQC,QAAQjK,KAAIyK,IAChC,MAAMC,EAAU,CACd,MAASD,EAAOE,UAChB,UAAaL,EAAMM,cACnB,QAAWL,EAAIK,eAEjB,OAAOC,EAAAA,EAAAA,eACL,EAAKC,QAAe,CAClBhB,IAAK,EAAKA,IAAM,gBAChBM,KAAMM,EACNb,OAAQ,SACP3C,KACDlH,GAAK+K,GACI,EAAKC,iBAAiBD,EAASX,QAExCpC,GAAYzM,IACH0P,EAAAA,EAAAA,IAAG,CAAEb,KAAM,QACpB,IAMN,MAAO,CACLA,WAFiBnL,QAAQiM,IAAIV,GAIjC,GAvCA,E,CAyCAM,QAAWd,GAIT,OAHAA,EAAQmB,gBAAkB7P,KAAK6P,gBAC/BnB,EAAQoB,QAAU9P,KAAK8P,SAEhBzB,EAAAA,EAAAA,iBAAgB0B,MAASrB,EAClC,CAEAgB,iBAAiBzC,GACf,IAAI+C,EAA8B,IAAIC,EAAAA,iBACtC,GAAIhD,EAAM/K,OAAS,EAAG,CACpB,MAAMgO,EAAStR,OAAOuR,KAAKlD,EAAM,IAAIvI,KAAI0L,IAChC,CAAEvL,KAAMuL,EAAOC,MAAMC,EAAAA,EAAAA,yBAAwBrD,EAAM,GAAGmD,QAG/D,IAAIG,GAAiB,EACrB,IAAK,MAAMH,KAASF,EAIlB,GAAiC,gBAA7BE,EAAMvL,KAAK2L,cAAiC,CAC9CJ,EAAMC,KAAOI,EAAAA,UAAAA,KACbF,GAAiB,EACjB,KACF,CAIF,IAAKA,EACH,IAAK,MAAMH,KAASF,GACe,SAA7BE,EAAMvL,KAAK2L,eAEyB,aAA7BJ,EAAMvL,KAAK2L,eAEkB,cAA7BJ,EAAMvL,KAAK2L,eAEkB,SAA7BJ,EAAMvL,KAAK2L,iBALpBJ,EAAMC,KAAOI,EAAAA,UAAAA,MAWnBT,EAAY,IAAIC,EAAAA,iBAAiB,CAAEC,WACnCjD,EAAMxB,SAAQ,CAACiF,EAAKzL,KAClB+K,EAAUW,UAAU/R,OAAOgS,OAAOF,GAAK,GAE3C,CACA,OAAOV,CACT,CAEMa,c,kBAAN,eACE,OAAOtB,EAAAA,EAAAA,eACL,EAAKC,QAAQ,CACXhB,IAAK,EAAKA,IAAM,oBAChBD,OAAQ,QACP3C,KACDlH,GAAK+K,IACH1J,EAAAA,EAAAA,SAAQ0J,EAASX,MACbW,EAASX,KACT,KAENpC,GAAYzM,IACH0P,EAAAA,EAAAA,IAAG,OAGlB,GAfA,E,CAiBMmB,YAAYC,G,kBAAlB,eACE,OAAIA,GACKxB,EAAAA,EAAAA,eACL,EAAKC,QAAQ,CACXhB,IAAK,EAAKA,IAAM,qBAAuBuC,EAAWvR,MAAQ,SAC1D+O,OAAQ,QACP3C,KACDlH,GAAK+K,GACuB,iBAAlBA,EAASX,OAAsBkC,EAAAA,EAAAA,QAAOvB,EAASX,MAEnD,CAAC,EADDW,EAASX,OAGfpC,GAAYzM,IACH0P,EAAAA,EAAAA,IAAG,CACRsB,OAAQ,QACRxM,QAASxE,EAAIiR,iBAMhB,CAAC,CACV,GAtBA,E,CAwBMC,aAAaJ,G,kBAAnB,eACE,OAAIA,GACKxB,EAAAA,EAAAA,eACL,EAAKC,QAAQ,CACXhB,IAAK,EAAKA,IAAM,qBAAuBuC,EAAWvR,MAAQ,UAC1D+O,OAAQ,QACP3C,KACDlH,GAAK+K,GACuB,iBAAlBA,EAASX,OAAsBkC,EAAAA,EAAAA,QAAOvB,EAASX,MAEnD,CAAC,EADDW,EAASX,OAGfpC,GAAYzM,IACH0P,EAAAA,EAAAA,IAAG,CACRsB,OAAQ,QACRxM,QAASxE,EAAIiR,iBAMhB,CAAEhB,OAAQ,GACnB,GAtBA,E,CAwBMkB,iB,kBAAN,eACE,MAAMC,EAAmB,oCACzB,IACE,MAAM5B,QAAiBF,EAAAA,EAAAA,eACrB,EAAKC,QAAQ,CACXhB,IAAK,EAAKA,IAAM,oBAChBD,OAAQ,QACP3C,KAAKlH,GAAK+K,GAAaA,MAG5B,OAAwB,MAApBA,EAASwB,OACJ,CAAEA,OAAQ,UAAWxM,QAAS,gCAAiC6M,MAAO,WAGxE,CACL7M,QAASgL,EAASyB,WAAazB,EAASyB,WAAaG,EACrDJ,OAAQ,QACRK,MAAO,QAiBX,CAfE,MAAOrR,G,IAUHC,EAAAA,EATJ,GAAmB,iBAARD,EACT,MAAO,CACLgR,OAAQ,QACRxM,QAASxE,GAIb,IAAIC,EAAQD,E,IACEC,EAAd,IAAIuE,EAA0B,QAAhBvE,EAAAA,EAAMgR,kBAANhR,IAAAA,EAAAA,EAAoBmR,EAKlC,YAJgCnT,KAAlB,QAAVgC,EAAAA,EAAM4O,YAAN5O,IAAAA,GAAYA,QAAZA,EAAAA,EAAYA,aAAAA,IAAAA,OAAZA,EAAAA,EAAmBqR,QACrB9M,GAAW,KAAKvE,EAAM4O,KAAK5O,MAAMqR,SAASrR,EAAM4O,KAAK5O,MAAMuE,WAGtD,CAAEwM,OAAQ,QAASxM,UAAS6M,MAAO,QAC5C,CACF,GAnCA,E,CA5KAzQ,YAAY2Q,G,IAIeA,EAAAA,EAHzBC,MAAMD,GACNxR,KAAKwO,SAA+BtQ,IAAzBsT,EAAiBhD,IAAoB,GAAKgD,EAAiBhD,IACtExO,KAAK6P,qBAAuD3R,IAArCsT,EAAiB3B,gBACxC7P,KAAK0R,kBAAgE,QAA5CF,EAAyB,QAAzBA,EAAAA,EAAiBG,gBAAjBH,IAAAA,OAAAA,EAAAA,EAA2BE,yBAA3BF,IAAAA,EAAAA,EAAgD,MAC3E,E,mCCxBK,MAAMI,WAAqBC,GAAAA,cAChCC,SACE,MAAM,gBAAEC,EAAe,QAAErD,GAAY1O,KAAKgS,MAC1C,OACE,mBAACC,MAAAA,CAAIC,UAAU,iBACf,mBAACC,GAAAA,uBAAsBA,CACvBC,WAAY,4BACZC,iBAAkB3D,EAClB4D,mBAAmB,EACnBC,SAAUR,IAId,ECxBF,mB,sGAMA,MAAM,UAAES,IAAcC,GAAAA,YCATC,GAAS,IAAIC,EAAAA,iBAA2D1E,IAClF2E,gBAAgBhB,IAChBiB,gBDI8C,EAAGC,aAAYP,WAAUQ,aAAY3E,YAEpF,MAAM,UAAEiB,GAAcjB,EAGhB4E,EAAmBC,KAAAA,aAAkB,IAClCH,EAAWjC,cAAc/M,MAC7ByI,GACgBA,EAAO7H,KAAKoK,IAAU,CAAEvN,MAAOuN,EAAKjK,KAAMrF,MAAOsP,EAAKjK,WAGtE4K,IAEC,MAAM,IAAIlL,MAAMkL,EAASyB,WAAW,KAGvC,CAAC4B,KAEGtT,EAAO0T,IAAYC,EAAAA,GAAAA,aACnBC,EAAS,GAAIC,GAAaJ,KAAAA,YAC1BK,EAAQ,GAAIC,GAAiBN,KAAAA,YAC7BO,EAAW,GAAIC,GAAeR,KAAAA,YAC9BS,EAAc,GAAIC,GAAkBV,KAAAA,YACpClC,EAAa,GAAI6C,GAAiBX,KAAAA,YAClCY,EAAO,GAAIC,GAAWb,KAAAA,WAGvBc,EAAmBd,KAAAA,aAAmBzT,GACtCA,EACKsT,EAAW3B,aAAa3R,GAAOsE,MACnCyI,IACC,GAAIA,EAAO2D,OAAQ,CACjB,MAAMkD,EAAS7G,EAAO2D,OAAOxL,KAAKoK,GAAwBA,EAAKjK,OACzDmP,EAAeZ,EAAOxO,KAAK,MAEjC,OADAyO,EAAUW,GACHZ,CACT,CACA,OAAOA,CAAM,IAEd3D,IACC,MAAM,IAAIlL,MAAMkL,EAASyB,WAAW,IAInC,IACN,CAAC4B,EAAYM,IAEVa,EAAkBhB,KAAAA,aAAmBzT,GACrCA,EACKsT,EAAWhC,YAAYtR,GAAOsE,MAClCyI,IACC,GAAIA,EAAO2H,UAAW,C,IAGA3H,EAFpB,MAAM+G,EAAQ/G,EAAO2H,UAAUZ,MACzBE,EAAWjH,EAAO2H,UAAUC,KAC5BT,EAA4B,QAAdnH,EAAAA,EAAO6H,eAAP7H,IAAAA,OAAAA,EAAAA,EAAgB4H,KAC9BpD,EAAaxE,EAAO8H,OACpBR,EAAOtH,EAAOsH,KAMpB,OALAJ,EAAYD,GACZG,EAAeD,GACfE,EAAc7C,GACdwC,EAAcD,GACdQ,EAAQD,GACDP,CACT,CACA,OAAOA,CAAK,IAEb7D,IACC,MAAM,IAAIlL,MAAMkL,EAASyB,WAAW,IAInC,IACN,CAAC4B,EAAYQ,IAsBhB,OAhBAL,KAAAA,WAAgB,KACd,MAAMqB,EAAUhN,YAAW,KACzByL,GAAY,GAEZ,KACF,MAAO,IAAMnL,aAAa0M,EAAQ,GACjC,CAACvB,EAAY1D,IAEhB4D,KAAAA,WAAgB,KACdc,EAAiBvU,EAAM,GACtB,CAACuU,EAAkBvU,IAEtByT,KAAAA,WAAgB,KACdgB,EAAgBzU,EAAM,GACrB,CAACyU,EAAiBzU,IAGnB,sCACE,mBAAC+U,GAAAA,eAAcA,KACb,mBAACC,GAAAA,YAAWA,KACV,mBAACC,GAAAA,MAAKA,KAAC,yBAIT,mBAACD,GAAAA,YAAWA,KACV,mBAACE,GAAAA,YAAWA,CACVC,YAAa3B,EACb4B,gBAAAA,EACApV,MAAOA,EACP+S,SAAUzQ,IACRoR,EAASpR,EAAE,MAcnB,mBAACyS,GAAAA,eAAcA,KACf,mBAACC,GAAAA,YAAWA,KACV,mBAACK,GAAAA,YAAWA,CACVC,OAAQ,CACJ,CACEC,MAAO,UACPC,UAAU,EACVzT,MAAO,cACP/B,MAAOuR,GAET,CACEgE,MAAO,UACPC,UAAU,EACVzT,MAAO,eACP/B,MAAO4T,GAET,CACE2B,MAAO,UACPC,UAAU,EACVzT,MAAO,6BACP/B,MAAO8T,GAET,CACEyB,MAAO,UACPC,UAAU,EACVzT,MAAO,2BACP/B,MAAOgU,GAET,CACEuB,MAAO,UACPC,UAAU,EACVzT,MAAO,yBACP/B,MAAOkU,IAGXuB,UAAWpB,MAKjB,mBAACqB,KAAAA,MACD,mBAAC1C,GAAAA,CACC2C,WAAY,GACZC,WAAY,IACZ5V,MAAO6P,GAAa,GACpBkD,SA7FqB8C,I,QACzB9C,G,yUAAS,IAAKnE,G,WAAAA,CAAOiB,UAAWgG,EAAMlG,OAAO3P,Q,mVA6FzC+B,MAAM,YACN+T,QAAQ,yD","sources":["webpack:///external amd \"@grafana/data\"","webpack:///external amd \"@grafana/runtime\"","webpack:///external amd \"@grafana/ui\"","webpack:///external amd \"lodash\"","webpack:///external amd \"react\"","webpack:///external amd \"rxjs\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/lift.js","webpack:///../node_modules/tslib/tslib.es6.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack:///../node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack:///../node_modules/rxjs/dist/esm5/internal/config.js","webpack:///../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack:///../node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack:///../node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack:///../node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","webpack:///../node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack:///../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack:///../node_modules/rxjs/dist/esm5/internal/Observable.js","webpack:///../node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","webpack:///../node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","webpack:///../node_modules/rxjs/dist/esm5/internal/operators/catchError.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isPromise.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isIterable.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","webpack:///../node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","webpack:///./datasource.ts","webpack:///./components/ConfigEditor.tsx","webpack:///./components/QueryEditor.tsx","webpack:///./module.ts"],"sourcesContent":["module.exports = __WEBPACK_EXTERNAL_MODULE__305__;","module.exports = __WEBPACK_EXTERNAL_MODULE__545__;","module.exports = __WEBPACK_EXTERNAL_MODULE__388__;","module.exports = __WEBPACK_EXTERNAL_MODULE__980__;","module.exports = __WEBPACK_EXTERNAL_MODULE__650__;","module.exports = __WEBPACK_EXTERNAL_MODULE__177__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate(function (source, subscriber) {\n var innerSub = null;\n var syncUnsub = false;\n var handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n//# sourceMappingURL=catchError.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","import { getBackendSrv, BackendSrvRequest, FetchResponse } from \"@grafana/runtime\";\nimport {\n DataQueryRequest,\n DataQueryResponse,\n DataSourceApi,\n DataSourceInstanceSettings,\n MutableDataFrame,\n DataFrame,\n FieldType,\n guessFieldTypeFromValue,\n} from '@grafana/data';\nimport { lastValueFrom, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { isArray, isNull } from \"lodash\";\n\nimport {\n MyQuery,\n MyDataSourceOptions,\n QueryEditorMode,\n StreamName,\n StreamList,\n //Fields,\n StreamSchemaResponse,\n StreamStatsResponse\n} from './types';\nexport class DataSource extends DataSourceApi {\n url: string;\n withCredentials: boolean;\n headers: any;\n defaultEditorMode: QueryEditorMode;\n constructor(instanceSettings: DataSourceInstanceSettings) {\n super(instanceSettings);\n this.url = instanceSettings.url === undefined ? '' : instanceSettings.url;\n this.withCredentials = instanceSettings.withCredentials !== undefined;\n this.defaultEditorMode = instanceSettings.jsonData?.defaultEditorMode ?? \"code\"\n }\n\n async doRequest(query: MyQuery) {\n const routePath = '/api/v1'\n const result = await getBackendSrv().datasourceRequest({\n method: \"GET\",\n url: this.url + routePath + '/readiness',\n params: query,\n })\n return result;\n }\n\n async query(options: DataQueryRequest): Promise {\n options.targets = options.targets.filter((t) => !t.hide);\n if (options.targets.length === 0) {\n return Promise.resolve({ data: [] });\n }\n\n const { range } = options;\n if (!range) {\n return Promise.resolve({ data: [] });\n }\n const start = range!.from;\n const end = range!.to;\n\n const calls = options.targets.map(target => {\n const request = {\n \"query\": target.queryText,\n \"startTime\": start.toISOString(),\n \"endTime\": end.toISOString()\n };\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/query',\n data: request,\n method: 'POST',\n }).pipe(\n map((response) => {\n return this.arrayToDataFrame(response.data);\n }),\n catchError((err) => {\n return of({ data: [] });\n })\n )\n );\n });\n\n const data = await Promise.all(calls);\n return {\n data,\n };\n }\n\n doFetch(options: BackendSrvRequest) {\n options.withCredentials = this.withCredentials;\n options.headers = this.headers;\n\n return getBackendSrv().fetch(options);\n }\n\n arrayToDataFrame(array: any[]): DataFrame {\n let dataFrame: MutableDataFrame = new MutableDataFrame();\n if (array.length > 0) {\n const fields = Object.keys(array[0]).map(field => {\n return { name: field, type: guessFieldTypeFromValue(array[0][field]) };\n });\n\n let timeFieldFound = false;\n for (const field of fields) {\n // Check for p_timestamp first\n // because if it is present we want to use this field\n // as we know the format (ISO8601)\n if (field.name.toLowerCase() === 'p_timestamp') {\n field.type = FieldType.time;\n timeFieldFound = true;\n break;\n }\n }\n // fallback to other possible time fields\n // if p_timestamp is not present\n if (!timeFieldFound) { \n for (const field of fields) {\n if (field.name.toLowerCase() === 'time') {\n field.type = FieldType.time;\n } else if (field.name.toLowerCase() === 'datetime') {\n field.type = FieldType.time;\n } else if (field.name.toLowerCase() === 'timestamp') {\n field.type = FieldType.time;\n } else if (field.name.toLowerCase() === 'date') {\n field.type = FieldType.time;\n }\n }\n }\n\n dataFrame = new MutableDataFrame({ fields });\n array.forEach((row, index) => {\n dataFrame.appendRow(Object.values(row));\n });\n }\n return dataFrame;\n }\n\n async listStreams(): Promise {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream',\n method: 'GET',\n }).pipe(\n map((response) =>\n isArray(response.data)\n ? response.data\n : []\n ),\n catchError((err) => {\n return of([]);\n }))\n );\n }\n\n async streamStats(streamname: StreamName): Promise {\n if (streamname) {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream/' + streamname.value + '/stats',\n method: 'GET',\n }).pipe(\n map((response) =>\n (typeof response.data === 'object' && !isNull(response.data))\n ? response.data\n : {}\n ),\n catchError((err) => {\n return of({\n status: 'error',\n message: err.statusText\n })\n\n }))\n )\n }\n return {}\n }\n\n async streamSchema(streamname: StreamName): Promise {\n if (streamname) {\n return lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/logstream/' + streamname.value + '/schema',\n method: 'GET',\n }).pipe(\n map((response) =>\n (typeof response.data === 'object' && !isNull(response.data))\n ? response.data\n : {}\n ),\n catchError((err) => {\n return of({\n status: 'error',\n message: err.statusText\n })\n\n }))\n )\n }\n return { fields: [] }\n }\n\n async testDatasource() {\n const errorMessageBase = 'Parseable server is not reachable';\n try {\n const response = await lastValueFrom(\n this.doFetch({\n url: this.url + '/api/v1/readiness',\n method: 'GET',\n }).pipe(map((response) => response))\n );\n\n if (response.status === 200) {\n return { status: 'success', message: 'Parseable server is reachable', title: 'Success' };\n }\n\n return {\n message: response.statusText ? response.statusText : errorMessageBase,\n status: 'error',\n title: 'Error',\n };\n } catch (err) {\n if (typeof err === 'string') {\n return {\n status: 'error',\n message: err,\n };\n }\n\n let error = err as FetchResponse;\n let message = error.statusText ?? errorMessageBase;\n if (error.data?.error?.code !== undefined) {\n message += `: ${error.data.error.code}. ${error.data.error.message}`;\n }\n\n return { status: 'error', message, title: 'Error' };\n }\n }\n}\n","import React, { PureComponent } from 'react';\nimport { DataSourceHttpSettings } from '@grafana/ui';\nimport { DataSourcePluginOptionsEditorProps } from '@grafana/data';\nimport { MyDataSourceOptions, MySecureJsonData } from '../types';\n\n//const { SecretFormField, FormField } = LegacyForms;\n\ninterface Props extends DataSourcePluginOptionsEditorProps {}\n\ninterface State {}\n\nexport class ConfigEditor extends PureComponent {\n render() {\n const { onOptionsChange, options } = this.props;\n return (\n
\n \n
\n );\n }\n}\n","import React, { ComponentType, ChangeEvent, useState } from 'react';\nimport { LegacyForms, AsyncSelect, InlineField, InlineFieldRow, SeriesTable, Label} from '@grafana/ui';\nimport { QueryEditorProps, SelectableValue, GraphSeriesValue } from '@grafana/data';\nimport { DataSource } from '../datasource';\nimport { SchemaFields, MyDataSourceOptions, MyQuery } from '../types';\n\nconst { FormField } = LegacyForms;\n\ninterface Props extends QueryEditorProps {\n payload?: string;\n}\n\nexport const QueryEditor: ComponentType = ({ datasource, onChange, onRunQuery, query }) => {\n\n const { queryText } = query;\n //const [stream, setStream] = React.useState>();\n\n const loadAsyncOptions = React.useCallback(() => {\n return datasource.listStreams().then(\n (result) => {\n const stream = result.map((data) => ({ label: data.name, value: data.name }));\n return stream;\n },\n (response) => {\n //setStream({ label: '', value: '' });\n throw new Error(response.statusText);\n }\n );\n }, [datasource]);\n\n const [value, setValue] = useState>();\n const [schema = '', setSchema] = React.useState();\n const [count = '', setEventCount] = React.useState();\n const [jsonsize = '', setJsonSize] = React.useState();\n const [parquetsize = '', setParquetSize] = React.useState();\n const [streamname = '', setStreamName] = React.useState();\n const [time = '', setTime] = React.useState();\n //const [fielder, setFielder] = React.useState();\n\n const loadStreamSchema = React.useCallback((value) => {\n if (value) {\n return datasource.streamSchema(value).then(\n (result) => {\n if (result.fields) {\n const schema = result.fields.map((data: SchemaFields) => (data.name));\n const schemaToText = schema.join(\", \")\n setSchema(schemaToText);\n return schema;\n }\n return schema;\n },\n (response) => {\n throw new Error(response.statusText);\n }\n );\n }\n return '';\n }, [datasource, schema]);\n\n const loadStreamStats = React.useCallback((value) => {\n if (value) {\n return datasource.streamStats(value).then(\n (result) => {\n if (result.ingestion) {\n const count = result.ingestion.count;\n const jsonsize = result.ingestion.size;\n const parquetsize = result.storage?.size;\n const streamname = result.stream;\n const time = result.time;\n setJsonSize(jsonsize);\n setParquetSize(parquetsize);\n setStreamName(streamname);\n setEventCount(count);\n setTime(time);\n return count;\n }\n return count;\n },\n (response) => {\n throw new Error(response.statusText);\n }\n );\n }\n return '';\n }, [datasource, count]);\n\n const onQueryTextChange = (event: ChangeEvent) => {\n onChange({ ...query, queryText: event.target.value });\n };\n\n React.useEffect(() => {\n const getData = setTimeout(() => {\n onRunQuery()\n },\n 2000)\n return () => clearTimeout(getData)\n }, [onRunQuery, queryText])\n\n React.useEffect(() => {\n loadStreamSchema(value)\n }, [loadStreamSchema, value]);\n\n React.useEffect(() => {\n loadStreamStats(value)\n }, [loadStreamStats, value]);\n\n return (\n <>\n \n \n \n \n \n {\n setValue(v);\n }}/>\n \n {/* \n \n */}\n \n\n \n \n \n \n \n\n

\n \n \n );\n};\n","import { DataSourcePlugin } from '@grafana/data';\nimport { DataSource } from './datasource';\nimport { ConfigEditor } from './components/ConfigEditor';\nimport { QueryEditor } from './components/QueryEditor';\nimport { MyQuery, MyDataSourceOptions } from './types';\n\nexport const plugin = new DataSourcePlugin(DataSource)\n .setConfigEditor(ConfigEditor)\n .setQueryEditor(QueryEditor);\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__305__","__WEBPACK_EXTERNAL_MODULE__545__","__WEBPACK_EXTERNAL_MODULE__388__","__WEBPACK_EXTERNAL_MODULE__980__","__WEBPACK_EXTERNAL_MODULE__650__","__WEBPACK_EXTERNAL_MODULE__177__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","isFunction","operate","init","source","lift","hasLift","liftedSource","this","err","error","TypeError","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","String","__","constructor","create","__generator","thisArg","body","f","y","t","g","_","label","sent","trys","ops","next","verb","iterator","v","op","done","pop","length","push","e","step","__values","s","m","i","__read","ar","__spreadArray","to","from","pack","arguments","l","slice","concat","__await","__asyncGenerator","_arguments","generator","asyncIterator","apply","q","Promise","resume","resolve","then","fulfill","reject","settle","shift","ctorFunc","UnsubscriptionError","errors","instance","Error","stack","message","map","toString","join","name","arrRemove","arr","item","index","indexOf","splice","Subscription","initialTeardown","closed","_parentage","_finalizers","empty","unsubscribe","e_1","_a","e_2","_b","isArray","_parentage_1","_parentage_1_1","remove","e_1_1","return","initialFinalizer","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","add","teardown","_hasParent","_addParent","parent","includes","_removeParent","EMPTY","isSubscription","config","timeoutProvider","setTimeout","handler","timeout","args","_i","delegate","clearTimeout","handle","reportUnhandledError","noop","COMPLETE_NOTIFICATION","createNotification","kind","context","Subscriber","_super","destination","_this","isStopped","EMPTY_OBSERVER","complete","SafeSubscriber","handleStoppedNotification","nextNotification","_next","_error","_complete","_bind","Function","bind","fn","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","errorThrown","notification","subscriber","onStoppedNotification","createOperatorSubscriber","onNext","onComplete","onError","onFinalize","OperatorSubscriber","shouldUnsubscribe","closed_1","project","subscribe","observable","identity","x","pipeFromArray","fns","input","reduce","prev","Observable","_subscribe","operator","isObserver","cb","isRoot","errorContext","_trySubscribe","sink","forEach","promiseCtor","getPromiseCtor","pipe","operations","toPromise","fromAsyncIterable","asyncIterable","asyncIterable_1","asyncIterable_1_1","P","__asyncValues","fulfilled","rejected","result","process","catch","catchError","selector","handledResult","innerSub","syncUnsub","isInteropObservable","obs","array","promise","isAsyncIterable","isIterable","iterable","iterable_1","iterable_1_1","getReader","isReadableStreamLike","readableStream","reader","read","releaseLock","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","innerFrom","DataSource","DataSourceApi","doRequest","query","getBackendSrv","datasourceRequest","method","url","params","options","targets","filter","hide","data","range","start","end","calls","target","request","queryText","toISOString","lastValueFrom","doFetch","response","arrayToDataFrame","of","all","withCredentials","headers","fetch","dataFrame","MutableDataFrame","fields","keys","field","type","guessFieldTypeFromValue","timeFieldFound","toLowerCase","FieldType","row","appendRow","values","listStreams","streamStats","streamname","isNull","status","statusText","streamSchema","testDatasource","errorMessageBase","title","code","instanceSettings","super","defaultEditorMode","jsonData","ConfigEditor","PureComponent","render","onOptionsChange","props","div","className","DataSourceHttpSettings","defaultUrl","dataSourceConfig","showAccessOptions","onChange","FormField","LegacyForms","plugin","DataSourcePlugin","setConfigEditor","setQueryEditor","datasource","onRunQuery","loadAsyncOptions","React","setValue","useState","schema","setSchema","count","setEventCount","jsonsize","setJsonSize","parquetsize","setParquetSize","setStreamName","time","setTime","loadStreamSchema","schemaToText","loadStreamStats","ingestion","size","storage","stream","getData","InlineFieldRow","InlineField","Label","AsyncSelect","loadOptions","defaultOptions","SeriesTable","series","color","isActive","timestamp","br","labelWidth","inputWidth","event","tooltip"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/plugin.json b/dist/plugin.json index 7e0d682..fdc7f23 100644 --- a/dist/plugin.json +++ b/dist/plugin.json @@ -24,7 +24,7 @@ {"name": "Log Dashboard", "path": "img/log-visualisation.png"} ], "version": "1.0.0", - "updated": "2023-01-16" + "updated": "2023-01-19" }, "routes": [ { diff --git a/releases/parseable-datasource-1.0.0.zip b/releases/parseable-datasource-1.0.0.zip index daae9946116e79f924fb02c1f916d64410d4ddee..311de644ee10b5d41a297dc7cf738bc002c5b9a6 100644 GIT binary patch delta 27082 zcmV(#K;*xM#y+^kJ`GSy0|W{H00000j8HR?4K)W($jD<)$jFz0Ne>jUUFloq*42zBfCV|u=0&oQmD^LD&wgxY zh~^}J4$L#zhlp;%ADES8pY#X;kuXO$DV}k-7%Cdd5C+Qd%stJ~;u+N<4$dWcTy)0vUCI4BeLQYxv;E_2(-lAs+_7#}z19)~0*qWm}KM&dE5Dr~qEVcw* zn|wf-k$_IplPa`b!AIzBRmUeyB$O9Zp-Pr{>PhCw z5!)rKBlhfE)OV4Y^ktB7yG^~n7rxbZa+iIV=-dTCb*wx*|5I+RxLWKdZmyMO$5!%* zHqKHfix-_-4J8xMmI~A4#F}XeZGF`dEVAc|U1kebT zj)^t9Y<;S)kb=g|0?tvX$hxA&j?HqQfH4BFj+d`q>O5BuW7;|2Gc@5y`O$d$NXRxK zo_}p+Uz<8zD8?Mm{UaG1_JCL0s%H`@FqViddSW0gosC7$Zgi;v9!=KjZ=JH1M<~7}Mc61ZOKy07hbRE_9b<_FMrfu}=$n~=DHp;wGINPr%I_#r5MjxC z%BF(ZS(6;=np=uM;uuqryiq*cQP7Mq%;{p<7f{O=p;1TIhd|Di)c%1|{77(Qk2SN> zBR$#bCJ92^udL2#AJJB9(Sl|bb%oJM`#_{Cu{fmt$&upqectM<5U3x2r2hSMB`%aQ z=UnULIr<*aG6;wM3i+dq)&O-baO+|_zMID#WjR~4vFd!;uCvE_gOvdFJi_(U0(l%+ zb6pk9;}$$c%`sh7cWs_O_K_f|xl5y96daQm|3z^L*HjRjN4&mS9eKgGChD?zOEYfs z$S>K^Wo-ln)+etV36R`>91G9DRWQ;UhqPfD%@hg1xlR~^1^vuU0ht2zh1BlEQJ&=3 zLn@0xi8U*8TXmJw08qF_?FFrpVfB$*si+1A`}I5b1^4n7Rh$D{(w_!`r+n2dCCNqzx?;v6a3j2++UTGY#bnMO}%C3%rWKGm2o z(hRC8HvoN?oJ(GMff%J34g#?wj}b>8NMax*&&Z zb8$IkjoUqcwSf14JL!oBEFDUdP)?LYx<0pWIC7SQ6wY(Yp5nZ=oB=DEwn&0ru%|yW zVz0`M;v5rkUu8e>>T-$1P5gu-0XdsRV~ZUN^EFh3k%CVzz72q(#%#%Dn^HTxJ*FU_ zes~OSu+tfAqjuA%{4}g!h?2!PkgGo1d*xNw@wn=Lw4DJGYRBE{u*m8rP5iMa5Hh}H zG1+=%i9OV@@&so7tjd{N?!-Z=vp?2#TwC>{64@vB<*rar1Br%8`5Ll4vris~ zjdGU_UwM``gr}1w%lgk>y;%lyuCeQ!OJ2A$Q7AtP@m{@(E+N!d@YQcEDMMdDiwb}! zlOke&FTC|H!{Y(Fk#iGDm~vP~BVd?1;k*Ru+W|7t2xZzz!0bTKt1n~T!t=17{gn9P zf`{#Med1enzv%Jz_E z){|shKn1e|F}g3t^tjF1@>YRZQ&|8z`24Q(emy}wr+m~s(wwlnb<0PmdU>u+Wdd}6 ztfLGQXkvj75<`_#LDB`JLRMllbm(s+!X5!U0Xe7f2=Z@7)c#_L#DYW_;>X=t08Tbd|_T=qcT3)W3`GZ_GlBl zS3am&tqO@5kIymqFmF}b37e92ps9)cm-xCvUOOtM+@$(E6+=;BEYGUDTUrS{-bSoN zsgLk%H*W6u*3-;%_?BZw=bU+nsS*1rgGv{_v!tyXY~9CMa~P_jIR^JH(7E7$Y(*7h z=WUYGEIWxV25vGOXecy45(BX^cQ$#o4Fo4VqMRJH8=h(qt!I0bVoV>ESsO)H7fVs) zXlY)u-=Pg-rg9QoJ`zSN@0=}l$Vx>24KuT$Ce*Gi9KNeXShgik_&fuitxU8gU>hWT zFL_bTCDkup;Jv^)&tW1lUQJ_vp(tN-eLBKpZ^IeV=YQt(dd6 zO*wnTDAoR3_ndxgr>YhVC0WVBvwCI`Eygex=vfsmuB%0JjJ{B2UQZ!^Bs=VcYE2*w zvVl<;uQlT2WRm!KBv@6&?N)ZHs2cW^^_C5F?15^j=G*iMYv-nvwnR!9i56yyfD9$4$*8Su1OSnYGN03UHW%H>xetUAxXYOQ+(^HiOP=Z9byFH{`U?-lGHh{f9L zTOVETaZUAj4|~EMQ&9S4aw3hyVr=9!B`dRcjqpyOMT0H=7x&G7#Q#_p^sV{}!-fW@ zyuC+!pJ;g%=K$C;QSGs<&sAu-xA`E3S5{oW1XC%~GoNdDLn%Eh8 zpi-tv&i6)kUHI}KYz{m=RowIcliX|n|K^@CP~}*0zr@8M_By+@7P1tUXCRZ5nf#nG z%E8htt#X#};=8tg9!UEP7t!O=hC2y$_<@cH6))6!AWbG|A`JGjCc~E+cdk!x_R!|j z^a5}uX?Uwg{GKi0tvS1O@`;yxqbp*lpQg;LFqH<36)nR(wmpT-9K!l`Ii1sUisc#e z)HexBpQq<}zqxLHOmrGbL$9C`ahSe!Q(qTMhS@-%dT*qE?6!d#r>7!&qsRBg4^)t)R-mjzJsU6f63679%Bnk7l)Fo+3d9@XZ-`Tfgan~f9 ziC~>P`Il9=r$`^a9Vjr)rs}Y{=G_#5x=E>wipGPTa0}Q(t_rPWIvW%iC-L+&i@t(E z2bJPugGA_mZi6Pqa?>7`F&vY%X0YmOGX@q9q^aH#F=^r-MMOuNCk6xy0#4@9*E0`g zY|QEjmLlPx?-A=mnN;56tgSPtK-UgWQJ)a>fuzmC(EL$kScpn!1Q!^=wBT`eLU-Z# zM;x;!N~?3-N5z0dr_9_~%9&vNKqi_yat7dA58x$#(h>0PrPg?vx!4q3nX?-7JMi%muA-&1Rgc5U$wSH<2u>e?_sI&i=cqi9fQyxOT9R8C z*?#1an3LXB`Fzwl(gIzFt;CJ*oEp1WU45b1z2#fUkneRzX6Ak3@E6d3 zIrWe@^l(~QeN40Fl5M)KBnBSvqzcuG^SZ*m=r#8v!Lf$X6Z)XW@j#TqWL{+z8oF-qt;2|^P++`7Up1`pFgSFSAK4fX=TpgDd#E` z(<4?k0f0twal&l1l}K_af*fzm%ZJM)8F(>&-STsraAgItGn|puIltAPsbwrZ$GZe4 zz~?~Vn|)TB&>EA)$u|`!gWjrtTkJ^qh%+Ud0WGlBgfqWEv5wDKLgl=*I*{JW1F5X( zQX+*YBr-|<4VRBIb@&>X#!ul(INi^ZG|aex4O*TCr;2>GmYdevKTm7ziWh4ginQ8s zrrP}FYP*?g{dQVy`f{~-rrMC!%=anhSSO)Vxm7H`OC+3)6Hku{3Adqt8M&*lh)Gc7 zf>jvu#{p08A^CujOYQ_U(yiiA=}rJfusCb>3Es=+Z3Q(d=!c6m7!B1u?ht#d+apdA zws)3mJwCZL)mcZ$KKd|Yw@Y~O36{sb)vy5g+kZq#IKc^ z-A1cL)UWxQAc&(lbSCRxt1;y}!Fb}tTHlSeuG@2_qgZoilOT*=t_Ed2-_<5zFmc0p zj`g8u(aV(vPE>#J&yqUP0Gb&%e)r{CV`u1UzB6_scpMtLtPP5n;n1wQ{ZoA=TgdA;~m3UM^@ZuoQCjSfH7 zV%v|VH&G|_CfIu;41@4v1UsZ@-o3*m*zKqxtwI0Ae?h8{RuNqxbI= zmSkNQL}Wbw7?p`Pd4E6ZA0LWhiWf77-#d~-?4BWf5YH@7oDc-bdgRghQn_Bac;$fFnDPD z>1umsZ4km_Ou8LEd5N$q@L~H#c}eG$(e-fg$II`EUl`&HZcNw4_j99JD^{=Vy56oD*VlVH2iMpC#J~0T3zZJ`-%)Ar z`1sc=ogDA{dZojIcT_4I9dV_6UOOMS8rRi24#0#f|K16qvYG_7ey-`=^)=A_>*qhO z{3~Bo4c)t`7rI(c!Otr{`7J|36}rCOWNKFTv-TH%5Q%|^9JrmK=Jk?Jc#-D$Nms67 z>rZ9v!o$++muHw}WM%lipiOXrr%PhBUl0T<-=@}S$EcjJu!HfRrCJOB>)|2=TRap2Dt z;poa=)75Psn6Ae5S^N4wJOMaweD{O5ic^1o|9jHI>uWbsE9zg&@=dC$$o#RPuACcx ze%8LMDM0Lr*L9}5$*tzJzclAd(uJQ~L9vM+B74;SRhL#(IAKggoJm-qn7Wx(YBfaMmHui`r0jkkG! zoXI_VsWkG-^`~P#Tfb;=IE9r89Ql&z>mN|?&xDz3TmMvST-zaJ3*5_dqz~W;R9%4w zaS+b|VJ=_(w>!>gl&SN1X@)ZE1{Us%QxayTB%KCeGByeus72_K1lq~`a;OGW_cYGt^A93#$f*a|8H!`Gfa+nOU-d)+ysUl;O zDp2<|_@~yt;sCwVz9IvXsv9gb^7;SL7$(^K7k%5!>enUp$o81@N8XrP{wvd@_EYNt zYScEiGYS=?yV^^b_o~;6H@TtJK4!+i1*oI`bTrcb{ckPv=sp19zN7ss`Q?j$dby2i zn9n?()utK5yPLSIR~udwTJ0GA!}D;Z-%IZ^bTYlzOljg*x7&J3Ir$fd^L3B2oPka+ z(aFJK;6*sp)fzvaKB8L-Y>Y5m+dOpvsBP1wor=9q_h+_D<{cqoI_uA2#St9d+-UnK zU^F=BaSQ+^hJNtiYw6{Omgh!)Lh|PeD^e-i)LP8{HMPD zG&HNFoi*#GYN#ft6oa=oePR!dfkmfg~d)v5;dn#J0=Wwf*l z>%5F4n}%6zLX|qy0*Wd1nyj{Ut7cL~%RZ}G&`yRxy`Z2$(fxa>F~D5mPDIkGwhZeuSfsB^}wU>=w{3I%w+d0PhxeWfkL5BC{z^+!0t~k z_mda!w)^_;$;r|F-oft6J|KO(zjxY4cn7c5O9Gkp4qu<_|Md-jfP-ww&%3X7e?dgJ zw0`~DUv^JV4x!TH=42nL**)FG(m+K(`J@j;_W{9U z#CsS1+dDlte2uxG-qT}Tt4v<+|MK$Sm;Kj!`%n-89#VnR!(+(%=0uh0C%eZ7Cs^;{ zn^OdENH77+>wN})iqt1!03r&~(f%C+hs#IsaLGJeF%Or>!xH#|e9@|; z$?@Rvx+cQ_=Ihyq6nnXE5s!C)py4tvD?}(4B)~>h%6p=j>GK+k10^3!LH+;z@G6D( z?PT2@E)iN_6(x)=W~45_q~A^aYv_Rl#lI)aE481xhrz+@{T zjn!1CI-D1!St7d`2D+soYY^sswiN`iqIXt*<}O3of{HZB*U1L*&of{)`1|$OJZvUT zUg8xpqBRXC=@Q#MPM)b(2MhYI0}HmNW~K&AZu2Tb7k{cB{tH3qmtVC({u!L3VZ}Iy8|deM zY{F#~WwZAgF2Rum-(6n!laU!}pbw&tXrB9YHpR0^v8ap}LZinDhEU^<(0-@HAhANEj@h9wFz!zdKrC?e#*4z*RZY*q^42U-WKvHJ#1!iN&9+ z^Q5fuMQWNo0GjD0B0k2%W{k0hl#q3QCs0!jXIWLt*?EUlxAV@$XVgV7q4{^SO3@RZ z29si*LkDQ;s#Jx}Q1zjcI;d{)d1?sMH;s@TLfQ&eXj=gtV(DfT1COn+^Uh$pVaoQb zY3Z0aNTHHWZqgwuR+K&fCD(Dtd?40kPdydU8IVbU zae%jR(Dgz!TB7`cwLySWphkFRForZ9h@tjhzMqmrpu7={5P#zgRD|_^A^+VNCQOa3 zpPFG{eA3h|n0299FqAUXLLTa2edoaXz}jr3?4tpUyuqSaq`-lr0S-w0)(Au`G7V$jbRTf{G0=X(U8%IFXRJt9XO+;a zm>-z@G&;XWzOk>H=rAUK0kkf#bA_glgDp*ZQ~IPLUL=YE7A&UzlPL(gT6OjfFc?+C zB(~J$9&TIP_Xt(P*d~eRLS-4~vQIPc$_Kd_fZV*;(mi@t-k{uQ37TL@UZ~66l0|~r zh}m#D;lXTYF1IRoR%V9&9xT}lX7qKOo27o{+e0Qy|f#)%HM+t1m&?;_Tff&h>;7gKqRJV#*0vI!Ne3 zs_%|h<(AFEg>o}0smZ#=lXlCw>{#*`Oto~eQmG>@FVn));?NVeS{w3IA*d2v6(ldu z$_w_ytvft+Yo_H}g}%#!g)qqqE&91?V4KT)DGV`(y;$jgvuae0!-n9Kb*`a<0+8sH z&Ol5B!hqX0efrc)$4?4xE;cM`lVf^V38U(~!(FU>zf&E42jm^XSC76rn_^L;sWrO# zvI+9S-0R=lR{dK9%C0LgY;P8h2*Q3h{R;*RIww(51JUeM5NMN1(M;!Z?HNSN{Ohk# zA5a<}0-9=n>qTjL*^=k8r81#HabcHc$(BxX7Df0vl5IUy zB9OXMN0IGmdQ5w9W^rm|-=dzFa$YbN==pYe=DBdzzWOTpagr~VIkY>Us1>DkdZXWXm4&7~w5u#&R|tD~~!i1iK^DQnMwHTjA%g@6?X2 zs?hw*h_0x+W(myq`jMgU*K|YCrN(uqvZ8iKD|z=gQ>l;?<;}CuR@RDv;=hDG9O-h5 z`5TGwY97c;usP+4`xjz)>!vO}V_ZMVdj)-e+fRNY0p;`kl-98N>|p_=0pM#-(pEd~k zf*090&guqxEgQy1%=P)mp#gOh(RfUM6!_7WD{2Hz;at<$Ki(O|xRdzh7O%|)XXHv7O^%DtaOFTYb z)84F%;V7xArZ^MukU{TP2A^?%d^fv@iiy_~kfOG92)~>4ofH#CUhw*%8@;2Us8|}I zr@te|6IMx%ubAtpmFEdSpbs(hJux~Io$ELm!=98`1H+KNtx{{5j2fOxNj-zqQ1dya zK&O5*s}+>+u&T;2M)Vymr}xn27t?$;`6b7ejPvO|ZjJ%vrvmnV9s~_)_3~k9|q42%U(No7;6|%WHJR*62gJIW1yJUi!#%KbB_a$hIl|)~4n;_LK zp^UhB^n*lZMuVuH@CQ08=7Ae?ExKr>sT6eZNvwmZf)@RJi$2Td9=^??GbdUt(0+Bl zOaBSHQ~m+7)M^X@0q?WnY%l@?KmK8p6mQJ|y_4c^QUf3Vu#-1%d4K+b6#~X;qiU?k zYcN06ne{f;L){XPxmuu=!#?Jw7bNno7qGM{^Xinp$z4QDy=7mQ3r2djye?H7vh84F z>|^xY<`({qZJrpZXn0R%UzcZ4;Om5To7rswqv=H`p)?v34iBYy$-6*7fAU19Eg{yL zoy73)NBwzViB)$(V}B&8it5&1ynaj1d|F%67HQJ!MFg~{FsMiG)BMC*9u(t_XE0^d zaz?-pkLw66EkCa}B#Lw_jFX@-_1dLNyQ8~y5Qf)s_@hw?AF~!UPKuw|Kb;h2++OQ@5XlGtb`PtD~3ur~9MVho=WG4)%7HLg5nIEH~3yvYdC) z?q0VqI8p4w-O_rGk1e?p93Z(v`i9E(-O9M!R`fVqbd@@Vqxw#)lGj}mA|_fBtt3*M zqsmnIXu|}HV1H%~jq6K>=J-_tA=pdodF)#~x30_U?yPyt@K?GC&iB^DiFT*b3exeV zqkXAC*h=pRV++dTqQHuuC>*@8%in_$YY|qS!&4lCbFHvwI+Cz{h>zs)W$IfjHI=ce zip34q+Lu+Lk1!jE1oc&Tb{ZOFyYvvUTIx3yoX&lW8hb5ZeQol`-4ZK*JOR_EM0}buj zv$jA#aeu?W{Fofb0*Yc;f&CabH%Nfc_R$>$#h#-=Iw5VZ5q=k5VlI^p7zxN>BOzX! zg&=Yyc*3E1iwGUhaUg+5g^?#-C9DgqxcWYwx)=M{Mxi9ubIr@t33%C0N z^7GJ+I0(`jeJDI9f2Br?K0$H3-%9tJ+fFU7op9GL*UYGL`H8KRqbw2u#*~QO3DAZR znmg(P+dhjBQ3?D{q=Rlw`dB)&it%d~ueSnGC10ae3#l7xo-2Lg&i=+$j#`XwzotPr z%72>cSUt8P3*kYnO&pECnzeR<6Z4F=Cei8<(FXk{M*KqPyI%ZDzBVa!7BFJ|eAF!- zl)5pxq>V0#Ru}~x@XMBPbK`q@HRrLryS(=8Ndl#gu@Je~HY6jznByMyC0{4vD>z{& zv7aB8)iB0PzlTigWk_h@Os2T=uV2CArhh>d`sq~|!^6{xyszpwN}mtnp(3%e;RNWh z8veWkj6%pP!b2}p5yautFMKx;bhS+QV)Tr+u_Zxk@7DQO(i4BNX|N7vgN$hClGSqV zi*-pr20>r-~iETEDd=P2ZDZ8@h#^*C!!&MLLbo=JUWi5j>GkX2HYzCKfDu{je_QNVg!cGZNRCgzK9Q zN2*>JnkNUUlV|{&)Oy%8F2k7A5bo2_M#QdWeqbk9;4~9!ttWK2h2iVVP=*Z$Y#i{0ByO+17J9& zrULzaMIAmpTSgs*BzLQCHQ~klE9lx-sRjz@^}ZIZD?6f7>dTiHkl|>{t^|LOx^TlZ z@7(Mf@j-`7`F13Z`7Z_9 z8lNG=mO5EjuvRboLRbU$-G3B!v&kC~bknD!Sz0PrOD??drUV?l9B9J{u3rcAx z6Svou{m&b1YW-{2D8WGEHm?wn^4DT(&q~Kr4S4T$7&`Ze7$J$YJ*@h_o=A0AHAzQviN_CBQM4#2{p??n_SrqJACM{=^3<_>uI5glw;SZW-hV#G8{l9pcTH@!YwaQy zF92JPU51i1@q=MLX~n|3JhFW~7K5N^;i3^Ky%8&oZCZ~v!NGBoPUj0RXxxGrEc40T zSPovWx$j|AITxkPDV0w_WoTPgK-Mt^Rvuvr-(MS*POem{iNUv?Zq52dDSW^%FM&76p)kUhIs#XF63+f~W z&(&5!mMx{eN|~Bi)~Uu}+j2U8w<@MXoGk9N9*f48Um8p~EY%p((%2AC7xps%9R>(4 zc$eK?On?5l!+Y87xxAu#~I*}0UI$<{d>9UeMU8%=mV?w z9C>{ye=QG((YO3IpIst`{wlk>2BnAkg-dl}e8kIOoXWbVJe%IHUwHsygETfqo5x{% z?r1Qo9AjSF7S=pgLaw!G+|-OF%+CTfE4Y9lKz~#EH=2los#dc{gM~bNTd_y<5#|H_ zEZ7E1!ehOtMPUK;9PdVBv#Uah8~4bB|BJ*}?CdIkv{;D0OY2x46a70IAikT|9$jw* ziJQ;K6x_JpZd^u!&Ep!eT#&#l8AxuK~<@8J^c|hMc{{kR)2b7 zn%ywXyY<>`*K6&Us&PyOzS}vF0F?~S+egucm?8z1?boPV60?UsNrqx>w(-0}5uQ|- z)SXs=?W-#jSEslhGbmfY_wzQv)pu8|hU(^Q#8r;7Huy&JH^F}d=tn>ehfE9jwS{V3 zfE+EgO5j*15g&Y=5naCb<8PRKX+FF`9x$5jh;c1E7 zCDK*VTN8a{%cRKpGMjO+TtdR^Lo!8u2hEgl4XNudYsIK*M^J`OpG#Nw-dcUbF`lia zmOJq1PGRe-RpTUPk@*XI1P55B}M#lG5eq-7R$i1eyb(atvJwNs+uyy({4;jH^KGMpuT1WbJ-OvDZRh*S6L zwgbi;nk1$reNol~ePB=17k|VL&eFHvR&1_$Y0$sy<*% z|84Mt>SK)XmphI8%vDUHt2ZwPi-y9S6x7)txwcnr!LLrs;lZ-YKkf;V;uJr&-p zX)jIIY0%-=ipxQX2cW_v@g(?8GN@-R9X$StDjsbDji?f}b`us7V=Rb!pf2iwWF_`px=>e=CPJgOzeq&Dv_W7X>_75&w ztk)v(=Y}yIJe1*+Z0{-fDZhy*dj2uazNeljwG)~TUFybIq z-chTkRJ`%r@$0^InyKHzMp~b-3vdOeIY`D@uJN*?%_N0mO|II0=16mw4ps~>hekFf zq>?inr|n48KpkZq{vua^$#{0wg&%)9Xft&l?^5u{=cBExaT8tCe@tDYjnEH(rD$3^TzDoZzuV&<=7<$aZ}9h<5O>uWx{`+36Nwg>i%F9<7BY zs|MrRDYUYZPqjt`jiP>#FJq1x)|lmx?PW23w|^3$cBbf~Y{YQBh~si?>~9W;es=3qm5% zsY8I&C170SDZlsVA$fn3FG2fGN@`^C9y9}J8x+hZg9PyzXLF5HlF2Z`z7ELiCoZM> ziGR9;eb@DI!`x|RU#P!<_VJLQ$dnB|`BOH2m(M3B%lm#}pO5q3?(!05?iV@CF<{Ru zin)!qI`8~=z09t%dA7E^o8w6)&NPmF^mA5af4$3>A2cK{kpY_26KcZlV(O(FsF<0P zysDsaC4GK%S7D&{~FR&ji3Y3fn9z zE6R<ddl2f;odKdYrB(0r71NPolr7;5G=#G@`rmc?C_A7yB&C*8GdFwk-9pgDBtGQO))_c|I7aAdB^N7A%-)Z^HiYl6i~o<9|%>JU4K(xk%8<1 zHu=pA&csAs*vNP7RdlF8Mbd&9XBbFMJwBfGObGXOAV{BSiYYLI3hbA>qWCE{WpFi} z;c{jQv+2&W;xDig~B79G2G95DVfYrgt;R(sTwC7|7mt-xJE7MI-9b%SC(Sh*FQbjx_?K9C#SN|Lyxu< zrA}s`Gwy34_U<{fcG^T(QRLZaVRQgfkjB2NlRvme2nz2xd*N$qDz2hDr=i+6^XO>m zlDQCy5m%bAahZ;|P8aj9Ji=1q@**>?bkChWvr;5b<$At^2xp1d3;eCCKX?w~8u zhV1E}@A40&if>%M=#dbhEFQP$9!utg8fEE|#WAc?LJib2%6-uj!&dMOHyc%L0`a1_ zn}_$8P;i`R0BWn;62~{RwwCPO=GL@MK%@S4H{%F(;K*#$+ zK|UWB?^7k>R0J)Q6>FxxW~DDW)nGzxb_OOT+lgf=G=ElWZ-R2+xpCrZiBw9YHd3pL z%!+IF!bsJ^=p3Nm+w@T32-FQ{K&flTU9H0H{^yDF)%}PXgU}BIek;`vt9+cff%QFw zKrifr(%R`MKl6NKeE>nvI7YoeffmdSfKVrIqfoZgBu($Fbs^bS%6v&VOT@7oS1FzD zZK+YZeSf4kYdYQNItVFVnH)79D+C9MG;#y-!$&97;d4|{A2w3y4m7|nMMib|{&$d* zWpR~hit4PZ-dd$LCJ?weF(xE0Qfn@Bd`^Ek&YlP3mSVTL zw)DOrpGI6zOw?vR46SPO;#jRxD>WR%okXm-xgI@G@1yPY@@_mP^lV2*iD?Omx06>h z%y**7N>j+<6y5}EYVc4+ev(5#qz;4L7SyU|U5(+s`$6OR5I=KA90dR$cr3FwyBnpV z?0?awVI+r;?CcoT(0tU#HzN{YnmKDbTQZ{p%vp=2L(b;`<+fxyxxj?H!SwumfZku% z!`zGXUh;G&`R`%!KR#Lr41mf%3}RnY(TD$T;*)@cy2ifOowgg5;DG<^YS}R`YSjmD zM|aB{PfIT5Xb77{9{lXA?btuqVSjlJE9qew~d!U>bXXrWmMq zm5uX+(F~V+>RJ?ALJ9GGMzfWy2esB*r82I{ z=NMxd^4iLq8&%;NfS_Qmr~MP;5H!ry`1kxTl*UlfnBqkmQ%$zz?8jeyxxjB9`qFr=!;(WN5OM2Z(YuXm6VU_0OT zB|6c?nzc1UR9kPiYbxw^-Nh7p(gNEa5%sMn=X)V>`pKE4-G$p5XDZwdkfH9w4qnl< zsz(h3w*1g6=rX6!dxTSb&Tzqui@SMcp^)U;!?Y$yzNGPB;u3txH-DojusCa;K+2=h zgV_WINaaF1;>1q^Xsu{LI^zU*G&pjy8$h@U+8%@%?_?&@!Ly*?@N-)z?f{pLi}(On z@%uZDJHtOx+qqS3uXdKAl}VnbsWbJ~^N>FpIz z(EjYpJj1pKTdf^b%8Kil|8?CuzBgo}!iZ!SLt|t#SoC9Cx67Q zTgMD`bAlrJt#jXEZXDodKQi)s7C`-Hj(zd>B=$CjGZ9gB31=Y~ zFZNI`H@&el`+f7j$2zaRRYt>Dptmd3WH z(6!rmYLQ#AVsJ={ zp5U@UFi1Y=5^L#d_Ml6FdT#vBAPOzDm14@v%m@a$LLf+1)(N!T-TnJx%DHw62qG^nSg1tl_dusDk1A zdQ^hbpKEI`ZUArW>l$^;P+oFX9E)-s+w8i_&FTIqV%Oevo9^1eP+fiZuI>X4cEh*X~=uWaD^`%a0R2K}@3ec9&c z)ASODy;+FRm9tNyde|5tk#3uYw(x;Hum$pz#e3;7ZI_W`4_}C6!r4c`5zT^F096_! zcj5>v@iYVOFe1Zq*_U8LBi8*iM`_wpk_l37knF$$mKl~szH{JtCN!2aqAU?KLY36x ztPHXiAs|bkf;fO^yNV1K)1X)Jj}vk_MYNnO4_xrZvk8kBvVZWqx*C3ix`C*bf47~K z_!a@)!O_R!LG$@hEK@OR&A#4U6c^MxtSbWkOe7zf6FiOIU6d@O=M}+HuPC3&U+Hup zL3x(zT(b%DkGhG0#~- z6$!*egWdpUX7ZAnN4bWgf?fKPN|Wk5JVl-*Atm|}s|pe0 zQZWs~jqgVXH|Mh!@ngOoNE-cr@ZI7blDwq79Hn75y;S6~62qZBd<(1q8s{9*kcZDK zl#!O3=o3S%FevLCy_!;A?iKH)YJrMC1A>#&Tq1%_&goq@Wrf<(ZTV>D4PwbokO`?V zkWVbcvW%Y8yykVljFKr3R=r*ejUHWJGF&L|zoYh5U$i zqSe(M+h(lhGmncZ$3LY!yD?z~v4Nd?zjMd6~3aO8r83snj>FOS zFXZ>AxJJ)>`uN`lu2KJh_HYZ3fF7fGqu`UYA76TH+GlXR0-LQ(HG3XZF6yc+$vmFg zjd36I`dRG>Ir<|hQ2opJdHcR@qFM)$k!9#eh!l)DHrW=n2%k)f+bTyI^)D|oM=e~{ zDA@)8IMF3uQ50ss>KU9R)GHl%^rfo5W#%Lk=3<@t^H}FBR)?B^48XtdFwgmlcP?wn z;#iTSE1Fn1#nl_vjMh?u`dRMfACGF-fl*D){X|YqLE}HNKRGqdLTKQ!^!+gXAx!ur zMW#7Xxi*ZLP&%Q1Fga@;W0u0eI-BV2BB-1kiZL{3nuYm3e3RSP8Kvr~We`TLqql|z z_iP+Sn5nq(OSEzUG;8@Hcfmk5g@$uQ$gNI%NHM|KP1|$hG4NTv{BK)bbO$AdbfGzI zSmC0~pr29YnFL0zaEB|Gro;(d)lqoTzGgkcSdnhq%R`nHsz%*-Wv$76oH8WV5;c?N zFbM)z_?A{q0?4^9i|F zxN$fNOmAP9K=C_4>H4f`28!H#(SkT(H zEs(VO)Y3kuU96xJEbP<8nt=%3$+`%JC>dPiP(#tBZ0I zg-pr!_|e2J{L$ApUc3{2mCxC%G<-4D>ha)V{Ip&I3&kyAB1 z=FqfUV&!CS4Yx@sCmqCacQ*2it-dBpA2DRCUK?HzDsOx!oLOMYYSQnJmEUgdm^?vx zQCpM?K-6pA;pF}`T_@IXa2r43h22X9!-A{oOmmxwX5Szi|2y(`wGDofU4abJcH<|J5mzZNY;7ve!}`8Varlhu4E4KLGdu)CZtH0P_LZ z55Ro@{sRafK>PsG2arF2^0OX{TD{6Me6D`2)8M;bJ??i%F0xmB{W*S9$>gFQ;j9+QzqHk( zrZe$qqN5l3vrsFJYMWg>ai=nEcc?n0nWW-dD~H{1vsG!SDJ)QQxcGFUvb@8p@|V1m zfH$wdYu|P>63F0{ChazJBEf*);Ocvo!S|4}lREWwWUOV2NNX}!*T84Y;aJShPprl2 zv4~ohYW;xLk%I%v7;rX|p<(B4OHX~^p+oV4W5wA8-ttvL=O$~L-nALO@n1bkYbG3p zkYsqiNG}k1=%*w5-feY_4u8X?#4Uc^+6wx13ae-lebCWj+HdZD&Az#Vle0aQs`$7Y zhpIljAqg+PTzz7LO@Bk!9o@hD2<(f1{GkGHa9V4ipB;Z-2l{816etBF#_x4^%!7;! zz1enL$4{*^kw6XyGVjnbb@*u{{s5!|Eh8qqfOLs!;ZzzW?}cto*oqQJ2R*4NcY=?3 za0%T6VUWl29Zhe8LG4V+M3W~KzX6UWo%KelhI~CO^6OMed!v{m8uAai%JN~h)LKW! z_Slvb5;1=3Oq$HfRLpZJN{|q5I96A&)bB5ph(pqm=wF#DM?FeB4dV<9HT2ewq$YU+ z&=X`OmTHL2dcGPKhbdxdI#f|~bS|AX^Pi;h1`kGvUmQD8c!S?Z;1g2+cR zV@r}fY9u5h&sFAxenhRYK3EWeCH7%6^b&;|H{^Ja$L1BZYcx^sEv=)OFqk1Xq<^Jb zyZ~Y(fGm1e7p#t&k8dQwa@(wVLT}Wu4pN(3+hMlp+AYb&&`z%o92(`@V4tvo8H-Ky zn6%4OAfFW{pcXKuWY8%tlY&vQ(HO8O+KVe)JQY1KCJyvOWc+U4N2RPXAkEz8d0>`T z2Z$h$xKv45Aqz^^I7gbjWzAs@ESBB()}b;<>V-*w_G%tytD8*@@&EcM5qm~%0W{V| z%i)`*1%-q0{INJQcdHn=On!hm_Uwh*$|sf9Ex?L8ns$f*tz@rtd0!^cf@Mgw9X*TL zL_6lHz+tIoo(QlzApPk<(IaMy<4f(_(IRvN8_wPt2FY*xduTOu4>wm=>zYE#tP%_^ zTc}rwAdlr za-MdQry3C;VJ#^Nq%8AI@ImG}7qTeux$p=VPEPL#XaiAbali`>rbF}m%8*L}*^GY7 z#N+rv2b7>Y_RIkj8M*XWR3i4tGxxH(BYA`1Z#tDD&dZtZ3!DLXvK{`+SccfDPQC=O z#`-}gg8APf-&L+i_^%DCqqB9t10!%Hs_&dPr{=qU3@4xI;~`9YU#eQ^ug_zkk#+M5a-RW~B`{``%eM0e_)w91 z@UJwi^S#iZbaUf?9&~X}3DqOH?MbqhuswcDNA1PS0^w2;Q9uPPOVHJ;S{wWVvFA4~ ziGBeg>~>&&4E9V50*DP~sxf)>Ya7kRFV1Iwq$s)w>OT=<(_5?NF&T)^zdjx7qUNHz zMLCc&_qHR`r%53Uv2Bp{G~J~1HVNu5Z;)HLwm~4$*@(&RUGs1$vRm=R&kuBk{%9bp z(Kr~{PVKMNQG_qe@>fI);va-JQHa%s}lOYjq;^Aui(^AoGf_&6&c247gub^kA7l;=9uc( zy*jZ*cf&YZ@QNX7Xmhc;kosJe`)F3CdKg`QvLj~mTvijsPSUm4XvGN43@JB~-U%{oUY){ipe zY*YS#|1w*}Rv|-(e2HwO6xOn)Pvq`fk9xK;K8B12dkIr-lX0gVS){#n&%=Lv_!IEN zDB?epS_E3JE;U>(_VUeGvu2%s{<~@ZEs{5c(E=vSvf~!}kZL7l(jTT-AgIe7N;w5r zZ{S6QFPndZcLgA2&nN|5RZF~4#Y<3cp{Ns=f34%$e1Ym0I{@_Ew*A;hg*~lOOvRmz zXzFTKl&VI)jT@?%xXfK~b^k|ZG4&8WSIxJ6q!PqMv93cFqskdd&HUrN7y+&Y&IY1! z76eV<7%9b*+#Mo~p>fN#z+^=H_x@&ji{4XhrIk$s9g9{}dGFYJc*^2-&uQ7Ko8PbF zd;(f9Ar%8+Qha<5u@D0-{wzgjj!2N+-i9-TXZTIy%kTZ;bLEMjU%osa(KtawYNyrs zk|5CWjdHe!TN%7P?7eW+bI716q;g49OGV)BZ|`{0T>9KGMrI>#Bxc4i1;ztii(EcxRw4g460@(@Vqo zfFkKy)K2@$j_XwG!?m+Wa`cUP`;Lu&>|3_dgHKL3Tq@;#EoL z8#4yL#uEFVVY@cnm#==>Q_F@K+L@pRIk5!G@Cf&|Ka3S%!k)f4gP=>4KR46Mar-nG z<=r}Ehj?+jQp64gNEwNmhtbTQ=**2080XE6?RCas2s!J4$4QQ*y~dNMLADhFY5O|R zYi_fXvBf&-^_OT-0uU50^7=G}YTsmSIR`>B0)tVci-f;BCaBfl!-fb4B%*+1?jI-Q zTa6M^z}oNC$tLz(;+&fvGxN+s*U@2hjaYU)r%x6_sOGDInL>eJdxS+aZ)Nzh%fKr7 z^Ko&tb`TxzeaUvxXSS0&^6Y#o+ptb9WhQ%0n;PEEl{K|mLC#-uJF1|UJs)sd82ykgfe&?6u4j%zmnU3iX!|c z<*Ufd9U*!4^F35cFro6ox6whWe6BI%INep+A(40E2^Tz*6u~Y&c3t^rRD~fw?6Xru zWUl8|5(X38k}`U&fg_&{^wro^`znh&XmOu#>r&e_b*Kh=$+AiI<^Bw66RIi^nWLhj zXl+~ztM>(J-r@-h7B@w3yC0AWvSTc5vWBW~^Q>JX*J+o>s+ z2jZ5nsT145NctU4Fts-^CpqL;&lW*yTQm;KMI_Ec@XIh?1hezKA%OB0FTwz+Hy!+v-X*(h06q6R6g0{i5kK#2N^mG?z0Vo4U zQGr@1g@f~DHR6meb|dLA^+}Mb7Z7C)HZX9|Gu)$nBK)GiNm=<-LH)ui561g^T@8gU zrP$6sPkKx22`%naO$adT9pPPUxerV&t06+{G{ZK>$T4|Y;tCHd6bbC<)Mx@t&1gfY zQPW%ZE)g6h@vpA4BKO?c2xhWA$mUnx<(Gu{e~CnYcNcP3vLZXM|1QImpf$?*A^)u| zPy7#Je6?}dVI5LH9*C_L0VdbHLp*%_+l2P*SEZM!mb@$Wh-NTh5ble4TCFz+H)E;1 zt{fEirQ!|pOH_fzZ;o~EvhRCZFoaRq`cA9zCtg3pjB~{%#R(_Tpkee|krApxRokwZ zMy$?U(Q0Cc`1-EDWxj7;WTbZGE7TuCv?(|_$~(~ri~PvjQUV3IdN!R>a;NZFh-q1? zil2(hruUXZ2{ue{q55tUb~=5ZPY<`{63~(f+b6R;ZI`D^I6X+yg zJTU+H#xvB%!lG>GBpl@;1Q%scR{#%rV)!QR_Pfd>FW|85Z|>$pmLitcVeFm!R!2pVQCIrxmA#dac5?wmmTb=bvhjOL>!eIgb4dCzQ$@vMhx`ECK*SKS_KEHxN{@1;}Gc0I0L(D($&ofXpQ zG$q>TcNB={I^*{rBt}729SY{1nNUU)m*k~gp*h7|Z=0O-HA9ML2`Wk9{k$we>g3{e zlS3gDgSv?TGnC&1Tej)TNd>E@HL>Y80h(TKxwfX+^jTP!y=YNs{5*HwGgs%QOjS}e z5Zj5_Yympt<_Hgtdzo%8zkI2Nphnx8yKxQ4_sc=hC{K@vsl$m-M#`bmW#X$cKEFY}JPAFDAJror;U4}zB5lF5@VQ$RR`heLDLT!Q+qMh zE4QWu%#B^~nXg9-tW8r)pZoDnMNp%1i&6*-0tf(GoX@rvrPJSp;!pWl{KfZuE$AO9 zoE=U?;V4XoWR06Ne+QYsbtc4RMtnk{*K?{G>eOug57IhQE_a*dbB@mU^B2enR?{jF z1)LybtHtLVajlsMky=ULijN(TR>;_kGlPCepplbh0Y1grH06mxF`L@=eRo28EavgU zEy3-Re5EUn@KR#&H`MiIuJM5z$xLwUZlu#M6mQgF2^=L5#;v8P2nRQ3di=UB48BQ+ z%9eHl8b-wr_sSQFJenEJr5*AK#v?DeSWeMx%K2{%jYZnV zw8mjaxQ;sn?MS~_sK@ia>4C0#S2czB->6g<@hItY9imQEUdBMRUL{MiqC#Wu9&I;W z&GnP|zyFRp0{jIb{`}Q`Lk$B7CjV51Ck4dRsFJ#`oT6yb*UJYv80NxNr5%e8T-yYgp+P|!s>9eO51*6*v`~nxY!YC$CD~cZ!B+mP6FLamh{)tvfT-J6P98ibSrt;d8s#9DDYWS|8|RWGc&8`_US0LZQv zE6YHE%!%_*!X7a^PSt%wK1Ura{X(+l@(8dcc+#aSr86UH8#eJpDm=O@ewDXmDD0r^ z2@vcPWWKV;fgpaAYV~yuv`7y=9%PHzBn;ptG*bH2(UXfs!&pisZ^4UvS~hya1Ays9)7JWxCz0Iv;%@o{r(*K{fcv7Z~1oypK`qX75rv1ugIE zQ-d_qzQ*t+!dYET*zcsg#w3&|Yi12wH&e|_p!!9_mv!E%n<+Z1y3g!CmGCP%}I4uP)AKdr}>?x8Ncq0NLxK^V5Wt+#q zOtDe~9fXf-AfhPU?hUh$f(gA!3;(g9V7>(ZXcw`m7y$9btVksA=awW6@j;;~haTD| z*n{rF1$NGw>e=s1ci6>2x3l^Um&}+mwv0Proi9Xz3F#BLzbo2(Ils7de2P7(P1H@~pGuvNXO#a=0RWf!NNTOT`Dc6GJtiiuub}AhBt)(T%KV>?542 zqDEchq5$@x3Hg#Ri~d-Q?_s^Wk~uOsT%ZSjo(yxq5Pv}A3xKFAvazT(<0kEBLx|+^>RSz%)!L{2__jZC9rArMe`V}7`18{ zL5`V}vpG4Hz>By`$qJ!_W#`=&b)f*8k|sPWcN)!~Mebqc_u99XmaVpbd?i zD9|3 zrR~~5Z;jc*ZAdF|0^mkGc=$D-dynvow{osH&D0LV#4M5~vCHfC&jeUbs5L}s+JPrV1%-ZD}S|fa(g^{{v{Ne5iPEqgOG|r4n}ST!aShPw8dd3Fte;?Pig${UtoQCdigaOkp?5s_8gSOMh*xu`drZ#-h~iY>!%WrJkNWxFMV8KedhBw1^}t zbv0hQ8mfVjhA1u$q&)N=B5|RNn#YvPUDq%=%;d&WFV~7qgiIv-n|eCLoysZL*K~A! zvdKHt*J(PrfaI`!7%05ieIRPk6rPQ*P^Fm3!NKhbTP1>1U!nk+zeH+pFYTWt>sP3$ zP)S&U>Do%1wcnf}s6rZ8e^M>?EyyOageXs<1^TqUpHRYO#P5B%I?>JpgsL>T(=Q9U zmxmWI%e>-Z@9or!gy}RS$`|gJrV9Sm{LQhP5If&8tdS4Gs$&NP0C*r(taJcZR-q4^ z+kMHrB8VWjS8#GNH6+x$2eSs+CqqGfN;z)>ASN}mun@%0#8}`O z0@R0M4R!_t#r_fQz+W?g1YqHGAT)RZ3|vJ0@8fsCUFkrHe=3lDdzcT+aFL0s;-B!k_ohgjQ!_E1+L8mszNQs0>H-UKoT$s z6cRL;HtT~b10emI!Uq4y0t!Q+MI-;4f(FM%BO`*TvOjp=*#F|Qftr9DY4Gm?ASw8d z3=kd+%mIo5)Mft7po2qmfWm-||HlBq_c=g$z=guU(*VJqUxBFL@cfTYtjGo815lLz zhR=*N7ZEWpL?KbU7b zAR-u403;*+r?LJ^wf(PZ2ZFl`fXx5fwEt7xU|=DT2p|^wKiMf20u=yd|M#K05GV|b K1qOaJ^#1`pFrv!< delta 27226 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 I&lmlF05!E^%K!iX diff --git a/releases/parseable-datasource-1.0.0.zip.sha1 b/releases/parseable-datasource-1.0.0.zip.sha1 index d4cca5e..9ffe8ea 100644 --- a/releases/parseable-datasource-1.0.0.zip.sha1 +++ b/releases/parseable-datasource-1.0.0.zip.sha1 @@ -1 +1 @@ -f4ebfdeaaeaba01059c99fecf2df2bb617f456d2 +ff869b237b0eb3f4d4dc0ac8a20417634de54c87 diff --git a/src/datasource.ts b/src/datasource.ts index adc9875..10ea3c0 100644 --- a/src/datasource.ts +++ b/src/datasource.ts @@ -74,7 +74,6 @@ export class DataSource extends DataSourceApi { return this.arrayToDataFrame(response.data); }), catchError((err) => { - console.error(err); return of({ data: [] }); }) ) @@ -128,8 +127,6 @@ export class DataSource extends DataSourceApi { } } - - console.log(fields); dataFrame = new MutableDataFrame({ fields }); array.forEach((row, index) => { dataFrame.appendRow(Object.values(row)); @@ -150,8 +147,6 @@ export class DataSource extends DataSourceApi { : [] ), catchError((err) => { - console.error(err); - return of([]); })) ); @@ -170,7 +165,6 @@ export class DataSource extends DataSourceApi { : {} ), catchError((err) => { - console.error(err); return of({ status: 'error', message: err.statusText @@ -195,7 +189,6 @@ export class DataSource extends DataSourceApi { : {} ), catchError((err) => { - console.error(err); return of({ status: 'error', message: err.statusText From 6e036690abeb2cb3fdd1835c42a1638d62274fb6 Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Thu, 19 Jan 2023 10:20:45 +0530 Subject: [PATCH 2/2] add manifest --- releases/parseable-datasource-1.0.0.zip | Bin 1024696 -> 1026449 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/releases/parseable-datasource-1.0.0.zip b/releases/parseable-datasource-1.0.0.zip index 311de644ee10b5d41a297dc7cf738bc002c5b9a6..45fcf59fd531e623e2d5036d4cc7072389a82cc9 100644 GIT binary patch delta 2247 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