UNPKG

ryuu.js

Version:

Ryuu JavaScript Utility Library

3 lines 112 kB
/*! For license information please see domo.js.LICENSE.txt */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.domo=t():e.domo=t()}(self,()=>(()=>{"use strict";var e={617(e,t){var a;Object.defineProperty(t,"__esModule",{value:!0}),t.getToken=t.eventToListenerMap=t.DomoEvent=void 0,t.DomoEvent={appData:"appData",dataUpdated:"dataUpdated",filtersUpdated:"filtersUpdated",variablesUpdated:"variablesUpdated",ack:"ack"},t.eventToListenerMap=((a={})[t.DomoEvent.appData]="onAppDataUpdated",a[t.DomoEvent.dataUpdated]="onDataUpdated",a[t.DomoEvent.filtersUpdated]="onFiltersUpdated",a[t.DomoEvent.variablesUpdated]="onVariablesUpdated",a),t.getToken=function(){return null===window||void 0===window?void 0:window.__RYUU_SID__}},797(e,t){var a;Object.defineProperty(t,"__esModule",{value:!0}),t.DataFormats=void 0,(a=t.DataFormats||(t.DataFormats={})).ARRAY_OF_OBJECTS="application/array-of-objects",a.JSON="application/json",a.CSV="text/csv",a.EXCEL="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",a.PLAIN="text/plain"},748(e,t){var a;Object.defineProperty(t,"__esModule",{value:!0}),t.RequestMethods=void 0,(a=t.RequestMethods||(t.RequestMethods={})).GET="GET",a.POST="POST",a.PUT="PUT",a.DELETE="DELETE"},248(e,t){var a,r,n;Object.defineProperty(t,"__esModule",{value:!0}),t.FilterDataTypes=t.FilterOperatorsNumeric=t.FilterOperatorsString=void 0,(n=t.FilterOperatorsString||(t.FilterOperatorsString={})).IN="IN",n.NOT_IN="NOT_IN",n.CONTAINS="CONTAINS",n.NOT_CONTAINS="NOT_CONTAINS",n.STARTS_WITH="STARTS_WITH",n.NOT_STARTS_WITH="NOT_STARTS_WITH",n.ENDS_WITH="ENDS_WITH",n.NOT_ENDS_WITH="NOT_ENDS_WITH",(r=t.FilterOperatorsNumeric||(t.FilterOperatorsNumeric={})).GREATER_THAN="GREATER_THAN",r.GREAT_THAN_EQUALS_TO="GREAT_THAN_EQUALS_TO",r.LESS_THAN="LESS_THAN",r.LESS_THAN_EQUALS_TO="LESS_THAN_EQUALS_TO",r.BETWEEN="BETWEEN",r.EQUALS="EQUALS",r.NOT_EQUALS="NOT_EQUALS",(a=t.FilterDataTypes||(t.FilterDataTypes={})).NUMERIC="NUMERIC",a.DATE="DATE",a.DATETIME="DATETIME",a.STRING="STRING"},675(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.handleAppData=t.onAppDataUpdated=t.requestAppDataUpdate=void 0;var r=a(994);t.requestAppDataUpdate=function(e,t,a){var n=(0,r.generateUniqueId)(),o={requestId:n,event:"appData",appData:e};this.requests[n]={request:{payload:o,onAck:t,onReply:a,status:"pending",sentAt:Date.now()}},window.parent.postMessage(JSON.stringify(o),"*")},t.onAppDataUpdated=function(e){var t=this;return this.connect(!0),this.listeners.onAppDataUpdated.push(e),function(){var a=t.listeners.onAppDataUpdated.indexOf(e);a>=0&&t.listeners.onAppDataUpdated.splice(a,1)}},t.handleAppData=function(e,t){e&&(this.listeners.onAppDataUpdated.length&&(null==t||t.postMessage({requestId:e.requestId,event:"ack"}),this.listeners.onAppDataUpdated.forEach(function(t){return t(e.appData)})),this.handleReply(e.requestId,e.appData,e.error))}},220(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.handleDataUpdated=t.onDataUpdated=void 0,t.onDataUpdated=function(e){var t=this;return this.connect(!0),this.listeners.onDataUpdated.push(e),function(){var a=t.listeners.onDataUpdated.indexOf(e);a>=0&&t.listeners.onDataUpdated.splice(a,1)}},t.handleDataUpdated=function(e,t){e&&this.listeners.onDataUpdated.length&&(null==t||t.postMessage({requestId:e.requestId,event:"ack",alias:e.alias}),this.listeners.onDataUpdated.forEach(function(t){return t(e.alias)}))}},631(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.handleFiltersUpdated=t.onFiltersUpdated=t.requestFiltersUpdate=void 0;var r=a(994),n=a(670);t.requestFiltersUpdate=function(e,t,a,o){var s,i,d;void 0===t&&(t=null),(0,n.guardAgainstInvalidFilters)(e);var l=(0,r.generateUniqueId)(),u=(0,r.isIOS)(),p=(0,r.isMobile)(),c={requestId:l,event:"filter",filter:null==e?void 0:e.map(function(e){var t;return{columnName:e.column,operator:null!==(t=e.operator)&&void 0!==t?t:e.operand,values:e.values,dataType:e.dataType}}),pageStateUpdate:t};if(this.requests[l]={request:{payload:c,onAck:a,onReply:o,status:"pending",sentAt:Date.now()}},!p)return window.parent.postMessage(JSON.stringify(c),"*"),c.requestId;var v=null==e?void 0:e.map(function(e){return{column:e.column,operand:e.operator||e.operand,values:e.values,dataType:e.dataType}});try{domofilter.postMessage(JSON.stringify(v))}catch(e){console.error("Failed to post message using domofilter:",e);try{u?null===(d=null===(i=null===(s=window.webkit)||void 0===s?void 0:s.messageHandlers)||void 0===i?void 0:i.domofilter)||void 0===d||d.postMessage(v):window.parent.postMessage(JSON.stringify(c),"*")}catch(e){console.error("Failed to post message using webkit:",e),window.parent.postMessage(JSON.stringify(c),"*")}}return l},t.onFiltersUpdated=function(e){var t=this,a=this.listeners.onFiltersUpdated.length>0;return this.connect(),this.listeners.onFiltersUpdated.push(e),a||this.requestFiltersUpdate(null,!1),function(){var a=t.listeners.onFiltersUpdated.indexOf(e);a>=0&&t.listeners.onFiltersUpdated.splice(a,1)}},t.handleFiltersUpdated=function(e,t){e&&(this.listeners.onFiltersUpdated.length&&(null==t||t.postMessage({requestId:e.requestId,event:"ack",filters:e.filters}),this.listeners.onFiltersUpdated.forEach(function(t){return t(e.filters)})),this.handleReply(e.requestId,e.filters,e.error))}},110(e,t,a){var r=this&&this.__awaiter||function(e,t,a,r){return new(a||(a=Promise))(function(n,o){function s(e){try{d(r.next(e))}catch(e){o(e)}}function i(e){try{d(r.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?n(e.value):(t=e.value,t instanceof a?t:new a(function(e){e(t)})).then(s,i)}d((r=r.apply(e,t||[])).next())})},n=this&&this.__generator||function(e,t){var a,r,n,o,s={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return o={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function i(i){return function(d){return function(i){if(a)throw new TypeError("Generator is already executing.");for(;o&&(o=0,i[0]&&(s=0)),s;)try{if(a=1,r&&(n=2&i[0]?r.return:i[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,i[1])).done)return n;switch(r=0,n&&(i=[2&i[0],n.value]),i[0]){case 0:case 1:n=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!((n=(n=s.trys).length>0&&n[n.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){s.label=i[1];break}if(6===i[0]&&s.label<n[1]){s.label=n[1],n=i;break}if(n&&s.label<n[2]){s.label=n[2],s.ops.push(i);break}n[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],r=0}finally{a=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,d])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.domoHttp=t.delete=t.put=t.post=t.getAll=t.get=void 0;var o=a(617),s=a(256),i=a(994),d=a(797),l=a(748);function u(e,t,a,d){return void 0===a&&(a={}),r(this,void 0,void 0,function(){var r,l,u,p,h,g,y,T,b;return n(this,function(n){switch(n.label){case 0:r=a.fetch,l={},(0,i.setFormatHeaders)(l,t,a),(0,s.setContentHeaders)(l,a),(0,s.setAuthTokenHeader)(l,(0,o.getToken)()),u={method:e,headers:l,body:c(d,a.contentType)},p=r||fetch,n.label=1;case 1:return n.trys.push([1,3,,4]),[4,p(t,u)];case 2:return h=n.sent(),[3,4];case 3:throw v(void 0,n.sent().message,"");case 4:if(h.ok)return[3,9];g=h.statusText,y="",n.label=5;case 5:return n.trys.push([5,7,,8]),[4,h.text()];case 6:return y=n.sent(),g=y||g,[3,8];case 7:return n.sent(),[3,8];case 8:throw v(h,g,y);case 9:return n.trys.push([9,11,,12]),[4,f(h,a)];case 10:return[2,n.sent()];case 11:if((T=n.sent())&&(T.status||0===T.status))throw T;throw(b=new Error("domoHttp error: ".concat(T.message))).originalError=T,b;case 12:return[2]}})})}function p(e,t){var a;return(null!==(a=null==this?void 0:this.domoHttp)&&void 0!==a?a:u)(l.RequestMethods.GET,e,t)}function c(e,t){if(e)return t&&t!==d.DataFormats.JSON?e:JSON.stringify(e)}function v(e,t,a){var r=new Error(e?"HTTP error ".concat(e.status,": ").concat(t):t);return e&&(r.status=e.status,r.statusText=e.statusText,r.body=a,r.headers={},e.headers&&"function"==typeof e.headers.forEach&&e.headers.forEach(function(e,t){r.headers[t]=e})),r}function f(e,t){return"blob"!==t.responseType&&["csv","excel"].includes(t.format)?e.text():"blob"===t.responseType?e.blob():e.text().then(function(e){if(!e)return"";try{return JSON.parse(e)}catch(a){var t=new Error("Invalid JSON response: "+a.message);throw t.responseText=e,t}})}t.domoHttp=u,t.get=p,t.getAll=function(e,t){var a,r=null!==(a=null==this?void 0:this.get)&&void 0!==a?a:p;return Promise.all(e.map(function(e){return r(e,t)}))},t.post=function(e,t,a){var r;return(null!==(r=null==this?void 0:this.domoHttp)&&void 0!==r?r:u)(l.RequestMethods.POST,e,a,t)},t.put=function(e,t,a){var r;return(null!==(r=null==this?void 0:this.domoHttp)&&void 0!==r?r:u)(l.RequestMethods.PUT,e,a,t)},t.delete=function(e,t){var a;return(null!==(a=null==this?void 0:this.domoHttp)&&void 0!==a?a:u)(l.RequestMethods.DELETE,e,t)}},928(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.navigate=void 0,t.navigate=function(e,t){var a=JSON.stringify({event:"navigate",url:e,isNewWindow:t});window.parent.postMessage(a,"*")}},353(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.handleVariablesUpdated=t.onVariablesUpdated=t.requestVariablesUpdate=void 0;var r=a(994),n=a(396);t.requestVariablesUpdate=function(e,t,a){var o,s,i;(0,n.guardAgainstInvalidVariables)(e);var d="string"==typeof e?JSON.parse(e):e,l=(0,r.generateUniqueId)(),u=(0,r.isIOS)(),p=(0,r.isMobile)(),c={requestId:l,event:"variable",variables:d};if(this.requests[l]={request:{payload:c,onAck:t,onReply:a,status:"pending",sentAt:Date.now()}},!p)return window.parent.postMessage(JSON.stringify(c),"*"),l;try{var v="string"==typeof d?d:JSON.stringify(d);domovariable.postMessage(v)}catch(e){console.error("Failed to post message using domovariable:",e);try{u?(v="string"==typeof d?d:JSON.stringify(d),null===(i=null===(s=null===(o=window.webkit)||void 0===o?void 0:o.messageHandlers)||void 0===s?void 0:s.domovariable)||void 0===i||i.postMessage(v)):window.parent.postMessage(JSON.stringify(c),"*")}catch(e){console.error("Failed to post message using webkit:",e),window.parent.postMessage(JSON.stringify(c),"*")}}return l},t.onVariablesUpdated=function(e){var t=this;return this.connect(!0),this.listeners.onVariablesUpdated.push(e),function(){var a=t.listeners.onVariablesUpdated.indexOf(e);a>=0&&t.listeners.onVariablesUpdated.splice(a,1)}},t.handleVariablesUpdated=function(e,t){e&&(this.listeners.onVariablesUpdated.length&&(null==t||t.postMessage({requestId:e.requestId,event:"ack",variables:e.variables}),this.listeners.onVariablesUpdated.forEach(function(t){return t(e.variables)})),this.handleReply(e.requestId,e.variables,e.error))}},734(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.handleReply=t.handleAck=void 0,t.handleAck=function(e,t){var a,r,n=e.requestId;if(n){var o=this.requests[n];if(!o)return console.warn("No request found for ID: ".concat(n));"pending"!==o.request.status&&console.warn("Request ".concat(n," is not pending, current status: ").concat(o.request.status)),o.request.status="acknowledged",o.request.ackAt=Date.now(),null===(r=(a=o.request).onAck)||void 0===r||r.call(a,o.request.payload)}},t.handleReply=function(e,t,a){var r,n;if(e){var o=this.requests[e];if(!o)return console.warn("No request found for ID: ".concat(e));"acknowledged"!==o.request.status&&console.warn("Request ".concat(e," is not acknowledged, current status: ").concat(o.request.status));var s=a?"rejected":"fulfilled",i=Date.now();o.request.status=s,o.request.repliedAt=i,o.response={payload:t,status:s,error:a,repliedAt:i},null===(n=(r=o.request).onReply)||void 0===n||n.call(r,t,a)}}},992(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.domoFormatToRequestFormat=void 0;var r=a(797);t.domoFormatToRequestFormat=function(e){switch(e){case"array-of-objects":default:return r.DataFormats.ARRAY_OF_OBJECTS;case"array-of-arrays":return r.DataFormats.JSON;case"excel":return r.DataFormats.EXCEL;case"csv":return r.DataFormats.CSV}}},256(e,t){function a(e,t){var a,n;if(e===document.body||e===document.head)return r(e,t);var o=(null===(a=e.dataset)||void 0===a?void 0:a.domoHref)||e.getAttribute("href"),s=(null===(n=e.dataset)||void 0===n?void 0:n.domoSrc)||e.getAttribute("src"),i=o?"href":"src",d=o||s;if(d&&t&&!d.includes(t)){var l=new URL(d,document.location.origin);l.origin===document.location.origin&&(l.searchParams.append("ryuu_sid",t),e.setAttribute(i,l.href))}}function r(e,t){for(var r=0,n=Array.from(e.children);r<n.length;r++)a(n[r],t)}Object.defineProperty(t,"__esModule",{value:!0}),t.processBody=t.handleNode=t.setResponseType=t.setAuthTokenHeader=t.setContentHeaders=void 0,t.setContentHeaders=function(e,t){"multipart"!==(null==t?void 0:t.contentType)&&(e["Content-Type"]="application/json",(null==t?void 0:t.contentType)&&(e["Content-Type"]=t.contentType))},t.setAuthTokenHeader=function(e,t){if(t)return e["X-DOMO-Ryuu-Session"]=t;delete e["X-DOMO-Ryuu-Session"]},t.setResponseType=function(e,t){t&&void 0!==t.responseType&&(e.responseType=t.responseType)},t.handleNode=a,t.processBody=r},670(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.guardAgainstInvalidFilters=t.isFilterArray=t.isFilter=void 0;var r=a(248);function n(e){return null!==e&&"object"==typeof e&&"string"==typeof e.column&&(e.hasOwnProperty("operator")||e.hasOwnProperty("operand"))&&Array.isArray(e.values)&&e.hasOwnProperty("dataType")&&(Object.values(r.FilterDataTypes).includes(e.dataType)||"string"==typeof e.dataType&&["NUMERIC","DATE","DATETIME","STRING"].includes(e.dataType.toUpperCase()))&&(Object.values(r.FilterOperatorsString).includes(e.operator||e.operand)||Object.values(r.FilterOperatorsNumeric).includes(e.operator||e.operand)||"string"==typeof(e.operator||e.operand)&&["IN","NOT_IN","CONTAINS","NOT_CONTAINS","STARTS_WITH","NOT_STARTS_WITH","ENDS_WITH","NOT_ENDS_WITH","GREATER_THAN","GREAT_THAN_EQUALS_TO","LESS_THAN","LESS_THAN_EQUALS_TO","BETWEEN","EQUALS","NOT_EQUALS"].includes((e.operator||e.operand).toUpperCase()))}function o(e){return Array.isArray(e)&&e.every(n)}t.isFilter=n,t.isFilterArray=o,t.guardAgainstInvalidFilters=function(e){if(null!==e){if(!Array.isArray(e))throw new TypeError('Filters must be provided as a Filter array or null: { "column": string, "operator": string, "values": any[], "dataType": string }[]');if(0!==e.length&&!o(e))throw new TypeError('All filters must be valid Filter objects with required properties: { "column": string, "operator": string, "values": any[], "dataType": string }[]')}}},994(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.isMobile=t.isIOS=t.generateUniqueId=t.setFormatHeaders=t.getQueryParams=t.isVerifiedOrigin=t.isSuccess=void 0;var r=a(797),n=a(992),o=/^(?:[\w-]+\.)*(domo|domotech|domorig)\.(com|io)$/i,s=/domoapps/i;function i(){var e;if(void 0===globalThis.window||void 0===globalThis.navigator)return!1;var t=globalThis.navigator,a=t.userAgent.toLowerCase(),r=/(?:iphone|ipad|ipod)/.test(a),n=/mac os x/.test(a)&&"ontouchend"in document&&t.maxTouchPoints>1,o=void 0!==(null===(e=globalThis.webkit)||void 0===e?void 0:e.messageHandlers),s=!0===t.standalone,i=globalThis.screen&&globalThis.devicePixelRatio&&globalThis.devicePixelRatio>=2&&(globalThis.screen.width<1024||globalThis.screen.height<1024);return!(!r&&!n)||[o,s,i].filter(Boolean).length>=2}t.isSuccess=function(e){return e>=200&&e<300},t.isVerifiedOrigin=function(e){try{var t=new URL(e);if("localhost"===t.hostname||"127.0.0.1"===t.hostname||t.hostname.endsWith(".localhost"))return!0;if("file:"===t.protocol)return!0;if("https:"!==t.protocol)return!1;var a=t.hostname;return o.test(a)&&!s.test(a)}catch(e){return!1}},t.getQueryParams=function(){var e=location.search.substr(1),t={};return e.split("&").forEach(function(e){var a=e.split("=");t[a[0]]=decodeURIComponent(a[1])}),t},t.setFormatHeaders=function(e,t,a){if(e&&-1!==(null==t?void 0:t.indexOf("data/v"))){var o=void 0!==(null==a?void 0:a.format)?(0,n.domoFormatToRequestFormat)(a.format):r.DataFormats.ARRAY_OF_OBJECTS;e.Accept=o}},t.generateUniqueId=function(){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"xxxxxxxxyxxxxyxxxyxxxxyxxxxyxxxxy".replace(/[xy]/g,function(e){return(16*Math.random()|0).toString(16)})},t.isIOS=i,t.isMobile=function(){if(i())return!0;if(void 0===globalThis.window||void 0===globalThis.navigator)return!1;var e=globalThis.navigator,t=e.userAgent.toLowerCase();return!!/android|webos|blackberry|iemobile|opera mini|mobile|phone/.test(t)||[void 0!==globalThis.domovariable||void 0!==globalThis.domofilter,"ontouchstart"in globalThis.window||e.maxTouchPoints>0,globalThis.screen&&globalThis.devicePixelRatio&&globalThis.devicePixelRatio>=1&&(globalThis.screen.width<1024||globalThis.screen.height<1024)].filter(Boolean).length>=2}},396(e,t){function a(e){return null!==e&&"object"==typeof e&&"number"==typeof e.functionId&&e.hasOwnProperty("value")}function r(e){return Array.isArray(e)&&e.every(a)}Object.defineProperty(t,"__esModule",{value:!0}),t.guardAgainstInvalidVariables=t.isVariableArray=t.isVariable=void 0,t.isVariable=a,t.isVariableArray=r,t.guardAgainstInvalidVariables=function(e){var t=e;try{"string"==typeof e&&(t=JSON.parse(e))}catch(e){throw new Error('Variables string is not valid JSON or a valid Variable array: { "functionId": number, "value": any }[]')}if(!r(t))throw new Error('Variables must be provided as a Variable array or a stringified Variable array: { "functionId": number, "value": any }[]');if(0===t.length)throw new Error("Variables array cannot be empty.")}}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,a),o.exports}var r={};return(()=>{var e=r;e.Domo=void 0;var t=a(256),n=a(220),o=a(631),s=a(353),i=a(675),d=a(928),l=a(110),u=a(994),p=a(617),c=a(734),v=function(){function e(){}var t;return e.extend=function(t){for(var a in t)Object.prototype.hasOwnProperty.call(e,a)&&(e[a]=t[a])},t=e,e.requests={},e.connected=!1,e.listeners={onDataUpdated:[],onFiltersUpdated:[],onAppDataUpdated:[],onVariablesUpdated:[]},e.get=l.get,e.getAll=l.getAll,e.post=l.post,e.put=l.put,e.delete=l.delete,e.domoHttp=l.domoHttp,e.onDataUpdated=n.onDataUpdated,e.onFiltersUpdated=o.onFiltersUpdated,e.onAppDataUpdated=i.onAppDataUpdated,e.onVariablesUpdated=s.onVariablesUpdated,e.onFiltersUpdate=t.onFiltersUpdated,e.onDataUpdate=t.onDataUpdated,e.onAppData=t.onAppDataUpdated,e.requestFiltersUpdate=o.requestFiltersUpdate,e.requestVariablesUpdate=s.requestVariablesUpdate,e.requestAppDataUpdate=i.requestAppDataUpdate,e.navigate=d.navigate,e.filterContainer=t.requestFiltersUpdate,e.sendVariables=t.requestVariablesUpdate,e.sendAppData=t.requestAppDataUpdate,e.handleAck=c.handleAck,e.handleReply=c.handleReply,e.getRequests=function(){return t.requests},e.getRequest=function(e){return t.requests[e]},e.env=(0,u.getQueryParams)(),e.__util={isVerifiedOrigin:u.isVerifiedOrigin,getQueryParams:u.getQueryParams,setFormatHeaders:u.setFormatHeaders,isSuccess:u.isSuccess},e.connect=function(e){var a;if(void 0===e&&(e=!1),!t.connected){t.connected=!0,t.channel=new MessageChannel,window.parent.postMessage(JSON.stringify({requestId:(0,u.generateUniqueId)(),event:"subscribe",skipFilters:e}),"*",[t.channel.port2]);var r=((a={})[p.DomoEvent.dataUpdated]=n.handleDataUpdated.bind(t),a[p.DomoEvent.filtersUpdated]=o.handleFiltersUpdated.bind(t),a[p.DomoEvent.appData]=i.handleAppData.bind(t),a[p.DomoEvent.variablesUpdated]=s.handleVariablesUpdated.bind(t),a[p.DomoEvent.ack]=c.handleAck.bind(t),a);t.channel.port1.onmessage=function(e){var t=e.ports[0],a=r[e.data.event];null==a||a(e.data,t)},window.addEventListener("message",function(e){if((0,u.isVerifiedOrigin)(e.origin)){var t,a;try{if("string"==typeof e.data&&e.data.length>0)t=JSON.parse(e.data);else{if("object"!=typeof e.data)return;t=e.data}}catch(e){return}if(!t.hasOwnProperty("alias")||t.hasOwnProperty("event"))t.event&&(a=r[t.event])&&(a(t),"ack"!==t.event&&e.source&&"function"==typeof e.source.postMessage)&&(n={requestId:t.requestId,event:"ack"},t.event===p.DomoEvent.dataUpdated?n.alias=t.alias:t.event===p.DomoEvent.filtersUpdated?n.filters=t.filters:t.event===p.DomoEvent.variablesUpdated&&(n.variables=t.variables),e.source.postMessage(JSON.stringify(n),e.origin));else if((a=r[p.DomoEvent.dataUpdated])&&(a(t),e.source&&"function"==typeof e.source.postMessage)){var n=JSON.stringify({event:"ack",alias:t.alias});e.source.postMessage(n,e.origin)}}})}},e}();e.Domo=v;var f=new MutationObserver(function(e){for(var a=(0,p.getToken)(),r=0,n=e;r<n.length;r++)n[r].addedNodes.forEach(function(e){e instanceof HTMLElement&&(0,t.handleNode)(e,a)})});f.observe(document.documentElement,{childList:!0}),f.observe(document.head,{childList:!0})})(),r.Domo})()); //# sourceMappingURL=data:application/json;charset=utf-8;base64,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RSxFQUFJNEMsUUFBVVQsRUFBUVMsUUFDYlQsRUFBUXBCLFFBQVUsRUFBQXBCLFVBQVVJLG1CQUNyQ0MsRUFBSXNILFVBQVluRixFQUFRbUYsV0FHekJ2RyxFQUFNaVAsT0FBZXhPLFlBQVlDLEtBQUtDLFVBQVUxQixHQUFNZSxFQUFNcUksY0FsQ2pFLElBRE0wRyxFQUFVVixFQUFjLEVBQUF6UCxVQUFVRSxnQkFFdENpUSxFQUFRM04sR0FHSnBCLEVBQU1pUCxRQUF1RCxtQkFBckNqUCxFQUFNaVAsT0FBZXhPLGFBQTRCLENBQzNFLElBQU14QixFQUFNeUIsS0FBS0MsVUFBVSxDQUFFWCxNQUFPLE1BQU80QixNQUFPUixFQUFRUSxRQUN6RDVCLEVBQU1pUCxPQUFleE8sWUFBWXhCLEVBQUtlLEVBQU1xSSxPLEVBZ0NyRCxFQTFGMEIsQ0E2RjVCLEVBd0JGLEMsQ0FyTUEsR0E2TlMsRUFBQXdFLEtBQUFBLEVBZFQsSUFTTXFDLEVBQUssSUFBSUMsaUJBVG9CLFNBQUNDLEdBRWxDLElBREEsSUFBTTdILEdBQVEsSUFBQXBJLFlBQ08sTUFBQWlRLEVBQUEsZUFBSixLQUNSQyxXQUFXOU4sUUFBUSxTQUFDK0YsR0FDckJBLGFBQWdCZ0ksY0FBYSxJQUFBakksWUFBV0MsRUFBTUMsRUFDcEQsRUFFSixHQUdBMkgsRUFBR0ssUUFBUS9ILFNBQVNnSSxnQkFBaUIsQ0FBRUMsV0FBVyxJQUNsRFAsRUFBR0ssUUFBUS9ILFNBQVNDLEtBQU0sQ0FBRWdJLFdBQVcsRyIsInNvdXJjZXMiOlsid2VicGFjazovL2RvbW8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL2RvbW8vLi9zcmMvbW9kZWxzL2NvbnN0YW50cy9nZW5lcmFsLnRzIiwid2VicGFjazovL2RvbW8vLi9zcmMvbW9kZWxzL2VudW1zL2RhdGEtZm9ybWF0cy50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL21vZGVscy9lbnVtcy9yZXF1ZXN0LW1ldGhvZHMudHMiLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy9tb2RlbHMvaW50ZXJmYWNlcy9maWx0ZXIudHMiLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy9tb2RlbHMvc2VydmljZXMvYXBwZGF0YS50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL21vZGVscy9zZXJ2aWNlcy9kYXRhc2V0LnRzIiwid2VicGFjazovL2RvbW8vLi9zcmMvbW9kZWxzL3NlcnZpY2VzL2ZpbHRlcnMudHMiLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy9tb2RlbHMvc2VydmljZXMvaHR0cC50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL21vZGVscy9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnRzIiwid2VicGFjazovL2RvbW8vLi9zcmMvbW9kZWxzL3NlcnZpY2VzL3ZhcmlhYmxlcy50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL3V0aWxzL2Fzay1yZXBseS50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL3V0aWxzL2RhdGEtaGVscGVycy50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL3V0aWxzL2RvbW91dGlscy50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL3V0aWxzL2ZpbHRlci50cyIsIndlYnBhY2s6Ly9kb21vLy4vc3JjL3V0aWxzL2dlbmVyYWwudHMiLCJ3ZWJwYWNrOi8vZG9tby8uL3NyYy91dGlscy92YXJpYWJsZS50cyIsIndlYnBhY2s6Ly9kb21vL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2RvbW8vLi9zcmMvZG9tby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJkb21vXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcImRvbW9cIl0gPSBmYWN0b3J5KCk7XG59KShzZWxmLCAoKSA9PiB7XG5yZXR1cm4gIiwiLyoqXG4gKiBUaGUgRG9tb0V2ZW50IG9iamVjdCBkZWZpbmVzIGEgc2V0IG9mIGNvbnN0YW50cyByZXByZXNlbnRpbmdcbiAqIGRpZmZlcmVudCBldmVudCBuYW1lcyB1c2VkIGluIHRoZSBEb21vIGNsYXNzIGZvciBldmVudCBoYW5kbGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IERvbW9FdmVudCA9IHtcbiAgYXBwRGF0YTogXCJhcHBEYXRhXCIsXG4gIGRhdGFVcGRhdGVkOiBcImRhdGFVcGRhdGVkXCIsXG4gIGZpbHRlcnNVcGRhdGVkOiBcImZpbHRlcnNVcGRhdGVkXCIsXG4gIHZhcmlhYmxlc1VwZGF0ZWQ6IFwidmFyaWFibGVzVXBkYXRlZFwiLFxuICBhY2s6IFwiYWNrXCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIFRoZSBldmVudFRvTGlzdGVuZXJLZXkgb2JqZWN0IG1hcHMgZXZlbnQgbmFtZXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBsaXN0ZW5lclxuICogbWV0aG9kIG5hbWVzLiBUaGlzIGlzIHVzZWQgdG8gcm91dGUgZXZlbnRzIHJlY2VpdmVkIGZyb20gdGhlIHBhcmVudCB3aW5kb3dcbiAqIHRvIHRoZSBhcHByb3ByaWF0ZSBsaXN0ZW5lciBtZXRob2RzIGluIHRoZSBEb21vIGNsYXNzLlxuICovXG5leHBvcnQgY29uc3QgZXZlbnRUb0xpc3RlbmVyTWFwOiB7IFtldmVudCBpbiBrZXlvZiBPbWl0PHR5cGVvZiBEb21vRXZlbnQsICdhY2snPl06IHN0cmluZyB9ID0ge1xuICBbRG9tb0V2ZW50LmFwcERhdGFdOiBcIm9uQXBwRGF0YVVwZGF0ZWRcIixcbiAgW0RvbW9FdmVudC5kYXRhVXBkYXRlZF06IFwib25EYXRhVXBkYXRlZFwiLFxuICBbRG9tb0V2ZW50LmZpbHRlcnNVcGRhdGVkXTogXCJvbkZpbHRlcnNVcGRhdGVkXCIsXG4gIFtEb21vRXZlbnQudmFyaWFibGVzVXBkYXRlZF06IFwib25WYXJpYWJsZXNVcGRhdGVkXCIsXG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBSeXV1IHNlc3Npb24gdG9rZW4gZnJvbSB0aGUgZ2xvYmFsIHdpbmRvdyBvYmplY3QuXG4gKlxuICogQHJldHVybnMgVGhlIHNlc3Npb24gdG9rZW4gYXMgYSBzdHJpbmcgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgY29uc3QgZ2V0VG9rZW4gPSAoKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+ICh3aW5kb3cgYXMgYW55KT8uX19SWVVVX1NJRF9fO1xuIiwiLyoqXG4gKiBTdXBwb3J0ZWQgYGFjY2VwdGAgaGVhZGVycyBmb3IgY29udHJvbGxpbmcgdGhlIGZvcm1hdFxuICogb2YgdGhlIGRhdGEgcmV0dXJuZWQgZnJvbSBEb21vLlxuICpcbiAqIFNlZSBbZGV2ZWxvcGVyLmRvbW8uY29tXShodHRwczovL2RldmVsb3Blci5kb21vLmNvbS9kb2NzL2Rldi1zdHVkaW8tcmVmZXJlbmNlcy9kYXRhLWFwaSNEYXRhJTIwRm9ybWF0cylcbiAqIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBlbnVtIERhdGFGb3JtYXRzIHtcbiAgQVJSQVlfT0ZfT0JKRUNUUyA9ICdhcHBsaWNhdGlvbi9hcnJheS1vZi1vYmplY3RzJyxcbiAgSlNPTiA9ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgQ1NWID0gJ3RleHQvY3N2JyxcbiAgRVhDRUwgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICBQTEFJTiA9ICd0ZXh0L3BsYWluJ1xufSIsImV4cG9ydCBlbnVtIFJlcXVlc3RNZXRob2RzIHtcbiAgR0VUID0gJ0dFVCcsXG4gIFBPU1QgPSAnUE9TVCcsXG4gIFBVVCA9ICdQVVQnLFxuICBERUxFVEUgPSAnREVMRVRFJyxcbn1cbiIsIi8qKlxuICogUmVmZXJlbmNlZCBmcm9tIGNvbS9kb21vL2FwaS9jb250ZW50L2NsaWVudC92aWV3cy9tb2RlbC9PcGVyYXRvci5qYXZhXG4gKi9cbmV4cG9ydCBlbnVtIEZpbHRlck9wZXJhdG9yc1N0cmluZyB7XG4gIElOID0gXCJJTlwiLFxuICBOT1RfSU4gPSBcIk5PVF9JTlwiLFxuICBDT05UQUlOUyA9IFwiQ09OVEFJTlNcIixcbiAgTk9UX0NPTlRBSU5TID0gXCJOT1RfQ09OVEFJTlNcIixcbiAgU1RBUlRTX1dJVEggPSBcIlNUQVJUU19XSVRIXCIsXG4gIE5PVF9TVEFSVFNfV0lUSCA9IFwiTk9UX1NUQVJUU19XSVRIXCIsXG4gIEVORFNfV0lUSCA9IFwiRU5EU19XSVRIXCIsXG4gIE5PVF9FTkRTX1dJVEggPSBcIk5PVF9FTkRTX1dJVEhcIixcbn1cblxuZXhwb3J0IGVudW0gRmlsdGVyT3BlcmF0b3JzTnVtZXJpYyB7XG4gIEdSRUFURVJfVEhBTiA9ICdHUkVBVEVSX1RIQU4nLFxuICBHUkVBVF9USEFOX0VRVUFMU19UTyA9ICdHUkVBVF9USEFOX0VRVUFMU19UTycsXG4gIExFU1NfVEhBTiA9ICdMRVNTX1RIQU4nLFxuICBMRVNTX1RIQU5fRVFVQUxTX1RPID0gJ0xFU1NfVEhBTl9FUVVBTFNfVE8nLFxuICBCRVRXRUVOID0gJ0JFVFdFRU4nLFxuICBFUVVBTFMgPSAnRVFVQUxTJyxcbiAgTk9UX0VRVUFMUyA9ICdOT1RfRVFVQUxTJ1xufVxuXG5leHBvcnQgZW51bSBGaWx0ZXJEYXRhVHlwZXN7XG4gIE5VTUVSSUMgPSBcIk5VTUVSSUNcIixcbiAgREFURSA9IFwiREFURVwiLFxuICBEQVRFVElNRSA9IFwiREFURVRJTUVcIixcbiAgU1RSSU5HID0gXCJTVFJJTkdcIixcbn1cblxuLyoqXG4gKiBCYXNlIGludGVyZmFjZSBmb3IgYWxsIGZpbHRlcnMuXG4gKi9cbmludGVyZmFjZSBCYXNlRmlsdGVyPFQsIE8sIEQ+IHtcbiAgLyoqIFRoZSBjb2x1bW4gdG8gZmlsdGVyIG9uLiAqL1xuICBjb2x1bW46IHN0cmluZztcbiAgLyoqIFRoZSBvcGVyYXRvciB0byB1c2UuICovXG4gIG9wZXJhdG9yOiBPO1xuICAvKiogVGhlIHZhbHVlcyB0byBmaWx0ZXIgYnkuICovXG4gIHZhbHVlczogVFtdO1xuICAvKiogVGhlIGRhdGEgdHlwZSBvZiB0aGUgY29sdW1uLiAqL1xuICBkYXRhVHlwZTogRDtcbn1cblxuLyoqXG4gKiBGaWx0ZXIgdHlwZSBmb3IgRG9tbyBkYXRhIHF1ZXJpZXMuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbHRlciA9XG4gIHwgQmFzZUZpbHRlcjxEYXRlLCBGaWx0ZXJPcGVyYXRvcnNOdW1lcmljLCBGaWx0ZXJEYXRhVHlwZXMuREFURSB8IEZpbHRlckRhdGFUeXBlcy5EQVRFVElNRT5cbiAgfCBCYXNlRmlsdGVyPG51bWJlciwgRmlsdGVyT3BlcmF0b3JzTnVtZXJpYywgRmlsdGVyRGF0YVR5cGVzLk5VTUVSSUM+XG4gIHwgQmFzZUZpbHRlcjxzdHJpbmcsIEZpbHRlck9wZXJhdG9yc1N0cmluZywgRmlsdGVyRGF0YVR5cGVzLlNUUklORz47IiwiaW1wb3J0IHsgZ2VuZXJhdGVVbmlxdWVJZCB9IGZyb20gXCIuLi8uLi91dGlscy9nZW5lcmFsXCI7XG5cbi8qKlxuICogU2VuZHMgYXBwIGRhdGEgdG8gdGhlIHBhcmVudCB3aW5kb3cuXG4gKlxuICogQHRoaXMge0RvbW99IC0gVGhlIERvbW8gaW5zdGFuY2UgY29udGV4dC5cbiAqIEBwYXJhbSBhcHBEYXRhIC0gVGhlIGFwcCBkYXRhIHRvIHNlbmQsIGFzIGEgc3RyaW5nLlxuICogQHBhcmFtIG9uQWNrIC0gT3B0aW9uYWwgY2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gdGhlIG1lc3NhZ2UgaXMgYWNrbm93bGVkZ2VkLlxuICogQHBhcmFtIG9uUmVwbHkgLSBPcHRpb25hbCBjYWxsYmFjayB0byBpbnZva2Ugd2hlbiBhIHJlcGx5IGlzIHJlY2VpdmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdEFwcERhdGFVcGRhdGUoYXBwRGF0YTogc3RyaW5nLCBvbkFjaz86IEZ1bmN0aW9uLCBvblJlcGx5PzogRnVuY3Rpb24pIHtcbiAgY29uc3QgcmVxdWVzdElkID0gZ2VuZXJhdGVVbmlxdWVJZCgpO1xuXG4gIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgcmVxdWVzdElkLFxuICAgIGV2ZW50OiBcImFwcERhdGFcIixcbiAgICBhcHBEYXRhLFxuICB9O1xuXG4gIHRoaXMucmVxdWVzdHNbcmVxdWVzdElkXSA9IHtcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwYXlsb2FkLFxuICAgICAgb25BY2ssXG4gICAgICBvblJlcGx5LFxuICAgICAgc3RhdHVzOiBcInBlbmRpbmdcIixcbiAgICAgIHNlbnRBdDogRGF0ZS5ub3coKSxcbiAgICB9LFxuICB9O1xuXG4gIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksIFwiKlwiKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYSBjYWxsYmFjayB0byBiZSBpbnZva2VkIHdoZW4gYXBwIGRhdGEgaXMgcmVjZWl2ZWQuXG4gKiBOT1RFOiB0aGlzIHJlZmVyZW5jZXMgdGhlIERvbW8gb2JqZWN0LCBzbyBpdCBzaG91bGQgYmUgY2FsbGVkIGluIHRoZSBjb250ZXh0IG9mIERvbW8uXG4gKlxuICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBhcHAgZGF0YSBpcyByZWNlaXZlZC5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdG8gdW5yZWdpc3RlciB0aGUgY2FsbGJhY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbkFwcERhdGFVcGRhdGVkKGNhbGxiYWNrOiBGdW5jdGlvbikge1xuICB0aGlzLmNvbm5lY3QodHJ1ZSk7XG4gIHRoaXMubGlzdGVuZXJzLm9uQXBwRGF0YVVwZGF0ZWQucHVzaChjYWxsYmFjayk7XG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubGlzdGVuZXJzLm9uQXBwRGF0YVVwZGF0ZWQuaW5kZXhPZihjYWxsYmFjayk7XG4gICAgaWYgKGluZGV4ID49IDApIHRoaXMubGlzdGVuZXJzLm9uQXBwRGF0YVVwZGF0ZWQuc3BsaWNlKGluZGV4LCAxKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBIYW5kbGVzIGluY29taW5nIGFwcCBkYXRhIG1lc3NhZ2VzIGFuZCBpbnZva2VzIHJlZ2lzdGVyZWQgY2FsbGJhY2tzLlxuICpcbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgY29udGFpbmluZyBhcHAgZGF0YS5cbiAqIEBwYXJhbSByZXNwb25zZVBvcnQgLSBPcHRpb25hbCBNZXNzYWdlUG9ydCB0byBzZW5kIHRoZSByZXNwb25zZSBiYWNrIChmb3IgTWVzc2FnZUNoYW5uZWwgY29tbXVuaWNhdGlvbikuXG4gKiBAcmV0dXJucyB2b2lkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVBcHBEYXRhKG1lc3NhZ2U6IGFueSwgcmVzcG9uc2VQb3J0PzogTWVzc2FnZVBvcnQpIHtcbiAgaWYgKCFtZXNzYWdlKSByZXR1cm47XG5cbiAgaWYgKHRoaXMubGlzdGVuZXJzLm9uQXBwRGF0YVVwZGF0ZWQubGVuZ3RoKSB7XG4gICAgcmVzcG9uc2VQb3J0Py5wb3N0TWVzc2FnZSh7IHJlcXVlc3RJZDogbWVzc2FnZS5yZXF1ZXN0SWQsIGV2ZW50OiBcImFja1wiIH0pO1xuICAgIHRoaXMubGlzdGVuZXJzLm9uQXBwRGF0YVVwZGF0ZWQuZm9yRWFjaCgoY2I6IEZ1bmN0aW9uKSA9PlxuICAgICAgY2IobWVzc2FnZS5hcHBEYXRhKVxuICAgICk7XG4gIH1cblxuICB0aGlzLmhhbmRsZVJlcGx5KG1lc3NhZ2UucmVxdWVzdElkLCBtZXNzYWdlLmFwcERhdGEsIG1lc3NhZ2UuZXJyb3IpO1xufVxuIiwiLyoqXG4gKiBSZWdpc3RlcnMgYSBjYWxsYmFjayB0byBiZSBpbnZva2VkIHdoZW4gYSBkYXRhIHVwZGF0ZSBtZXNzYWdlIGlzIHJlY2VpdmVkLlxuICogVXNlcyBNZXNzYWdlQ2hhbm5lbCBmb3IgZXZlbnQgY29tbXVuaWNhdGlvbiwgbWF0Y2hpbmcgdGhlIHBhdHRlcm4gb2Yg