{"version":3,"file":"app/vendors-node_modules_webex_plugin-meetings_dist_annotation_index_js-node_modules_webex_plugin-56dea1.dbf89167.js","mappings":";;;;;;;;;AAAa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F;AACA;AACA,CAAC;AACD;;;;;;;;;;;ACNa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F;AACA;AACA,CAAC;AACD,sBAAsB,GAAG,yBAAyB,GAAG,gCAAgC,GAAG,+BAA+B,GAAG,8BAA8B,GAAG,yBAAyB,GAAG,8BAA8B,GAAG,kBAAkB;AAC1O,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,6BAA6B,8BAA8B;AAC3D;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA,CAAC,GAAG;AACJ,8BAA8B,+BAA+B;AAC7D;AACA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG;AACJ,iBAAiB,kBAAkB;AACnC;;;;;;;;;;;ACxCa;;AAEb,yBAAyB,mBAAO,CAAC,gIAAkD;AACnF,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,0CAA0C,mBAAO,CAAC,0GAAoC;AACtF,gDAAgD,mBAAO,CAAC,8HAAiD;AACzG,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,qDAAqD,mBAAO,CAAC,wIAAsD;AACnH,wCAAwC,mBAAO,CAAC,8GAAyC;AACzF,yDAAyD,mBAAO,CAAC,gJAA0D;AAC3H,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,mCAAmC,mBAAO,CAAC,kFAAM;AACjD,iBAAiB,mBAAO,CAAC,6EAAmB;AAC5C,2CAA2C,mBAAO,CAAC,qHAAgC;AACnF,iBAAiB,mBAAO,CAAC,2FAAa;AACtC,kBAAkB,mBAAO,CAAC,iFAAc;AACxC,iCAAiC,6DAA6D,yCAAyC,4DAA4D,iCAAiC,iEAAiE,4DAA4D,OAAO,yCAAyC;AACjZ,uCAAuC,yEAAyE,2CAA2C,8CAA8C,MAAM,6EAA6E,IAAI,eAAe,YAAY,kBAAkB;AAC7U;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD,eAAe,kBAAe;AAC9B;;;;;;;;;;;ACrXa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,0CAA0C,mBAAO,CAAC,0GAAoC;AACtF,gDAAgD,mBAAO,CAAC,8HAAiD;AACzG,iBAAiB,mBAAO,CAAC,6EAAmB;AAC5C,mCAAmC,mBAAO,CAAC,kFAAM;AACjD,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,sCAAsC,mBAAO,CAAC,mFAAY;AAC1D,sCAAsC,mBAAO,CAAC,sFAAW;AACzD,qCAAqC,mBAAO,CAAC,oFAAU;AACvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;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AY;AAC3c;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,MAAM,IAAI;AACV;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,iDAAiD;AACjD;AACA;AACA;AACA,cAAc,IAAI;AAClB;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,cAAc,IAAI;AAClB;AACA;AACA,eAAe;AACf,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iDAAiD;AACjD;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iDAAiD;AACjD;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,iDAAiD;AACjD;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,GAAG;AACH;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,MAAM,IAAI;AACV;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD,eAAe,kBAAe;AAC9B;;;;;;;;;;;AC3hCa;;AAEb,yBAAyB,mBAAO,CAAC,gIAAkD;AACnF,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,wCAAwC,mBAAO,CAAC,8GAAyC;AACzF,yDAAyD,mBAAO,CAAC,gJAA0D;AAC3H,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,iBAAiB,mBAAO,CAAC,6EAAmB;AAC5C,0CAA0C,mBAAO,CAAC,+GAA6B;AAC/E,aAAa,mBAAO,CAAC,kFAAS;AAC9B,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,iCAAiC,6DAA6D,yCAAyC,4DAA4D,iCAAiC,iEAAiE,4DAA4D,OAAO,yCAAyC;AACjZ,uCAAuC,yEAAyE,2CAA2C,8CAA8C,MAAM,6EAA6E,IAAI,eAAe,YAAY;AAC3T;AACA;AACA;AACA,sBAAsB,kBAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;AC5Ea;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,6CAA6C,GAAG,yBAAyB,GAAG,6BAA6B;AACzG,0CAA0C,mBAAO,CAAC,+GAA6B;AAC/E,4CAA4C,mBAAO,CAAC,sGAAmB;AACvE,iBAAiB,mBAAO,CAAC,iFAAc;AACvC;;AAEA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA,4CAA4C,6CAA6C;AACzF;AACA;AACA;;;;;;;;;;;AC/Da;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,qCAAqC,mBAAO,CAAC,gDAAQ;AACrD,cAAc,mBAAO,CAAC,mDAAQ;AAC9B,qCAAqC,mBAAO,CAAC,0DAAe;AAC5D;;AAEA;AACA;AACA;AACA,WAAW,oFAAsB;AACjC,GAAG;AACH;AACA,WAAW,mFAAqB;AAChC,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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CjC;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;ACrFa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F;AACA;AACA,CAAC;AACD,kBAAe;AACf,cAAc,mBAAO,CAAC,qEAAe;AACrC;AACA,eAAe,kBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9Ga;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F;AACA;AACA,CAAC;AACD,oCAAoC,GAAG,oBAAoB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c,IAAI,IAAI,EAAE,MAAM,IAAI;AACrE,0BAA0B,2BAA2B,qBAAqB,wBAAwB,6BAA6B,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,iCAAiC,GAAG;AAC3M,wBAAwB,yBAAyB,4BAA4B,KAAK,0BAA0B,KAAK;AACjH,qBAAqB,sBAAsB,yCAAyC,KAAK,oDAAoD,KAAK;AAClJ,gBAAgB,iBAAiB,WAAW,IAAI;AAChD,eAAe,gBAAgB,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,GAAG;;AAE3G;AACA;;AAEA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG;AACJ,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kCAAkC;AACnE,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mCAAmC;AACrE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,kCAAkC,mCAAmC;AACrE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,oBAAoB,UAAU;;AAEjD,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,mCAAmC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA,wCAAwC,yCAAyC;AACjF;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,yDAAyD;AACjH,8CAA8C,+CAA+C;;AAE7F;AACA,mCAAmC,oCAAoC;AACvE,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACryCa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F;AACA;AACA,CAAC;AACD,eAAe,GAAG,iBAAiB,GAAG,eAAe;AACrD,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B,gBAAgB,iBAAiB;AACjC;;;;;;;;;;;ACVa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F;AACA;AACA,CAAC;AACD,kBAAe,GAAG,eAAe,GAAG,eAAe;AACnD,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC,cAAc;AACf,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,cAAc;AACf,eAAe,kBAAe;AAC9B;;;;;;;;;;;ACxBa;;AAEb,oBAAoB,mBAAO,CAAC,oHAA4C;AACxE,oCAAoC,mBAAO,CAAC,4JAAgE;AAC5G,uCAAuC,mBAAO,CAAC,kKAAmE;AAClH,wCAAwC,mBAAO,CAAC,oKAAoE;AACpH,+BAA+B,mBAAO,CAAC,8IAAyD;AAChG,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,mCAAmC,mBAAO,CAAC,oHAA4C;AACvF,sCAAsC,mBAAO,CAAC,4GAAwC;AACtF,wCAAwC,mBAAO,CAAC,0HAA+C;AAC/F,sCAAsC,mBAAO,CAAC,0HAA+C;AAC7F,sCAAsC,mBAAO,CAAC,0HAA+C;AAC7F,6CAA6C,mBAAO,CAAC,wHAA8C;AACnG,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,cAAc,mBAAO,CAAC,mDAAQ;AAC9B,yCAAyC,mBAAO,CAAC,+GAA6B;AAC9E,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,0CAA0C,mBAAO,CAAC,+GAA6B;AAC/E,aAAa,mBAAO,CAAC,iGAAS;AAC9B,mCAAmC,mBAAO,CAAC,+FAAQ;AACnD,kBAAkB,mBAAO,CAAC,yGAAa;AACvC,yBAAyB,0BAA0B,qCAAqC,0CAA0C,kCAAkC,2DAA2D,0BAA0B;AACzP,4BAA4B,gBAAgB,sBAAsB,OAAO,kDAAkD,sDAAsD,4CAA4C,sJAAsJ,uEAAuE,KAAK;AAC/b;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAe;AAC5C;AACA,aAAa,gBAAgB;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,gBAAgB;AAC7B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,iBAAiB,oBAAoB;AACrC;AACA,GAAG;AACH;AACA;AACA;AACA,8EAA8E,aAAa;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA,eAAe,SAAS;AACxB;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,iBAAiB,kCAAkC,yEAAyE;AAChM;AACA;AACA;AACA;AACA,sEAAsE,iBAAiB,kCAAkC,yEAAyE;AAClM;AACA,cAAc;AACd,kFAAkF;AAClF;AACA;AACA;AACA;AACA,sEAAsE,iBAAiB,kCAAkC,yEAAyE;AAClM;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA,wJAAwJ;AACxJ;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;AC1Sa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,aAAa,mBAAO,CAAC,iGAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,eAAe,iDAAiD;AAChE,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,eAAe;AAC9B,iBAAiB,SAAS;AAC1B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD,eAAe,kBAAe;AAC9B;;;;;;;;;;;ACzUa;;AAEb,cAAc,mBAAO,CAAC,0GAAuC;AAC7D,eAAe,mBAAO,CAAC,8GAAyC;AAChE,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,uCAAuC,mBAAO,CAAC,kKAAmE;AAClH,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0BAA0B,GAAG,kBAAe;AAC5C,iBAAiB,mBAAO,CAAC,6EAAmB;AAC5C,uCAAuC,mBAAO,CAAC,oFAAY;AAC3D,qCAAqC,mBAAO,CAAC,0EAAU;AACvD,oBAAoB,mBAAO,CAAC,4FAAgB;AAC5C,2CAA2C,mBAAO,CAAC,oHAA+B;AAClF,2CAA2C,mBAAO,CAAC,sHAAgC;AACnF,4CAA4C,mBAAO,CAAC,sHAAgC;AACpF,yCAAyC,mBAAO,CAAC,8GAA4B;AAC7E,+CAA+C,mBAAO,CAAC,8HAAoC;AAC3F,6BAA6B,mBAAO,CAAC,0IAA0C;AAC/E,sCAAsC,mBAAO,CAAC,kFAAW;AACzD,oCAAoC,mBAAO,CAAC,oGAAuB;AACnE,0CAA0C,mBAAO,CAAC,kHAA8B;AAChF,oBAAoB,mBAAO,CAAC,mFAAsB;AAClD,yCAAyC,mBAAO,CAAC,gFAAa;AAC9D,iBAAiB;AACjB,yCAAyC,mBAAO,CAAC,oGAAuB;AACxE,iBAAiB;AACjB,kDAAkD,mBAAO,CAAC,oHAA+B;AACzF,0BAA0B;AAC1B,4CAA4C,mBAAO,CAAC,sHAAgC;AACpF,qBAAqB;AACrB,mBAAmB,mBAAO,CAAC,4GAA2B;AACtD,2CAA2C,mBAAO,CAAC,oHAA+B;AAClF,uCAAuC,gDAAgD,4CAA4C,0EAA0E,mBAAmB;AAChO,yCAAyC,uCAAuC,6EAA6E,cAAc,qCAAqC,oCAAoC,UAAU,iBAAiB,kEAAkE,sFAAsF,2DAA2D,yEAAyE;AAC3iB;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,eAAe,kBAAe;AAC9B;;;;;;;;;;;ACvPa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yCAAyC,mBAAO,CAAC,+FAAc;AAC/D;;;;;;;;;;;ACda;;AAEb,yBAAyB,mBAAO,CAAC,gIAAkD;AACnF,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,wCAAwC,mBAAO,CAAC,8GAAyC;AACzF,yDAAyD,mBAAO,CAAC,gJAA0D;AAC3H,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,sCAAsC,mBAAO,CAAC,8GAAyC;AACvF,sCAAsC,mBAAO,CAAC,4GAAwC;AACtF,gBAAgB,mBAAO,CAAC,2EAAkB;AAC1C,iCAAiC,6DAA6D,yCAAyC,4DAA4D,iCAAiC,iEAAiE,4DAA4D,OAAO,yCAAyC;AACjZ,uCAAuC,yEAAyE,2CAA2C,8CAA8C,MAAM,6EAA6E,IAAI,eAAe,YAAY,kBAAkB;AAC7U;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;AC7Fa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,kDAAkD,mBAAO,CAAC,6FAAsB;AAChF,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,yCAAyC,mBAAO,CAAC,iGAAc;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD,eAAe,kBAAe;AAC9B;;;;;;;;;;;ACrBa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,sCAAsC,mBAAO,CAAC,4GAAwC;AACtF,iBAAiB,mBAAO,CAAC,6EAAmB;AAC5C,0CAA0C,mBAAO,CAAC,+GAA6B;AAC/E,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,yCAAyC,mBAAO,CAAC,iGAAc;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,CAAC;AACD,eAAe,kBAAe;AAC9B;;;;;;;;;;;AC1Xa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F;AACA;AACA,CAAC;AACD,kBAAe;AACf,iBAAiB,mBAAO,CAAC,6EAAmB;AAC5C,iBAAiB,mBAAO,CAAC,iFAAc;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD,eAAe,kBAAe;AAC9B;;;;;;;;;;;ACvBa;;AAEb,mBAAmB,mBAAO,CAAC,oHAA4C;AACvE,oCAAoC,mBAAO,CAAC,4JAAgE;AAC5G,uCAAuC,mBAAO,CAAC,kKAAmE;AAClH,wCAAwC,mBAAO,CAAC,oKAAoE;AACpH,+BAA+B,mBAAO,CAAC,8IAAyD;AAChG,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,cAAc,mBAAO,CAAC,mDAAQ;AAC9B,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,yBAAyB,yBAAyB,qCAAqC,0CAA0C,kCAAkC,2DAA2D,0BAA0B;AACxP,4BAA4B,gBAAgB,sBAAsB,OAAO,kDAAkD,sDAAsD,4CAA4C,sJAAsJ,uEAAuE,KAAK;AAC/b;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mEAAmE;AACnE;AACA;;AAEA;AACA;AACA,mEAAmE;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A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AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,oBAAoB,yBAAyB;AAC7C,oBAAoB,QAAQ;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW,wDAAwD;AACnE;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;ACtjDa;;AAEb,oBAAoB,mBAAO,CAAC,oHAA4C;AACxE,oCAAoC,mBAAO,CAAC,4JAAgE;AAC5G,uCAAuC,mBAAO,CAAC,kKAAmE;AAClH,wCAAwC,mBAAO,CAAC,oKAAoE;AACpH,+BAA+B,mBAAO,CAAC,8IAAyD;AAChG,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,sCAAsC,mBAAO,CAAC,0HAA+C;AAC7F,mCAAmC,mBAAO,CAAC,oHAA4C;AACvF,6CAA6C,mBAAO,CAAC,wHAA8C;AACnG,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,yBAAyB,0BAA0B,qCAAqC,0CAA0C,kCAAkC,2DAA2D,0BAA0B;AACzP,4BAA4B,gBAAgB,sBAAsB,OAAO,kDAAkD,sDAAsD,4CAA4C,sJAAsJ,uEAAuE,KAAK;AAC/b;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mCAAmC;AACvF;AACA;AACA;AACA,GAAG;AACH;AACA,qDAAqD;AACrD;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAmB,kCAAkC;AAC5F;AACA;AACA;AACA,uCAAuC,mBAAmB,kCAAkC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAe;AAC9B;;;;;;;;;;;ACrGa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F;AACA;AACA,CAAC;AACD,kBAAe;AACf,iBAAiB,mBAAO,CAAC,iFAAc;AACvC;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb,cAAc,QAAQ,qBAAqB,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAe;AAC9B;;;;;;;;;;;AC7Oa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,qDAAqD,mBAAO,CAAC,wIAAsD;AACnH,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,cAAc,mBAAO,CAAC,mDAAQ;AAC9B,oCAAoC,mBAAO,CAAC,uFAAiB;AAC7D,0CAA0C,mBAAO,CAAC,+GAA6B;AAC/E,sCAAsC,mBAAO,CAAC,mFAAY;AAC1D,wCAAwC,mBAAO,CAAC,iGAAsB;AACtE;AACA,6BAA6B;AAC7B,iCAAiC;AACjC,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B;AACA,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,QAAQ;AACzB,kBAAkB,QAAQ;AAC1B,kBAAkB,QAAQ;AAC1B,kBAAkB,QAAQ;AAC1B,kBAAkB,QAAQ;AAC1B,kBAAkB,QAAQ;AAC1B,kBAAkB,QAAQ;AAC1B,kBAAkB,QAAQ;AAC1B;;AAEA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB,cAAc;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,iBAAiB,gBAAgB;AACjC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,gBAAgB;AACjC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,4CAA4C,GAAG;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;ACp2Ba;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,sCAAsC,mBAAO,CAAC,0HAA+C;AAC7F,cAAc,mBAAO,CAAC,mDAAQ;AAC9B,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,wCAAwC,mBAAO,CAAC,6GAA4B;AAC5E;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,aAAa;AACb;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAe;AAC9B;;;;;;;;;;;AChca;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,sCAAsC,mBAAO,CAAC,4GAAwC;AACtF,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,cAAc,mBAAO,CAAC,qEAAe;AACrC,yBAAyB,mBAAO,CAAC,mGAA4B;AAC7D,0CAA0C,mBAAO,CAAC,+GAA6B;AAC/E,iBAAiB,mBAAO,CAAC,iFAAc;AACvC;AACA;AACA;AACA,6BAA6B,kBAAe;AAC5C;AACA,aAAa,6BAA6B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;ACzNa;;AAEb,mBAAmB,mBAAO,CAAC,oHAA4C;AACvE,oCAAoC,mBAAO,CAAC,4JAAgE;AAC5G,uCAAuC,mBAAO,CAAC,kKAAmE;AAClH,wCAAwC,mBAAO,CAAC,oKAAoE;AACpH,+BAA+B,mBAAO,CAAC,8IAAyD;AAChG,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,sCAAsC,mBAAO,CAAC,4GAAwC;AACtF,yBAAyB,mBAAO,CAAC,mGAA4B;AAC7D,0CAA0C,mBAAO,CAAC,+GAA6B;AAC/E,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,qCAAqC,mBAAO,CAAC,2EAAW;AACxD,sCAAsC,mBAAO,CAAC,yFAAkB;AAChE,+CAA+C,mBAAO,CAAC,+GAA6B;AACpF,yBAAyB,yBAAyB,qCAAqC,0CAA0C,kCAAkC,2DAA2D,0BAA0B;AACxP,4BAA4B,gBAAgB,sBAAsB,OAAO,kDAAkD,sDAAsD,4CAA4C,sJAAsJ,uEAAuE,KAAK,YAAY;AAC3c;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,uBAAuB;AAClC,WAAW;AACX,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,UAAU,aAAoB;AAC9B;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,mCAAmC,SAAS;AAC/D,WAAW,QAAQ,mCAAmC,SAAS;AAC/D,WAAW,QAAQ,mCAAmC,SAAS;AAC/D,WAAW,QAAQ,mCAAmC,SAAS;AAC/D,WAAW,QAAQ;AACnB,WAAW,QAAQ,kBAAkB,WAAW;AAChD,WAAW,QAAQ,kBAAkB,WAAW;AAChD,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA,eAAe,kBAAe;AAC9B;;;;;;;;;;;ACpYa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,0CAA0C,mBAAO,CAAC,0GAAoC;AACtF,wCAAwC,mBAAO,CAAC,0HAA+C;AAC/F,gDAAgD,mBAAO,CAAC,8HAAiD;AACzG,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,0CAA0C,mBAAO,CAAC,+GAA6B;AAC/E,qDAAqD,mBAAO,CAAC,gHAA0B;AACvF;AACA;AACA;AACA;AACA,sBAAsB,kBAAe;AACrC;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,SAAS;A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;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;AC3Na;;AAEb,yBAAyB,mBAAO,CAAC,gIAAkD;AACnF,oBAAoB,mBAAO,CAAC,oHAA4C;AACxE,oCAAoC,mBAAO,CAAC,4JAAgE;AAC5G,uCAAuC,mBAAO,CAAC,kKAAmE;AAClH,wCAAwC,mBAAO,CAAC,oKAAoE;AACpH,+BAA+B,mBAAO,CAAC,8IAAyD;AAChG,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe,GAAG,gCAAgC,GAAG,kCAAkC,GAAG,qCAAqC,GAAG,iCAAiC,GAAG,sCAAsC;AAC5M,mCAAmC,mBAAO,CAAC,oHAA4C;AACvF,0CAA0C,mBAAO,CAAC,0GAAoC;AACtF,gDAAgD,mBAAO,CAAC,8HAAiD;AACzG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,qDAAqD,mBAAO,CAAC,wIAAsD;AACnH,wCAAwC,mBAAO,CAAC,8GAAyC;AACzF,yDAAyD,mBAAO,CAAC,gJAA0D;AAC3H,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,+CAA+C,mBAAO,CAAC,4HAAgD;AACvG,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,qCAAqC,mBAAO,CAAC,mDAAQ;AACrD,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,sCAAsC,mBAAO,CAAC,mFAAY;AAC1D,yCAAyC,mBAAO,CAAC,iGAAsB;AACvE,oCAAoC,mBAAO,CAAC,uFAAU;AACtD,yBAAyB,0BAA0B,qCAAqC,0CAA0C,kCAAkC,2DAA2D,0BAA0B;AACzP,4BAA4B,gBAAgB,sBAAsB,OAAO,kDAAkD,sDAAsD,4CAA4C,sJAAsJ,uEAAuE,KAAK;AAC/b,iCAAiC,6DAA6D,yCAAyC,4DAA4D,iCAAiC,iEAAiE,4DAA4D,OAAO,yCAAyC;AACjZ,uCAAuC,yEAAyE,2CAA2C,8CAA8C,MAAM,6EAA6E,IAAI,eAAe,YAAY;AAC3T;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,kCAAkC;AACnE;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,qCAAqC,sCAAsC;AAC3E;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,oCAAoC,qCAAqC;AACzE;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,oBAAoB,kBAAe;AACnC;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,sBAAsB;AACvG;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;ACxiBa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,wCAAwC,mBAAO,CAAC,6GAA4B;AAC5E,mCAAmC,mBAAO,CAAC,mFAAQ;AACnD;AACA;AACA;AACA,yBAAyB,kBAAe;AACxC;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ,wBAAwB;AAC7C;AACA;AACA;AACA,eAAe,SAAS;AACxB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;ACnDa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,0CAA0C,mBAAO,CAAC,0GAAoC;AACtF,sCAAsC,mBAAO,CAAC,4GAAwC;AACtF,gDAAgD,mBAAO,CAAC,8HAAiD;AACzG,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,kCAAkC,mBAAO,CAAC,0CAAK;AAC/C,mCAAmC,mBAAO,CAAC,8CAAM;AACjD,cAAc,mBAAO,CAAC,qEAAe;AACrC,wCAAwC,mBAAO,CAAC,6GAA4B;AAC5E,0CAA0C,mBAAO,CAAC,+GAA6B;AAC/E,iBAAiB,mBAAO,CAAC,iFAAc;AACvC;AACA;AACA;AACA;AACA,sBAAsB,kBAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,iBAAiB,QAAQ,wBAAwB;AACjD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;ACjVa;;AAEb,mBAAmB,mBAAO,CAAC,oHAA4C;AACvE,oCAAoC,mBAAO,CAAC,4JAAgE;AAC5G,uCAAuC,mBAAO,CAAC,kKAAmE;AAClH,wCAAwC,mBAAO,CAAC,oKAAoE;AACpH,+BAA+B,mBAAO,CAAC,8IAAyD;AAChG,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,0CAA0C,mBAAO,CAAC,0GAAoC;AACtF,sCAAsC,mBAAO,CAAC,4GAAwC;AACtF,gDAAgD,mBAAO,CAAC,8HAAiD;AACzG,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,kCAAkC,mBAAO,CAAC,0CAAK;AAC/C,cAAc,mBAAO,CAAC,qEAAe;AACrC,iBAAiB,mBAAO,CAAC,iFAAc;AACvC,wCAAwC,mBAAO,CAAC,6GAA4B;AAC5E,0CAA0C,mBAAO,CAAC,+GAA6B;AAC/E,mBAAmB,mBAAO,CAAC,mHAA+B;AAC1D,yBAAyB,yBAAyB,qCAAqC,0CAA0C,kCAAkC,2DAA2D,0BAA0B;AACxP,4BAA4B,gBAAgB,sBAAsB,OAAO,kDAAkD,sDAAsD,4CAA4C,sJAAsJ,uEAAuE,KAAK,YAAY;AAC3c;AACA;AACA;AACA,sBAAsB,kBAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ,wBAAwB;AACjD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA;;;;;;;;;;;AC3Xa;;AAEb,yBAAyB,mBAAO,CAAC,gIAAkD;AACnF,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,8BAA8B,GAAG,4BAA4B;AAC7D,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,qDAAqD,mBAAO,CAAC,wIAAsD;AACnH,wCAAwC,mBAAO,CAAC,8GAAyC;AACzF,yDAAyD,mBAAO,CAAC,gJAA0D;AAC3H,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,yBAAyB,mBAAO,CAAC,mGAA4B;AAC7D,0CAA0C,mBAAO,CAAC,mHAA+B;AACjF,iCAAiC,6DAA6D,yCAAyC,4DAA4D,iCAAiC,iEAAiE,4DAA4D,OAAO,yCAAyC;AACjZ,uCAAuC,yEAAyE,2CAA2C,8CAA8C,MAAM,6EAA6E,IAAI,eAAe,YAAY;AAC3T,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;;;;;;;;;;AClEa;;AAEb,6BAA6B,mBAAO,CAAC,0IAAuD;AAC5F,6BAA6B,mBAAO,CAAC,wIAAsD;AAC3F;AACA;AACA,CAAC;AACD,kBAAe;AACf,mCAAmC,mBAAO,CAAC,oHAA4C;AACvF,2CAA2C,mBAAO,CAAC,oHAA4C;AAC/F,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,8CAA8C,mBAAO,CAAC,0HAA+C;AACrG,iBAAiB,mBAAO,CAAC,iFAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD","sources":["webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/annotation/annotation.types.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/annotation/constants.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/annotation/index.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/breakouts/breakout.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/breakouts/collection.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/breakouts/edit-lock-error.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/breakouts/events.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/breakouts/index.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/breakouts/request.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/breakouts/utils.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/browser-detection.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/collection.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/config.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/captcha-error.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/intent-to-join.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/join-meeting.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/join-webinar-error.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/multistream-not-supported-error.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/no-meeting-info.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/parameter.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/password-error.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/permission.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/reclaim-host-role-errors.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/reconnection-not-started.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/reconnection.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/webex-errors.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/errors/webex-meetings-error.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/events/events-scope.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/events/trigger-proxy.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/events/util.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/logs/logger-config.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/logs/logger-proxy.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/logs/request.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/common/queue.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/config.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/constants.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/controls-options-manager/constants.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/controls-options-manager/enums.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/controls-options-manager/index.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/controls-options-manager/util.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/index.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/interceptors/index.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/interceptors/locusRetry.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/interpretation/collection.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/interpretation/index.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/interpretation/siLanguage.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/locus-info/controlsUtils.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/locus-info/embeddedAppsUtils.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/locus-info/fullState.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/locus-info/hostUtils.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/locus-info/index.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/locus-info/infoUtils.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/locus-info/mediaSharesUtils.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/locus-info/parser.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/locus-info/selfUtils.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/media/MediaConnectionAwaiter.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/media/index.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/media/properties.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/media/util.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/meeting-info/collection.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/meeting-info/index.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/meeting-info/meeting-info-v2.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/meeting-info/request.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/meeting-info/util.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/meeting-info/utilv2.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/meeting/connectionStateHandler.js","webpack://@agentx/agentx/../../node_modules/@webex/plugin-meetings/dist/meeting/in-meeting-actions.js"],"sourcesContent":["\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n//# sourceMappingURL=annotation.types.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EVENT_TRIGGERS = exports.ANNOTATION_STATUS = exports.ANNOTATION_RESOURCE_TYPE = exports.ANNOTATION_REQUEST_TYPE = exports.ANNOTATION_RELAY_TYPES = exports.ANNOTATION_POLICY = exports.ANNOTATION_ACTION_TYPE = exports.ANNOTATION = void 0;\nvar EVENT_TRIGGERS = exports.EVENT_TRIGGERS = {\n ANNOTATION_STROKE_DATA: 'annotation:strokeData',\n ANNOTATION_COMMAND: 'annotation:command'\n};\nvar ANNOTATION_RESOURCE_TYPE = exports.ANNOTATION_RESOURCE_TYPE = 'AnnotationOnShare';\nvar ANNOTATION_RELAY_TYPES = exports.ANNOTATION_RELAY_TYPES = {\n ANNOTATION_CLIENT: 'annotation.client'\n};\nvar ANNOTATION_STATUS = exports.ANNOTATION_STATUS = {\n NO_ANNOTATION: 'NO_ANNOTATION',\n RUNNING_ANNOTATION: 'RUNNING_ANNOTATION'\n};\nvar ANNOTATION_POLICY = exports.ANNOTATION_POLICY = /*#__PURE__*/function (ANNOTATION_POLICY) {\n ANNOTATION_POLICY[\"ANYONE_CAN_ANNOTATE\"] = \"AnyoneCanAnnotate\";\n ANNOTATION_POLICY[\"APPROVAL\"] = \"Approval\";\n ANNOTATION_POLICY[\"ANNOTATION_NOT_ALLOWED\"] = \"AnnotationNotAllowed\";\n return ANNOTATION_POLICY;\n}({});\nvar ANNOTATION_REQUEST_TYPE = exports.ANNOTATION_REQUEST_TYPE = {\n ANNOTATION_MESSAGE: 'annotation_message'\n};\nvar ANNOTATION_ACTION_TYPE = exports.ANNOTATION_ACTION_TYPE = /*#__PURE__*/function (ANNOTATION_ACTION_TYPE) {\n ANNOTATION_ACTION_TYPE[\"REQUESTED\"] = \"REQUESTED\";\n ANNOTATION_ACTION_TYPE[\"ACCEPTED\"] = \"ACCEPTED\";\n ANNOTATION_ACTION_TYPE[\"DECLINED\"] = \"DECLINED\";\n ANNOTATION_ACTION_TYPE[\"OFFERED\"] = \"OFFERED\";\n ANNOTATION_ACTION_TYPE[\"CANCELED\"] = \"CANCELED\";\n ANNOTATION_ACTION_TYPE[\"EXPIRED\"] = \"EXPIRED\";\n ANNOTATION_ACTION_TYPE[\"REVOKED\"] = \"REVOKED\";\n ANNOTATION_ACTION_TYPE[\"CLOSED\"] = \"CLOSED\";\n return ANNOTATION_ACTION_TYPE;\n}({});\nvar ANNOTATION = exports.ANNOTATION = 'annotation';\n//# sourceMappingURL=constants.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs2/regenerator\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/asyncToGenerator\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _uuid = _interopRequireDefault(require(\"uuid\"));\nvar _webexCore = require(\"@webex/webex-core\");\nvar _triggerProxy = _interopRequireDefault(require(\"../common/events/trigger-proxy\"));\nvar _constants = require(\"./constants\");\nvar _constants2 = require(\"../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } // eslint-disable-next-line import/no-extraneous-dependencies\n/**\n * @description Annotation to handle LLM and Mercury message and locus API\n * @class\n */\nvar AnnotationChannel = /*#__PURE__*/function (_WebexPlugin) {\n (0, _inherits2.default)(AnnotationChannel, _WebexPlugin);\n var _super = _createSuper(AnnotationChannel);\n /**\n * Initializes annotation module\n */\n function AnnotationChannel() {\n var _this;\n (0, _classCallCheck2.default)(this, AnnotationChannel);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"namespace\", _constants.ANNOTATION);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"seqNum\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"hasSubscribedToEvents\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"approvalUrl\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"locusUrl\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"deviceUrl\", void 0);\n /**\n * send annotation command\n * @param {ANNOTATION_ACTION_TYPE} actionType\n * @param {RequestData} requestData\n * @returns {Promise}\n */\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sendAnnotationAction\", /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(actionType, requestData) {\n var body;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n body = {\n actionType: actionType,\n resourceType: 'AnnotationOnShare',\n shareInstanceId: requestData.shareInstanceId\n };\n if (requestData !== null && requestData !== void 0 && requestData.toUserId) {\n body.receivers = [{\n participantId: requestData.toUserId,\n deviceUrl: requestData.toDeviceUrl\n }];\n }\n\n // @ts-ignore\n return _context.abrupt(\"return\", _this.request({\n method: _constants2.HTTP_VERBS.POST,\n url: \"\".concat(_this.approvalUrl),\n body: body\n }));\n case 3:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }());\n /**\n * decrypt data\n * @param {string} encryptionKeyUrl\n * @param {string} content encrypted content\n * @returns {string} decrypted content\n */\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"decryptContent\", function (encryptionKeyUrl, content) {\n // @ts-ignore\n return _this.webex.internal.encryption.decryptText(encryptionKeyUrl, content).then(function (res) {\n return res;\n });\n });\n /**\n * encrypt data\n * @param {string} encryptionKeyUrl\n * @param {string} content original content\n * @returns {string} encrypted content\n */\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"encryptContent\", function (encryptionKeyUrl, content) {\n // @ts-ignore\n return _this.webex.internal.encryption.encryptText(encryptionKeyUrl, content).then(function (res) {\n return res;\n });\n });\n /**\n * Sends stroke data to presenter\n * @param {StrokeData} strokeData\n * @returns {void}\n */\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sendStrokeData\", function (strokeData) {\n // @ts-ignore\n if (!_this.webex.internal.llm.isConnected()) return;\n _this.encryptContent(strokeData.encryptionKeyUrl, strokeData.content).then(function (encryptedContent) {\n _this.publishEncrypted(encryptedContent, strokeData);\n });\n });\n _this.seqNum = 1;\n return _this;\n }\n\n /**\n * Process Stroke Data\n * @param {object} data\n * @returns {void}\n */\n (0, _createClass2.default)(AnnotationChannel, [{\n key: \"processStrokeMessage\",\n value: function processStrokeMessage(data) {\n var _this2 = this;\n var request = data.request;\n this.decryptContent(request.value.encryptionKeyUrl, request.value.content).then(function (decryptedContent) {\n request.value.content = decryptedContent;\n _triggerProxy.default.trigger(_this2, {\n file: 'annotation',\n function: 'processStrokeMessage'\n }, _constants.EVENT_TRIGGERS.ANNOTATION_STROKE_DATA, {\n payload: data\n });\n });\n }\n\n /** bind all events from mercury\n * @param {Object} e\n * @returns {undefined}\n */\n }, {\n key: \"eventCommandProcessor\",\n value: function eventCommandProcessor(e) {\n var _e$data, _e$data2, _e$data2$approval, _e$data3, _e$data3$approval;\n if ((e === null || e === void 0 ? void 0 : (_e$data = e.data) === null || _e$data === void 0 ? void 0 : _e$data.eventType) === 'locus.approval_request' && (e === null || e === void 0 ? void 0 : (_e$data2 = e.data) === null || _e$data2 === void 0 ? void 0 : (_e$data2$approval = _e$data2.approval) === null || _e$data2$approval === void 0 ? void 0 : _e$data2$approval.resourceType) === _constants.ANNOTATION_RESOURCE_TYPE && e !== null && e !== void 0 && (_e$data3 = e.data) !== null && _e$data3 !== void 0 && (_e$data3$approval = _e$data3.approval) !== null && _e$data3$approval !== void 0 && _e$data3$approval.actionType) {\n _triggerProxy.default.trigger(this, {\n file: 'annotation',\n function: 'approval_request'\n }, _constants.EVENT_TRIGGERS.ANNOTATION_COMMAND, {\n type: e.data.approval.actionType,\n payload: e.data.approval\n });\n }\n }\n\n /** bind all events from llm\n * @param {Object} e\n * @returns {undefined}\n */\n }, {\n key: \"eventDataProcessor\",\n value: function eventDataProcessor(e) {\n var _e$data4;\n switch (e === null || e === void 0 ? void 0 : (_e$data4 = e.data) === null || _e$data4 === void 0 ? void 0 : _e$data4.relayType) {\n case _constants.ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT:\n this.processStrokeMessage(e.data);\n break;\n default:\n break;\n }\n }\n\n /**\n * Listen to websocket messages\n * @returns {undefined}\n */\n }, {\n key: \"listenToEvents\",\n value: function listenToEvents() {\n if (!this.hasSubscribedToEvents) {\n // @ts-ignore\n this.webex.internal.mercury.on('event:locus.approval_request', this.eventCommandProcessor, this);\n // @ts-ignore\n this.webex.internal.llm.on('event:relay.event', this.eventDataProcessor, this);\n this.hasSubscribedToEvents = true;\n }\n }\n\n /**\n * Remove event listeners\n * @returns {undefined}\n */\n }, {\n key: \"deregisterEvents\",\n value: function deregisterEvents() {\n if (this.hasSubscribedToEvents) {\n // @ts-ignore\n this.webex.internal.mercury.off('event:locus.approval_request', this.eventCommandProcessor);\n\n // @ts-ignore\n this.webex.internal.llm.off('event:relay.event', this.eventDataProcessor);\n this.hasSubscribedToEvents = false;\n }\n }\n\n /**\n * set locusUrl\n * @param {string} locusUrl\n * @returns {void}\n */\n }, {\n key: \"locusUrlUpdate\",\n value: function locusUrlUpdate(locusUrl) {\n this.locusUrl = locusUrl;\n this.listenToEvents();\n }\n\n /**\n * set approved url\n * @param {string} approvalUrl\n * @returns {void}\n */\n }, {\n key: \"approvalUrlUpdate\",\n value: function approvalUrlUpdate(approvalUrl) {\n this.approvalUrl = approvalUrl;\n }\n\n /**\n * accept request\n * @param {object} approval\n * @returns {Promise}\n */\n }, {\n key: \"acceptRequest\",\n value: function acceptRequest(approval) {\n // @ts-ignore\n return this.request({\n method: _constants2.HTTP_VERBS.PUT,\n url: approval.url,\n body: {\n resourceType: _constants.ANNOTATION_RESOURCE_TYPE,\n actionType: _constants.ANNOTATION_ACTION_TYPE.ACCEPTED\n }\n });\n }\n\n /**\n * presenter declined request annotation\n * @param {approval} approval\n * @returns {Promise}\n */\n }, {\n key: \"declineRequest\",\n value: function declineRequest(approval) {\n // @ts-ignore\n return this.request({\n method: _constants2.HTTP_VERBS.PUT,\n url: approval.url,\n body: {\n resourceType: _constants.ANNOTATION_RESOURCE_TYPE,\n actionType: _constants.ANNOTATION_ACTION_TYPE.DECLINED\n }\n });\n }\n\n /**\n * request approved annotation\n * @param {RequestData} requestData\n * @returns {Promise}\n */\n }, {\n key: \"approveAnnotation\",\n value: function approveAnnotation(requestData) {\n return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.REQUESTED, requestData);\n }\n\n /**\n * cancel approved annotation\n * @param {object} requestData\n * @param {object} approval\n * @returns {Promise}\n */\n }, {\n key: \"cancelApproveAnnotation\",\n value: function cancelApproveAnnotation(requestData, approval) {\n var body = {\n actionType: _constants.ANNOTATION_ACTION_TYPE.CANCELED,\n resourceType: 'AnnotationOnShare',\n shareInstanceId: requestData.shareInstanceId\n };\n\n // @ts-ignore\n return this.request({\n method: _constants2.HTTP_VERBS.PUT,\n url: \"\".concat(approval.url),\n body: body\n });\n }\n\n /**\n * close annotation\n * @param {object} requestData\n * @returns {Promise}\n */\n }, {\n key: \"closeAnnotation\",\n value: function closeAnnotation(requestData) {\n return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.CLOSED, requestData);\n }\n }, {\n key: \"publishEncrypted\",\n value:\n /**\n * private encrypted the strokes data\n * @param {string} encryptedContent\n * @param {StrokeData} strokeData\n * @returns {void}\n */\n function publishEncrypted(encryptedContent, strokeData) {\n var data = {\n id: \"\".concat(this.seqNum),\n type: 'publishRequest',\n recipients: {\n // @ts-ignore\n route: this.webex.internal.llm.getBinding()\n },\n headers: {\n to: strokeData.toUserId\n },\n data: {\n eventType: 'relay.event',\n relayType: _constants.ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT,\n request: {\n value: {\n type: _constants.ANNOTATION_REQUEST_TYPE.ANNOTATION_MESSAGE,\n content: encryptedContent,\n deviceId: strokeData.deviceId,\n seq: this.seqNum,\n requesterId: strokeData.requesterId,\n version: strokeData.version,\n shareInstanceId: strokeData.shareInstanceId,\n encryptionKeyUrl: strokeData.encryptionKeyUrl\n }\n }\n },\n trackingId: \"\".concat(_webexCore.config.trackingIdPrefix, \"_\").concat(_uuid.default.v4().toString()),\n timestamp: new Date().getTime(),\n sequenceNumber: this.seqNum,\n filterMessage: false\n };\n\n // @ts-ignore\n this.webex.internal.llm.socket.send(data);\n this.seqNum += 1;\n }\n }]);\n return AnnotationChannel;\n}(_webexCore.WebexPlugin);\nvar _default = exports.default = AnnotationChannel;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs2/regenerator\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/asyncToGenerator\"));\nvar _webexCore = require(\"@webex/webex-core\");\nvar _uuid = _interopRequireDefault(require(\"uuid\"));\nvar _constants = require(\"../constants\");\nvar _members = _interopRequireDefault(require(\"../members\"));\nvar _request = _interopRequireDefault(require(\"./request\"));\nvar _events = _interopRequireDefault(require(\"./events\"));\n/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\n/**\n * @class\n */\nvar Breakout = _webexCore.WebexPlugin.extend({\n idAttribute: 'sessionId',\n namespace: _constants.MEETINGS,\n breakoutRequest: _request.default,\n props: {\n active: ['boolean', false, false],\n // this session is active\n allowed: ['boolean', false, false],\n // allowed to join this session\n assigned: ['boolean', false, false],\n // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false],\n // assigned AND current session\n requested: ['boolean', false, false],\n // requested by the host to join this session\n current: ['boolean', false, false],\n // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string',\n // where to send requests to\n requestedLastModifiedTime: 'string'\n },\n derived: {\n isMain: {\n cache: false,\n // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn: function fn() {\n return this.sessionType === 'MAIN';\n }\n }\n },\n /**\n * initializer for the Breakout class\n * @returns {void}\n */\n initialize: function initialize() {\n // @ts-ignore\n this.breakoutRequest = new _request.default({\n webex: this.webex\n });\n this.breakoutRosterLocus = null;\n },\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n join: function join() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var breakoutMoveId, deviceUrl, meetingId, meeting, result;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n breakoutMoveId = _uuid.default.v4();\n deviceUrl = _this.webex.internal.device.url;\n meetingId = _this.collection.parent.meetingId;\n meeting = _this.webex.meetings.getMeetingByType(_constants._ID_, meetingId);\n _events.default.onBreakoutMoveRequest({\n currentSession: _this,\n meeting: meeting,\n breakoutMoveId: breakoutMoveId\n },\n // @ts-ignore\n _this.webex.internal.newMetrics.submitClientEvent.bind(_this.webex.internal.newMetrics));\n _context.next = 7;\n return _this.request({\n method: _constants.HTTP_VERBS.POST,\n uri: \"\".concat(_this.url, \"/move\"),\n body: {\n breakoutMoveId: breakoutMoveId,\n deviceUrl: deviceUrl,\n groupId: _this.groupId,\n sessionId: _this.sessionId\n }\n });\n case 7:\n result = _context.sent;\n _events.default.onBreakoutMoveResponse({\n currentSession: _this,\n meeting: meeting,\n breakoutMoveId: breakoutMoveId\n },\n // @ts-ignore\n _this.webex.internal.newMetrics.submitClientEvent.bind(_this.webex.internal.newMetrics));\n return _context.abrupt(\"return\", result);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }))();\n },\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave: function leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n var mainSession = this.parent.breakouts.filter(function (breakout) {\n return breakout.isMain;\n })[0];\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n return mainSession.join();\n },\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp: function askForHelp() {\n return this.request({\n method: _constants.HTTP_VERBS.POST,\n uri: \"\".concat(this.url, \"/help\"),\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId\n }\n });\n },\n /**\n * inits the members object\n * @returns {void}\n */\n initMembers: function initMembers() {\n var meetingId = this.collection.parent.meetingId;\n var meeting = this.webex.meetings.getMeetingByType(_constants._ID_, meetingId);\n this.members = new _members.default({\n meeting: meeting\n }, {\n parent: this.webex\n });\n },\n /**\n * check sequence and determine whether to update the new roster or not\n * @param {Object} locus Locus object\n * @returns {Boolean}\n */\n isNeedHandleRoster: function isNeedHandleRoster(locus) {\n var _this$breakoutRosterL, _this$breakoutRosterL2, _this$breakoutRosterL3, _locus$sequence, _locus$sequence$entri;\n if (!((_this$breakoutRosterL = this.breakoutRosterLocus) !== null && _this$breakoutRosterL !== void 0 && (_this$breakoutRosterL2 = _this$breakoutRosterL.sequence) !== null && _this$breakoutRosterL2 !== void 0 && (_this$breakoutRosterL3 = _this$breakoutRosterL2.entries) !== null && _this$breakoutRosterL3 !== void 0 && _this$breakoutRosterL3.length) || !(locus !== null && locus !== void 0 && (_locus$sequence = locus.sequence) !== null && _locus$sequence !== void 0 && (_locus$sequence$entri = _locus$sequence.entries) !== null && _locus$sequence$entri !== void 0 && _locus$sequence$entri.length)) {\n return true;\n }\n var prevSequence = this.breakoutRosterLocus.sequence.entries[0];\n var currentSequence = locus.sequence.entries[0];\n return currentSequence > prevSequence;\n },\n /**\n * Parses the participants from the locus object\n * @param {Object} locus Locus object\n * @returns {void}\n */\n parseRoster: function parseRoster(locus) {\n if (!this.members) {\n this.initMembers();\n }\n if (!this.isNeedHandleRoster(locus)) {\n return;\n }\n this.breakoutRosterLocus = locus;\n this.members.locusParticipantsUpdate(locus);\n },\n /**\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast: function broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message: message,\n options: options,\n groupId: this.groupId,\n sessionId: this.sessionId\n });\n },\n version: \"3.7.0-web-workers-keepalive.1\"\n});\nvar _default = exports.default = Breakout;\n//# sourceMappingURL=breakout.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _ampersandCollection = _interopRequireDefault(require(\"ampersand-collection\"));\nvar _constants = require(\"../constants\");\nvar _breakout = _interopRequireDefault(require(\"./breakout\"));\n/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nvar BreakoutCollection = _ampersandCollection.default.extend({\n model: _breakout.default,\n namespace: _constants.MEETINGS,\n mainIndex: 'sessionId'\n});\nvar _default = exports.default = BreakoutCollection;\n//# sourceMappingURL=collection.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Extended Error object to signify breakout related errors\n */\nvar BreakoutEditLockedError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(BreakoutEditLockedError, _Error);\n var _super = _createSuper(BreakoutEditLockedError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function BreakoutEditLockedError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.BREAKOUT_EDIT.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, BreakoutEditLockedError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n _this.name = _constants.ERROR_DICTIONARY.BREAKOUT_EDIT.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.BREAKOUT_EDIT.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.code = _constants.ERROR_DICTIONARY.BREAKOUT_EDIT.CODE;\n return _this;\n }\n return (0, _createClass2.default)(BreakoutEditLockedError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=edit-lock-error.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n// eslint-disable-next-line import/prefer-default-export\n\nvar breakoutEvent = {\n onBreakoutMoveRequest: function onBreakoutMoveRequest(eventInfo, submitClientEvent) {\n breakoutEvent.postMoveCallAnalyzer('client.breakout-session.move.request', eventInfo, submitClientEvent);\n },\n onBreakoutMoveResponse: function onBreakoutMoveResponse(eventInfo, submitClientEvent) {\n breakoutEvent.postMoveCallAnalyzer('client.breakout-session.move.response', eventInfo, submitClientEvent);\n },\n onBreakoutJoinResponse: function onBreakoutJoinResponse(eventInfo, submitClientEvent) {\n breakoutEvent.postMoveCallAnalyzer('client.breakout-session.join.response', eventInfo, submitClientEvent);\n },\n postMoveCallAnalyzer: function postMoveCallAnalyzer(event, eventInfo, submitClientEvent) {\n var _eventInfo$meeting$me, _eventInfo$currentSes, _eventInfo$currentSes2;\n if (!(eventInfo !== null && eventInfo !== void 0 && eventInfo.breakoutMoveId) || !(eventInfo !== null && eventInfo !== void 0 && eventInfo.meeting)) {\n return;\n }\n if (!((_eventInfo$meeting$me = eventInfo.meeting.meetingInfo) !== null && _eventInfo$meeting$me !== void 0 && _eventInfo$meeting$me.enableConvergedArchitecture)) {\n return;\n }\n submitClientEvent({\n name: event,\n payload: {\n identifiers: {\n breakoutMoveId: eventInfo.breakoutMoveId,\n breakoutSessionId: eventInfo === null || eventInfo === void 0 ? void 0 : (_eventInfo$currentSes = eventInfo.currentSession) === null || _eventInfo$currentSes === void 0 ? void 0 : _eventInfo$currentSes.sessionId,\n breakoutGroupId: eventInfo === null || eventInfo === void 0 ? void 0 : (_eventInfo$currentSes2 = eventInfo.currentSession) === null || _eventInfo$currentSes2 === void 0 ? void 0 : _eventInfo$currentSes2.groupId\n }\n },\n options: {\n meetingId: eventInfo.meeting.id\n }\n });\n }\n};\nvar _default = exports.default = breakoutEvent;\n//# sourceMappingURL=events.js.map\n","\"use strict\";\n\nvar _Object$keys = require(\"@babel/runtime-corejs2/core-js/object/keys\");\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-symbols\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptors\");\nvar _Object$defineProperties = require(\"@babel/runtime-corejs2/core-js/object/define-properties\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs2/regenerator\"));\nvar _values = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/values\"));\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/asyncToGenerator\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _webexCore = require(\"@webex/webex-core\");\nvar _lodash = require(\"lodash\");\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _constants = require(\"../constants\");\nvar _breakout = _interopRequireDefault(require(\"./breakout\"));\nvar _collection = _interopRequireDefault(require(\"./collection\"));\nvar _request = _interopRequireDefault(require(\"./request\"));\nvar _events = _interopRequireDefault(require(\"./events\"));\nvar _utils = require(\"./utils\");\nfunction ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n/**\n * @class Breakouts\n */\nvar Breakouts = _webexCore.WebexPlugin.extend({\n namespace: _constants.MEETINGS,\n breakoutRequest: _request.default,\n collections: {\n breakouts: _collection.default\n },\n props: {\n allowBackToMain: 'boolean',\n // only present when in a breakout session\n delayCloseTime: 'number',\n // appears once breakouts start\n enableBreakoutSession: 'boolean',\n // appears from the moment you enable breakouts\n hasBreakoutPreAssignments: 'boolean',\n // appears from the moment you enable breakouts\n groupId: 'string',\n // appears from the moment you enable breakouts\n name: 'string',\n // only present when in a breakout session\n sessionId: 'string',\n // appears from the moment you enable breakouts\n sessionType: 'string',\n // appears from the moment you enable breakouts\n startTime: 'string',\n // appears once breakouts start\n status: 'string',\n // only present when in a breakout session\n url: 'string',\n // appears from the moment you enable breakouts\n locusUrl: 'string',\n // the current locus url\n breakoutServiceUrl: 'string',\n // the current breakout resource url\n mainLocusUrl: 'string',\n // the locus url of the main session\n groups: 'array',\n // appears when create breakouts\n manageGroups: 'array',\n // appears when manage breakouts\n preAssignments: 'array',\n // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object',\n // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean' // appear the ability to manage breakouts\n },\n\n children: {\n currentBreakoutSession: _breakout.default\n },\n derived: {\n isInMainSession: {\n cache: false,\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn: function fn() {\n return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;\n }\n },\n isActiveBreakout: {\n cache: false,\n // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn: function fn() {\n return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && (this.status === _constants.BREAKOUTS.STATUS.OPEN || this.status === _constants.BREAKOUTS.STATUS.CLOSING);\n }\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn: function fn() {\n var _this$manageGroups;\n if ((_this$manageGroups = this.manageGroups) !== null && _this$manageGroups !== void 0 && _this$manageGroups.length) {\n return this.manageGroups[0].status !== _constants.BREAKOUTS.STATUS.CLOSED ? this.manageGroups[0].id : '';\n }\n return '';\n }\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn: function fn() {\n var _this$groups, _this$groups$;\n return this.isInMainSession ? (_this$groups = this.groups) === null || _this$groups === void 0 ? void 0 : (_this$groups$ = _this$groups[0]) === null || _this$groups$ === void 0 ? void 0 : _this$groups$.status : this.status;\n }\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn: function fn() {\n return !!(this.canManageBreakouts && this.enableBreakoutSession && this.hasBreakoutPreAssignments);\n }\n }\n },\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize: function initialize() {\n var _this = this;\n this.listenTo(this, 'change:breakoutStatus', function () {\n if (_this.breakoutStatus === _constants.BREAKOUTS.STATUS.CLOSING) {\n _this.trigger(_constants.BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', function () {\n if (_this.shouldQueryPreAssignments && !_this.preAssignments) {\n _this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = (0, _lodash.debounce)(this.queryRosters, 10, {\n leading: true,\n trailing: false\n });\n this.listenTo(this.breakouts, 'add', function (breakout) {\n _this.debouncedQueryRosters();\n _this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', function (breakout) {\n _this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\n // @ts-ignore\n this.breakoutRequest = new _request.default({\n webex: this.webex\n });\n },\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp: function cleanUp() {\n this.stopListening();\n this.hasSubscribedToMessage = undefined;\n },\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate: function locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n this.listenToBroadcastMessages();\n var isInMainSession = this.isInMainSession,\n mainLocusUrl = this.mainLocusUrl;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts: function updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n /**\n * Update the current breakout resource url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate: function breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', \"\".concat(breakoutServiceUrl, \"/breakout/\"));\n },\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters: function queryRosters() {\n var _this2 = this;\n this.webex.request({\n uri: \"\".concat(this.url, \"/roster\"),\n qs: {\n locusUrl: btoa(this.locusUrl)\n }\n }).then(function (result) {\n var rosters = result.body.rosters;\n rosters === null || rosters === void 0 ? void 0 : rosters.forEach(function (_ref) {\n var locus = _ref.locus;\n _this2.handleRosterUpdate(locus);\n });\n _this2.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n }).catch(function (error) {\n _loggerProxy.default.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate: function handleRosterUpdate(locus) {\n var _locus$controls, _locus$controls$break;\n var sessionId = (_locus$controls = locus.controls) === null || _locus$controls === void 0 ? void 0 : (_locus$controls$break = _locus$controls.breakout) === null || _locus$controls$break === void 0 ? void 0 : _locus$controls$break.sessionId;\n var session = this.breakouts.get(sessionId);\n if (!session) {\n return;\n }\n session.parseRoster(locus);\n },\n /**\n *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange: function listenToCurrentSessionTypeChange() {\n var _this3 = this;\n this.listenTo(this.currentBreakoutSession, 'change:sessionType', function (currentBreakoutSession, sessionType) {\n if ((0, _utils.isSessionTypeChangedFromSessionToMain)(currentBreakoutSession, sessionType)) {\n _this3.trigger(_constants.BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n });\n },\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages: function listenToBroadcastMessages() {\n var _this4 = this;\n if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {\n return;\n }\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', function (event) {\n var _event$data = event.data,\n senderUserId = _event$data.senderUserId,\n sentTime = _event$data.sentTime,\n message = _event$data.message;\n _this4.trigger(_constants.BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId: senderUserId,\n sentTime: sentTime,\n message: message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: _this4.currentBreakoutSession.sessionId\n });\n });\n this.hasSubscribedToMessage = true;\n },\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters: function listenToBreakoutRosters() {\n var _this5 = this;\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', function (event) {\n _this5.handleRosterUpdate(event.data.locus);\n _this5.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n /**\n * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp: function listenToBreakoutHelp() {\n var _this6 = this;\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', function (event) {\n var _event$data2 = event.data,\n participant = _event$data2.participant,\n sessionId = _event$data2.sessionId;\n _this6.trigger(_constants.BREAKOUTS.EVENTS.ASK_FOR_HELP, {\n participant: participant,\n sessionId: sessionId\n });\n });\n },\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress: function isBreakoutInProgress() {\n var _this$groups2, _this$groups2$;\n var currentStatus = ((_this$groups2 = this.groups) === null || _this$groups2 === void 0 ? void 0 : (_this$groups2$ = _this$groups2[0]) === null || _this$groups2$ === void 0 ? void 0 : _this$groups2$.status) || this.status;\n return currentStatus === _constants.BREAKOUTS.STATUS.OPEN || currentStatus === _constants.BREAKOUTS.STATUS.CLOSING;\n },\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing: function isBreakoutIClosing() {\n var _this$groups3, _this$groups3$;\n return (((_this$groups3 = this.groups) === null || _this$groups3 === void 0 ? void 0 : (_this$groups3$ = _this$groups3[0]) === null || _this$groups3$ === void 0 ? void 0 : _this$groups3$.status) || this.status) === _constants.BREAKOUTS.STATUS.CLOSING;\n },\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout: function updateBreakout(params) {\n this.set(params);\n // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\n this.set('currentBreakoutSession', (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url\n }, _constants.BREAKOUTS.SESSION_STATES.ACTIVE, false), _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), _constants.BREAKOUTS.SESSION_STATES.ASSIGNED, false), _constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT, false), _constants.BREAKOUTS.SESSION_STATES.REQUESTED, false));\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n if (this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId || this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId) {\n // should report joined session changed\n var meeting = this.webex.meetings.getMeetingByType(_constants._ID_, this.meetingId);\n _events.default.onBreakoutJoinResponse({\n currentSession: this.currentBreakoutSession,\n meeting: meeting,\n breakoutMoveId: params.breakoutMoveId\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics));\n }\n },\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions: function updateBreakoutSessions(payload) {\n var _this7 = this;\n var breakouts = {};\n if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\n }\n if (payload.breakoutSessions) {\n (0, _lodash.forEach)(_constants.BREAKOUTS.SESSION_STATES, function (state) {\n (0, _lodash.forEach)(payload.breakoutSessions[state], function (breakout) {\n var sessionId = breakout.sessionId;\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n breakouts[sessionId][state] = true;\n if (state === _constants.BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\n }\n });\n });\n }\n (0, _lodash.forEach)(breakouts, function (breakout) {\n // eslint-disable-next-line no-param-reassign\n breakout.url = _this7.url;\n });\n this.breakouts.set((0, _values.default)(breakouts));\n },\n /**\n * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts: function clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession: function getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n var mainSession = this.breakouts.filter(function (breakout) {\n return breakout.isMain;\n })[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn: function askAllToReturn() {\n var mainSession = this.getMainSession();\n return this.webex.request({\n method: _constants.HTTP_VERBS.POST,\n uri: \"\".concat(this.url, \"/requestMove\"),\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId\n }\n });\n },\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast: function broadcast(message, options) {\n var breakoutGroupId = this.breakoutGroupId;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n return this.breakoutRequest.broadcast({\n url: this.url,\n message: message,\n options: options,\n groupId: breakoutGroupId\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts: function enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex.request({\n method: _constants.HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl\n }\n }).catch(function (err) {\n _loggerProxy.default.logger.error(\"Meeting:request#touchBreakout --> Error provisioning error \".concat(err));\n throw err;\n });\n }\n return _promise.default.reject(new Error(\"enableBreakouts: the breakoutServiceUrl is empty\"));\n },\n /**\n * Make the meeting enable or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n toggleBreakout: function toggleBreakout(enable) {\n var _this8 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var info;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(_this8.enableBreakoutSession === undefined)) {\n _context.next = 10;\n break;\n }\n _context.next = 3;\n return _this8.enableBreakouts();\n case 3:\n info = _context.sent;\n // first time enable, set the initial data\n _this8.updateBreakout(info === null || info === void 0 ? void 0 : info.body);\n if (enable) {\n _context.next = 8;\n break;\n }\n _context.next = 8;\n return _this8.doToggleBreakout(enable);\n case 8:\n _context.next = 12;\n break;\n case 10:\n _context.next = 12;\n return _this8.doToggleBreakout(enable);\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }))();\n },\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout: function doToggleBreakout(enable) {\n var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {\n editlock: {\n token: this.editLock.token\n }\n } : {}), {\n enableBreakoutSession: enable\n });\n\n // @ts-ignore\n return this.webex.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: this.url,\n body: body\n });\n },\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups: function _setManageGroups(breakoutInfo) {\n var _breakoutInfo$body;\n if (breakoutInfo !== null && breakoutInfo !== void 0 && (_breakoutInfo$body = breakoutInfo.body) !== null && _breakoutInfo$body !== void 0 && _breakoutInfo$body.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n create: function create(params) {\n var _this9 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var payload, body, breakoutInfo;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n payload = _objectSpread({}, params);\n body = _objectSpread(_objectSpread({}, _this9.editLock && !!_this9.editLock.token ? {\n editlock: {\n token: _this9.editLock.token\n }\n } : {}), {\n groups: [payload]\n }); // @ts-ignore\n _context2.next = 4;\n return _this9.webex.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: _this9.url,\n body: body\n }).catch(function (error) {\n return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create'));\n });\n case 4:\n breakoutInfo = _context2.sent;\n _this9._setManageGroups(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n _this9._clearEditLockInfo();\n return _context2.abrupt(\"return\", breakoutInfo);\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }))();\n },\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n clearSessions: function clearSessions() {\n var _this10 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var body, breakoutInfo;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n body = _objectSpread(_objectSpread({}, _this10.editLock && !!_this10.editLock.token ? {\n editlock: {\n token: _this10.editLock.token\n }\n } : {}), {\n groups: [{\n action: _constants.BREAKOUTS.ACTION.DELETE\n }]\n }); // @ts-ignore\n _context3.next = 3;\n return _this10.webex.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: _this10.url,\n body: body\n }).catch(function (error) {\n return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions'));\n });\n case 3:\n breakoutInfo = _context3.sent;\n _this10._setManageGroups(breakoutInfo);\n return _context3.abrupt(\"return\", breakoutInfo);\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }))();\n },\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n start: function start() {\n var _arguments = arguments,\n _this11 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var params, action, payload, body, breakoutInfo;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n params = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {};\n action = _constants.BREAKOUTS.ACTION.START;\n payload = _objectSpread({\n id: _this11.breakoutGroupId,\n action: action,\n allowBackToMain: false,\n allowToJoinLater: false\n }, params);\n body = _objectSpread(_objectSpread({}, _this11.editLock && !!_this11.editLock.token ? {\n editlock: {\n token: _this11.editLock.token,\n refresh: true\n }\n } : {}), {\n groups: [payload]\n });\n _context4.next = 6;\n return _this11.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: _this11.url,\n body: body\n }).catch(function (error) {\n return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#start'));\n });\n case 6:\n breakoutInfo = _context4.sent;\n _this11._setManageGroups(breakoutInfo);\n return _context4.abrupt(\"return\", breakoutInfo);\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }))();\n },\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n end: function end() {\n var _arguments2 = arguments,\n _this12 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var params, delayCloseTime, id, action, payload, body, breakoutInfo;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n params = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n delayCloseTime = _this12.delayCloseTime, id = _this12.breakoutGroupId;\n action = _constants.BREAKOUTS.ACTION.CLOSE;\n payload = _objectSpread({\n id: id,\n action: action,\n delayCloseTime: delayCloseTime\n }, params);\n body = _objectSpread(_objectSpread({}, _this12.editLock && !!_this12.editLock.token ? {\n editlock: {\n token: _this12.editLock.token,\n refresh: true\n }\n } : {}), {\n groups: [payload]\n });\n _context5.next = 7;\n return _this12.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: _this12.url,\n body: body\n }).catch(function (error) {\n return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#end'));\n });\n case 7:\n breakoutInfo = _context5.sent;\n _this12._setManageGroups(breakoutInfo);\n return _context5.abrupt(\"return\", breakoutInfo);\n case 10:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }))();\n },\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n update: function update(params, unlockEdit) {\n var _this13 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n var _this13$editLock;\n var payload, body, breakoutInfo;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n if (params.id) {\n _context6.next = 2;\n break;\n }\n return _context6.abrupt(\"return\", _promise.default.reject(new Error('Missing breakout group id')));\n case 2:\n payload = _objectSpread({}, params);\n body = _objectSpread(_objectSpread({}, (_this13$editLock = _this13.editLock) !== null && _this13$editLock !== void 0 && _this13$editLock.token ? {\n editlock: {\n token: _this13.editLock.token,\n refresh: !unlockEdit\n }\n } : {}), {\n groups: [payload]\n });\n _context6.next = 6;\n return _this13.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: _this13.url,\n body: body\n }).catch(function (error) {\n return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#update'));\n });\n case 6:\n breakoutInfo = _context6.sent;\n if (unlockEdit) {\n _this13._clearEditLockInfo();\n }\n _this13._setManageGroups(breakoutInfo);\n return _context6.abrupt(\"return\", breakoutInfo);\n case 10:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }))();\n },\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n getBreakout: function getBreakout(editlock) {\n var _this14 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n var _breakout$body, _breakout$body$editlo;\n var breakout;\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return _this14.request({\n method: _constants.HTTP_VERBS.GET,\n uri: _this14.url + (editlock ? \"?editlock=\".concat(editlock) : '')\n });\n case 2:\n breakout = _context7.sent;\n _this14._setManageGroups(breakout);\n if (editlock && (_breakout$body = breakout.body) !== null && _breakout$body !== void 0 && (_breakout$body$editlo = _breakout$body.editlock) !== null && _breakout$body$editlo !== void 0 && _breakout$body$editlo.token) {\n _this14.set('editLock', breakout.body.editlock);\n _this14.keepEditLockAlive();\n }\n return _context7.abrupt(\"return\", breakout);\n case 6:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }))();\n },\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n enableAndLockBreakout: function enableAndLockBreakout() {\n var _this15 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {\n var info;\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n if (!_this15.enableBreakoutSession) {\n _context8.next = 4;\n break;\n }\n _this15.lockBreakout();\n _context8.next = 8;\n break;\n case 4:\n _context8.next = 6;\n return _this15.enableBreakouts();\n case 6:\n info = _context8.sent;\n if (info.body) {\n _this15.lockBreakout();\n }\n case 8:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }))();\n },\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked: function hasBreakoutLocked() {\n return this.editLock && this.editLock.token && this.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED;\n },\n /**\n * send breakout edit lock\n * @returns {void}\n */\n lockBreakout: function lockBreakout() {\n var _this16 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {\n var _breakout$body2, breakout;\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n if (!(_this16.editLock && !!_this16.editLock.token)) {\n _context9.next = 8;\n break;\n }\n if (!(_this16.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED)) {\n _context9.next = 5;\n break;\n }\n throw new Error('Breakout already locked');\n case 5:\n _this16.keepEditLockAlive();\n case 6:\n _context9.next = 12;\n break;\n case 8:\n _context9.next = 10;\n return _this16.getBreakout(true);\n case 10:\n breakout = _context9.sent;\n if ((_breakout$body2 = breakout.body) !== null && _breakout$body2 !== void 0 && _breakout$body2.editlock) {\n _this16.keepEditLockAlive();\n }\n case 12:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }))();\n },\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive: function keepEditLockAlive() {\n var _this17 = this;\n if (this.editLock && !!this.editLock.token) {\n var ttl = this.editLock.ttl < 30 ? _constants.BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n this.intervalID = window.setInterval(function () {\n _this17.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: \"\".concat(_this17.url, \"/editlock/\").concat(_this17.editLock.token)\n }).catch(function (error) {\n _this17._clearEditLockInfo();\n return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#keepEditLockAlive'));\n });\n }, ttl / 2 * 1000);\n }\n },\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout: function unLockEditBreakout() {\n var _this18 = this;\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: _constants.HTTP_VERBS.DELETE,\n uri: \"\".concat(this.url, \"/editlock/\").concat(this.editLock.token)\n }).then(function () {\n _this18._clearEditLockInfo();\n }).catch(function (error) {\n return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo: function _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign: function assign(sessions) {\n var internalSessions = sessions.map(function (item) {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone\n };\n });\n var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {\n editlock: {\n token: this.editLock.token,\n refresh: true\n }\n } : {}), {\n groups: [{\n id: this.breakoutGroupId,\n sessions: internalSessions\n }]\n });\n return this.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: this.url,\n body: body\n });\n },\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments: function queryPreAssignments() {\n var _this19 = this;\n this.webex.request({\n uri: \"\".concat(this.url, \"/preassignments\"),\n qs: {\n locusUrl: btoa(this.locusUrl)\n }\n }).then(function (result) {\n var _result$body;\n if ((_result$body = result.body) !== null && _result$body !== void 0 && _result$body.groups) {\n _this19.set('preAssignments', result.body.groups);\n _this19.trigger(_constants.BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n }).catch(function (error) {\n _loggerProxy.default.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign: function dynamicAssign(sessions) {\n var updatedSessions = sessions.map(function (item) {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState\n };\n });\n var body = {\n groups: [{\n id: this.breakoutGroupId,\n sessions: updatedSessions\n }],\n editlock: null\n };\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n return this.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: \"\".concat(this.url, \"/dynamicAssign\"),\n body: body\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent: function triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n version: \"3.7.0-web-workers-keepalive.1\"\n});\nvar _default = exports.default = Breakouts;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _webexCore = require(\"@webex/webex-core\");\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _utils = require(\"./utils\");\nvar _constants = require(\"../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * @class BreakoutRequest\n */\nvar BreakoutRequest = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {\n (0, _inherits2.default)(BreakoutRequest, _StatelessWebexPlugin);\n var _super = _createSuper(BreakoutRequest);\n function BreakoutRequest() {\n (0, _classCallCheck2.default)(this, BreakoutRequest);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(BreakoutRequest, [{\n key: \"broadcast\",\n value:\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} url\n * @param {String} message\n * @param {Object} options\n * @param {string} groupId\n * @param {string} sessionId\n * @returns {Promise}\n */\n function broadcast(_ref) {\n var url = _ref.url,\n message = _ref.message,\n options = _ref.options,\n groupId = _ref.groupId,\n sessionId = _ref.sessionId;\n var roles = (0, _utils.getBroadcastRoles)(options);\n var params = {\n id: groupId,\n recipientRoles: roles.length ? roles : undefined,\n sessions: sessionId ? [{\n id: sessionId\n }] : undefined\n };\n\n // @ts-ignore\n return this.request({\n method: _constants.HTTP_VERBS.POST,\n uri: \"\".concat(url, \"/message\"),\n body: {\n message: message,\n groups: [params]\n }\n }).catch(function (error) {\n if (error.body && error.body.errorCode === 201409036 && error.statusCode === 409) {\n _loggerProxy.default.logger.info(\"Breakouts#broadcast --> no joined participants\");\n } else {\n throw error;\n }\n });\n }\n }]);\n return BreakoutRequest;\n}(_webexCore.StatelessWebexPlugin);\n//# sourceMappingURL=request.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isSessionTypeChangedFromSessionToMain = exports.getBroadcastRoles = exports.boServiceErrorHandler = void 0;\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _editLockError = _interopRequireDefault(require(\"./edit-lock-error\"));\nvar _constants = require(\"../constants\");\n// eslint-disable-next-line import/prefer-default-export\n\nvar getBroadcastRoles = exports.getBroadcastRoles = function getBroadcastRoles(options) {\n var recipientRoles = [];\n if (!options || !options.cohosts && !options.presenters) {\n return recipientRoles;\n }\n if (options.cohosts) {\n recipientRoles.push('COHOST');\n }\n if (options.presenters) {\n recipientRoles.push('PRESENTER');\n }\n return recipientRoles;\n};\n\n/**\n * Deals with all kinds of errors of breakout service\n * @param {object} error // one of the breakout service error\n * @param {string} position // position of the error occur\n * @returns {object}\n */\nvar boServiceErrorHandler = exports.boServiceErrorHandler = function boServiceErrorHandler(error, position) {\n var _error$body, _throwError;\n var errorCode = error === null || error === void 0 ? void 0 : (_error$body = error.body) === null || _error$body === void 0 ? void 0 : _error$body.errorCode;\n var _BREAKOUTS$ERROR_CODE = _constants.BREAKOUTS.ERROR_CODE,\n EDIT_LOCK_TOKEN_MISMATCH = _BREAKOUTS$ERROR_CODE.EDIT_LOCK_TOKEN_MISMATCH,\n EDIT_NOT_AUTHORIZED = _BREAKOUTS$ERROR_CODE.EDIT_NOT_AUTHORIZED;\n var throwError;\n switch (errorCode) {\n case EDIT_LOCK_TOKEN_MISMATCH:\n throwError = new _editLockError.default('Edit lock token mismatch', error);\n break;\n case EDIT_NOT_AUTHORIZED:\n throwError = new _editLockError.default('Not authorized to interact with edit lock', error);\n break;\n default:\n throwError = error;\n }\n _loggerProxy.default.logger.info(\"\".concat(position, \" --> \").concat((_throwError = throwError) === null || _throwError === void 0 ? void 0 : _throwError.message));\n return throwError;\n};\n\n/**\n *\n * @param {object} breakout\n * @param {string} newSessionType\n * @returns {boolean}\n */\nvar isSessionTypeChangedFromSessionToMain = exports.isSessionTypeChangedFromSessionToMain = function isSessionTypeChangedFromSessionToMain(breakout, newSessionType) {\n return breakout.previous('sessionType') === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && newSessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;\n};\n//# sourceMappingURL=utils.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _bowser = _interopRequireDefault(require(\"bowser\"));\nvar _lodash = require(\"lodash\");\nvar _window = _interopRequireDefault(require(\"global/window\"));\n/* eslint-disable @typescript-eslint/no-var-requires */\n\nvar mockDetectionObject = {\n /* eslint-disable global-require */\n getOSName: function getOSName() {\n return require('os').platform();\n },\n getOSVersion: function getOSVersion() {\n return require('os').release();\n },\n /* eslint-enable global-require */\n getBrowserName: function getBrowserName() {\n return '';\n },\n getBrowserVersion: function getBrowserVersion() {\n return '';\n },\n isBrowser: function isBrowser() {\n return false;\n }\n};\nvar createDetectionObject = function createDetectionObject(results) {\n var getOSName = function getOSName() {\n var _results$getOSName;\n return (_results$getOSName = results === null || results === void 0 ? void 0 : results.getOSName()) !== null && _results$getOSName !== void 0 ? _results$getOSName : '';\n };\n var getOSVersion = function getOSVersion() {\n var _results$getOSVersion;\n return (_results$getOSVersion = results === null || results === void 0 ? void 0 : results.getOSVersion()) !== null && _results$getOSVersion !== void 0 ? _results$getOSVersion : '';\n };\n var getBrowserName = function getBrowserName() {\n var _results$getBrowserNa;\n return (_results$getBrowserNa = results === null || results === void 0 ? void 0 : results.getBrowserName()) !== null && _results$getBrowserNa !== void 0 ? _results$getBrowserNa : '';\n };\n var getBrowserVersion = function getBrowserVersion() {\n var _results$getBrowserVe;\n return (_results$getBrowserVe = results === null || results === void 0 ? void 0 : results.getBrowserVersion()) !== null && _results$getBrowserVe !== void 0 ? _results$getBrowserVe : '';\n };\n var isBrowser = function isBrowser(name) {\n return !!(results !== null && results !== void 0 && results.isBrowser(name, true));\n };\n return {\n getOSName: getOSName,\n getOSVersion: getOSVersion,\n getBrowserName: getBrowserName,\n getBrowserVersion: getBrowserVersion,\n isBrowser: isBrowser\n };\n};\nvar _default = exports.default = (0, _lodash.memoize)(function (agent) {\n var _window$navigator;\n return agent || (_window$navigator = _window.default.navigator) !== null && _window$navigator !== void 0 && _window$navigator.userAgent ? createDetectionObject(_bowser.default.getParser(agent || _window.default.navigator.userAgent)) : mockDetectionObject;\n});\n//# sourceMappingURL=browser-detection.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _lodash = require(\"lodash\");\nvar _parameter = _interopRequireDefault(require(\"./errors/parameter\"));\n/**\n * @class Collection\n */\nvar Collection = exports.default = /*#__PURE__*/function () {\n /**\n * @param {String} property\n * @memberof Collection\n */\n function Collection(property) {\n (0, _classCallCheck2.default)(this, Collection);\n (0, _defineProperty2.default)(this, \"namespace\", 'Meetings');\n (0, _defineProperty2.default)(this, \"propertyName\", void 0);\n if (!property || !(0, _lodash.isString)(property)) {\n throw new _parameter.default('Collection expects a string to use as a property name.');\n }\n /**\n * The property name for what collection will be stored, i.e., this.meetingInfos, this.meetings, etc.\n * @instance\n * @type {String}\n * @public\n * @memberof Meetings\n */\n this.propertyName = property;\n /**\n * The actual object for the collection\n * @instance\n * @type {Object}\n * @public\n * @memberof Meetings\n */\n this[this.propertyName] = {};\n }\n\n /**\n * @param {String} id ID of the thing stuffed into the collection at id location\n * @returns {Any} returns whatever is being stuffed into the collection\n * @public\n * @memberof Collection\n */\n (0, _createClass2.default)(Collection, [{\n key: \"get\",\n value: function get(id) {\n return this[this.propertyName] && this[this.propertyName][id] ? this[this.propertyName][id] : null;\n }\n\n /**\n * @param {String} id the id of the meeting info instance to add to the collection\n * @param {Any} value the thing to set in the collection\n * @returns {Any} returns the thing just put in the collection\n * @public\n * @memberof Collection\n */\n }, {\n key: \"set\",\n value: function set(id, value) {\n this[this.propertyName][id] = value;\n return this.get(id);\n }\n\n /**\n * remove the thing at the id\n * @param {String} id ID of the thing you wish to delete from the collection\n * @returns {undefined}\n * @public\n * @memberof Collection\n */\n }, {\n key: \"delete\",\n value: function _delete(id) {\n delete this[this.propertyName][id];\n }\n\n /**\n * @returns {Object} returns an object map of things stuffed into the collection\n * @public\n * @memberof Collection\n */\n }, {\n key: \"getAll\",\n value: function getAll() {\n return this[this.propertyName];\n }\n\n /**\n * @param {Object} set the replacement object\n * @returns {Object} returns an object map of things stuffed into the collection\n * @public\n * @memberof Collection\n */\n }, {\n key: \"setAll\",\n value: function setAll(set) {\n this[this.propertyName] = set;\n return this.getAll();\n }\n }]);\n return Collection;\n}();\n//# sourceMappingURL=collection.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _assign = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/assign\"));\nvar StaticConfig = {};\nStaticConfig.set = function (options) {\n var values = {};\n StaticConfig.meetings = (0, _assign.default)(values, options);\n};\nvar _default = exports.default = StaticConfig;\n//# sourceMappingURL=config.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Extended Error object to signify captcha related errors\n */\nvar CaptchaError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(CaptchaError, _Error);\n var _super = _createSuper(CaptchaError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function CaptchaError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.CAPTCHA.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, CaptchaError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n _this.name = _constants.ERROR_DICTIONARY.CAPTCHA.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.CAPTCHA.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.code = _constants.ERROR_DICTIONARY.CAPTCHA.CODE;\n return _this;\n }\n return (0, _createClass2.default)(CaptchaError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=captcha-error.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Extended Error object to signify the intent to join for unclaimed PMR scenarios\n */\nvar IntentToJoinError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(IntentToJoinError, _Error);\n var _super = _createSuper(IntentToJoinError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function IntentToJoinError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.INTENT_TO_JOIN.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, IntentToJoinError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"joinIntentRequired\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n _this.name = _constants.ERROR_DICTIONARY.INTENT_TO_JOIN.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.INTENT_TO_JOIN.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.joinIntentRequired = true;\n _this.code = _constants.ERROR_DICTIONARY.INTENT_TO_JOIN.CODE;\n return _this;\n }\n return (0, _createClass2.default)(IntentToJoinError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=intent-to-join.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Extended Error object to signify a join meeting error\n */\nvar JoinMeetingError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(JoinMeetingError, _Error);\n var _super = _createSuper(JoinMeetingError);\n /**\n *\n * @constructor\n * @param {Object} [options]\n * @param {String} [message]\n * @param {Object} [error]\n */\n function JoinMeetingError() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.ERROR_DICTIONARY.JOIN_MEETING.MESSAGE;\n var error = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n (0, _classCallCheck2.default)(this, JoinMeetingError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"joinOptions\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n _this.name = _constants.ERROR_DICTIONARY.JOIN_MEETING.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.JOIN_MEETING.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.joinOptions = options;\n _this.code = _constants.ERROR_DICTIONARY.JOIN_MEETING.CODE;\n return _this;\n }\n return (0, _createClass2.default)(JoinMeetingError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=join-meeting.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Error occurred while join the webinar\n */\nvar JoinWebinarError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(JoinWebinarError, _Error);\n var _super = _createSuper(JoinWebinarError);\n /**\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function JoinWebinarError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.JoinWebinarError.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, JoinWebinarError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n _this.name = _constants.ERROR_DICTIONARY.JoinWebinarError.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.JoinWebinarError.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.code = _constants.ERROR_DICTIONARY.JoinWebinarError.CODE;\n return _this;\n }\n return (0, _createClass2.default)(JoinWebinarError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=join-webinar-error.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Error thrown when we try to do multistream, but fail. This error\n * is not exported outside of plugin-meetings, because it's handled\n * internally.\n */\nvar MultistreamNotSupportedError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(MultistreamNotSupportedError, _Error);\n var _super = _createSuper(MultistreamNotSupportedError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function MultistreamNotSupportedError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.MULTISTREAM_NOT_SUPPORTED.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, MultistreamNotSupportedError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n _this.name = _constants.ERROR_DICTIONARY.MULTISTREAM_NOT_SUPPORTED.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.MULTISTREAM_NOT_SUPPORTED.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.code = _constants.ERROR_DICTIONARY.MULTISTREAM_NOT_SUPPORTED.CODE;\n return _this;\n }\n return (0, _createClass2.default)(MultistreamNotSupportedError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=multistream-not-supported-error.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Extended Error object for general parameter errors\n */\nvar NoMeetingInfoError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(NoMeetingInfoError, _Error);\n var _super = _createSuper(NoMeetingInfoError);\n /**\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function NoMeetingInfoError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.NO_MEETING_INFO.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, NoMeetingInfoError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n _this.name = _constants.ERROR_DICTIONARY.NO_MEETING_INFO.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.NO_MEETING_INFO.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.code = _constants.ERROR_DICTIONARY.NO_MEETING_INFO.CODE;\n return _this;\n }\n return (0, _createClass2.default)(NoMeetingInfoError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=no-meeting-info.js.map\n","\"use strict\";\n\nvar _typeof = require(\"@babel/runtime-corejs2/helpers/typeof\");\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _WeakMap = require(\"@babel/runtime-corejs2/core-js/weak-map\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar MEETINGCONSTANTS = _interopRequireWildcard(require(\"../../constants\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Extended Error object for general parameter errors\n */\nvar ParameterError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(ParameterError, _Error);\n var _super = _createSuper(ParameterError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function ParameterError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MEETINGCONSTANTS.ERROR_DICTIONARY.PARAMETER.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, ParameterError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n if (Error.captureStackTrace) {\n Error.captureStackTrace((0, _assertThisInitialized2.default)(_this), ParameterError);\n }\n _this.name = MEETINGCONSTANTS.ERROR_DICTIONARY.PARAMETER.NAME;\n _this.sdkMessage = message || MEETINGCONSTANTS.ERROR_DICTIONARY.PARAMETER.MESSAGE;\n _this.error = error;\n _this.code = MEETINGCONSTANTS.ERROR_DICTIONARY.PARAMETER.CODE;\n return _this;\n }\n return (0, _createClass2.default)(ParameterError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=parameter.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Extended Error object to signify password related errors\n */\nvar PasswordError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(PasswordError, _Error);\n var _super = _createSuper(PasswordError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function PasswordError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.PASSWORD.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, PasswordError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n _this.name = _constants.ERROR_DICTIONARY.PASSWORD.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.PASSWORD.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.code = _constants.ERROR_DICTIONARY.PASSWORD.CODE;\n return _this;\n }\n return (0, _createClass2.default)(PasswordError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=password-error.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Extended Error object for general parameter errors\n */\nvar PermissionError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(PermissionError, _Error);\n var _super = _createSuper(PermissionError);\n /**\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function PermissionError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.PERMISSION.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, PermissionError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n _this.name = _constants.ERROR_DICTIONARY.PERMISSION.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.PERMISSION.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.code = _constants.ERROR_DICTIONARY.PERMISSION.CODE;\n return _this;\n }\n return (0, _createClass2.default)(PermissionError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=permission.js.map\n","\"use strict\";\n\nvar _typeof = require(\"@babel/runtime-corejs2/helpers/typeof\");\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _WeakMap = require(\"@babel/runtime-corejs2/core-js/weak-map\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReclaimHostNotSupportedError = exports.ReclaimHostNotAllowedError = exports.ReclaimHostIsHostAlreadyError = exports.ReclaimHostEmptyWrongKeyError = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar MEETINGCONSTANTS = _interopRequireWildcard(require(\"../../constants\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Extended Error object for reclaim host role empty or wrong key\n */\nvar ReclaimHostEmptyWrongKeyError = exports.ReclaimHostEmptyWrongKeyError = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(ReclaimHostEmptyWrongKeyError, _Error);\n var _super = _createSuper(ReclaimHostEmptyWrongKeyError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function ReclaimHostEmptyWrongKeyError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, ReclaimHostEmptyWrongKeyError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n if (Error.captureStackTrace) {\n Error.captureStackTrace((0, _assertThisInitialized2.default)(_this), ReclaimHostEmptyWrongKeyError);\n }\n _this.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY.NAME;\n _this.sdkMessage = message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY.MESSAGE;\n _this.error = error;\n _this.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY.CODE;\n return _this;\n }\n return (0, _createClass2.default)(ReclaimHostEmptyWrongKeyError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n/**\n * Extended Error object for reclaim host role not supported\n */\nvar ReclaimHostNotSupportedError = exports.ReclaimHostNotSupportedError = /*#__PURE__*/function (_Error2) {\n (0, _inherits2.default)(ReclaimHostNotSupportedError, _Error2);\n var _super2 = _createSuper(ReclaimHostNotSupportedError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function ReclaimHostNotSupportedError() {\n var _this2;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, ReclaimHostNotSupportedError);\n _this2 = _super2.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), \"sdkMessage\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), \"code\", void 0);\n if (Error.captureStackTrace) {\n Error.captureStackTrace((0, _assertThisInitialized2.default)(_this2), ReclaimHostNotSupportedError);\n }\n _this2.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.NAME;\n _this2.sdkMessage = message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.MESSAGE;\n _this2.error = error;\n _this2.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.CODE;\n return _this2;\n }\n return (0, _createClass2.default)(ReclaimHostNotSupportedError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n/**\n * Extended Error object for reclaim host role not allowed for other participants\n */\nvar ReclaimHostNotAllowedError = exports.ReclaimHostNotAllowedError = /*#__PURE__*/function (_Error3) {\n (0, _inherits2.default)(ReclaimHostNotAllowedError, _Error3);\n var _super3 = _createSuper(ReclaimHostNotAllowedError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function ReclaimHostNotAllowedError() {\n var _this3;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, ReclaimHostNotAllowedError);\n _this3 = _super3.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), \"sdkMessage\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), \"code\", void 0);\n if (Error.captureStackTrace) {\n Error.captureStackTrace((0, _assertThisInitialized2.default)(_this3), ReclaimHostNotAllowedError);\n }\n _this3.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.NAME;\n _this3.sdkMessage = message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.MESSAGE;\n _this3.error = error;\n _this3.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.CODE;\n return _this3;\n }\n return (0, _createClass2.default)(ReclaimHostNotAllowedError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n/**\n * Extended Error object for reclaim host role when user is host already\n */\nvar ReclaimHostIsHostAlreadyError = exports.ReclaimHostIsHostAlreadyError = /*#__PURE__*/function (_Error4) {\n (0, _inherits2.default)(ReclaimHostIsHostAlreadyError, _Error4);\n var _super4 = _createSuper(ReclaimHostIsHostAlreadyError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function ReclaimHostIsHostAlreadyError() {\n var _this4;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, ReclaimHostIsHostAlreadyError);\n _this4 = _super4.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), \"sdkMessage\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), \"code\", void 0);\n if (Error.captureStackTrace) {\n Error.captureStackTrace((0, _assertThisInitialized2.default)(_this4), ReclaimHostIsHostAlreadyError);\n }\n _this4.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.NAME;\n _this4.sdkMessage = message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.MESSAGE;\n _this4.error = error;\n _this4.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.CODE;\n return _this4;\n }\n return (0, _createClass2.default)(ReclaimHostIsHostAlreadyError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=reclaim-host-role-errors.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _constants = require(\"../../constants\");\nvar _reconnection = _interopRequireDefault(require(\"./reconnection\"));\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Error object for cases when new reconnection cannot be started\n */\nvar ReconnectionNotStartedError = exports.default = /*#__PURE__*/function (_ReconnectionError) {\n (0, _inherits2.default)(ReconnectionNotStartedError, _ReconnectionError);\n var _super = _createSuper(ReconnectionNotStartedError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function ReconnectionNotStartedError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.RECONNECTION_NOT_STARTED.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, ReconnectionNotStartedError);\n _this = _super.call(this, message, error);\n _this.name = _constants.ERROR_DICTIONARY.RECONNECTION_NOT_STARTED.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.RECONNECTION_NOT_STARTED.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.code = _constants.ERROR_DICTIONARY.RECONNECTION_NOT_STARTED.CODE;\n return _this;\n }\n return (0, _createClass2.default)(ReconnectionNotStartedError);\n}(_reconnection.default);\n//# sourceMappingURL=reconnection-not-started.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Extended Error object to signify the intent to join for unclaimed PMR scenarios\n */\nvar ReconnectionError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(ReconnectionError, _Error);\n var _super = _createSuper(ReconnectionError);\n /**\n *\n * @constructor\n * @param {String} [message]\n * @param {Object} [error]\n */\n function ReconnectionError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.ERROR_DICTIONARY.RECONNECTION.MESSAGE;\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _classCallCheck2.default)(this, ReconnectionError);\n _this = _super.call(this, message);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"error\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n _this.name = _constants.ERROR_DICTIONARY.RECONNECTION.NAME;\n _this.sdkMessage = _constants.ERROR_DICTIONARY.RECONNECTION.MESSAGE;\n _this.error = error;\n _this.stack = error ? error.stack : new Error().stack;\n _this.code = _constants.ERROR_DICTIONARY.RECONNECTION.CODE;\n return _this;\n }\n return (0, _createClass2.default)(ReconnectionError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=reconnection.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UserNotJoinedError = exports.UserInLobbyError = exports.SpaceIDDeprecatedError = exports.NoMediaEstablishedYetError = exports.MeetingNotActiveError = exports.IceGatheringFailed = exports.AddMediaFailed = void 0;\nexports.createMeetingsError = createMeetingsError;\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _webexMeetingsError = _interopRequireDefault(require(\"./webex-meetings-error\"));\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } // The document would auto generate the doc for errors\n// 1) Error codes for Oauth, login, mercury should be separated out (Code range)\n// 2) Errors from the actual locus server or other server in case, we can use the same error code as locus and redirect it\n// 3) Any errors we generate from the SDK can be split into various categories\n// Parameter validation, user action, connection, media specific(They can have different range)\n// TODO: all the errors from the server need to be captured\n// add a way to log and send metrics if needed\nvar WebExMeetingsErrors = {};\n\n/**\n * Create a {@link WebexMeetingsError} for a given code and message.\n * @private\n * @param {number} [code] - Error code\n * @param {string} [message] - Error message\n * @returns {WebexMeetingsError}\n */\nfunction createMeetingsError(code, message) {\n code = typeof code === 'number' ? code : 0;\n message = typeof message === 'string' && message ? message : 'Unknown error';\n return WebExMeetingsErrors[code] ? new WebExMeetingsErrors[code]() : new _webexMeetingsError.default(code, message);\n}\n\n/**\n * @class MeetingNotActiveError\n * @classdesc Raised whenever Meeting has already ended and user tries to do a action.\n * @extends WebexMeetingsError\n * @property {number} code - 30101\n * @property {string} message - 'Meeting has already Ended or not Active'\n */\nvar MeetingNotActiveError = exports.MeetingNotActiveError = /*#__PURE__*/function (_WebexMeetingsError) {\n (0, _inherits2.default)(MeetingNotActiveError, _WebexMeetingsError);\n var _super = _createSuper(MeetingNotActiveError);\n function MeetingNotActiveError() {\n (0, _classCallCheck2.default)(this, MeetingNotActiveError);\n return _super.call(this, MeetingNotActiveError.CODE, 'Meeting has already Ended or not Active');\n }\n return (0, _createClass2.default)(MeetingNotActiveError);\n}(_webexMeetingsError.default);\n(0, _defineProperty2.default)(MeetingNotActiveError, \"CODE\", 30101);\nWebExMeetingsErrors[MeetingNotActiveError.CODE] = MeetingNotActiveError;\n\n/**\n * @class UserNotJoinedError\n * @classdesc Raised whenever the user has already left the meeting and user tries to do a action.\n * @extends WebexMeetingsError\n * @property {number} code - 30102\n * @property {string} message - 'User has already left the meeting'\n */\nvar UserNotJoinedError = exports.UserNotJoinedError = /*#__PURE__*/function (_WebexMeetingsError2) {\n (0, _inherits2.default)(UserNotJoinedError, _WebexMeetingsError2);\n var _super2 = _createSuper(UserNotJoinedError);\n function UserNotJoinedError() {\n (0, _classCallCheck2.default)(this, UserNotJoinedError);\n return _super2.call(this, UserNotJoinedError.CODE, 'User currently not in meeting. Please join a meeting before adding media.');\n }\n return (0, _createClass2.default)(UserNotJoinedError);\n}(_webexMeetingsError.default);\n(0, _defineProperty2.default)(UserNotJoinedError, \"CODE\", 30102);\nWebExMeetingsErrors[UserNotJoinedError.CODE] = UserNotJoinedError;\n\n/**\n * @class NoMediaEstablishedYetError\n * @classdesc Raised whenever the user has not established media yet.\n * @extends WebexMeetingsError\n * @property {number} code - 30103\n * @property {string} message - error message\n */\nvar NoMediaEstablishedYetError = exports.NoMediaEstablishedYetError = /*#__PURE__*/function (_WebexMeetingsError3) {\n (0, _inherits2.default)(NoMediaEstablishedYetError, _WebexMeetingsError3);\n var _super3 = _createSuper(NoMediaEstablishedYetError);\n // eslint-disable-next-line require-jsdoc\n function NoMediaEstablishedYetError() {\n (0, _classCallCheck2.default)(this, NoMediaEstablishedYetError);\n return _super3.call(this, NoMediaEstablishedYetError.CODE, 'Webrtc media connection is missing, call addMedia() first');\n }\n return (0, _createClass2.default)(NoMediaEstablishedYetError);\n}(_webexMeetingsError.default);\n(0, _defineProperty2.default)(NoMediaEstablishedYetError, \"CODE\", 30103);\nWebExMeetingsErrors[NoMediaEstablishedYetError.CODE] = NoMediaEstablishedYetError;\n\n/**\n * @class UserInLobbyError\n * @classdesc Raised whenever the user is in lobby and not joined yet.\n * @extends WebexMeetingsError\n * @property {number} code - 30104\n * @property {string} message - 'user is still in the lobby or not joined'\n */\nvar UserInLobbyError = exports.UserInLobbyError = /*#__PURE__*/function (_WebexMeetingsError4) {\n (0, _inherits2.default)(UserInLobbyError, _WebexMeetingsError4);\n var _super4 = _createSuper(UserInLobbyError);\n function UserInLobbyError() {\n (0, _classCallCheck2.default)(this, UserInLobbyError);\n return _super4.call(this, UserInLobbyError.CODE, 'user is still in the lobby or not joined');\n }\n return (0, _createClass2.default)(UserInLobbyError);\n}(_webexMeetingsError.default);\n(0, _defineProperty2.default)(UserInLobbyError, \"CODE\", 30104);\nWebExMeetingsErrors[UserInLobbyError.CODE] = UserInLobbyError;\n\n/**\n * @class SpaceIDDeprecatedError\n * @classdesc Raised whenever the user passes Space ID as destination for create meeting.\n * @extends WebexMeetingsError\n * @property {number} code - 30105\n * @property {string} message - Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'\n */\nvar SpaceIDDeprecatedError = exports.SpaceIDDeprecatedError = /*#__PURE__*/function (_WebexMeetingsError5) {\n (0, _inherits2.default)(SpaceIDDeprecatedError, _WebexMeetingsError5);\n var _super5 = _createSuper(SpaceIDDeprecatedError);\n function SpaceIDDeprecatedError() {\n (0, _classCallCheck2.default)(this, SpaceIDDeprecatedError);\n return _super5.call(this, SpaceIDDeprecatedError.CODE, 'Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.');\n }\n return (0, _createClass2.default)(SpaceIDDeprecatedError);\n}(_webexMeetingsError.default);\n(0, _defineProperty2.default)(SpaceIDDeprecatedError, \"CODE\", 30105);\nWebExMeetingsErrors[SpaceIDDeprecatedError.CODE] = SpaceIDDeprecatedError;\n\n/**\n * @class IceGatheringFailed\n * @classdesc Raised whenever ice gathering fails.\n * @extends WebexMeetingsError\n * @property {number} code - 30202\n * @property {string} message - 'user failed ice gathering check network/firewall'\n */\nvar IceGatheringFailed = exports.IceGatheringFailed = /*#__PURE__*/function (_WebexMeetingsError6) {\n (0, _inherits2.default)(IceGatheringFailed, _WebexMeetingsError6);\n var _super6 = _createSuper(IceGatheringFailed);\n function IceGatheringFailed() {\n (0, _classCallCheck2.default)(this, IceGatheringFailed);\n return _super6.call(this, IceGatheringFailed.CODE, 'iceConnection: gethering ice candidate failed');\n }\n return (0, _createClass2.default)(IceGatheringFailed);\n}(_webexMeetingsError.default);\n(0, _defineProperty2.default)(IceGatheringFailed, \"CODE\", 30202);\nWebExMeetingsErrors[IceGatheringFailed.CODE] = IceGatheringFailed;\n\n/**\n * @class AddMediaFailed\n * @classdesc Raised whenever we fail to successfully add media to a meeting\n * @extends WebexMeetingsError\n * @property {number} code - 30203\n * @property {string} message - 'Failed to add media'\n */\nvar AddMediaFailed = exports.AddMediaFailed = /*#__PURE__*/function (_WebexMeetingsError7) {\n (0, _inherits2.default)(AddMediaFailed, _WebexMeetingsError7);\n var _super7 = _createSuper(AddMediaFailed);\n function AddMediaFailed() {\n (0, _classCallCheck2.default)(this, AddMediaFailed);\n return _super7.call(this, AddMediaFailed.CODE, 'Failed to add media');\n }\n return (0, _createClass2.default)(AddMediaFailed);\n}(_webexMeetingsError.default);\n(0, _defineProperty2.default)(AddMediaFailed, \"CODE\", 30203);\nWebExMeetingsErrors[AddMediaFailed.CODE] = AddMediaFailed;\n//# sourceMappingURL=webex-errors.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty2 = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty2(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/define-property\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty3 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * @extends Error\n * @property {number} code - Error code\n */\nvar WebexMeetingsError = exports.default = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(WebexMeetingsError, _Error);\n var _super = _createSuper(WebexMeetingsError);\n /**\n * Creates a new {@link WebexMeetingsError}\n * @param {number} code - Error code\n * @param {string} [message] - Error message\n * @param {string} [fileName] - Name of the script file where error was generated\n * @param {number} [lineNumber] - Line number of the script file where error was generated\n */\n function WebexMeetingsError(code) {\n var _this;\n (0, _classCallCheck2.default)(this, WebexMeetingsError);\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), \"code\", void 0);\n _this.name = 'WebexMeetingsError';\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'code', {\n value: code,\n enumerable: true\n });\n return _this;\n }\n\n /**\n * Returns human readable string describing the error.\n * @returns {string}\n */\n (0, _createClass2.default)(WebexMeetingsError, [{\n key: \"toString\",\n value: function toString() {\n var message = this.message ? \": \".concat(this.message) : '';\n return \"\".concat(this.name, \" \").concat(this.code).concat(message);\n }\n }]);\n return WebexMeetingsError;\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n//# sourceMappingURL=webex-meetings-error.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/get\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _events = _interopRequireDefault(require(\"events\"));\nvar _loggerProxy = _interopRequireDefault(require(\"../logs/logger-proxy\"));\nvar _loggerConfig = _interopRequireDefault(require(\"../logs/logger-config\"));\nvar _util = _interopRequireDefault(require(\"./util\"));\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * Events\n * plugin-meetings local\n * Used to emit events internally between modules specific to an object\n */\nvar EventsScope = exports.default = /*#__PURE__*/function (_ChildEmitter) {\n (0, _inherits2.default)(EventsScope, _ChildEmitter);\n var _super = _createSuper(EventsScope);\n function EventsScope() {\n (0, _classCallCheck2.default)(this, EventsScope);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(EventsScope, [{\n key: \"emit\",\n value:\n /**\n * Emits and logs an event\n * @param {*} scope\n * @param {*} eventName\n * @param {*} args\n * @returns {Function}\n */\n function emit(scope, eventName, args) {\n _loggerProxy.default.logger.debug(\"\".concat(_util.default.getScopeLog(scope), \"event#\").concat(eventName).concat(_loggerConfig.default.verboseEvents ? \" -- \".concat(_util.default.getEventLog(args)) : ''));\n return (0, _get2.default)((0, _getPrototypeOf2.default)(EventsScope.prototype), \"emit\", this).call(this, eventName, args);\n }\n }]);\n return EventsScope;\n}(_events.default);\n//# sourceMappingURL=events-scope.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _loggerProxy = _interopRequireDefault(require(\"../logs/logger-proxy\"));\nvar _loggerConfig = _interopRequireDefault(require(\"../logs/logger-config\"));\nvar _parameter = _interopRequireDefault(require(\"../errors/parameter\"));\nvar _util = _interopRequireDefault(require(\"./util\"));\nvar TriggerProxy = {};\nTriggerProxy.trigger = function (instance, scope, trigger, payload) {\n if (!instance || !instance.trigger) {\n throw new _parameter.default('Instance to trigger from must be defined and have a trigger function.');\n }\n _loggerProxy.default.logger.debug(\"\".concat(_util.default.getScopeLog(scope), \"event#\").concat(trigger).concat(_loggerConfig.default.verboseEvents ? \" -- \".concat(_util.default.getEventLog(payload)) : ''));\n return instance.trigger(trigger, payload);\n};\nvar _default = exports.default = TriggerProxy;\n//# sourceMappingURL=trigger-proxy.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _util = require(\"util\");\nvar _loggerProxy = _interopRequireDefault(require(\"../logs/logger-proxy\"));\nvar EventsUtil = {};\nEventsUtil.getEventLog = function (args) {\n var argString = '';\n try {\n argString = (0, _util.inspect)(args);\n } catch (e) {\n _loggerProxy.default.logger.warn(\"Events:util#getEventLog --> \".concat(e));\n }\n return argString;\n};\nEventsUtil.getScopeLog = function (scope) {\n var scopeString = '';\n if (scope) {\n if (scope.file && scope.function) {\n scopeString += \"\".concat(scope.file, \":\").concat(scope.function, \"->\");\n return scopeString;\n }\n if (scope.file) {\n scopeString += \"\".concat(scope.file, \"->\");\n }\n if (scope.function) {\n scopeString += \"\".concat(scope.function, \"->\");\n }\n }\n return scopeString;\n};\nvar _default = exports.default = EventsUtil;\n//# sourceMappingURL=util.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar LoggerConfig = {};\nLoggerConfig.set = function (options) {\n LoggerConfig.verboseEvents = options.verboseEvents;\n LoggerConfig.enable = options.enable;\n};\nvar _default = exports.default = LoggerConfig;\n//# sourceMappingURL=logger-config.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _loggerConfig = _interopRequireDefault(require(\"./logger-config\"));\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\nvar LoggerProxy = {\n logger: {\n info: function info(args) {\n console.error('LoggerProxy->info#NO LOGGER DEFINED');\n },\n log: function log(args) {\n console.error('LoggerProxy->log#NO LOGGER DEFINED');\n },\n error: function error(args) {\n console.error('LoggerProxy->error#NO LOGGER DEFINED');\n },\n warn: function warn(args) {\n console.error('LoggerProxy->warn#NO LOGGER DEFINED');\n },\n trace: function trace(args) {\n console.error('LoggerProxy->trace#NO LOGGER DEFINED');\n },\n debug: function debug(args) {\n console.error('LoggerProxy->debug#NO LOGGER DEFINED');\n }\n }\n};\nLoggerProxy.set = function (logger) {\n if (!_loggerConfig.default.enable) {\n LoggerProxy.logger = {\n info: function info() {},\n log: function log() {},\n error: function error() {},\n warn: function warn() {},\n trace: function trace() {},\n debug: function debug() {}\n };\n } else {\n LoggerProxy.logger = logger;\n }\n};\nLoggerProxy.get = function () {\n return LoggerProxy.logger;\n};\nvar _default = exports.default = LoggerProxy;\n//# sourceMappingURL=logger-proxy.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs2/regenerator\"));\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/asyncToGenerator\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _uuid = _interopRequireDefault(require(\"uuid\"));\nvar _loggerProxy = _interopRequireDefault(require(\"./logger-proxy\"));\n/**\n * @class LogsRequest\n */\nvar LogsRequest = exports.default = /*#__PURE__*/function () {\n /**\n *\n * @param {Object} options\n * @param {Object} options.webex Webex SDK instance\n * @param {ClientMetrics} metrics\n */\n function LogsRequest(options) {\n (0, _classCallCheck2.default)(this, LogsRequest);\n (0, _defineProperty2.default)(this, \"webex\", void 0);\n this.webex = options.webex;\n }\n\n /**\n * Uploads logs to the support server\n *\n * @param {Object} [options={}]\n * @param {String} [options.feedbackId=uuid.v4] ID used for tracking\n * @param {String} [options.locusId]\n * @param {String} [options.correlationId]\n * @param {String} [options.callStart] Call Start Time\n * @param {String} [options.meetingId] webex meeting ID\n * @returns {Promise.} Feedback ID\n * @memberof LogsRequest\n */\n (0, _createClass2.default)(LogsRequest, [{\n key: \"uploadLogs\",\n value: (function () {\n var _uploadLogs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var options,\n id,\n locusId,\n correlationId,\n meetingId,\n callStart,\n locussessionid,\n autoupload,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n options = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};\n id = options.feedbackId || _uuid.default.v4();\n locusId = options.locusId, correlationId = options.correlationId, meetingId = options.meetingId, callStart = options.callStart, locussessionid = options.locussessionid, autoupload = options.autoupload;\n _loggerProxy.default.logger.info(\"Logs:request#uploadLogs --> uploading user logs for feedbackId: \".concat(id));\n _context.prev = 4;\n _context.next = 7;\n return this.webex.internal.support.submitLogs({\n autoupload: autoupload,\n locussessionid: locussessionid,\n feedbackId: id,\n locusId: locusId,\n correlationId: correlationId,\n meetingId: meetingId,\n callStart: callStart\n });\n case 7:\n _context.next = 13;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](4);\n _loggerProxy.default.logger.error('Logs:request#uploadLogs --> uploading user logs failed', _context.t0);\n return _context.abrupt(\"return\", _promise.default.reject(_context.t0));\n case 13:\n return _context.abrupt(\"return\", id);\n case 14:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[4, 9]]);\n }));\n function uploadLogs() {\n return _uploadLogs.apply(this, arguments);\n }\n return uploadLogs;\n }())\n }]);\n return LogsRequest;\n}();\n//# sourceMappingURL=request.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\n/**\n * Simple queue in which the elements are always sorted\n */\nvar SortedQueue = exports.default = /*#__PURE__*/function () {\n /**\n * @constructs SortedQueue\n * @param {Function} compareFunc comparison function used for sorting the elements of the queue\n */\n function SortedQueue(compareFunc) {\n (0, _classCallCheck2.default)(this, SortedQueue);\n (0, _defineProperty2.default)(this, \"queue\", void 0);\n // returns -1 if left < right, 0 if left === right, +1 if left > right\n (0, _defineProperty2.default)(this, \"compareFunc\", void 0);\n this.queue = [];\n this.compareFunc = compareFunc;\n }\n\n /**\n * Removes all of the elements from queue.\n * @returns {undefined}\n */\n (0, _createClass2.default)(SortedQueue, [{\n key: \"clear\",\n value: function clear() {\n this.queue = [];\n }\n\n /**\n * Inserts the specified element into the queue.\n * @param {object} item\n * @returns {undefined}\n */\n }, {\n key: \"enqueue\",\n value: function enqueue(item) {\n var _this = this;\n // Find the index of the first item in the queue that's greater or equal to the new item.\n // That's where we want to insert the new item.\n var idx = this.queue.findIndex(function (existingItem) {\n return _this.compareFunc(existingItem, item) >= 0;\n });\n if (idx >= 0) {\n this.queue.splice(idx, 0, item);\n } else {\n this.queue.push(item);\n }\n }\n\n /**\n * Returns and removes the head of the queue.\n * Returns null if the queue is empty.\n * @returns {(object|null)} Queue item or null.\n */\n }, {\n key: \"dequeue\",\n value: function dequeue() {\n if (this.queue.length === 0) {\n return null;\n }\n return this.queue.shift();\n }\n\n /**\n * Returns the number of items in queue.\n * @returns {number}\n */\n }, {\n key: \"size\",\n value: function size() {\n return this.queue.length;\n }\n }]);\n return SortedQueue;\n}();\n//# sourceMappingURL=queue.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _common = require(\"@webex/common\");\n// @ts-ignore\nvar _default = exports.default = {\n // TODO: this needs to be defaulted\n // to JS_SDK and clients set it to WEB or others\n // see https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-73167\n meetings: {\n deviceType: _common.deviceType.WEB,\n mediaSettings: {\n pstn: false\n },\n reconnection: {\n enabled: false,\n autoRejoin: true,\n detection: true,\n // Timeout duration to wait for ICE to reconnect if a disconnect is received.\n iceReconnectionTimeout: 10000,\n // Amount of times attempting to rejoin a meeting during reconnect\n maxRejoinAttempts: 3\n },\n stats: {\n // Enable the webrtc stats analyzer that emits quality degradation events\n enableStatsAnalyzer: true,\n // Enable the auto downgrade video quality feature\n autoDowngradeEnabled: false,\n // 1 second intervals to collect stats data\n interval: 1000,\n // we just want to analyze data every 5 sec interval\n analyzerInterval: 5000,\n // hold the last 2 minute of a calls data\n historyMax: 120,\n // Once packet loss hits this ratio, the video will downgrade\n videoPacketLossRatioThreshold: 9,\n // comparison of packets lost / packets received\n rttThreshold: 500,\n // 500 ms noticeable quality lag begins based on bandwidth of user\n jitterThreshold: 500 // 500 ms noticeable quality lag begins based on bandwidth of user\n },\n\n metrics: {\n // change to your client name else data will be muddled\n // you do not need a specific format, and you do not need to register it\n clientName: 'WEBEX_JS_SDK',\n // TODO: for now this line has to be whitelisted, which is problematic for third party\n clientType: 'WEBEX_SDK',\n // Stores the sub client type used when sending metrics\n subClientType: 'WEB_APP',\n // send average values MQA in 60 second intervals\n mqaMetricsInterval: 60000,\n // send to cisco internal MQA data automatically\n // we already send CA\n autoSendMQA: true\n },\n logging: {\n enable: true,\n verboseEvents: true\n },\n resolution: {\n maxWidth: 1280,\n maxHeight: 720,\n idealWidth: 1280,\n idealHeight: 720\n },\n screenResolution: {\n maxWidth: 1920,\n maxHeight: 1080,\n idealWidth: 1920,\n idealHeight: 1080\n },\n bandwidth: {\n // please note, these are the maximum bandwidth values\n // the server supports, minimums have to be tested\n audio: 64000,\n video: 4000000,\n startBitrate: 2000\n },\n screenFrameRate: 10,\n videoShareFrameRate: 30,\n aspectRatio: 1.7695852534562213,\n // When enabled, as calls are ended, it will upload the SDK logs and correlate them\n autoUploadLogs: true,\n enableRtx: true,\n receiveTranscription: false,\n enableExtmap: false,\n enableAutomaticLLM: false,\n installedOrgID: undefined,\n experimental: {\n enableMediaNegotiatedEvent: false,\n enableUnifiedMeetings: true,\n enableAdhocMeetings: true,\n enableTcpReachability: false,\n enableTlsReachability: false\n },\n degradationPreferences: {\n maxMacroblocksLimit: 8192\n },\n // This only applies to non-multistream meetings\n iceCandidatesGatheringTimeout: undefined,\n backendIpv6NativeSupport: false,\n reachabilityGetClusterTimeout: 5000,\n logUploadIntervalMultiplicationFactor: 0 // if set to 0 or undefined, logs won't be uploaded periodically, if you want periodic logs, recommended value is 1\n }\n};\n//# sourceMappingURL=config.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NAMED_MEDIA_GROUP_TYPE_AUDIO = exports.MediaContent = exports.MQA_STATS = exports.MQA_INTERVAL = exports.MODERATOR_TRUE = exports.MODERATOR_FALSE = exports.MEET_M = exports.MEET_CO = exports.MEET_CISCO = exports.MEETING_VIDEO_STATE_MACHINE = exports.MEETING_STATE_MACHINE = exports.MEETING_STATE = exports.MEETING_REMOVED_REASON = exports.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = exports.MEETING_PERMISSION_TOKEN_REFRESH_REASON = exports.MEETING_INFO_FAILURE_REASON = exports.MEETING_ERRORS = exports.MEETING_END_REASON = exports.MEETING_AUDIO_STATE_MACHINE = exports.MEETINGS = exports.MEETINGNUMBER = exports.MEETINGINFO = exports.MEET = exports.MEDIA_TRACK_CONSTRAINT = exports.MEDIA_STATE = exports.MEDIA_PEER_CONNECTION_NAME = exports.MEDIA_DEVICES = exports.MEDIA = exports.MAX_RANDOM_DELAY_FOR_MEETING_INFO = exports.LOCUS_URL = exports.LOCUSINFO = exports.LOCUSEVENT = exports.LOCUS = exports.LOCI = exports.LOCAL_SHARE_ERRORS = exports.LOCAL = exports.LIVE = exports.LEAVE = exports.LAYOUT_TYPES = exports.LANGUAGE_ENGLISH = exports.JOIN = exports.IP_VERSION = exports.IPV4_REGEX = exports.INTERSTITIAL_DISPLAY_HINTS = exports.INTERPRETATION = exports.INTENT_TO_JOIN = exports.ICE_TIMEOUT = exports.ICE_STATE = exports.ICE_GATHERING_STATE = exports.ICE_FAIL_TIMEOUT = exports.ICE_AND_DTLS_CONNECTION_TIMEOUT = exports.HTTP_VERBS = exports.HTTPS_PROTOCOL = exports.HOST = exports.HECATE = exports.HEADERS = exports.GATHERING = exports.FULL_STATE = exports.FLOOR_ACTION = exports.EVENT_TYPES = exports.EVENT_TRIGGERS = exports.EVENTS = exports.ERROR_DICTIONARY = exports.ERROR = exports.ENDED = exports.END = exports.EMBEDDED_APP_TYPES = exports.DISPLAY_HINTS = exports.DIALER_REGEX = exports.DEVELOPMENT = exports.DESTINATION_TYPE = exports.DEFAULT_MEETING_INFO_REQUEST_BODY = exports.DEFAULT_EXCLUDED_STATS = exports.DECLINE = exports.CORRELATION_ID = exports.CONVERSATION_URL = exports.CONVERSATION_SERVICE = exports.CONTROLS = exports.CONTENT = exports.CONNECTION_STATE = exports.COMPLETE = exports.CMR_MEETINGS = exports.CLAIM = exports.CALL_REMOVED_REASON = exports.CALL = exports.CALENDAR_EVENTS_API = exports.CALENDAR_EVENTS = exports.CALENDAR = exports.BREAKOUTS = exports.BNR_STATUS = exports.AVAILABLE_RESOLUTIONS = exports.AUDIO_STATUS = exports.AUDIO = exports.ASSIGN_ROLES_ERROR_CODES = exports.API = exports.ANSWER = exports.ANNOTATION = exports.ALTERNATE_REDIRECT_TRUE = exports.ALIAS = exports.ALERT = void 0;\nexports._WEBEX_MEETING_ = exports._WAIT_ = exports._USER_ = exports._UNKNOWN_ = exports._S_LINE = exports._SLIDES_ = exports._SIP_URI_ = exports._SIP_BRIDGE_ = exports._SEND_RECEIVE_ = exports._SEND_ONLY_ = exports._ROOM_ = exports._RESOURCE_ROOM_ = exports._REQUESTED_ = exports._REMOVE_ = exports._RECEIVE_ONLY_ = exports._PERSONAL_ROOM_ = exports._PEOPLE_ = exports._ON_HOLD_LOBBY_ = exports._OBSERVE_ = exports._NOT_IN_MEETING_ = exports._NONE_ = exports._MOVE_MEDIA_ = exports._MOVED_ = exports._MEETING_UUID_ = exports._MEETING_LINK_ = exports._MEETING_ID_ = exports._MEETING_CENTER_ = exports._MEETING_ = exports._LOCUS_ID_ = exports._LEFT_ = exports._JOIN_ = exports._JOINED_ = exports._IN_MEETING_ = exports._IN_LOBBY_ = exports._IN_ = exports._INCOMING_ = exports._INACTIVE_ = exports._ID_ = exports._IDLE_ = exports._FORCED_ = exports._ERROR_ = exports._CREATED_ = exports._CONVERSATION_URL_ = exports._CONFLICT_ = exports._CALL_ = exports._ANSWER_ = exports._ACTIVE_ = exports.WWW_DOT = exports.WHITEBOARD = exports.WEBINAR_ERROR_WEBCAST = exports.WEBINAR_ERROR_REGISTRATIONID = exports.WEBEX_DOT_COM = exports.WBXAPPAPI_SERVICE = exports.VIDEO_STATUS = exports.VIDEO = exports.VALID_PMR_LINK = exports.VALID_PMR_ADDRESS = exports.VALID_PIN = exports.VALID_EMAIL_ADDRESS = exports.UUID_REG = exports.USE_URI_LOOKUP_FALSE = exports.TYPE = exports.STATS = exports.SIP_URI = exports.SHARE_STOPPED_REASON = exports.SHARE_STATUS = exports.SHARE_PEER_CONNECTION_NAME = exports.SHARE = exports.SEND_DTMF_ENDPOINT = exports.SENDRECV = exports.SELF_ROLES = exports.SELF_POLICY = exports.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = exports.ROAP = exports.RETRY_TIMEOUT = exports.RESOURCE = exports.REMOTE = exports.RECORDING_STATE = exports.RECONNECTION = exports.READY = exports.REACHABILITY = exports.QUALITY_LEVELS = exports.PSTN_STATUS = exports.PROVISIONAL_TYPE_DIAL_OUT = exports.PROVISIONAL_TYPE_DIAL_IN = exports.PEER_CONNECTION_STATE = exports.PASSWORD_STATUS = exports.PARTICIPANT_DELTAS = exports.PARTICIPANT = exports.ONLINE = exports.OFFLINE = exports.NETWORK_TYPE = exports.NETWORK_STATUS = void 0;\nvar _common = require(\"@webex/common\");\n// @ts-ignore\n\n// *********** LOWERCASE / CAMELCASE STRINGS ************\n\nvar AUDIO = exports.AUDIO = 'audio';\nvar AUDIO_STATUS = exports.AUDIO_STATUS = 'audioStatus';\nvar ALERT = exports.ALERT = 'alert';\nvar ALIAS = exports.ALIAS = 'alias';\nvar ANSWER = exports.ANSWER = 'answer';\nvar CALL = exports.CALL = 'call';\nvar CORRELATION_ID = exports.CORRELATION_ID = 'correlationId';\nvar MEETINGNUMBER = exports.MEETINGNUMBER = 'meetingNumber';\nvar CONVERSATION_URL = exports.CONVERSATION_URL = 'conversationUrl';\nvar CALENDAR = exports.CALENDAR = 'calendar';\nvar CALENDAR_EVENTS_API = exports.CALENDAR_EVENTS_API = 'calendarEvents';\nvar CMR_MEETINGS = exports.CMR_MEETINGS = 'cmrmeetings';\nvar CLAIM = exports.CLAIM = 'claim';\nvar CONTROLS = exports.CONTROLS = 'controls';\nvar CONTENT = exports.CONTENT = 'content';\nvar COMPLETE = exports.COMPLETE = 'complete';\nvar WHITEBOARD = exports.WHITEBOARD = 'whiteboard';\nvar GATHERING = exports.GATHERING = 'gathering';\nvar DEVELOPMENT = exports.DEVELOPMENT = 'development';\nvar DECLINE = exports.DECLINE = 'decline';\nvar ERROR = exports.ERROR = 'error';\nvar ENDED = exports.ENDED = 'ended';\nvar HECATE = exports.HECATE = 'hecate';\nvar HOST = exports.HOST = 'host';\nvar JOIN = exports.JOIN = 'join';\nvar LEAVE = exports.LEAVE = 'leave';\nvar LIVE = exports.LIVE = 'live';\nvar LOCAL = exports.LOCAL = 'local';\nvar LOCI = exports.LOCI = 'loci';\nvar LOCUS_URL = exports.LOCUS_URL = 'locusUrl';\nvar END = exports.END = 'end';\nvar MAX_RANDOM_DELAY_FOR_MEETING_INFO = exports.MAX_RANDOM_DELAY_FOR_MEETING_INFO = 3 * 60 * 1000;\nvar MEETINGINFO = exports.MEETINGINFO = 'meetingInfo';\nvar MEET = exports.MEET = 'meet';\nvar MEET_M = exports.MEET_M = 'm';\nvar MEDIA = exports.MEDIA = 'media';\nvar MEET_CO = exports.MEET_CO = 'co';\nvar MEET_CISCO = exports.MEET_CISCO = 'cisco';\nvar OFFLINE = exports.OFFLINE = 'offline';\nvar ONLINE = exports.ONLINE = 'online';\nvar PARTICIPANT = exports.PARTICIPANT = 'participant';\nvar PROVISIONAL_TYPE_DIAL_IN = exports.PROVISIONAL_TYPE_DIAL_IN = 'DIAL_IN';\nvar PROVISIONAL_TYPE_DIAL_OUT = exports.PROVISIONAL_TYPE_DIAL_OUT = 'DIAL_OUT';\nvar REMOTE = exports.REMOTE = 'remote';\nvar READY = exports.READY = 'ready';\nvar SEND_DTMF_ENDPOINT = exports.SEND_DTMF_ENDPOINT = 'sendDtmf';\nvar SENDRECV = exports.SENDRECV = 'sendrecv';\nvar SIP_URI = exports.SIP_URI = 'sipUri';\nvar SHARE = exports.SHARE = 'share';\nvar TYPE = exports.TYPE = 'type';\nvar VIDEO = exports.VIDEO = 'video';\nvar VIDEO_STATUS = exports.VIDEO_STATUS = 'videoStatus';\nvar LANGUAGE_ENGLISH = exports.LANGUAGE_ENGLISH = 'en';\n\n// *********** UPPERCASE ONLY STRINGS ************\n// Please alphabetize\nvar _ANSWER_ = exports._ANSWER_ = 'ANSWER';\nvar _ACTIVE_ = exports._ACTIVE_ = 'ACTIVE';\nvar _CALL_ = exports._CALL_ = 'CALL';\nvar _CREATED_ = exports._CREATED_ = 'CREATED';\nvar _CONFLICT_ = exports._CONFLICT_ = 'CONFLICT';\nvar _CONVERSATION_URL_ = exports._CONVERSATION_URL_ = 'CONVERSATION_URL';\nvar _ERROR_ = exports._ERROR_ = 'ERROR';\nvar _FORCED_ = exports._FORCED_ = 'FORCED';\nvar _IDLE_ = exports._IDLE_ = 'IDLE';\nvar _IN_LOBBY_ = exports._IN_LOBBY_ = 'IN_LOBBY';\nvar _IN_MEETING_ = exports._IN_MEETING_ = 'IN_MEETING';\nvar _INCOMING_ = exports._INCOMING_ = 'INCOMING';\nvar _IN_ = exports._IN_ = 'IN';\nvar _ID_ = exports._ID_ = 'id';\nvar _JOIN_ = exports._JOIN_ = 'JOIN';\nvar _JOINED_ = exports._JOINED_ = 'JOINED';\nvar _LOCUS_ID_ = exports._LOCUS_ID_ = 'LOCUS_ID';\nvar _LEFT_ = exports._LEFT_ = 'LEFT';\nvar _MOVED_ = exports._MOVED_ = 'MOVED';\nvar _ON_HOLD_LOBBY_ = exports._ON_HOLD_LOBBY_ = 'ON_HOLD_LOBBY';\nvar _MEETING_LINK_ = exports._MEETING_LINK_ = 'MEETING_LINK';\nvar _MEETING_UUID_ = exports._MEETING_UUID_ = 'MEETING_UUID';\nvar _MEETING_ = exports._MEETING_ = 'MEETING';\nvar _MEETING_CENTER_ = exports._MEETING_CENTER_ = 'MEETING_CENTER';\nvar _MEETING_ID_ = exports._MEETING_ID_ = 'MEETING_ID';\nvar _NOT_IN_MEETING_ = exports._NOT_IN_MEETING_ = 'NOT_IN_MEETING';\nvar _NONE_ = exports._NONE_ = 'NONE';\nvar _OBSERVE_ = exports._OBSERVE_ = 'OBSERVE';\nvar _PERSONAL_ROOM_ = exports._PERSONAL_ROOM_ = 'PERSONAL_ROOM';\nvar _PEOPLE_ = exports._PEOPLE_ = _common.hydraTypes.PEOPLE;\nvar _REQUESTED_ = exports._REQUESTED_ = 'REQUESTED';\nvar _RESOURCE_ROOM_ = exports._RESOURCE_ROOM_ = 'RESOURCE_ROOM';\nvar _RECEIVE_ONLY_ = exports._RECEIVE_ONLY_ = 'RECVONLY';\nvar _REMOVE_ = exports._REMOVE_ = 'REMOVE';\nvar _ROOM_ = exports._ROOM_ = _common.hydraTypes.ROOM;\nvar _SIP_BRIDGE_ = exports._SIP_BRIDGE_ = 'SIP_BRIDGE';\nvar _SIP_URI_ = exports._SIP_URI_ = 'SIP_URI';\nvar _SEND_RECEIVE_ = exports._SEND_RECEIVE_ = 'SENDRECV';\nvar _SEND_ONLY_ = exports._SEND_ONLY_ = 'SENDONLY';\nvar _INACTIVE_ = exports._INACTIVE_ = 'INACTIVE';\nvar _SLIDES_ = exports._SLIDES_ = 'SLIDES';\nvar _S_LINE = exports._S_LINE = 's=-';\nvar _USER_ = exports._USER_ = 'USER';\nvar _UNKNOWN_ = exports._UNKNOWN_ = 'UNKNOWN';\nvar _WEBEX_MEETING_ = exports._WEBEX_MEETING_ = 'WEBEX_MEETING';\nvar _WAIT_ = exports._WAIT_ = 'WAIT';\nvar _MOVE_MEDIA_ = exports._MOVE_MEDIA_ = 'MOVE_MEDIA';\n\n// *********** PARTICIPANT DELTAS ***********\nvar PARTICIPANT_DELTAS = exports.PARTICIPANT_DELTAS = {\n TARGETS: {\n AUDIO: 'audio',\n VIDEO: 'video'\n },\n STATES: {\n DISABLED: 'disabled',\n MUTED: 'muted',\n UNKNOWN: 'unknown',\n UNMUTED: 'unmuted'\n }\n};\n\n// *********** STRING HELPERS ***********\n// Please alphabetize\nvar ALTERNATE_REDIRECT_TRUE = exports.ALTERNATE_REDIRECT_TRUE = 'alternateRedirect=true';\nvar HTTPS_PROTOCOL = exports.HTTPS_PROTOCOL = 'https://';\nvar MEETINGS = exports.MEETINGS = 'Meetings';\nvar MEDIA_PEER_CONNECTION_NAME = exports.MEDIA_PEER_CONNECTION_NAME = 'MediaPeerConnection';\nvar SHARE_PEER_CONNECTION_NAME = exports.SHARE_PEER_CONNECTION_NAME = 'SharePeerConnection';\nvar USE_URI_LOOKUP_FALSE = exports.USE_URI_LOOKUP_FALSE = 'useUriLookup=false';\nvar WWW_DOT = exports.WWW_DOT = 'www.';\nvar WEBEX_DOT_COM = exports.WEBEX_DOT_COM = 'webex.com';\nvar CONVERSATION_SERVICE = exports.CONVERSATION_SERVICE = 'identityLookup';\nvar WBXAPPAPI_SERVICE = exports.WBXAPPAPI_SERVICE = 'webex-appapi-service';\n\n// ******************* ARRAYS ********************\n// Please alphabetize\nvar DEFAULT_EXCLUDED_STATS = exports.DEFAULT_EXCLUDED_STATS = ['timestamp', 'ssrc', 'priority'];\n\n/**\n * @description @description Layout type for remote video participants. Allowed values are: Single, Equal, ActivePresence, Prominent, OnePlusN\n * @type {array}\n * @constant\n */\nvar LAYOUT_TYPES = exports.LAYOUT_TYPES = ['Single', 'Equal', 'ActivePresence', 'Prominent', 'OnePlusN'];\n\n// ******************* BOOLEANS *******************\n// Please alphabetize\nvar MODERATOR_TRUE = exports.MODERATOR_TRUE = true;\nvar MODERATOR_FALSE = exports.MODERATOR_FALSE = false;\n\n// ******************** NUMBERS ********************\n\nvar INTENT_TO_JOIN = exports.INTENT_TO_JOIN = [2423005, 2423006, 2423016, 2423017, 2423018];\nvar ICE_TIMEOUT = exports.ICE_TIMEOUT = 2000;\nvar ICE_FAIL_TIMEOUT = exports.ICE_FAIL_TIMEOUT = 3000;\nvar RETRY_TIMEOUT = exports.RETRY_TIMEOUT = 3000;\nvar ICE_AND_DTLS_CONNECTION_TIMEOUT = exports.ICE_AND_DTLS_CONNECTION_TIMEOUT = 20000;\nvar ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = exports.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = 35000;\nvar WEBINAR_ERROR_WEBCAST = exports.WEBINAR_ERROR_WEBCAST = [403026];\nvar WEBINAR_ERROR_REGISTRATIONID = exports.WEBINAR_ERROR_REGISTRATIONID = [403037, 403137];\n\n// ******************** REGEX **********************\n// Please alphabetize\nvar DIALER_REGEX = exports.DIALER_REGEX = {\n // modified from https://github.com/kirm/sip.js base\n // and with https://tools.ietf.org/html/rfc3261\n // requires the @ symbol\n SIP_ADDRESS: /^(sips?)?:?(?:([^\\s>:@]+)(?::([^\\s@>]+))?@)([\\w\\-.]+)(?::(\\d+))?((?:;[^\\s=?>;]+(?:=[^\\s?;]+)?)*)(?:\\?(([^\\s&=>]+=[^\\s&=>]+)(&[^\\s&=>]+=[^\\s&=>]+)*))?$/,\n // standard telephony num regex\n PHONE_NUMBER: /^(?:(?:\\+?1\\s*(?:[.-]\\s*)?)?(?:\\(\\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\\s*\\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\\s*(?:[.-]\\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\\s*(?:[.-]\\s*)?([0-9]{4})(?:\\s*(?:#|x\\.?|ext\\.?|extension)\\s*(\\d+))?$/,\n E164_FORMAT: /^\\+[1-9]\\d{1,14}$/\n};\n\n// eslint-disable-next-line max-len\nvar IPV4_REGEX = exports.IPV4_REGEX = /^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}|.local/g;\nvar VALID_EMAIL_ADDRESS = exports.VALID_EMAIL_ADDRESS = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\nvar VALID_PMR_ADDRESS = exports.VALID_PMR_ADDRESS = /([a-z0-9][-a-z0-9, '.']{0,62})@([a-z0-9][-a-z0-9, '.']{0,62})\\.webex\\.com/i;\nvar VALID_PMR_LINK = exports.VALID_PMR_LINK = /(https:\\/\\/)?([a-z0-9][-a-z0-9, '.']{0,62})\\.webex\\.com\\/(meet|join)\\/([a-z0-9][-a-z0-9, '.']{0,62})\\/?/i;\nvar VALID_PIN = exports.VALID_PIN = /([0-9]{4,6})/;\nvar UUID_REG = exports.UUID_REG = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n\n// ******************** OBJECTS ********************\n// Please alphabetize, and keep objects organized\n\n// TODO: move all api params to API section\nvar API = exports.API = {\n CALLIOPEDISCOVERY: 'calliopeDiscovery',\n LOCUS: 'locus'\n};\nvar CALENDAR_EVENTS = exports.CALENDAR_EVENTS = {\n CREATE: 'event:calendar.meeting.create',\n UPDATE: 'event:calendar.meeting.update',\n CREATE_MINIMAL: 'event:calendar.meeting.create.minimal',\n UPDATE_MINIMAL: 'event:calendar.meeting.update.minimal',\n DELETE: 'event:calendar.meeting.delete'\n};\nvar ASSIGN_ROLES_ERROR_CODES = exports.ASSIGN_ROLES_ERROR_CODES = {\n ReclaimHostNotSupportedErrorCode: 2400127,\n ReclaimHostNotAllowedErrorCode: 2403135,\n ReclaimHostEmptyWrongKeyErrorCode: 2403136,\n ReclaimHostIsHostAlreadyErrorCode: 2409150\n};\nvar RECORDING_STATE = exports.RECORDING_STATE = {\n RECORDING: 'recording',\n IDLE: 'idle',\n PAUSED: 'paused',\n RESUMED: 'resumed'\n};\nvar SHARE_STATUS = exports.SHARE_STATUS = {\n NO_SHARE: 'no_share',\n REMOTE_SHARE_ACTIVE: 'remote_share_active',\n LOCAL_SHARE_ACTIVE: 'local_share_active',\n WHITEBOARD_SHARE_ACTIVE: 'whiteboard_share_active'\n};\n\n// TODO: do we want to scope by meeting, members when they come off those objects themselves?\nvar EVENT_TRIGGERS = exports.EVENT_TRIGGERS = {\n MEETINGS_READY: 'meetings:ready',\n MEETINGS_REGISTERED: 'meetings:registered',\n MEETINGS_UNREGISTERED: 'meetings:unregistered',\n MEDIA_READY: 'media:ready',\n MEDIA_STOPPED: 'media:stopped',\n MEDIA_UPDATE: 'media:update',\n MEDIA_CODEC_MISSING: 'media:codec:missing',\n MEDIA_CODEC_LOADED: 'media:codec:loaded',\n MEETING_STARTED_SHARING_LOCAL: 'meeting:startedSharingLocal',\n MEETING_STOPPED_SHARING_LOCAL: 'meeting:stoppedSharingLocal',\n MEETING_STARTED_SHARING_REMOTE: 'meeting:startedSharingRemote',\n MEETING_STOPPED_SHARING_REMOTE: 'meeting:stoppedSharingRemote',\n MEETING_UPDATE_ANNOTATION_INFO: 'meeting:updateAnnotationInfo',\n MEETING_STARTED_SHARING_WHITEBOARD: 'meeting:startedSharingWhiteboard',\n MEETING_STOPPED_SHARING_WHITEBOARD: 'meeting:stoppedSharingWhiteboard',\n MEETING_MEDIA_LOCAL_STARTED: 'meeting:media:local:start',\n MEETING_MEDIA_REMOTE_STARTED: 'meeting:media:remote:start',\n MEETING_STARTED_RECORDING: 'meeting:recording:started',\n MEETING_STOPPED_RECORDING: 'meeting:recording:stopped',\n MEETING_RECEIVE_REACTIONS: 'meeting:receiveReactions',\n MEETING_PAUSED_RECORDING: 'meeting:recording:paused',\n MEETING_RESUMED_RECORDING: 'meeting:recording:resumed',\n MEETING_ADDED: 'meeting:added',\n MEETING_REMOVED: 'meeting:removed',\n MEETING_RINGING: 'meeting:ringing',\n MEETING_RINGING_STOP: 'meeting:ringingStop',\n MEETING_SELF_LOBBY_WAITING: 'meeting:self:lobbyWaiting',\n MEETING_SELF_GUEST_ADMITTED: 'meeting:self:guestAdmitted',\n MEETING_SELF_VIDEO_MUTED_BY_OTHERS: 'meeting:self:videoMutedByOthers',\n MEETING_SELF_VIDEO_UNMUTED_BY_OTHERS: 'meeting:self:videoUnmutedByOthers',\n MEETING_SELF_MUTED_BY_OTHERS: 'meeting:self:mutedByOthers',\n MEETING_SELF_UNMUTED_BY_OTHERS: 'meeting:self:unmutedByOthers',\n MEETING_SELF_REQUESTED_TO_UNMUTE: 'meeting:self:requestedToUnmute',\n MEETING_SELF_PHONE_AUDIO_UPDATE: 'meeting:self:phoneAudioUpdate',\n MEETING_SELF_CANNOT_VIEW_PARTICIPANT_LIST: 'meeting:self:cannotViewParticipantList',\n MEETING_SELF_IS_SHARING_BLOCKED: 'meeting:self:isSharingBlocked',\n MEETING_SELF_ROLES_CHANGED: 'meeting:self:rolesChanged',\n MEETING_SELF_BRB_UPDATE: 'meeting:self:brbUpdate',\n MEETING_CONTROLS_LAYOUT_UPDATE: 'meeting:layout:update',\n MEETING_ENTRY_EXIT_TONE_UPDATE: 'meeting:entryExitTone:update',\n MEETING_BREAKOUTS_UPDATE: 'meeting:breakouts:update',\n MEETING_BREAKOUTS_CLOSING: 'meeting:breakouts:closing',\n MEETING_BREAKOUTS_MESSAGE: 'meeting:breakouts:message',\n MEETING_BREAKOUTS_ASK_RETURN_TO_MAIN: 'meeting:breakouts:askReturnToMain',\n MEETING_BREAKOUTS_LEAVE: 'meeting:breakouts:leave',\n MEETING_BREAKOUTS_ASK_FOR_HELP: 'meeting:breakouts:askForHelp',\n MEETING_BREAKOUTS_PRE_ASSIGNMENTS_UPDATE: 'meeting:breakouts:preAssignmentsUpdate',\n MEETING_INTERPRETATION_UPDATE: 'meeting:interpretation:update',\n MEETING_INTERPRETATION_SUPPORT_LANGUAGES_UPDATE: 'meeting:interpretation:supportLanguagesUpdate',\n MEETING_INTERPRETATION_HANDOFF_REQUESTS_ARRIVED: 'meeting:interpretation:handoffRequestsArrived',\n MEMBERS_UPDATE: 'members:update',\n MEMBERS_CLEAR: 'members:clear',\n MEMBERS_CONTENT_UPDATE: 'members:content:update',\n MEMBERS_HOST_UPDATE: 'members:host:update',\n MEMBERS_SELF_UPDATE: 'members:self:update',\n MEETING_RECONNECTION_STARTING: 'meeting:reconnectionStarting',\n MEETING_RECONNECTION_SUCCESS: 'meeting:reconnectionSuccess',\n MEETING_RECONNECTION_FAILURE: 'meeting:reconnectionFailure',\n MEETING_UNLOCKED: 'meeting:unlocked',\n MEETING_LOCKED: 'meeting:locked',\n MEETING_RESOURCE_LINKS_UPDATE: 'meeting:resourceLinks:update',\n MEETING_INFO_AVAILABLE: 'meeting:meetingInfoAvailable',\n MEETING_INFO_UPDATED: 'meeting:meetingInfoUpdated',\n MEETING_LOG_UPLOAD_SUCCESS: 'meeting:logUpload:success',\n MEETING_LOG_UPLOAD_FAILURE: 'meeting:logUpload:failure',\n MEETING_ACTIONS_UPDATE: 'meeting:actionsUpdate',\n MEETING_STATE_CHANGE: 'meeting:stateChange',\n MEETING_MEETING_CONTAINER_UPDATE: 'meeting:meetingContainer:update',\n MEETING_EMBEDDED_APPS_UPDATE: 'meeting:embeddedApps:update',\n MEDIA_QUALITY: 'media:quality',\n MEETINGS_NETWORK_DISCONNECTED: 'network:disconnected',\n MEETINGS_NETWORK_CONNECTED: 'network:connected',\n MEETING_SELF_LEFT: 'meeting:self:left',\n NETWORK_QUALITY: 'network:quality',\n MEDIA_NEGOTIATED: 'media:negotiated',\n // the following events apply only to multistream media connections\n ACTIVE_SPEAKER_CHANGED: 'media:activeSpeakerChanged',\n REMOTE_VIDEO_SOURCE_COUNT_CHANGED: 'media:remoteVideoSourceCountChanged',\n REMOTE_AUDIO_SOURCE_COUNT_CHANGED: 'media:remoteAudioSourceCountChanged',\n REMOTE_MEDIA_AUDIO_CREATED: 'media:remoteAudio:created',\n REMOTE_MEDIA_INTERPRETATION_AUDIO_CREATED: 'media:remoteInterpretationAudio:created',\n REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED: 'media:remoteScreenShareAudio:created',\n REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED: 'media:remoteVideo:layoutChanged',\n // Controls\n MEETING_CONTROLS_MUTE_ON_ENTRY_UPDATED: 'meeting:controls:mute-on-entry:updated',\n MEETING_CONTROLS_SHARE_CONTROL_UPDATED: 'meeting:controls:share-control:updated',\n MEETING_CONTROLS_DISALLOW_UNMUTE_UPDATED: 'meeting:controls:disallow-unmute:updated',\n MEETING_CONTROLS_REACTIONS_UPDATED: 'meeting:controls:reactions:updated',\n MEETING_CONTROLS_VIEW_THE_PARTICIPANTS_LIST_UPDATED: 'meeting:controls:view-the-participants-list:updated',\n MEETING_CONTROLS_RAISE_HAND_UPDATED: 'meeting:controls:raise-hand:updated',\n MEETING_CONTROLS_VIDEO_UPDATED: 'meeting:controls:video:updated',\n MEETING_CONTROLS_STAGE_VIEW_UPDATED: 'meeting:controls:stage-view:updated',\n MEETING_CONTROLS_WEBCAST_UPDATED: 'meeting:controls:webcast:updated',\n MEETING_CONTROLS_MEETING_FULL_UPDATED: 'meeting:controls:meeting-full:updated',\n MEETING_CONTROLS_PRACTICE_SESSION_STATUS_UPDATED: 'meeting:controls:practice-session-status:updated',\n // Locus URL changed\n MEETING_LOCUS_URL_UPDATE: 'meeting:locus:locusUrl:update',\n MEETING_STREAM_PUBLISH_STATE_CHANGED: 'meeting:streamPublishStateChanged',\n MEETING_TRANSCRIPTION_CONNECTED: 'meeting:transcription:connected',\n MEETING_STARTED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:started',\n MEETING_STOPPED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:stopped',\n MEETING_MANUAL_CAPTION_UPDATED: 'meeting:manualCaptionControl:updated',\n MEETING_CAPTION_RECEIVED: 'meeting:caption-received'\n};\nvar EVENT_TYPES = exports.EVENT_TYPES = {\n SELF: 'self',\n OTHER: 'other',\n REMOTE: 'remote',\n REMOTE_AUDIO: 'remoteAudio',\n REMOTE_VIDEO: 'remoteVideo',\n REMOTE_SHARE: 'remoteShare',\n REMOTE_SHARE_AUDIO: 'remoteShareAudio',\n ERROR: 'error'\n};\nvar HEADERS = exports.HEADERS = {\n CONTENT_TYPE: 'Content-Type',\n CONTENT_TYPE_VALUE: {\n APPLICATION_JSON: 'application/json'\n }\n};\n\n// Handles the reason when meeting gets destroyed\n// host removed you from the meeting\n// You are the host and you left the meeting\n// Meeting actually ended\nvar MEETING_REMOVED_REASON = exports.MEETING_REMOVED_REASON = {\n SELF_REMOVED: 'SELF_REMOVED',\n // server or host removed you from the meeting\n FULLSTATE_REMOVED: 'FULLSTATE_REMOVED',\n // meeting got dropped ? not sure\n MEETING_INACTIVE_TERMINATING: 'MEETING_INACTIVE_TERMINATING',\n // Meeting got ended or everyone left the meeting\n CLIENT_LEAVE_REQUEST: 'CLIENT_LEAVE_REQUEST',\n // You triggered leave meeting\n CLIENT_LEAVE_REQUEST_TAB_CLOSED: 'CLIENT_LEAVE_REQUEST_TAB_CLOSED',\n // You triggered leave meeting, such as closing the browser tab directly\n USER_ENDED_SHARE_STREAMS: 'USER_ENDED_SHARE_STREAMS',\n // user triggered stop share\n NO_MEETINGS_TO_SYNC: 'NO_MEETINGS_TO_SYNC',\n // After the syncMeeting no meeting exists\n MEETING_CONNECTION_FAILED: 'MEETING_CONNECTION_FAILED',\n // meeting failed to connect due to ice failures or firewall issue\n LOCUS_DTO_SYNC_FAILED: 'LOCUS_DTO_SYNC_FAILED',\n // failed to get any Locus DTO for that meeting\n MISSING_MEETING_INFO: 'MISSING_MEETING_INFO' // meeting info failed to be fetched\n};\n\n// One one one calls ends for the following reasons\n// Partner reject the call or ends the call\n// self cancel or end the ongoing call\nvar CALL_REMOVED_REASON = exports.CALL_REMOVED_REASON = {\n CALL_INACTIVE: 'CALL_INACTIVE',\n // partner and you leave the call\n PARTNER_LEFT: 'PARTNER_LEFT',\n // partner left the call\n SELF_LEFT: 'SELF_LEFT' // you left/declined the call\n};\n\nvar SHARE_STOPPED_REASON = exports.SHARE_STOPPED_REASON = {\n SELF_STOPPED: 'SELF_STOPPED',\n MEETING_REJOIN: 'MEETING_REJOIN',\n MEDIA_RECONNECTION: 'MEDIA_RECONNECTION',\n TRACK_ENDED: 'TRACK_ENDED'\n};\nvar EVENTS = exports.EVENTS = {\n SELF_UNADMITTED_GUEST: 'SELF_UNADMITTED_GUEST',\n SELF_ADMITTED_GUEST: 'SELF_ADMITTED_GUEST',\n MEDIA_INACTIVITY: 'MEDIA_INACTIVITY',\n CONVERSATION_URL_UPDATE: 'CONVERSATION_URL_UPDATE',\n DESTROY_MEETING: 'DESTROY_MEETING',\n REQUEST_UPLOAD_LOGS: 'REQUEST_UPLOAD_LOGS',\n REMOTE_RESPONSE: 'REMOTE_RESPONSE',\n // TODO: move all of these to LOCUSINFO.EVENTS\n LOCUS_INFO_UPDATE_PARTICIPANTS: 'LOCUS_INFO_UPDATE_PARTICIPANTS',\n LOCUS_INFO_UPDATE_HOST: 'LOCUS_INFO_UPDATE_HOST',\n LOCUS_INFO_UPDATE_MEDIA_SHARES: 'LOCUS_INFO_UPDATE_MEDIA_SHARES',\n LOCUS_INFO_UPDATE_SELF: 'LOCUS_INFO_UPDATE_SELF',\n LOCUS_INFO_UPDATE_URL: 'LOCUS_INFO_UPDATE_URL',\n LOCUS_INFO_CAN_ASSIGN_HOST: 'LOCUS_INFO_CAN_ASSIGN_HOST',\n DISCONNECT_DUE_TO_INACTIVITY: 'DISCONNECT_DUE_TO_INACTIVITY'\n};\nvar MEDIA_STATE = exports.MEDIA_STATE = {\n active: 'active',\n inactive: 'inactive'\n};\nvar ERROR_DICTIONARY = exports.ERROR_DICTIONARY = {\n PARAMETER: {\n NAME: 'ParameterError',\n MESSAGE: 'The parameters passed to the function, or object properties needed in the function were null, missing where required, or otherwise incorrect.',\n CODE: 0\n },\n INTENT_TO_JOIN: {\n NAME: 'IntentToJoinError',\n MESSAGE: 'The meeting is locked. This is expected behavior. Call #join again with pin and/or moderator option',\n CODE: 1\n },\n JOIN_MEETING: {\n NAME: 'JoinMeetingError',\n MESSAGE: 'There was an issue joining the meeting, meeting could be in a bad state.',\n CODE: 2\n },\n RECONNECTION: {\n NAME: 'ReconnectionError',\n MESSAGE: 'There was an error in the reconnection flow, the meeting may not reconnect, disconnect and dial again.',\n CODE: 3\n },\n MEDIA: {\n NAME: 'MediaError',\n MESSAGE: 'There was an error with media, the meeting may not have live audio, video or share.',\n CODE: 4\n },\n PERMISSION: {\n NAME: 'PermissionError',\n MESSAGE: 'Not allowed to execute the function, some properties on server, or local client state do not allow you to complete this action.',\n CODE: 5\n },\n STATS: {\n NAME: 'StatsError',\n MESSAGE: 'An error occurred with getStats, stats may not continue for this data stream.',\n CODE: 6\n },\n PASSWORD: {\n NAME: 'PasswordError',\n MESSAGE: 'Password is required, please use verifyPassword()',\n CODE: 7\n },\n CAPTCHA: {\n NAME: 'CaptchaError',\n MESSAGE: 'Captcha is required.',\n CODE: 8\n },\n BREAKOUT_EDIT: {\n NAME: 'BreakoutEditLockedError',\n MESSAGE: 'Edit lock token mismatch',\n CODE: 9\n },\n NO_MEETING_INFO: {\n NAME: 'NoMeetingInfo',\n MESSAGE: 'No meeting info found for the meeting',\n CODE: 10\n },\n RECLAIM_HOST_ROLE_NOT_SUPPORTED: {\n NAME: 'ReclaimHostRoleNotSupported',\n MESSAGE: 'Non converged meetings, PSTN or SIP users in converged meetings are not supported currently.',\n CODE: 11\n },\n RECLAIM_HOST_ROLE_NOT_ALLOWED: {\n NAME: 'ReclaimHostRoleNotAllowed',\n MESSAGE: 'Reclaim Host Role Not Allowed For Other Participants. Participants cannot claim host role in PMR meeting, space instant meeting or escalated instant meeting. However, the original host still can reclaim host role when it manually makes another participant to be the host.',\n CODE: 12\n },\n RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY: {\n NAME: 'ReclaimHostRoleEmptyOrWrongKey',\n MESSAGE: 'Host Key Not Specified Or Matched. The original host can reclaim the host role without entering the host key. However, any other person who claims the host role must enter the host key to get it.',\n CODE: 13\n },\n RECLAIM_HOST_ROLE_IS_ALREADY_HOST: {\n NAME: 'ReclaimHostRoleIsAlreadyHost',\n MESSAGE: 'Participant Having Host Role Already. Participant who sends request to reclaim host role has already a host role.',\n CODE: 14\n },\n RECONNECTION_NOT_STARTED: {\n NAME: 'ReconnectionNotStartedError',\n MESSAGE: 'Reconnection was not started, because there is one already in progress or reconnections are disabled in config.',\n CODE: 15\n },\n JoinWebinarError: {\n NAME: 'JoinWebinarError',\n MESSAGE: 'An error occurred while the join webinar.',\n CODE: 16\n },\n MULTISTREAM_NOT_SUPPORTED: {\n NAME: 'MultistreamNotSupported',\n MESSAGE: 'Client asked for multistream backend (Homer), but got something else instead',\n CODE: 17\n }\n};\nvar FLOOR_ACTION = exports.FLOOR_ACTION = {\n GRANTED: 'GRANTED',\n RELEASED: 'RELEASED',\n ACCEPTED: 'ACCEPTED'\n};\nvar FULL_STATE = exports.FULL_STATE = {\n INITIALIZING: 'INITIALIZING',\n INACTIVE: 'INACTIVE',\n ACTIVE: 'ACTIVE',\n TERMINATING: 'TERMINATING',\n UNKNOWN: 'UNKNOWN'\n};\nvar HTTP_VERBS = exports.HTTP_VERBS = {\n PUT: 'PUT',\n POST: 'POST',\n GET: 'GET',\n PATCH: 'PATCH',\n DELETE: 'DELETE'\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/iceGatheringState\nvar ICE_GATHERING_STATE = exports.ICE_GATHERING_STATE = {\n NEW: 'new',\n GATHERING: 'gathering',\n COMPLETE: 'complete'\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/iceConnectionState\nvar ICE_STATE = exports.ICE_STATE = {\n CHECKING: 'checking',\n CONNECTED: 'connected',\n CLOSED: 'closed',\n COMPLETED: 'completed',\n FAILED: 'failed',\n DISCONNECTED: 'disconnected'\n};\nvar CONNECTION_STATE = exports.CONNECTION_STATE = {\n NEW: 'new',\n CONNECTING: 'connecting',\n CONNECTED: 'connected',\n CLOSED: 'closed',\n FAILED: 'failed',\n DISCONNECTED: 'disconnected'\n};\nvar LOCUS = exports.LOCUS = {\n STATE: {\n INACTIVE: 'INACTIVE',\n ENDED: 'ENDED',\n INITIALIZING: 'INITIALIZING',\n ACTIVE: 'ACTIVE',\n TERMINATING: 'TERMINATING'\n },\n SEQUENCE: {\n UN_DEF: 'undef',\n EMPTY: 'empty',\n DEF: 'def',\n NA: 'na',\n RANGE_START: 'rangeStart',\n RANGE_END: 'rangeEnd'\n },\n SYNCDEBUG: 'sync_debug'\n};\nvar ANNOTATION = exports.ANNOTATION = {\n ANNOTATION_ON_SHARE_SUPPORTED: 'ANNOTATION_ON_SHARE_SUPPORTED'\n};\nvar BREAKOUTS = exports.BREAKOUTS = {\n STATUS: {\n CLOSING: 'CLOSING',\n CLOSED: 'CLOSED',\n PENDING: 'PENDING',\n OPEN: 'OPEN'\n },\n EVENTS: {\n BREAKOUTS_CLOSING: 'BREAKOUTS_CLOSING',\n MESSAGE: 'MESSAGE',\n MEMBERS_UPDATE: 'MEMBERS_UPDATE',\n ASK_RETURN_TO_MAIN: 'ASK_RETURN_TO_MAIN',\n LEAVE_BREAKOUT: 'LEAVE_BREAKOUT',\n ASK_FOR_HELP: 'ASK_FOR_HELP',\n PRE_ASSIGNMENTS_UPDATE: 'PRE_ASSIGNMENTS_UPDATE'\n },\n SESSION_TYPES: {\n MAIN: 'MAIN',\n BREAKOUT: 'BREAKOUT'\n },\n SESSION_STATES: {\n ACTIVE: 'active',\n ASSIGNED: 'assigned',\n ALLOWED: 'allowed',\n ASSIGNED_CURRENT: 'assignedCurrent',\n REQUESTED: 'requested'\n },\n BREAKOUTS_SUPPORTED: 'BREAKOUTS_SUPPORTED',\n ACTION: {\n START: 'START',\n CLOSE: 'CLOSE',\n DELETE: 'DELETE'\n },\n ERROR_CODE: {\n EDIT_LOCK_TOKEN_MISMATCH: 201409024,\n EDIT_NOT_AUTHORIZED: 201403007\n },\n EDIT_LOCK_STATUS: {\n LOCKED: 'LOCKED',\n NOT_LOCKED: 'NOT_LOCKED',\n UNKNOWN: 'UNKNOWN'\n },\n DEFAULT_TTL: 30\n};\nvar INTERPRETATION = exports.INTERPRETATION = {\n EVENTS: {\n SUPPORT_LANGUAGES_UPDATE: 'SUPPORT_LANGUAGES_UPDATE',\n HANDOFF_REQUESTS_ARRIVED: 'HANDOFF_REQUESTS_ARRIVED'\n },\n ACTION_TYPE: {\n OFFERED: 'OFFERED',\n ACCEPTED: 'ACCEPTED',\n REQUESTED: 'REQUESTED',\n DECLINED: 'DECLINED'\n },\n RESOURCE_TYPE: 'SiHandover'\n};\nvar LOCUSINFO = exports.LOCUSINFO = {\n EVENTS: {\n CONTROLS_MEETING_LAYOUT_UPDATED: 'CONTROLS_MEETING_LAYOUT_UPDATED',\n CONTROLS_RECORDING_UPDATED: 'CONTROLS_RECORDING_UPDATED',\n CONTROLS_MEETING_TRANSCRIBE_UPDATED: 'CONTROLS_MEETING_TRANSCRIBE_UPDATED',\n CONTROLS_MEETING_MANUAL_CAPTION_UPDATED: 'CONTROLS_MEETING_MANUAL_CAPTION_UPDATED',\n CONTROLS_MEETING_BREAKOUT_UPDATED: 'CONTROLS_MEETING_BREAKOUT_UPDATED',\n CONTROLS_MEETING_CONTAINER_UPDATED: 'CONTROLS_MEETING_CONTAINER_UPDATED',\n CONTROLS_MEETING_INTERPRETATION_UPDATED: 'CONTROLS_MEETING_INTERPRETATION_UPDATED',\n CONTROLS_ENTRY_EXIT_TONE_UPDATED: 'CONTROLS_ENTRY_EXIT_TONE_UPDATED',\n CONTROLS_MUTE_ON_ENTRY_CHANGED: 'CONTROLS_MUTE_ON_ENTRY_CHANGED',\n CONTROLS_SHARE_CONTROL_CHANGED: 'CONTROLS_SHARE_CONTROL_CHANGED',\n CONTROLS_DISALLOW_UNMUTE_CHANGED: 'CONTROLS_DISALLOW_UNMUTE_CHANGED',\n CONTROLS_REACTIONS_CHANGED: 'CONTROLS_REACTIONS_CHANGED',\n CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED: 'CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED',\n CONTROLS_RAISE_HAND_CHANGED: 'CONTROLS_RAISE_HAND_CHANGED',\n CONTROLS_WEBCAST_CHANGED: 'CONTROLS_WEBCAST_CHANGED',\n CONTROLS_MEETING_FULL_CHANGED: 'CONTROLS_MEETING_FULL_CHANGED',\n CONTROLS_PRACTICE_SESSION_STATUS_UPDATED: 'CONTROLS_PRACTICE_SESSION_STATUS_UPDATED',\n CONTROLS_VIDEO_CHANGED: 'CONTROLS_VIDEO_CHANGED',\n CONTROLS_STAGE_VIEW_UPDATED: 'CONTROLS_STAGE_VIEW_UPDATED',\n SELF_UNADMITTED_GUEST: 'SELF_UNADMITTED_GUEST',\n SELF_ADMITTED_GUEST: 'SELF_ADMITTED_GUEST',\n SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED: 'SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED',\n SELF_REMOTE_MUTE_STATUS_UPDATED: 'SELF_REMOTE_MUTE_STATUS_UPDATED',\n LOCAL_UNMUTE_REQUESTED: 'LOCAL_UNMUTE_REQUESTED',\n LOCAL_UNMUTE_REQUIRED: 'LOCAL_UNMUTE_REQUIRED',\n SELF_MODERATOR_CHANGED: 'SELF_MODERATOR_CHANGED',\n SELF_ROLES_CHANGED: 'SELF_ROLES_CHANGED',\n MEETING_UPDATE: 'MEETING_UPDATE',\n MEDIA_STATUS_CHANGE: 'MEDIA_STATUS_CHANGE',\n FULL_STATE_TYPE_UPDATE: 'FULL_STATE_TYPE_UPDATE',\n FULL_STATE_MEETING_STATE_CHANGE: 'FULL_STATE_MEETING_STATE_CHANGE',\n MEETING_STATE_CHANGE_TO_ACTIVE: 'MEETING_STATE_CHANGE_TO_ACTIVE',\n MEETING_INFO_UPDATED: 'MEETING_INFO_UPDATED',\n MEETING_LOCKED: 'MEETING_LOCKED',\n MEETING_UNLOCKED: 'MEETING_UNLOCKED',\n SELF_OBSERVING: 'SELF_OBSERVING',\n DISCONNECT_DUE_TO_INACTIVITY: 'DISCONNECT_DUE_TO_INACTIVITY',\n EMBEDDED_APPS_UPDATED: 'EMBEDDED_APPS_UPDATED',\n SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE: 'SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE',\n SELF_IS_SHARING_BLOCKED_CHANGE: 'SELF_IS_SHARING_BLOCKED_CHANGE',\n SELF_MEETING_BREAKOUTS_CHANGED: 'SELF_MEETING_BREAKOUTS_CHANGED',\n SELF_MEETING_INTERPRETATION_CHANGED: 'SELF_MEETING_INTERPRETATION_CHANGED',\n SELF_MEETING_BRB_CHANGED: 'SELF_MEETING_BRB_CHANGED',\n MEDIA_INACTIVITY: 'MEDIA_INACTIVITY',\n LINKS_SERVICES: 'LINKS_SERVICES',\n LINKS_RESOURCES: 'LINKS_RESOURCES'\n }\n};\nvar LOCUSEVENT = exports.LOCUSEVENT = {\n LOCUS_MERCURY: 'event:locus',\n // update the tp unit status\n CONTROLS_UPDATED: 'locus.controls_updated',\n // delta events\n DIFFERENCE: 'locus.difference',\n // Breakout sessions\n BREAKOUT_ROSTER: 'breakout.roster',\n // screen sharing\n FLOOR_GRANTED: 'locus.floor_granted',\n FLOOR_RELEASED: 'locus.floor_released',\n // Roap\n MESSAGE_ROAP: 'locus.message.roap',\n // Join events\n PARTICIPANT_JOIN: 'locus.participant_joined',\n PARTICIPANT_LEFT: 'locus.participant_left',\n PARTICIPANT_DECLINED: 'locus.participant_declined',\n PARTICIPANT_UPDATED: 'locus.participant_updated',\n PARTICIPANT_CONTROLS_UPDATED: 'locus.participant_controls_updated',\n PARTICIPANT_ROLES_UPDATED: 'locus.participant_roles_updated',\n PARTICIPANT_AUDIO_MUTED: 'locus.participant_audio_muted',\n PARTICIPANT_AUDIO_UNMUTED: 'locus.participant_audio_unmuted',\n PARTICIPANT_VIDEO_MUTED: 'locus.participant_video_muted',\n PARTICIPANT_VIDEO_UNMUTED: 'locus.participant_video_unmuted',\n RECORDING_STARTED: 'locus.recording_started',\n RECORDING_START_FAILED: 'locus.recording_start_failed',\n RECORDING_STOPPED: 'locus.recording_stopped',\n SELF_CHANGED: 'locus.self_changed'\n};\nvar MEDIA_TRACK_CONSTRAINT = exports.MEDIA_TRACK_CONSTRAINT = {\n CURSOR: {\n // The mouse cursor should always be captured in the generated stream.\n AWLAYS: 'always',\n // The cursor should only be visible while moving, then removed.\n MOTION: 'motion',\n // The cursor should never be visible in the generated stream.\n NEVER: 'never'\n }\n};\nvar MEETING_ERRORS = exports.MEETING_ERRORS = {\n METRICS_NOT_SERVER_OR_CLIENT_EXCEPTION: 'METRICS_NOT_SERVER_OR_CLIENT_EXCEPTION',\n BIDIRECTIONAL_ROSTER_NOT_ALLOWED: 'BIDIRECTIONAL_ROSTER_NOT_ALLOWED',\n INVALID_LOCUS_URL: 'INVALID_LOCUS_URL',\n ARGUMENT_NULL_OR_EMPTY: 'ARGUMENT_NULL_OR_EMPTY',\n INVALID_USER: 'INVALID_USER',\n INVALID_PHONE_NUMBER_OR_COUNTRY_CODE: 'INVALID_PHONE_NUMBER_OR_COUNTRY_CODE',\n EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE: 'EMPTY_PHONE_NUMBER_OR_COUNTRY_CODE',\n PHONE_NUMBER_INVALID_COUNTRY_CODE: 'PHONE_NUMBER_INVALID_COUNTRY_CODE',\n PHONE_NUMBER_NOT_A_NUMBER: 'PHONE_NUMBER_NOT_A_NUMBER',\n PHONE_NUMBER_TOO_SHORT_AFTER_IDD: 'PHONE_NUMBER_TOO_SHORT_AFTER_IDD',\n PHONE_NUMBER_TOO_SHORT_NSN: 'PHONE_NUMBER_TOO_SHORT_NSN',\n PHONE_NUMBER_TOO_LONG: 'PHONE_NUMBER_TOO_LONG',\n INVALID_DIALABLE_KEY: 'INVALID_DIALABLE_KEY',\n INVALID_MEETING_LINK: 'INVALID_MEETING_LINK',\n INVALID_SINCE_OR_SEQUENCE_HASH_IN_REQUEST: 'INVALID_SINCE_OR_SEQUENCE_HASH_IN_REQUEST',\n INVALID_LOCUS_ID: 'INVALID_LOCUS_ID',\n EMPTY_SCHEDULED_MEETING_START_TIME: 'EMPTY_SCHEDULED_MEETING_START_TIME',\n INVALID_SCHEDULED_MEETING_DURATION_MINUTES: 'INVALID_SCHEDULED_MEETING_DURATION_MINUTES',\n INVALID_SCHEDULED_MEETING_REMINDER_DURATION_MINUTES: 'INVALID_SCHEDULED_MEETING_REMINDER_DURATION_MINUTES',\n EMPTY_SCHEDULED_MEETING_ORGANIZER: 'EMPTY_SCHEDULED_MEETING_ORGANIZER',\n INVALID_MEETING_ID_FORMAT: 'INVALID_MEETING_ID_FORMAT',\n INVALID_SIP_URL_FORMAT: 'INVALID_SIP_URL_FORMAT',\n EMPTY_INVITEE_RECORD: 'EMPTY_INVITEE_RECORD',\n EMPTY_INVITEE_ADDRESS: 'EMPTY_INVITEE_ADDRESS',\n DESKPHONE_NOTHING_DIALABLE_FOUND: 'DESKPHONE_NOTHING_DIALABLE_FOUND',\n INVALID_INVITEE_ADDRESS: 'INVALID_INVITEE_ADDRESS',\n INVALID_ATTENDEE_ID: 'INVALID_ATTENDEE_ID',\n INVALID_IN_LOBBY: 'INVALID_IN_LOBBY',\n MISSING_REQUESTING_PARTICIPANT_ID: 'MISSING_REQUESTING_PARTICIPANT_ID',\n INVALID_REQUESTING_PARTICIPANT_ID: 'INVALID_REQUESTING_PARTICIPANT_ID',\n SUPPLEMENTARY_USER_INFO_NOT_FOUND: 'SUPPLEMENTARY_USER_INFO_NOT_FOUND',\n UNAUTHORIZED: 'UNAUTHORIZED',\n REMOVED_PARTICIPANT: 'REMOVED_PARTICIPANT',\n FREE_USER_MAX_PARTICIPANTS_EXCEEDED: 'FREE_USER_MAX_PARTICIPANTS_EXCEEDED',\n PAID_USER_MAX_PARTICIPANTS_EXCEEDED: 'PAID_USER_MAX_PARTICIPANTS_EXCEEDED',\n SERVICE_MAX_PARTICIPANTS_EXCEEDED: 'SERVICE_MAX_PARTICIPANTS_EXCEEDED',\n INACTIVE: 'INACTIVE',\n ONE_ON_ONE_TO_SELF_NOT_ALLOWED: 'ONE_ON_ONE_TO_SELF_NOT_ALLOWED',\n JOIN_RESTRICTED_USER: 'JOIN_RESTRICTED_USER',\n GET_RESTRICTED_USER: 'GET_RESTRICTED_USER',\n JOIN_RESTRICTED_USER_NOT_IN_ROOM: 'JOIN_RESTRICTED_USER_NOT_IN_ROOM',\n CREATE_MEDIA_RESTRICTED_USER: 'CREATE_MEDIA_RESTRICTED_USER',\n DUPLICATE_RESOURCE_CREATION_REQUEST: 'DUPLICATE_RESOURCE_CREATION_REQUEST',\n MEETING_NOT_FOUND: 'MEETING_NOT_FOUND',\n NOT_WEBEX_SITE: 'NOT_WEBEX_SITE',\n INVALID_SCHEDULED_MEETING_ORGANIZER: 'INVALID_SCHEDULED_MEETING_ORGANIZER',\n FREE_USER_MAX_PARTICIPANTS_JOINED_EXCEEDED: 'FREE_USER_MAX_PARTICIPANTS_JOINED_EXCEEDED',\n PAID_USER_MAX_PARTICIPANTS_JOINED_EXCEEDED: 'PAID_USER_MAX_PARTICIPANTS_JOINED_EXCEEDED',\n SERVICE_MAX_PARTICIPANTS_ROSTER_EXCEEDED: 'SERVICE_MAX_PARTICIPANTS_ROSTER_EXCEEDED',\n SERVICE_INITIAL_PARTICIPANTS_ROSTER_EXCEEDED: 'SERVICE_INITIAL_PARTICIPANTS_ROSTER_EXCEEDED',\n RESOURCE_GUEST_FORBIDDEN: 'RESOURCE_GUEST_FORBIDDEN',\n SERVICE_NO_MACHINE_OR_SERVICE_ACCOUNT: 'SERVICE_NO_MACHINE_OR_SERVICE_ACCOUNT',\n MODERATOR_ROLE_REMOVAL_NOT_ALLOWED: 'MODERATOR_ROLE_REMOVAL_NOT_ALLOWED',\n RECORDING_CONTROL_NOT_SUPPORTED: 'RECORDING_CONTROL_NOT_SUPPORTED',\n HOST_PIN_LOCKED: 'HOST_PIN_LOCKED',\n INVALID_HOST_PIN: 'INVALID_HOST_PIN',\n REQUESTING_PARTICIPANT_NOT_MODERATOR: 'REQUESTING_PARTICIPANT_NOT_MODERATOR',\n CONVERSATION_NOT_FOUND: 'CONVERSATION_NOT_FOUND',\n MEETING_LINK_NOT_FOUND: 'MEETING_LINK_NOT_FOUND',\n MEETING_INFO_NOT_FOUND: 'MEETING_INFO_NOT_FOUND',\n SCHEDULED_MEETING_NOT_FOUND: 'SCHEDULED_MEETING_NOT_FOUND',\n RECORDING_NOT_STARTED: 'RECORDING_NOT_STARTED',\n RECORDING_NOT_ENABLED: 'RECORDING_NOT_ENABLED',\n RECORDING_USER_STORAGE_FULL: 'RECORDING_USER_STORAGE_FULL',\n RECORDING_SITE_STORAGE_FULL: 'RECORDING_SITE_STORAGE_FULL',\n NO_SCHEDULED_MEETING: 'NO_SCHEDULED_MEETING',\n MEETING_FULL_UPDATE_NOT_ALLOWED: 'MEETING_FULL_UPDATE_NOT_ALLOWED',\n MODERATOR_ROLE_REMOVAL_NOT_VALID: 'MODERATOR_ROLE_REMOVAL_NOT_VALID',\n MODERATOR_ROLE_ADDITION_NOT_VALID: 'MODERATOR_ROLE_ADDITION_NOT_VALID',\n INVALID_CALL_START_TIME: 'INVALID_CALL_START_TIME',\n MEETING_STARTED_UPDATE_NOT_ALLOWED: 'MEETING_STARTED_UPDATE_NOT_ALLOWED',\n EXCEEDED_MAX_JOINED_PARTICIPANTS: 'EXCEEDED_MAX_JOINED_PARTICIPANTS',\n EXCEEDED_SERVICE_MAX_PARTICIPANTS: 'EXCEEDED_SERVICE_MAX_PARTICIPANTS',\n MEETING_IS_LOCKED: 'MEETING_IS_LOCKED',\n MEETING_IS_TERMINATING: 'MEETING_IS_TERMINATING',\n MEETING_REQUIRE_MODERATOR_PIN_INTENT: 'MEETING_REQUIRE_MODERATOR_PIN_INTENT',\n MEETING_REQUIRE_MODERATOR_PIN: 'MEETING_REQUIRE_MODERATOR_PIN',\n MEETING_REQUIRE_MODERATOR_ROLE: 'MEETING_REQUIRE_MODERATOR_ROLE',\n PMR_ACCOUNT_SUSPENDED: 'PMR_ACCOUNT_SUSPENDED',\n PMR_ACCOUNT_LOCKED: 'PMR_ACCOUNT_LOCKED',\n INVALID_JOIN_TIME: 'INVALID_JOIN_TIME',\n REQUIRES_WEBEX_LOGIN: 'REQUIRES_WEBEX_LOGIN',\n TOO_MANY_REQUESTS: 'TOO_MANY_REQUESTS',\n UNABLE_TO_LOOK_UP_DEVICE_INFORMATION: 'UNABLE_TO_LOOK_UP_DEVICE_INFORMATION',\n UNABLE_TO_LOOK_UP_CONVERSATION: 'UNABLE_TO_LOOK_UP_CONVERSATION',\n UNABLE_TO_LOOK_UP_CI_USER: 'UNABLE_TO_LOOK_UP_CI_USER',\n UNABLE_TO_CREATE_CONFLUENCE: 'UNABLE_TO_CREATE_CONFLUENCE',\n SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',\n SOCKET_TIMEOUT: 'SOCKET_TIMEOUT',\n NO_HTTP_RESPONSE: 'NO_HTTP_RESPONSE'\n};\nvar MEETING_END_REASON = exports.MEETING_END_REASON = {\n INACTIVE: 'INACTIVE',\n MEDIA_RELEASED: 'MEDIA_RELEASED'\n};\nvar SELF_POLICY = exports.SELF_POLICY = /*#__PURE__*/function (SELF_POLICY) {\n SELF_POLICY[\"ENFORCE_VIRTUAL_BACKGROUND\"] = \"enforceVirtualBackground\";\n SELF_POLICY[\"SUPPORT_LOCAL_RECORD\"] = \"supportLocalRecord\";\n SELF_POLICY[\"SUPPORT_NETWORK_BASED_RECORD\"] = \"supportNetworkBasedRecord\";\n SELF_POLICY[\"SUPPORT_REALTIME_CLOSE_CAPTION\"] = \"supportRealtimeCloseCaption\";\n SELF_POLICY[\"SUPPORT_CHAT\"] = \"supportChat\";\n SELF_POLICY[\"SUPPORT_DESKTOP_SHARE_REMOTE\"] = \"supportDesktopShareRemote\";\n SELF_POLICY[\"SUPPORT_DESKTOP_SHARE\"] = \"supportDesktopShare\";\n SELF_POLICY[\"SUPPORT_WHITEBOARD\"] = \"supportWhiteboard\";\n SELF_POLICY[\"SUPPORT_FILE_TRANSFER\"] = \"supportFileTransfer\";\n SELF_POLICY[\"SUPPORT_APP_SHARE\"] = \"supportAppShare\";\n SELF_POLICY[\"SUPPORT_CAMERA_SHARE\"] = \"supportCameraShare\";\n SELF_POLICY[\"SUPPORT_FILE_SHARE\"] = \"supportFileShare\";\n SELF_POLICY[\"SUPPORT_ANNOTATION\"] = \"supportAnnotation\";\n SELF_POLICY[\"SUPPORT_BROADCAST_MESSAGE\"] = \"supportBroadcastMessage\";\n SELF_POLICY[\"SUPPORT_VIDEO\"] = \"supportVideo\";\n SELF_POLICY[\"SUPPORT_HQV\"] = \"supportHQV\";\n SELF_POLICY[\"SUPPORT_HDV\"] = \"supportHDV\";\n SELF_POLICY[\"SUPPORT_PARTICIPANT_LIST\"] = \"supportParticipantList\";\n SELF_POLICY[\"SUPPORT_VOIP\"] = \"supportVoIP\";\n SELF_POLICY[\"SUPPORT_POLLING_AND_QA\"] = \"supportPollingAndQA\";\n return SELF_POLICY;\n}({});\nvar DISPLAY_HINTS = exports.DISPLAY_HINTS = {\n ADD_GUEST: 'ADD_GUEST',\n ROSTER_WAITING_TO_JOIN: 'ROSTER_WAITING_TO_JOIN',\n RECORDING_CONTROL_START: 'RECORDING_CONTROL_START',\n RECORDING_CONTROL_PAUSE: 'RECORDING_CONTROL_PAUSE',\n RECORDING_CONTROL_STOP: 'RECORDING_CONTROL_STOP',\n RECORDING_CONTROL_RESUME: 'RECORDING_CONTROL_RESUME',\n PREMISE_RECORDING_CONTROL_START: 'PREMISE_RECORDING_CONTROL_START',\n PREMISE_RECORDING_CONTROL_PAUSE: 'PREMISE_RECORDING_CONTROL_PAUSE',\n PREMISE_RECORDING_CONTROL_STOP: 'PREMISE_RECORDING_CONTROL_STOP',\n PREMISE_RECORDING_CONTROL_RESUME: 'PREMISE_RECORDING_CONTROL_RESUME',\n LOCK_CONTROL_UNLOCK: 'LOCK_CONTROL_UNLOCK',\n LOCK_CONTROL_LOCK: 'LOCK_CONTROL_LOCK',\n LOCK_STATUS_LOCKED: 'LOCK_STATUS_LOCKED',\n LOCK_STATUS_UNLOCKED: 'LOCK_STATUS_UNLOCKED',\n RAISE_HAND: 'RAISE_HAND',\n LOWER_ALL_HANDS: 'LOWER_ALL_HANDS',\n LOWER_SOMEONE_ELSES_HAND: 'LOWER_SOMEONE_ELSES_HAND',\n LEAVE_TRANSFER_HOST_END_MEETING: 'LEAVE_TRANSFER_HOST_END_MEETING',\n LEAVE_END_MEETING: 'LEAVE_END_MEETING',\n CAPTION_START: 'CAPTION_START',\n CAPTION_STATUS_ACTIVE: 'CAPTION_STATUS_ACTIVE',\n MANUAL_CAPTION_START: 'MANUAL_CAPTION_START',\n MANUAL_CAPTION_STOP: 'MANUAL_CAPTION_STOP',\n MANUAL_CAPTION_STATUS_ACTIVE: 'MANUAL_CAPTION_STATUS_ACTIVE',\n DISPLAY_REAL_TIME_TRANSLATION: 'DISPLAY_REAL_TIME_TRANSLATION',\n ENABLE_CAPTION_PANEL: 'ENABLE_CAPTION_PANEL',\n DISPLAY_NON_ENGLISH_ASR: 'DISPLAY_NON_ENGLISH_ASR',\n TRANSCRIPTION_CONTROL_START: 'TRANSCRIPTION_CONTROL_START',\n TRANSCRIPTION_CONTROL_STOP: 'TRANSCRIPTION_CONTROL_STOP',\n SAVE_TRANSCRIPTS_ENABLED: 'SAVE_TRANSCRIPTS_ENABLED',\n WEBEX_ASSISTANT_STATUS_ACTIVE: 'WEBEX_ASSISTANT_STATUS_ACTIVE',\n WAITING_FOR_OTHERS: 'WAITING_FOR_OTHERS',\n ENABLE_REACTIONS: 'ENABLE_REACTIONS',\n DISABLE_REACTIONS: 'DISABLE_REACTIONS',\n REACTIONS_ACTIVE: 'REACTIONS_ACTIVE',\n REACTIONS_INACTIVE: 'REACTIONS_INACTIVE',\n SHARE_CONTROL: 'SHARE_CONTROL',\n ENABLE_MUTE_ON_ENTRY: 'ENABLE_MUTE_ON_ENTRY',\n ENABLE_SHOW_DISPLAY_NAME: 'ENABLE_SHOW_DISPLAY_NAME',\n DISABLE_SHOW_DISPLAY_NAME: 'DISABLE_SHOW_DISPLAY_NAME',\n DISABLE_MUTE_ON_ENTRY: 'DISABLE_MUTE_ON_ENTRY',\n ENABLE_HARD_MUTE: 'ENABLE_HARD_MUTE',\n DISABLE_HARD_MUTE: 'DISABLE_HARD_MUTE',\n MUTE_ALL: 'MUTE_ALL',\n UNMUTE_ALL: 'UNMUTE_ALL',\n PRESENTER_CONTROL: 'PRESENTER_CONTROL',\n CAN_RENAME_SELF_AND_OBSERVED: 'CAN_RENAME_SELF_AND_OBSERVED',\n CAN_RENAME_OTHERS: 'CAN_RENAME_OTHERS',\n // breakout session\n BREAKOUT_MANAGEMENT: 'BREAKOUT_MANAGEMENT',\n BROADCAST_MESSAGE_TO_BREAKOUT: 'BROADCAST_MESSAGE_TO_BREAKOUT',\n UCF_SUPPRESS_BREAKOUTS_SUPPORT: 'UCF_SUPPRESS_BREAKOUTS_SUPPORT',\n DISABLE_ASK_FOR_HELP: 'DISABLE_ASK_FOR_HELP',\n DISABLE_BREAKOUT_PREASSIGNMENTS: 'DISABLE_BREAKOUT_PREASSIGNMENTS',\n DISABLE_LOBBY_TO_BREAKOUT: 'DISABLE_LOBBY_TO_BREAKOUT',\n DISABLE_BREAKOUT_START: 'DISABLE_BREAKOUT_START',\n // participants list\n DISABLE_VIEW_THE_PARTICIPANT_LIST: 'DISABLE_VIEW_THE_PARTICIPANT_LIST',\n ENABLE_VIEW_THE_PARTICIPANT_LIST: 'ENABLE_VIEW_THE_PARTICIPANT_LIST',\n // for webinar participants list\n DISABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST: 'DISABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST',\n ENABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST: 'ENABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST',\n DISABLE_SHOW_ATTENDEE_COUNT: 'DISABLE_SHOW_ATTENDEE_COUNT',\n ENABLE_SHOW_ATTENDEE_COUNT: 'ENABLE_SHOW_ATTENDEE_COUNT',\n // raise hand\n DISABLE_RAISE_HAND: 'DISABLE_RAISE_HAND',\n ENABLE_RAISE_HAND: 'ENABLE_RAISE_HAND',\n // video\n DISABLE_VIDEO: 'DISABLE_VIDEO',\n ENABLE_VIDEO: 'ENABLE_VIDEO',\n // Sharing\n SHARE_FILE: 'SHARE_FILE',\n SHARE_APPLICATION: 'SHARE_APPLICATION',\n SHARE_CAMERA: 'SHARE_CAMERA',\n SHARE_DESKTOP: 'SHARE_DESKTOP',\n SHARE_CONTENT: 'SHARE_CONTENT',\n SHARE_WHITEBOARD: 'SHARE_WHITEBOARD',\n // Voip (audio/video)\n VOIP_IS_ENABLED: 'VOIP_IS_ENABLED',\n // Webcast\n WEBCAST_CONTROL_START: 'WEBCAST_CONTROL_START',\n WEBCAST_CONTROL_STOP: 'WEBCAST_CONTROL_STOP',\n // Stage View\n STAGE_VIEW_ACTIVE: 'STAGE_VIEW_ACTIVE',\n STAGE_VIEW_INACTIVE: 'STAGE_VIEW_INACTIVE',\n ENABLE_STAGE_VIEW: 'ENABLE_STAGE_VIEW',\n DISABLE_STAGE_VIEW: 'DISABLE_STAGE_VIEW',\n // Practice Session\n PRACTICE_SESSION_ON: 'PRACTICE_SESSION_ON',\n PRACTICE_SESSION_OFF: 'PRACTICE_SESSION_OFF',\n SHOW_PRACTICE_SESSION_START: 'SHOW_PRACTICE_SESSION_START',\n SHOW_PRACTICE_SESSION_STOP: 'SHOW_PRACTICE_SESSION_STOP'\n};\nvar INTERSTITIAL_DISPLAY_HINTS = exports.INTERSTITIAL_DISPLAY_HINTS = [DISPLAY_HINTS.VOIP_IS_ENABLED];\nvar SELF_ROLES = exports.SELF_ROLES = {\n COHOST: 'COHOST',\n MODERATOR: 'MODERATOR',\n ATTENDEE: 'ATTENDEE',\n PANELIST: 'PANELIST'\n};\nvar MEETING_STATE = exports.MEETING_STATE = {\n STATES: {\n IDLE: 'IDLE',\n INCOMING: 'INCOMING',\n DIALING: 'DIALING',\n NOTIFIED: 'NOTIFIED',\n DECLINED: 'DECLINED',\n ON_GOING: 'ON_GOING',\n JOINED: 'JOINED',\n TERMINATING: 'TERMINATING',\n LEFT: 'LEFT',\n ENDED: 'ENDED',\n ERROR: 'ERROR'\n }\n};\nvar MEETING_STATE_MACHINE = exports.MEETING_STATE_MACHINE = {\n TRANSITIONS: {\n FAIL: 'fail',\n RING: 'ring',\n REMOTE: 'remote',\n JOIN: 'join',\n DECLINE: 'decline',\n LEAVE: 'leave',\n END: 'end',\n RESET: 'reset'\n },\n STATES: {\n ERROR: 'ERROR',\n IDLE: 'IDLE',\n ENDED: 'ENDED',\n DECLINED: 'DECLINED',\n RINGING: 'RINGING',\n JOINED: 'JOINED',\n ANSWERED: 'ANSWERED'\n }\n};\nvar MEETING_AUDIO_STATE_MACHINE = exports.MEETING_AUDIO_STATE_MACHINE = {\n TRANSITIONS: {\n TOGGLE: 'toggle',\n INIT: 'init'\n },\n STATES: {\n MUTE_SELF: 'SELF_AUDIO_OFF',\n UNMUTE_SELF: 'SELF_AUDIO_ON'\n }\n};\nvar MEETING_VIDEO_STATE_MACHINE = exports.MEETING_VIDEO_STATE_MACHINE = {\n TRANSITIONS: {\n TOGGLE: 'toggle',\n INIT: 'init'\n },\n STATES: {\n MUTE_SELF: 'SELF_VIDEO_OFF',\n UNMUTE_SELF: 'SELF_VIDEO_ON'\n }\n};\nvar PEER_CONNECTION_STATE = exports.PEER_CONNECTION_STATE = {\n CLOSED: 'closed',\n FAILED: 'failed'\n};\nvar RECONNECTION = exports.RECONNECTION = {\n STATE: {\n IN_PROGRESS: 'IN_PROGRESS',\n FAILURE: 'FAILURE',\n DEFAULT_STATUS: ''\n }\n};\nvar RESOURCE = exports.RESOURCE = {\n CLUSTERS: 'clusters',\n REACHABILITY: 'reachability',\n LOCI: 'loci'\n};\nvar REACHABILITY = exports.REACHABILITY = {\n localStorageResult: 'reachability.result',\n localStorageJoinCookie: 'reachability.joinCookie',\n namespace: 'Reachability'\n};\nvar ROAP = exports.ROAP = {\n ROAP_TYPES: {\n OFFER: 'OFFER',\n ANSWER: 'ANSWER',\n OK: 'OK',\n ERROR: 'ERROR',\n TURN_DISCOVERY_REQUEST: 'TURN_DISCOVERY_REQUEST',\n TURN_DISCOVERY_RESPONSE: 'TURN_DISCOVERY_RESPONSE'\n },\n ROAP_MERCURY: 'event:locus.message.roap',\n ROAP_VERSION: '2'\n};\nvar MediaContent = exports.MediaContent = {\n main: 'main',\n slides: 'slides'\n};\nvar NETWORK_STATUS = exports.NETWORK_STATUS = {\n DISCONNECTED: 'DISCONNECTED',\n RECONNECTING: 'RECONNECTING',\n CONNECTED: 'CONNECTED'\n};\nvar NETWORK_TYPE = exports.NETWORK_TYPE = {\n VPN: 'vpn',\n UNKNOWN: 'unknown',\n WIFI: 'wifi',\n ETHERNET: 'ethernet'\n};\nvar STATS = exports.STATS = {\n SEND_DIRECTION: 'send',\n RECEIVE_DIRECTION: 'recv',\n REMOTE: 'remote',\n LOCAL: 'local'\n};\nvar MQA_STATS = exports.MQA_STATS = {\n MQA_SIZE: 120,\n // MQA is done on 60 second intervals by server def, add a buffer for missed events\n CA_TYPE: 'MQA',\n DEFAULT_IP: '0.0.0.0',\n DEFAULT_SHARE_SENDER_STATS: {\n common: {\n common: {\n direction: 'sendrecv',\n // TODO: parse from SDP and save globally\n isMain: false,\n // always true for share sender\n mariFecEnabled: false,\n // unavailable\n mariRtxEnabled: false,\n // unavailable\n mariLiteEnabled: false,\n // unavailable\n mariQosEnabled: false,\n // unavailable\n multistreamEnabled: false // unavailable\n },\n\n availableBitrate: 0,\n dtlsBitrate: 0,\n // unavailable\n dtlsPackets: 0,\n // unavailable\n fecBitrate: 0,\n // unavailable\n fecPackets: 0,\n // unavailable\n maxBitrate: 0,\n // unavailable\n queueDelay: 0,\n // unavailable\n remoteJitter: 0,\n // unavailable\n remoteLossRate: 0,\n roundTripTime: 0,\n rtcpBitrate: 0,\n // unavailable\n rtcpPackets: 0,\n // unavailable\n rtpBitrate: 0,\n // unavailable\n rtpPackets: 0,\n stunBitrate: 0,\n // unavailable\n stunPackets: 0,\n // unavailable\n transportType: 'UDP' // TODO: parse the transport type from the SDP and save globally\n },\n\n streams: [{\n common: {\n codec: 'H264',\n // TODO: parse the codec from the SDP and save globally\n duplicateSsci: 0,\n // unavailable\n requestedBitrate: 0,\n // unavailable\n requestedFrames: 0,\n // unavailable\n rtpPackets: 0,\n ssci: 0,\n // unavailable\n transmittedBitrate: 0,\n transmittedFrameRate: 0\n },\n h264CodecProfile: 'BP',\n // TODO: parse the profile level from h264 in the SDP and save globally\n localConfigurationChanges: 0,\n // unavailable\n remoteConfigurationChanges: 0,\n // unavailable\n requestedFrameSize: 0,\n // unavailable\n requestedKeyFrames: 0,\n // unavailable\n transmittedFrameSize: 0,\n // unavailable\n transmittedHeight: 0,\n transmittedKeyFrames: 0,\n transmittedWidth: 0\n }]\n },\n intervalMetadata: {\n memoryUsage: {\n cpuBitWidth: 0,\n mainProcessMaximumMemoryBytes: 0,\n osBitWidth: 0,\n processAverageMemoryUsage: 0,\n processMaximumMemoryBytes: 0,\n processMaximumMemoryUsage: 0,\n systemAverageMemoryUsage: 0,\n systemMaximumMemoryUsage: 0\n },\n peerReflexiveIP: 'NULL',\n // TODO: save after ice trickling completes and use as a global variable\n processAverageCPU: 0,\n processMaximumCPU: 0,\n systemAverageCPU: 0,\n systemMaximumCPU: 0\n }\n};\n\n// ****** MEDIA QUALITY CONSTANTS ****** //\n\n// these values must match allowed values of RemoteQualityLevel from the @webex/internal-media-core lib\nvar QUALITY_LEVELS = exports.QUALITY_LEVELS = {\n LOW: 'LOW',\n MEDIUM: 'MEDIUM',\n HIGH: 'HIGH',\n '360p': '360p',\n '480p': '480p',\n '720p': '720p',\n '1080p': '1080p'\n};\nvar AVAILABLE_RESOLUTIONS = exports.AVAILABLE_RESOLUTIONS = {\n '360p': {\n video: {\n width: {\n max: 640,\n ideal: 640\n },\n height: {\n max: 360,\n ideal: 360\n }\n }\n },\n '480p': {\n video: {\n width: {\n max: 640,\n ideal: 640\n },\n height: {\n max: 480,\n ideal: 480\n }\n }\n },\n '720p': {\n video: {\n width: {\n max: 1280,\n ideal: 1280\n },\n height: {\n max: 720,\n ideal: 720\n }\n }\n },\n '1080p': {\n video: {\n width: {\n max: 1920,\n ideal: 1920\n },\n height: {\n max: 1080,\n ideal: 1080\n }\n }\n }\n};\n\n/*\n * mqa Interval for sending stats metrics\n */\n\nvar MQA_INTERVAL = exports.MQA_INTERVAL = 60000; // mqa analyzer interval its fixed to 60000\n\nvar MEDIA_DEVICES = exports.MEDIA_DEVICES = {\n MICROPHONE: 'microphone',\n SPEAKER: 'speaker',\n CAMERA: 'camera'\n};\nvar PSTN_STATUS = exports.PSTN_STATUS = {\n JOINED: 'JOINED',\n // we have provisioned a pstn device, which can be used to connect\n CONNECTED: 'CONNECTED',\n // user is connected to audio with pstn device\n LEFT: 'LEFT',\n // user has disconnected from the pstn device\n TRANSFERRING: 'TRANSFERRING',\n // usually happens in dial-out after the CONNECTED state\n SUCCESS: 'SUCCESS',\n // happens after the transfer (TRANSFERRING) is successful\n UNKNOWN: '' // placeholder if we haven't been told what the status is\n};\n\nvar PASSWORD_STATUS = exports.PASSWORD_STATUS = {\n NOT_REQUIRED: 'NOT_REQUIRED',\n // password is not required to join the meeting\n REQUIRED: 'REQUIRED',\n // client needs to provide the password by calling verifyPassword() before calling join()\n UNKNOWN: 'UNKNOWN',\n // we are waiting for information from the backend if password is required or not\n VERIFIED: 'VERIFIED' // client has already provided the password and it has been verified, client can proceed to call join()\n};\n\nvar MEETING_INFO_FAILURE_REASON = exports.MEETING_INFO_FAILURE_REASON = {\n NONE: 'NONE',\n // meeting info was retrieved succesfully\n WRONG_PASSWORD: 'WRONG_PASSWORD',\n // meeting requires password and no password or wrong one was provided\n WRONG_CAPTCHA: 'WRONG_CAPTCHA',\n // wbxappapi requires a captcha code or a wrong captcha code was provided\n POLICY: 'POLICY',\n // meeting info request violates some meeting policy\n WEBINAR_REGISTRATION: 'WEBINAR_REGISTRATION',\n // webinar need registration\n NEED_JOIN_WITH_WEBCAST: 'NEED_JOIN_WITH_WEBCAST',\n // webinar need using webcast join\n WEBINAR_NEED_REGISTRATIONID: 'WEBINAR_NEED_REGISTRATIONID',\n // webinar need registrationID\n OTHER: 'OTHER' // any other error (network, etc)\n};\n\nvar BNR_STATUS = exports.BNR_STATUS = {\n SHOULD_ENABLE: 'SHOULD_ENABLE',\n ENABLED: 'ENABLED',\n SHOULD_DISABLE: 'SHOULD_DISABLE',\n NOT_ENABLED: 'NOT_ENABLED'\n};\nvar EMBEDDED_APP_TYPES = exports.EMBEDDED_APP_TYPES = {\n SLIDO: 'SLIDO',\n OTHER: 'OTHER'\n};\nvar DEFAULT_MEETING_INFO_REQUEST_BODY = exports.DEFAULT_MEETING_INFO_REQUEST_BODY = {\n supportHostKey: true,\n supportCountryList: true\n};\n\n/** the values for IP_VERSION are fixed and defined in Orpheus API */\nvar IP_VERSION = exports.IP_VERSION = {\n unknown: 0,\n only_ipv4: 4,\n // we know we have ipv4, we don't know or we don't have ipv6\n only_ipv6: 6,\n // we know we have ipv6, we don't know or we don't have ipv4\n ipv4_and_ipv6: 1\n};\nvar LOCAL_SHARE_ERRORS = exports.LOCAL_SHARE_ERRORS = {\n DEVICE_NOT_JOINED: 'Floor requested but device not yet joined',\n UNDEFINED: 'undefined PUT',\n NO_MEDIA_FOR_DEVICE: 'No media session found for device',\n NO_CONFLUENCE_ID: 'Failed to request floor: 404 (null) could not find confluence id',\n CONTENT_SHARING_DISABLED: 'Content share policies are disabled',\n LOCUS_PARTICIPANT_DNE: 'does not exist in Locus',\n CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD: 'Content share request is not allowed while whiteboard floor request is pending'\n};\n// constant for if the permissionToken is about to expire in the next 30 seconds, refresh it\nvar MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = exports.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = 30;\nvar MEETING_PERMISSION_TOKEN_REFRESH_REASON = exports.MEETING_PERMISSION_TOKEN_REFRESH_REASON = 'ttl-join';\n\n// constant for named media group type\nvar NAMED_MEDIA_GROUP_TYPE_AUDIO = exports.NAMED_MEDIA_GROUP_TYPE_AUDIO = 1;\nvar DESTINATION_TYPE = exports.DESTINATION_TYPE = {\n CONVERSATION_URL: 'CONVERSATION_URL',\n MEETING_LINK: 'MEETING_LINK',\n SIP_URI: 'SIP_URI',\n PERSONAL_ROOM: 'PERSONAL_ROOM',\n ONE_ON_ONE_CALL: 'ONE_ON_ONE_CALL',\n LOCUS_ID: 'LOCUS_ID',\n MEETING_ID: 'MEETING_ID',\n MEETING_UUID: 'MEETING_UUID'\n};\n//# sourceMappingURL=constants.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ENABLED = exports.CAN_UNSET = exports.CAN_SET = void 0;\nvar ENABLED = exports.ENABLED = 'enabled';\nvar CAN_SET = exports.CAN_SET = 'canSet';\nvar CAN_UNSET = exports.CAN_UNSET = 'canUnset';\n//# sourceMappingURL=constants.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Setting = exports.Control = void 0;\nvar Setting = exports.Setting = /*#__PURE__*/function (Setting) {\n Setting[\"disallowUnmute\"] = \"DisallowUnmute\";\n Setting[\"muteOnEntry\"] = \"MuteOnEntry\";\n Setting[\"muted\"] = \"Muted\";\n Setting[\"roles\"] = \"Roles\";\n return Setting;\n}(Setting || {});\nvar Control = exports.Control = /*#__PURE__*/function (Control) {\n Control[\"audio\"] = \"audio\";\n Control[\"raiseHand\"] = \"raiseHand\";\n Control[\"reactions\"] = \"reactions\";\n Control[\"shareControl\"] = \"shareControl\";\n Control[\"video\"] = \"video\";\n Control[\"viewTheParticipantList\"] = \"viewTheParticipantList\";\n return Control;\n}(Control || {});\nvar _default = exports.default = Setting;\n//# sourceMappingURL=enums.js.map\n","\"use strict\";\n\nvar _Object$keys2 = require(\"@babel/runtime-corejs2/core-js/object/keys\");\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-symbols\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptors\");\nvar _Object$defineProperties = require(\"@babel/runtime-corejs2/core-js/object/define-properties\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _keys = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/keys\"));\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\nvar _stringify = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/json/stringify\"));\nvar _entries = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/entries\"));\nvar _isArray = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/array/is-array\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/slicedToArray\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _lodash = require(\"lodash\");\nvar _permission = _interopRequireDefault(require(\"../common/errors/permission\"));\nvar _constants = require(\"../constants\");\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _enums = require(\"./enums\");\nvar _util = _interopRequireDefault(require(\"./util\"));\nvar _constants2 = require(\"./constants\");\nfunction ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }\n/**\n * docs\n * https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html\n * https://confluence-eng-gpk2.cisco.com/conf/display/LOCUS/Hard+Mute+and+Audio+Privacy#HardMuteandAudioPrivacy-SelfMuteonEntry\n * https://confluence-eng-gpk2.cisco.com/conf/pages/viewpage.action?spaceKey=UC&title=WEBEX-124454%3A+UCF%3A+Hard+mute+support+for+Teams+joining+Webex+meeting\n * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-180867\n * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-393351\n */\n/**\n * @description ControlsOptionsManager is responsible for handling the behavior of participant controls when somebody joins a meeting\n * @export\n * @private\n * @class Recording\n */\nvar ControlsOptionsManager = exports.default = /*#__PURE__*/function () {\n /**\n * @param {MeetingRequest} request\n * @param {Object} options\n * @constructor\n * @memberof ControlsOptionsManager\n */\n function ControlsOptionsManager(request, options) {\n (0, _classCallCheck2.default)(this, ControlsOptionsManager);\n /**\n * @instance\n * @type {MeetingRequest}\n * @private\n * @memberof ControlsOptionsManager\n */\n (0, _defineProperty2.default)(this, \"request\", void 0);\n /**\n * @instance\n * @type {Array}\n * @private\n * @memberof ControlsOptionsManager\n */\n (0, _defineProperty2.default)(this, \"displayHints\", []);\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof ControlsOptionsManager\n */\n (0, _defineProperty2.default)(this, \"locusUrl\", void 0);\n this.initialize(request);\n this.set(options);\n }\n\n /**\n * @param {MeetingRequest} request\n * @returns {void}\n * @private\n * @memberof ControlsOptionsManager\n */\n (0, _createClass2.default)(ControlsOptionsManager, [{\n key: \"initialize\",\n value: function initialize(request) {\n this.request = request;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n }, {\n key: \"set\",\n value: function set(options) {\n this.extract(options);\n }\n\n /**\n * @param {string} url\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n }, {\n key: \"setLocusUrl\",\n value: function setLocusUrl(url) {\n this.locusUrl = url;\n }\n\n /**\n * @param {Array} hints\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n }, {\n key: \"setDisplayHints\",\n value: function setDisplayHints(hints) {\n this.displayHints = hints;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof ControlsOptionsManager\n */\n }, {\n key: \"getLocusUrl\",\n value: function getLocusUrl() {\n return this.locusUrl;\n }\n\n /**\n * @returns {Array}\n * @public\n * @memberof ControlsOptionsManager\n */\n }, {\n key: \"getDisplayHints\",\n value: function getDisplayHints() {\n return this.displayHints;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @private\n * @memberof ControlsOptionsManager\n */\n }, {\n key: \"extract\",\n value: function extract(options) {\n this.setDisplayHints(options === null || options === void 0 ? void 0 : options.displayHints);\n this.setLocusUrl(options === null || options === void 0 ? void 0 : options.locusUrl);\n }\n\n /**\n * Set controls for this meeting.\n *\n * @param {Array} controls - Spread Array of ControlConfigs\n * @returns {Promise>}- Promise resolving if the request was successful.\n */\n }, {\n key: \"update\",\n value: function update() {\n var _this = this;\n for (var _len = arguments.length, controls = new Array(_len), _key = 0; _key < _len; _key++) {\n controls[_key] = arguments[_key];\n }\n var payloads = controls.map(function (control) {\n if (!(0, _keys.default)(_enums.Control).includes(control.scope)) {\n throw new Error(\"updating meeting control scope \\\"\".concat(control.scope, \"\\\" is not a supported scope\"));\n }\n if (!_util.default.canUpdate(control, _this.displayHints)) {\n throw new _permission.default(\"updating meeting control scope \\\"\".concat(control.scope, \"\\\" not allowed, due to moderator property.\"));\n }\n return (0, _defineProperty2.default)({}, control.scope, control.properties);\n });\n return payloads.reduce(function (previous, payload) {\n return previous.then(function () {\n return (\n // @ts-ignore\n _this.request.request({\n uri: \"\".concat(_this.locusUrl, \"/\").concat(_constants.CONTROLS),\n body: payload,\n method: _constants.HTTP_VERBS.PATCH\n })\n );\n });\n }, _promise.default.resolve());\n }\n\n /**\n * @param {Setting} setting\n * @private\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n }, {\n key: \"setControls\",\n value: function setControls(setting) {\n var _this2 = this;\n _loggerProxy.default.logger.log(\"ControlsOptionsManager:index#setControls --> \".concat((0, _stringify.default)(setting)));\n var body = {};\n var error;\n var shouldSkipCheckToMergeBody = false;\n (0, _entries.default)(setting).forEach(function (_ref2) {\n var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),\n key = _ref3[0],\n value = _ref3[1];\n if (!shouldSkipCheckToMergeBody && value !== undefined && !(_util.default !== null && _util.default !== void 0 && _util.default[\"\".concat(value ? _constants2.CAN_SET : _constants2.CAN_UNSET).concat(key)](_this2.displayHints))) {\n error = new _permission.default(\"\".concat(key, \" [\").concat(value, \"] not allowed, due to moderator property.\"));\n }\n if (error) {\n return;\n }\n switch (key) {\n case _enums.Setting.muted:\n shouldSkipCheckToMergeBody = true;\n body.audio = body.audio ? _objectSpread(_objectSpread({}, body.audio), {}, (0, _defineProperty2.default)({}, (0, _lodash.camelCase)(key), value)) : (0, _defineProperty2.default)({}, (0, _lodash.camelCase)(key), value);\n break;\n case _enums.Setting.disallowUnmute:\n case _enums.Setting.muteOnEntry:\n if ((0, _keys.default)(setting).includes(_enums.Setting.muted)) {\n body.audio = body.audio ? _objectSpread(_objectSpread({}, body.audio), {}, (0, _defineProperty2.default)({}, (0, _lodash.camelCase)(key), value)) : (0, _defineProperty2.default)({}, (0, _lodash.camelCase)(key), value);\n body.audio[(0, _lodash.camelCase)(key)] = value;\n } else {\n body[(0, _lodash.camelCase)(key)] = (0, _defineProperty2.default)({}, _constants2.ENABLED, value);\n }\n break;\n case _enums.Setting.roles:\n if ((0, _isArray.default)(value)) {\n body.audio = body.audio ? _objectSpread(_objectSpread({}, body.audio), {}, (0, _defineProperty2.default)({}, (0, _lodash.camelCase)(key), value)) : (0, _defineProperty2.default)({}, (0, _lodash.camelCase)(key), value);\n }\n break;\n default:\n error = new _permission.default(\"\".concat(key, \" [\").concat(value, \"] not allowed, due to moderator property.\"));\n }\n });\n if (error) {\n return _promise.default.reject(error);\n }\n\n // @ts-ignore\n return this.request.request({\n uri: \"\".concat(this.locusUrl, \"/\").concat(_constants.CONTROLS),\n body: body,\n method: _constants.HTTP_VERBS.PATCH\n });\n }\n\n /**\n * @public\n * @param {boolean} enabled\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n }, {\n key: \"setMuteOnEntry\",\n value: function setMuteOnEntry(enabled) {\n return this.setControls((0, _defineProperty2.default)({}, _enums.Setting.muteOnEntry, enabled));\n }\n\n /**\n * @public\n * @param {boolean} enabled\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n }, {\n key: \"setDisallowUnmute\",\n value: function setDisallowUnmute(enabled) {\n return this.setControls((0, _defineProperty2.default)({}, _enums.Setting.disallowUnmute, enabled));\n }\n\n /**\n * @public\n * @param {boolean} mutedEnabled\n * @param {boolean} disallowUnmuteEnabled\n * @param {boolean} muteOnEntryEnabled\n * @param {array} roles which should be muted\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n }, {\n key: \"setMuteAll\",\n value: function setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled, roles) {\n return this.setControls((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _enums.Setting.muted, mutedEnabled), _enums.Setting.disallowUnmute, disallowUnmuteEnabled), _enums.Setting.muteOnEntry, muteOnEntryEnabled), _enums.Setting.roles, roles));\n }\n }]);\n return ControlsOptionsManager;\n}();\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _constants = require(\"../constants\");\nvar _enums = require(\"./enums\");\n/**\n * The Controls Options Manager utilities\n *\n * @internal\n */\nvar Utils = /*#__PURE__*/function () {\n function Utils() {\n (0, _classCallCheck2.default)(this, Utils);\n }\n (0, _createClass2.default)(Utils, null, [{\n key: \"canSetMuteOnEntry\",\n value:\n /**\n * Validate if enabling mute on entry can be set.\n *\n * @param {Array} displayHints - Display Hints to use when validating.\n * @returns {boolean} - True if the action is allowed.\n */\n function canSetMuteOnEntry(displayHints) {\n return displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY);\n }\n\n /**\n * Validate if allowing unmuting can be set.\n *\n * @param {Array} displayHints - Display Hints to use when validating.\n * @returns {boolean} - True if the action is allowed.\n */\n }, {\n key: \"canSetDisallowUnmute\",\n value: function canSetDisallowUnmute(displayHints) {\n return displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_HARD_MUTE);\n }\n\n /**\n * Validate if disabling mute on entry can be set.\n *\n * @param {Array} displayHints - Display Hints to use when validating.\n * @returns {boolean} - True if the action is allowed.\n */\n }, {\n key: \"canUnsetMuteOnEntry\",\n value: function canUnsetMuteOnEntry(displayHints) {\n return displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY);\n }\n\n /**\n * Validate if enabling muting can be set.\n *\n * @param {Array} displayHints - Display Hints to use when validating.\n * @returns {boolean} - True if the action is allowed.\n */\n }, {\n key: \"canUnsetDisallowUnmute\",\n value: function canUnsetDisallowUnmute(displayHints) {\n return displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_HARD_MUTE);\n }\n\n /**\n * Validate if muting all can be set.\n *\n * @param {Array} displayHints - Display Hints to use when validating.\n * @returns {boolean} - True if the action is allowed.\n */\n }, {\n key: \"canSetMuted\",\n value: function canSetMuted(displayHints) {\n return displayHints.includes(_constants.DISPLAY_HINTS.MUTE_ALL);\n }\n\n /**\n * Validate if unmuting all can be set.\n *\n * @param {Array} displayHints - Display Hints to use when validating.\n * @returns {boolean} - True if the action is allowed.\n */\n }, {\n key: \"canUnsetMuted\",\n value: function canUnsetMuted(displayHints) {\n return displayHints.includes(_constants.DISPLAY_HINTS.UNMUTE_ALL);\n }\n\n /**\n * Validate an array of hints are allowed based on a full collection of hints.\n *\n * @param {Object} config - Configuration Object.\n * @param {Array} config.requiredHints - Hints required for validation.\n * @param {Array} config.displayHints - All available hints.\n * @returns {boolean} - True if all of the actions are allowed.\n */\n }, {\n key: \"hasHints\",\n value: function hasHints(config) {\n var requiredHints = config.requiredHints,\n displayHints = config.displayHints;\n return requiredHints.every(function (hint) {\n return displayHints.includes(hint);\n });\n }\n\n /**\n * Validate that the self policy object contains the required policies.\n *\n * @param {Object} config - Configuration Object.\n * @param {Array} config.requiredPolicies - Policies required for validation.\n * @param {Array} config.policies - All available policies.\n * @returns {boolean} - True if all of the actions are allowed.\n */\n }, {\n key: \"hasPolicies\",\n value: function hasPolicies(config) {\n var requiredPolicies = config.requiredPolicies,\n _config$policies = config.policies,\n policies = _config$policies === void 0 ? {} : _config$policies;\n return requiredPolicies.every(function (hint) {\n return policies[hint];\n });\n }\n\n /**\n * Validate if an audio-scoped control is allowed to be sent to the service.\n *\n * @param {ControlConfig} control - Audio control config to validate.\n * @param {Array} displayHints - All available hints.\n * @returns {boolean} - True if all of the actions are allowed.\n */\n }, {\n key: \"canUpdateAudio\",\n value: function canUpdateAudio(control, displayHints) {\n var requiredHints = [];\n if (control.properties.muted === true) {\n requiredHints.push(_constants.DISPLAY_HINTS.MUTE_ALL);\n }\n if (control.properties.muted === false) {\n requiredHints.push(_constants.DISPLAY_HINTS.UNMUTE_ALL);\n }\n if (control.properties.disallowUnmute === true) {\n requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_HARD_MUTE);\n }\n if (control.properties.disallowUnmute === false) {\n requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_HARD_MUTE);\n }\n if (control.properties.muteOnEntry === true) {\n requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY);\n }\n if (control.properties.muteOnEntry === false) {\n requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY);\n }\n return Utils.hasHints({\n requiredHints: requiredHints,\n displayHints: displayHints\n });\n }\n }, {\n key: \"canUpdateRaiseHand\",\n value: function canUpdateRaiseHand(control, displayHints) {\n var requiredHints = [];\n if (control.properties.enabled === true) {\n requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_RAISE_HAND);\n }\n if (control.properties.enabled === false) {\n requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_RAISE_HAND);\n }\n return Utils.hasHints({\n requiredHints: requiredHints,\n displayHints: displayHints\n });\n }\n\n /**\n * Validate if an reactions-scoped control is allowed to be sent to the service.\n *\n * @param {ControlConfig} control - Reaction control config to validate.\n * @param {Array} displayHints - All available hints.\n * @returns {boolean} - True if all of the actions are allowed.\n */\n }, {\n key: \"canUpdateReactions\",\n value: function canUpdateReactions(control, displayHints) {\n var requiredHints = [];\n\n // This additional if statement avoids the display hint discrepency due to\n // the service blocking partial requests with this property only.\n if (control.properties.showDisplayNameWithReactions !== undefined) {\n if (control.properties.showDisplayNameWithReactions === true) {\n requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_SHOW_DISPLAY_NAME);\n }\n if (control.properties.showDisplayNameWithReactions === false) {\n requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_SHOW_DISPLAY_NAME);\n }\n } else {\n if (control.properties.enabled === true) {\n requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_REACTIONS);\n }\n if (control.properties.enabled === false) {\n requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_REACTIONS);\n }\n }\n return Utils.hasHints({\n requiredHints: requiredHints,\n displayHints: displayHints\n });\n }\n\n /**\n * Validate if an share-control-scoped control is allowed to be sent to the service.\n *\n * @param {Array} displayHints - All available hints.\n * @returns {boolean} - True if all of the actions are allowed.\n */\n }, {\n key: \"canUpdateShareControl\",\n value: function canUpdateShareControl(displayHints) {\n return Utils.hasHints({\n requiredHints: [_constants.DISPLAY_HINTS.SHARE_CONTROL],\n displayHints: displayHints\n });\n }\n\n /**\n * Validate if an view-the-participants-list-scoped control is allowed to be sent to the service.\n *\n * @param {ControlConfig} control - View Participants List control config to validate.\n * @param {Array} displayHints - All available hints.\n * @returns {boolean} - True if all of the actions are allowed.\n */\n }, {\n key: \"canUpdateViewTheParticipantsList\",\n value: function canUpdateViewTheParticipantsList(control, displayHints) {\n var requiredHints = [];\n if (control.properties.enabled === true) {\n requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_VIEW_THE_PARTICIPANT_LIST);\n }\n if (control.properties.enabled === false) {\n requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST);\n }\n if (control.properties.panelistEnabled === true) {\n requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST);\n }\n if (control.properties.panelistEnabled === false) {\n requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST);\n }\n if (control.properties.attendeeCount === true) {\n requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_SHOW_ATTENDEE_COUNT);\n }\n if (control.properties.attendeeCount === false) {\n requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_SHOW_ATTENDEE_COUNT);\n }\n return Utils.hasHints({\n requiredHints: requiredHints,\n displayHints: displayHints\n });\n }\n\n /**\n * Validate if a video-scoped control is allowed to be sent to the service.\n *\n * @param {ControlConfig} control - Video control config to validate.\n * @param {Array} displayHints - All available hints.\n * @returns {boolean} - True if all of the actions are allowed.\n */\n }, {\n key: \"canUpdateVideo\",\n value: function canUpdateVideo(control, displayHints) {\n var requiredHints = [];\n if (control.properties.enabled === true) {\n requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_VIDEO);\n }\n if (control.properties.enabled === false) {\n requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_VIDEO);\n }\n return Utils.hasHints({\n requiredHints: requiredHints,\n displayHints: displayHints\n });\n }\n\n /**\n * Validate that a control can be sent to the service based on the provided\n * display hints.\n *\n * @param {ControlConfig} control - Control to validate.\n * @param {Array} displayHints - All available hints.\n * @returns {boolean} - True if all of the actions are allowed.\n */\n }, {\n key: \"canUpdate\",\n value: function canUpdate(control, displayHints) {\n var determinant;\n switch (control.scope) {\n case _enums.Control.audio:\n determinant = Utils.canUpdateAudio(control, displayHints);\n break;\n case _enums.Control.raiseHand:\n determinant = Utils.canUpdateRaiseHand(control, displayHints);\n break;\n case _enums.Control.reactions:\n determinant = Utils.canUpdateReactions(control, displayHints);\n break;\n case _enums.Control.shareControl:\n determinant = Utils.canUpdateShareControl(displayHints);\n break;\n case _enums.Control.video:\n determinant = Utils.canUpdateVideo(control, displayHints);\n break;\n case _enums.Control.viewTheParticipantList:\n determinant = Utils.canUpdateViewTheParticipantsList(control, displayHints);\n break;\n default:\n determinant = false;\n }\n return determinant;\n }\n }]);\n return Utils;\n}();\nvar _default = exports.default = Utils;\n//# sourceMappingURL=util.js.map\n","\"use strict\";\n\nvar _typeof = require(\"@babel/runtime-corejs2/helpers/typeof\");\nvar _WeakMap = require(\"@babel/runtime-corejs2/core-js/weak-map\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CONSTANTS = void 0;\n_Object$defineProperty(exports, \"CaptchaError\", {\n enumerable: true,\n get: function get() {\n return _captchaError.default;\n }\n});\n_Object$defineProperty(exports, \"DisplaySurface\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.DisplaySurface;\n }\n});\n_Object$defineProperty(exports, \"FacingMode\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.FacingMode;\n }\n});\n_Object$defineProperty(exports, \"IntentToJoinError\", {\n enumerable: true,\n get: function get() {\n return _intentToJoin.default;\n }\n});\n_Object$defineProperty(exports, \"JoinMeetingError\", {\n enumerable: true,\n get: function get() {\n return _joinMeeting.default;\n }\n});\n_Object$defineProperty(exports, \"JoinWebinarError\", {\n enumerable: true,\n get: function get() {\n return _joinWebinarError.default;\n }\n});\n_Object$defineProperty(exports, \"LocalCameraStream\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.LocalCameraStream;\n }\n});\n_Object$defineProperty(exports, \"LocalCameraStreamEventNames\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.LocalCameraStreamEventNames;\n }\n});\n_Object$defineProperty(exports, \"LocalDisplayStream\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.LocalDisplayStream;\n }\n});\n_Object$defineProperty(exports, \"LocalMicrophoneStream\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.LocalMicrophoneStream;\n }\n});\n_Object$defineProperty(exports, \"LocalMicrophoneStreamEventNames\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.LocalMicrophoneStreamEventNames;\n }\n});\n_Object$defineProperty(exports, \"LocalStream\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.LocalStream;\n }\n});\n_Object$defineProperty(exports, \"LocalStreamEventNames\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.LocalStreamEventNames;\n }\n});\n_Object$defineProperty(exports, \"LocalSystemAudioStream\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.LocalSystemAudioStream;\n }\n});\n_Object$defineProperty(exports, \"Meeting\", {\n enumerable: true,\n get: function get() {\n return _meeting.default;\n }\n});\n_Object$defineProperty(exports, \"MeetingInfoUtil\", {\n enumerable: true,\n get: function get() {\n return _utilv.default;\n }\n});\nexports.MeetingInfoV2 = void 0;\n_Object$defineProperty(exports, \"PasswordError\", {\n enumerable: true,\n get: function get() {\n return _passwordError.default;\n }\n});\n_Object$defineProperty(exports, \"PermissionError\", {\n enumerable: true,\n get: function get() {\n return _permission.default;\n }\n});\n_Object$defineProperty(exports, \"PresetCameraConstraints\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.PresetCameraConstraints;\n }\n});\nexports.REACTIONS = void 0;\n_Object$defineProperty(exports, \"ReclaimHostEmptyWrongKeyError\", {\n enumerable: true,\n get: function get() {\n return _reclaimHostRoleErrors.ReclaimHostEmptyWrongKeyError;\n }\n});\n_Object$defineProperty(exports, \"ReclaimHostIsHostAlreadyError\", {\n enumerable: true,\n get: function get() {\n return _reclaimHostRoleErrors.ReclaimHostIsHostAlreadyError;\n }\n});\n_Object$defineProperty(exports, \"ReclaimHostNotAllowedError\", {\n enumerable: true,\n get: function get() {\n return _reclaimHostRoleErrors.ReclaimHostNotAllowedError;\n }\n});\n_Object$defineProperty(exports, \"ReclaimHostNotSupportedError\", {\n enumerable: true,\n get: function get() {\n return _reclaimHostRoleErrors.ReclaimHostNotSupportedError;\n }\n});\n_Object$defineProperty(exports, \"RemoteMedia\", {\n enumerable: true,\n get: function get() {\n return _remoteMedia.RemoteMedia;\n }\n});\n_Object$defineProperty(exports, \"RemoteStreamEventNames\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.RemoteStreamEventNames;\n }\n});\n_Object$defineProperty(exports, \"StreamEventNames\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.StreamEventNames;\n }\n});\n_Object$defineProperty(exports, \"TriggerProxy\", {\n enumerable: true,\n get: function get() {\n return _triggerProxy.default;\n }\n});\n_Object$defineProperty(exports, \"createCameraAndMicrophoneStreams\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.createCameraAndMicrophoneStreams;\n }\n});\n_Object$defineProperty(exports, \"createCameraStream\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.createCameraStream;\n }\n});\n_Object$defineProperty(exports, \"createDisplayMedia\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.createDisplayMedia;\n }\n});\n_Object$defineProperty(exports, \"createDisplayStream\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.createDisplayStream;\n }\n});\n_Object$defineProperty(exports, \"createDisplayStreamWithAudio\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.createDisplayStreamWithAudio;\n }\n});\n_Object$defineProperty(exports, \"createMicrophoneStream\", {\n enumerable: true,\n get: function get() {\n return _mediaHelpers.createMicrophoneStream;\n }\n});\nexports.sdkAnnotationTypes = exports.default = void 0;\nvar _webexCore = require(\"@webex/webex-core\");\nvar _meetings = _interopRequireDefault(require(\"./meetings\"));\nvar _config = _interopRequireDefault(require(\"./config\"));\nvar _interceptors = require(\"./interceptors\");\nvar _captchaError = _interopRequireDefault(require(\"./common/errors/captcha-error\"));\nvar _intentToJoin = _interopRequireDefault(require(\"./common/errors/intent-to-join\"));\nvar _passwordError = _interopRequireDefault(require(\"./common/errors/password-error\"));\nvar _permission = _interopRequireDefault(require(\"./common/errors/permission\"));\nvar _joinWebinarError = _interopRequireDefault(require(\"./common/errors/join-webinar-error\"));\nvar _reclaimHostRoleErrors = require(\"./common/errors/reclaim-host-role-errors\");\nvar _meeting = _interopRequireDefault(require(\"./meeting\"));\nvar _utilv = _interopRequireDefault(require(\"./meeting-info/utilv2\"));\nvar _joinMeeting = _interopRequireDefault(require(\"./common/errors/join-meeting\"));\nvar _mediaHelpers = require(\"@webex/media-helpers\");\nvar _CONSTANTS = _interopRequireWildcard(require(\"./constants\"));\nexports.CONSTANTS = _CONSTANTS;\nvar _REACTIONS = _interopRequireWildcard(require(\"./reactions/reactions\"));\nexports.REACTIONS = _REACTIONS;\nvar _sdkAnnotationTypes = _interopRequireWildcard(require(\"./annotation/annotation.types\"));\nexports.sdkAnnotationTypes = _sdkAnnotationTypes;\nvar _MeetingInfoV = _interopRequireWildcard(require(\"./meeting-info/meeting-info-v2\"));\nexports.MeetingInfoV2 = _MeetingInfoV;\nvar _remoteMedia = require(\"./multistream/remoteMedia\");\nvar _triggerProxy = _interopRequireDefault(require(\"./common/events/trigger-proxy\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n/* eslint-env browser */\n\n(0, _webexCore.registerPlugin)('meetings', _meetings.default, {\n config: _config.default,\n interceptors: {\n LocusRetryStatusInterceptor: _interceptors.LocusRetryStatusInterceptor.create\n }\n});\nvar _default = exports.default = _meetings.default;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n_Object$defineProperty(exports, \"LocusRetryStatusInterceptor\", {\n enumerable: true,\n get: function get() {\n return _locusRetry.default;\n }\n});\nvar _locusRetry = _interopRequireDefault(require(\"./locusRetry\"));\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _weakMap = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/weak-map\"));\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\nvar _httpCore = require(\"@webex/http-core\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nvar rateLimitExpiryTime = new _weakMap.default();\n/**\n * @class\n */\nvar LocusRetryStatusInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {\n (0, _inherits2.default)(LocusRetryStatusInterceptor, _Interceptor);\n var _super = _createSuper(LocusRetryStatusInterceptor);\n function LocusRetryStatusInterceptor() {\n (0, _classCallCheck2.default)(this, LocusRetryStatusInterceptor);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(LocusRetryStatusInterceptor, [{\n key: \"onResponseError\",\n value:\n /**\n * Handle response errors\n * @param {Object} options\n * @param {WebexHttpError} reason\n * @returns {Promise}\n */\n function onResponseError(options, reason) {\n if ((reason.statusCode === 503 || reason.statusCode === 429) && options.uri.includes('locus')) {\n var hasRetriedLocusRequest = rateLimitExpiryTime.get(this);\n var retryAfterTime = options.headers['retry-after'] || 2000;\n if (hasRetriedLocusRequest) {\n rateLimitExpiryTime.set(this, false);\n return _promise.default.reject(options);\n }\n rateLimitExpiryTime.set(this, true);\n return this.handleRetryRequestLocusServiceError(options, retryAfterTime);\n }\n return _promise.default.reject(reason);\n }\n\n /**\n * Handle retries for locus service unavailable errors\n * @param {Object} options associated with the request\n * @param {number} retryAfterTime retry after time in milliseconds\n * @returns {Promise}\n */\n }, {\n key: \"handleRetryRequestLocusServiceError\",\n value: function handleRetryRequestLocusServiceError(options, retryAfterTime) {\n var _this = this;\n return new _promise.default(function (resolve, reject) {\n var timeout = setTimeout(function () {\n clearTimeout(timeout);\n\n // @ts-ignore\n _this.webex.request({\n method: options.method,\n uri: options.uri,\n body: options.body\n }).then(resolve).catch(reject);\n }, retryAfterTime);\n });\n }\n }], [{\n key: \"create\",\n value:\n /**\n * @returns {LocusRetryStatusInterceptor}\n */\n function create() {\n // @ts-ignore\n return new LocusRetryStatusInterceptor({\n webex: this\n });\n }\n }]);\n return LocusRetryStatusInterceptor;\n}(_httpCore.Interceptor);\n//# sourceMappingURL=locusRetry.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _ampersandCollection = _interopRequireDefault(require(\"ampersand-collection\"));\nvar _constants = require(\"../constants\");\nvar _siLanguage = _interopRequireDefault(require(\"./siLanguage\"));\n/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nvar SILanguageCollection = _ampersandCollection.default.extend({\n model: _siLanguage.default,\n namespace: _constants.MEETINGS,\n mainIndex: 'languageName'\n});\nvar _default = exports.default = SILanguageCollection;\n//# sourceMappingURL=collection.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\nvar _webexCore = require(\"@webex/webex-core\");\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _constants = require(\"../constants\");\nvar _collection = _interopRequireDefault(require(\"./collection\"));\n/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\n/**\n * @class SimultaneousInterpretation\n */\nvar SimultaneousInterpretation = _webexCore.WebexPlugin.extend({\n namespace: _constants.MEETINGS,\n collections: {\n siLanguages: _collection.default\n },\n props: {\n locusUrl: 'string',\n // appears current meeting's locus url\n approvalUrl: 'string',\n // appears current meeting's approval url for handoff between interpreters\n originalLanguage: 'string',\n // appears current meeting's original language\n sourceLanguage: 'string',\n // appears self interpreter's source language\n targetLanguage: 'string',\n // appears self interpreter's target language\n receiveLanguage: 'string',\n // appears self's receive language\n order: 'number',\n // appears the order of self as interpreter\n isActive: 'boolean',\n // appears self is interpreter and is active\n selfParticipantId: 'string',\n // appears the self participant id\n canManageInterpreters: 'boolean',\n // appears the ability to manage interpreters\n supportLanguages: 'array',\n // appears the support languages\n meetingSIEnabled: 'boolean',\n // appears the meeting support SI feature\n hostSIEnabled: 'boolean',\n // appears the meeting host/interpreter feature of SI enabled\n selfIsInterpreter: 'boolean' // current user is interpreter or not\n },\n\n derived: {\n shouldQuerySupportLanguages: {\n cache: false,\n deps: ['canManageInterpreters', 'hostSIEnabled'],\n /**\n * Returns should query support languages or not\n * @returns {boolean}\n */\n fn: function fn() {\n return !!(this.canManageInterpreters && this.hostSIEnabled);\n }\n }\n },\n /**\n * initialize for interpretation\n * @returns {void}\n */\n initialize: function initialize() {\n var _this = this;\n this.listenTo(this, 'change:shouldQuerySupportLanguages', function () {\n if (_this.canManageInterpreters && !_this.supportLanguages) {\n _this.querySupportLanguages();\n }\n });\n this.listenToHandoffRequests();\n },\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp: function cleanUp() {\n this.stopListening();\n },\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate: function locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n /**\n * Update the approval url for handoff\n * @param {string} approvalUrl // approval url\n * @returns {void}\n */\n approvalUrlUpdate: function approvalUrlUpdate(approvalUrl) {\n this.set('approvalUrl', approvalUrl);\n },\n /**\n * Update whether self has capability to manage interpreters (only host can manage it)\n * @param {boolean} canManageInterpreters\n * @returns {void}\n */\n updateCanManageInterpreters: function updateCanManageInterpreters(canManageInterpreters) {\n this.set('canManageInterpreters', canManageInterpreters);\n },\n /**\n * Update whether the meeting's host si is enabled or not\n * @param {boolean} hostSIEnabled\n * @returns {void}\n */\n updateHostSIEnabled: function updateHostSIEnabled(hostSIEnabled) {\n this.set('hostSIEnabled', hostSIEnabled);\n },\n /**\n * Update whether the meeting support SI feature or not from meeting info\n * @param {boolean} meetingSIEnabled\n * @param {boolean} selfIsInterpreter\n * @returns {void}\n */\n updateMeetingSIEnabled: function updateMeetingSIEnabled(meetingSIEnabled, selfIsInterpreter) {\n this.set('meetingSIEnabled', meetingSIEnabled);\n this.set('selfIsInterpreter', selfIsInterpreter);\n },\n /**\n * Update the interpretation languages channels which user can choose to subscribe\n * @param {Object} interpretation\n * @returns {void}\n */\n updateInterpretation: function updateInterpretation(interpretation) {\n this.siLanguages.set((interpretation === null || interpretation === void 0 ? void 0 : interpretation.siLanguages) || []);\n },\n /**\n * Update self's interpretation information (self is interpreter)\n * @param {Object} interpretation\n * @param {String} selfParticipantId\n * @returns {bool} is target language changed\n */\n updateSelfInterpretation: function updateSelfInterpretation(_ref) {\n var interpretation = _ref.interpretation,\n selfParticipantId = _ref.selfParticipantId;\n var preTargetLanguage = this.targetLanguage;\n var _ref2 = interpretation || {},\n originalLanguage = _ref2.originalLanguage,\n sourceLanguage = _ref2.sourceLanguage,\n order = _ref2.order,\n isActive = _ref2.isActive,\n targetLanguage = _ref2.targetLanguage,\n receiveLanguage = _ref2.receiveLanguage;\n this.set({\n originalLanguage: originalLanguage,\n sourceLanguage: sourceLanguage,\n order: order,\n isActive: isActive,\n targetLanguage: targetLanguage,\n receiveLanguage: receiveLanguage\n });\n this.set('selfParticipantId', selfParticipantId);\n this.set('selfIsInterpreter', !!targetLanguage);\n return !!(preTargetLanguage !== targetLanguage);\n },\n /**\n * Get the language code of the interpreter target language\n * @returns {number}\n */\n getTargetLanguageCode: function getTargetLanguageCode() {\n if (this.selfIsInterpreter) {\n var _this$siLanguages$get;\n return (_this$siLanguages$get = this.siLanguages.get(this.targetLanguage)) === null || _this$siLanguages$get === void 0 ? void 0 : _this$siLanguages$get.languageCode;\n }\n return 0;\n },\n /**\n * query interpretation languages\n * @returns {Promise}\n */\n querySupportLanguages: function querySupportLanguages() {\n var _this2 = this;\n return this.request({\n method: _constants.HTTP_VERBS.GET,\n uri: \"\".concat(this.locusUrl, \"/languages/interpretation\")\n }).then(function (result) {\n var _result$body;\n _this2.set('supportLanguages', (_result$body = result.body) === null || _result$body === void 0 ? void 0 : _result$body.siLanguages);\n _this2.trigger(_constants.INTERPRETATION.EVENTS.SUPPORT_LANGUAGES_UPDATE);\n }).catch(function (error) {\n _loggerProxy.default.logger.error('Meeting:interpretation#querySupportLanguages failed', error);\n throw error;\n });\n },\n /**\n * get interpreters of the meeting\n * @returns {Promise}\n */\n getInterpreters: function getInterpreters() {\n return this.request({\n method: _constants.HTTP_VERBS.GET,\n uri: \"\".concat(this.locusUrl, \"/interpretation/interpreters\")\n }).catch(function (error) {\n _loggerProxy.default.logger.error('Meeting:interpretation#getInterpreters failed', error);\n throw error;\n });\n },\n /**\n * update interpreters of the meeting\n * @param {Array} interpreters\n * @returns {Promise}\n */\n updateInterpreters: function updateInterpreters(interpreters) {\n return this.request({\n method: _constants.HTTP_VERBS.PATCH,\n uri: \"\".concat(this.locusUrl, \"/controls\"),\n body: {\n interpretation: {\n interpreters: interpreters\n }\n }\n }).catch(function (error) {\n _loggerProxy.default.logger.error('Meeting:interpretation#updateInterpreters failed', error);\n throw error;\n });\n },\n /**\n * Change direction of interpretation for an interpreter participant\n * @returns {Promise}\n */\n changeDirection: function changeDirection() {\n if (!this.sourceLanguage || !this.targetLanguage) {\n return _promise.default.reject(new Error('Missing sourceLanguage or targetLanguage'));\n }\n if (!this.selfParticipantId) {\n return _promise.default.reject(new Error('Missing self participant id'));\n }\n return this.request({\n method: _constants.HTTP_VERBS.PATCH,\n uri: \"\".concat(this.locusUrl, \"/participant/\").concat(this.selfParticipantId, \"/controls\"),\n body: {\n interpretation: {\n sourceLanguage: this.targetLanguage,\n targetLanguage: this.sourceLanguage,\n isActive: this.isActive,\n order: this.order\n }\n }\n }).catch(function (error) {\n _loggerProxy.default.logger.error('Meeting:interpretation#changeDirection failed', error);\n throw error;\n });\n },\n /**\n * Sets up a listener for handoff requests from mercury\n * @returns {void}\n */\n listenToHandoffRequests: function listenToHandoffRequests() {\n var _this3 = this;\n this.listenTo(this.webex.internal.mercury, 'event:locus.approval_request', function (event) {\n var _event$data, _event$data$approval;\n if ((event === null || event === void 0 ? void 0 : (_event$data = event.data) === null || _event$data === void 0 ? void 0 : (_event$data$approval = _event$data.approval) === null || _event$data$approval === void 0 ? void 0 : _event$data$approval.resourceType) === _constants.INTERPRETATION.RESOURCE_TYPE) {\n var _receivers$;\n var _event$data$approval2 = event.data.approval,\n receivers = _event$data$approval2.receivers,\n initiator = _event$data$approval2.initiator,\n actionType = _event$data$approval2.actionType,\n url = _event$data$approval2.url;\n var receiverId = receivers === null || receivers === void 0 ? void 0 : (_receivers$ = receivers[0]) === null || _receivers$ === void 0 ? void 0 : _receivers$.participantId;\n var isReceiver = !!receiverId && receiverId === _this3.selfParticipantId;\n var senderId = initiator === null || initiator === void 0 ? void 0 : initiator.participantId;\n var isSender = !!senderId && senderId === _this3.selfParticipantId;\n if (!isReceiver && !isSender) {\n return;\n }\n _this3.trigger(_constants.INTERPRETATION.EVENTS.HANDOFF_REQUESTS_ARRIVED, {\n actionType: actionType,\n isReceiver: isReceiver,\n isSender: isSender,\n senderId: senderId,\n receiverId: receiverId,\n url: url\n });\n }\n });\n },\n /**\n * handoff the active interpreter role to another interpreter in same group, only the interpreter is allowed to call this api\n * @param {string} participantId the participant id you want to hand off\n * @returns {Promise}\n */\n handoffInterpreter: function handoffInterpreter(participantId) {\n if (!participantId) {\n return _promise.default.reject(new Error('Missing target participant id'));\n }\n if (!this.approvalUrl) {\n return _promise.default.reject(new Error('Missing approval url'));\n }\n return this.request({\n method: _constants.HTTP_VERBS.POST,\n uri: this.approvalUrl,\n body: {\n actionType: _constants.INTERPRETATION.ACTION_TYPE.OFFERED,\n resourceType: _constants.INTERPRETATION.RESOURCE_TYPE,\n receivers: [{\n participantId: participantId\n }]\n }\n }).catch(function (error) {\n _loggerProxy.default.logger.error('Meeting:interpretation#handoffInterpreter failed', error);\n throw error;\n });\n },\n /**\n * the in-active interpreter request to hand off the active role to self\n * @returns {Promise}\n */\n requestHandoff: function requestHandoff() {\n if (!this.approvalUrl) {\n return _promise.default.reject(new Error('Missing approval url'));\n }\n return this.request({\n method: _constants.HTTP_VERBS.POST,\n uri: this.approvalUrl,\n body: {\n actionType: _constants.INTERPRETATION.ACTION_TYPE.REQUESTED,\n resourceType: _constants.INTERPRETATION.RESOURCE_TYPE\n }\n }).catch(function (error) {\n _loggerProxy.default.logger.error('Meeting:interpretation#requestHandoff failed', error);\n throw error;\n });\n },\n /**\n * accept the request of handoff\n * @param {String} url the url get from last approval event\n * @returns {Promise}\n */\n acceptRequest: function acceptRequest(url) {\n if (!url) {\n return _promise.default.reject(new Error('Missing the url to accept'));\n }\n return this.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: url,\n body: {\n actionType: _constants.INTERPRETATION.ACTION_TYPE.ACCEPTED\n }\n }).catch(function (error) {\n _loggerProxy.default.logger.error('Meeting:interpretation#acceptRequest failed', error);\n throw error;\n });\n },\n /**\n * decline the request of handoff\n * @param {String} url the url get from last approval event\n * @returns {Promise}\n */\n declineRequest: function declineRequest(url) {\n if (!url) {\n return _promise.default.reject(new Error('Missing the url to decline'));\n }\n return this.request({\n method: _constants.HTTP_VERBS.PUT,\n uri: url,\n body: {\n actionType: _constants.INTERPRETATION.ACTION_TYPE.DECLINED\n }\n }).catch(function (error) {\n _loggerProxy.default.logger.error('Meeting:interpretation#declineRequest failed', error);\n throw error;\n });\n },\n version: \"3.7.0-web-workers-keepalive.1\"\n});\nvar _default = exports.default = SimultaneousInterpretation;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _webexCore = require(\"@webex/webex-core\");\nvar _constants = require(\"../constants\");\n/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nvar SILanguage = _webexCore.WebexPlugin.extend({\n idAttribute: 'languageName',\n namespace: _constants.MEETINGS,\n props: {\n languageCode: 'number',\n languageName: 'string'\n },\n version: \"3.7.0-web-workers-keepalive.1\"\n});\nvar _default = exports.default = SILanguage;\n//# sourceMappingURL=siLanguage.js.map\n","\"use strict\";\n\nvar _Object$keys = require(\"@babel/runtime-corejs2/core-js/object/keys\");\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-symbols\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptors\");\nvar _Object$defineProperties = require(\"@babel/runtime-corejs2/core-js/object/define-properties\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _lodash = require(\"lodash\");\nvar _constants = require(\"../constants\");\nfunction ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar ControlsUtils = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = function (controls) {\n var parsedControls = _objectSpread({}, controls);\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified\n };\n }\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl\n };\n }\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption\n };\n }\n if (controls && controls.manualCaptionControl) {\n parsedControls.manualCaptionControl = {\n enabled: controls.manualCaptionControl.enabled\n };\n }\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled ? controls.entryExitTone.mode : null;\n }\n if (controls && controls.video) {\n parsedControls.videoEnabled = controls.video.enabled;\n }\n if (controls !== null && controls !== void 0 && controls.muteOnEntry) {\n parsedControls.muteOnEntry = {\n enabled: controls.muteOnEntry.enabled\n };\n }\n if (controls !== null && controls !== void 0 && controls.shareControl) {\n parsedControls.shareControl = {\n control: controls.shareControl.control\n };\n }\n if (controls !== null && controls !== void 0 && controls.disallowUnmute) {\n parsedControls.disallowUnmute = {\n enabled: controls.disallowUnmute.enabled\n };\n }\n if (controls !== null && controls !== void 0 && controls.reactions) {\n parsedControls.reactions = {\n enabled: controls.reactions.enabled,\n showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions\n };\n }\n if (controls !== null && controls !== void 0 && controls.viewTheParticipantList) {\n var _controls$viewThePart, _controls$viewThePart2, _controls$viewThePart3, _controls$viewThePart4, _controls$viewThePart5, _controls$viewThePart6;\n parsedControls.viewTheParticipantList = {\n enabled: (_controls$viewThePart = (_controls$viewThePart2 = controls.viewTheParticipantList) === null || _controls$viewThePart2 === void 0 ? void 0 : _controls$viewThePart2.enabled) !== null && _controls$viewThePart !== void 0 ? _controls$viewThePart : false,\n panelistEnabled: (_controls$viewThePart3 = (_controls$viewThePart4 = controls.viewTheParticipantList) === null || _controls$viewThePart4 === void 0 ? void 0 : _controls$viewThePart4.panelistEnabled) !== null && _controls$viewThePart3 !== void 0 ? _controls$viewThePart3 : false,\n attendeeCount: (_controls$viewThePart5 = (_controls$viewThePart6 = controls.viewTheParticipantList) === null || _controls$viewThePart6 === void 0 ? void 0 : _controls$viewThePart6.attendeeCount) !== null && _controls$viewThePart5 !== void 0 ? _controls$viewThePart5 : 0\n };\n }\n if (controls !== null && controls !== void 0 && controls.raiseHand) {\n parsedControls.raiseHand = {\n enabled: controls.raiseHand.enabled\n };\n }\n if (controls !== null && controls !== void 0 && controls.video) {\n parsedControls.video = {\n enabled: controls.video.enabled\n };\n }\n if (controls !== null && controls !== void 0 && controls.webcastControl) {\n parsedControls.webcastControl = {\n streaming: controls.webcastControl.streaming\n };\n }\n if (controls !== null && controls !== void 0 && controls.meetingFull) {\n var _controls$meetingFull, _controls$meetingFull2, _controls$meetingFull3, _controls$meetingFull4;\n parsedControls.meetingFull = {\n meetingFull: (_controls$meetingFull = (_controls$meetingFull2 = controls.meetingFull) === null || _controls$meetingFull2 === void 0 ? void 0 : _controls$meetingFull2.meetingFull) !== null && _controls$meetingFull !== void 0 ? _controls$meetingFull : false,\n meetingPanelistFull: (_controls$meetingFull3 = (_controls$meetingFull4 = controls.meetingFull) === null || _controls$meetingFull4 === void 0 ? void 0 : _controls$meetingFull4.meetingPanelistFull) !== null && _controls$meetingFull3 !== void 0 ? _controls$meetingFull3 : false\n };\n }\n if (controls !== null && controls !== void 0 && controls.practiceSession) {\n parsedControls.practiceSession = {\n enabled: controls.practiceSession.enabled\n };\n }\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = function (oldControls, newControls) {\n var _current$muteOnEntry, _previous$muteOnEntry, _current$shareControl, _previous$shareContro, _current$disallowUnmu, _previous$disallowUnm, _current$reactions, _previous$reactions, _current$reactions2, _previous$reactions2, _current$viewTheParti, _previous$viewThePart, _current$viewTheParti2, _previous$viewThePart2, _current$viewTheParti3, _previous$viewThePart3, _current$raiseHand, _previous$raiseHand, _current$video, _previous$video, _previous$record, _previous$record2, _current$record, _previous$record3, _current$record2, _previous$record4, _current$record3, _previous$meetingCont, _current$meetingConta, _previous$transcribe, _current$transcribe, _previous$transcribe2, _current$transcribe2, _previous$manualCapti, _current$manualCaptio, _previous$manualCapti2, _current$manualCaptio2, _newControls$video, _previous$webcastCont, _current$webcastContr, _previous$meetingFull, _current$meetingFull, _previous$meetingFull2, _current$meetingFull2, _previous$practiceSes, _current$practiceSess;\n var previous = ControlsUtils.parse(oldControls);\n var current = ControlsUtils.parse(newControls);\n return {\n previous: previous,\n current: current,\n updates: {\n hasMuteOnEntryChanged: (current === null || current === void 0 ? void 0 : (_current$muteOnEntry = current.muteOnEntry) === null || _current$muteOnEntry === void 0 ? void 0 : _current$muteOnEntry.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$muteOnEntry = previous.muteOnEntry) === null || _previous$muteOnEntry === void 0 ? void 0 : _previous$muteOnEntry.enabled),\n hasShareControlChanged: (current === null || current === void 0 ? void 0 : (_current$shareControl = current.shareControl) === null || _current$shareControl === void 0 ? void 0 : _current$shareControl.control) !== (previous === null || previous === void 0 ? void 0 : (_previous$shareContro = previous.shareControl) === null || _previous$shareContro === void 0 ? void 0 : _previous$shareContro.control),\n hasDisallowUnmuteChanged: (current === null || current === void 0 ? void 0 : (_current$disallowUnmu = current.disallowUnmute) === null || _current$disallowUnmu === void 0 ? void 0 : _current$disallowUnmu.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$disallowUnm = previous.disallowUnmute) === null || _previous$disallowUnm === void 0 ? void 0 : _previous$disallowUnm.enabled),\n hasReactionsChanged: (current === null || current === void 0 ? void 0 : (_current$reactions = current.reactions) === null || _current$reactions === void 0 ? void 0 : _current$reactions.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$reactions = previous.reactions) === null || _previous$reactions === void 0 ? void 0 : _previous$reactions.enabled),\n hasReactionDisplayNamesChanged: (current === null || current === void 0 ? void 0 : (_current$reactions2 = current.reactions) === null || _current$reactions2 === void 0 ? void 0 : _current$reactions2.showDisplayNameWithReactions) !== (previous === null || previous === void 0 ? void 0 : (_previous$reactions2 = previous.reactions) === null || _previous$reactions2 === void 0 ? void 0 : _previous$reactions2.showDisplayNameWithReactions),\n hasViewTheParticipantListChanged: (current === null || current === void 0 ? void 0 : (_current$viewTheParti = current.viewTheParticipantList) === null || _current$viewTheParti === void 0 ? void 0 : _current$viewTheParti.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$viewThePart = previous.viewTheParticipantList) === null || _previous$viewThePart === void 0 ? void 0 : _previous$viewThePart.enabled) || (current === null || current === void 0 ? void 0 : (_current$viewTheParti2 = current.viewTheParticipantList) === null || _current$viewTheParti2 === void 0 ? void 0 : _current$viewTheParti2.panelistEnabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$viewThePart2 = previous.viewTheParticipantList) === null || _previous$viewThePart2 === void 0 ? void 0 : _previous$viewThePart2.panelistEnabled) || (current === null || current === void 0 ? void 0 : (_current$viewTheParti3 = current.viewTheParticipantList) === null || _current$viewTheParti3 === void 0 ? void 0 : _current$viewTheParti3.attendeeCount) !== (previous === null || previous === void 0 ? void 0 : (_previous$viewThePart3 = previous.viewTheParticipantList) === null || _previous$viewThePart3 === void 0 ? void 0 : _previous$viewThePart3.attendeeCount),\n hasRaiseHandChanged: (current === null || current === void 0 ? void 0 : (_current$raiseHand = current.raiseHand) === null || _current$raiseHand === void 0 ? void 0 : _current$raiseHand.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$raiseHand = previous.raiseHand) === null || _previous$raiseHand === void 0 ? void 0 : _previous$raiseHand.enabled),\n hasVideoChanged: (current === null || current === void 0 ? void 0 : (_current$video = current.video) === null || _current$video === void 0 ? void 0 : _current$video.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$video = previous.video) === null || _previous$video === void 0 ? void 0 : _previous$video.enabled),\n hasRecordingPausedChanged: (current === null || current === void 0 ? void 0 : current.record) && !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$record = previous.record) === null || _previous$record === void 0 ? void 0 : _previous$record.paused, current.record.paused) && ((previous === null || previous === void 0 ? void 0 : (_previous$record2 = previous.record) === null || _previous$record2 === void 0 ? void 0 : _previous$record2.recording) || (current === null || current === void 0 ? void 0 : (_current$record = current.record) === null || _current$record === void 0 ? void 0 : _current$record.recording)),\n // see comments directly below\n\n hasRecordingChanged: (current === null || current === void 0 ? void 0 : current.record) && !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$record3 = previous.record) === null || _previous$record3 === void 0 ? void 0 : _previous$record3.recording, current === null || current === void 0 ? void 0 : (_current$record2 = current.record) === null || _current$record2 === void 0 ? void 0 : _current$record2.recording) && (\n // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous === null || previous === void 0 ? void 0 : (_previous$record4 = previous.record) === null || _previous$record4 === void 0 ? void 0 : _previous$record4.recording) || (current === null || current === void 0 ? void 0 : (_current$record3 = current.record) === null || _current$record3 === void 0 ? void 0 : _current$record3.recording)),\n // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged: (current === null || current === void 0 ? void 0 : current.meetingContainer) && !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$meetingCont = previous.meetingContainer) === null || _previous$meetingCont === void 0 ? void 0 : _previous$meetingCont.meetingContainerUrl, current === null || current === void 0 ? void 0 : (_current$meetingConta = current.meetingContainer) === null || _current$meetingConta === void 0 ? void 0 : _current$meetingConta.meetingContainerUrl),\n hasTranscribeChanged: (current === null || current === void 0 ? void 0 : current.transcribe) && !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$transcribe = previous.transcribe) === null || _previous$transcribe === void 0 ? void 0 : _previous$transcribe.transcribing, current === null || current === void 0 ? void 0 : (_current$transcribe = current.transcribe) === null || _current$transcribe === void 0 ? void 0 : _current$transcribe.transcribing) && (\n // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous === null || previous === void 0 ? void 0 : (_previous$transcribe2 = previous.transcribe) === null || _previous$transcribe2 === void 0 ? void 0 : _previous$transcribe2.transcribing) || (current === null || current === void 0 ? void 0 : (_current$transcribe2 = current.transcribe) === null || _current$transcribe2 === void 0 ? void 0 : _current$transcribe2.transcribing)),\n // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasManualCaptionChanged: (current === null || current === void 0 ? void 0 : current.manualCaptionControl) && !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$manualCapti = previous.manualCaptionControl) === null || _previous$manualCapti === void 0 ? void 0 : _previous$manualCapti.enabled, current === null || current === void 0 ? void 0 : (_current$manualCaptio = current.manualCaptionControl) === null || _current$manualCaptio === void 0 ? void 0 : _current$manualCaptio.enabled) && ((previous === null || previous === void 0 ? void 0 : (_previous$manualCapti2 = previous.manualCaptionControl) === null || _previous$manualCapti2 === void 0 ? void 0 : _previous$manualCapti2.enabled) || (current === null || current === void 0 ? void 0 : (_current$manualCaptio2 = current.manualCaptionControl) === null || _current$manualCaptio2 === void 0 ? void 0 : _current$manualCaptio2.enabled)),\n hasEntryExitToneChanged: !!(newControls.entryExitTone && !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.entryExitTone, current === null || current === void 0 ? void 0 : current.entryExitTone) && (previous !== null && previous !== void 0 && previous.entryExitTone || current !== null && current !== void 0 && current.entryExitTone)),\n hasBreakoutChanged: !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.breakout, current === null || current === void 0 ? void 0 : current.breakout),\n hasInterpretationChanged: !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.interpretation, current === null || current === void 0 ? void 0 : current.interpretation),\n hasVideoEnabledChanged: ((_newControls$video = newControls.video) === null || _newControls$video === void 0 ? void 0 : _newControls$video.enabled) !== undefined && !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.videoEnabled, current === null || current === void 0 ? void 0 : current.videoEnabled),\n hasWebcastChanged: !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$webcastCont = previous.webcastControl) === null || _previous$webcastCont === void 0 ? void 0 : _previous$webcastCont.streaming, current === null || current === void 0 ? void 0 : (_current$webcastContr = current.webcastControl) === null || _current$webcastContr === void 0 ? void 0 : _current$webcastContr.streaming),\n hasMeetingFullChanged: !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$meetingFull = previous.meetingFull) === null || _previous$meetingFull === void 0 ? void 0 : _previous$meetingFull.meetingFull, current === null || current === void 0 ? void 0 : (_current$meetingFull = current.meetingFull) === null || _current$meetingFull === void 0 ? void 0 : _current$meetingFull.meetingFull) || !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$meetingFull2 = previous.meetingFull) === null || _previous$meetingFull2 === void 0 ? void 0 : _previous$meetingFull2.meetingPanelistFull, current === null || current === void 0 ? void 0 : (_current$meetingFull2 = current.meetingFull) === null || _current$meetingFull2 === void 0 ? void 0 : _current$meetingFull2.meetingPanelistFull),\n hasPracticeSessionEnabledChanged: !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : (_previous$practiceSes = previous.practiceSession) === null || _previous$practiceSes === void 0 ? void 0 : _previous$practiceSes.enabled, current === null || current === void 0 ? void 0 : (_current$practiceSess = current.practiceSession) === null || _current$practiceSess === void 0 ? void 0 : _current$practiceSess.enabled),\n hasStageViewChanged: !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.videoLayout, current === null || current === void 0 ? void 0 : current.videoLayout)\n }\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = function (controls) {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n return null;\n};\n\n/**\n * check whether to replace the meeting's members or not.\n * For case joined breakout session, need replace meeting's members\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Boolean}\n */\nControlsUtils.isNeedReplaceMembers = function (oldControls, controls) {\n // no breakout case\n if (!(oldControls !== null && oldControls !== void 0 && oldControls.breakout) || !(controls !== null && controls !== void 0 && controls.breakout)) {\n return false;\n }\n return oldControls.breakout.groupId !== controls.breakout.groupId || oldControls.breakout.sessionId !== controls.breakout.sessionId;\n};\n\n/**\n * determine the switch status between breakout session and main session.\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Object}\n */\nControlsUtils.getSessionSwitchStatus = function (oldControls, controls) {\n var status = {\n isReturnToMain: false,\n isJoinToBreakout: false\n };\n // no breakout case\n if (!(oldControls !== null && oldControls !== void 0 && oldControls.breakout) || !(controls !== null && controls !== void 0 && controls.breakout)) {\n return status;\n }\n status.isReturnToMain = oldControls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && controls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;\n status.isJoinToBreakout = oldControls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN && controls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT;\n return status;\n};\nControlsUtils.isMainSessionDTO = function (locus) {\n var _locus$controls, _locus$controls$break;\n return (locus === null || locus === void 0 ? void 0 : (_locus$controls = locus.controls) === null || _locus$controls === void 0 ? void 0 : (_locus$controls$break = _locus$controls.breakout) === null || _locus$controls$break === void 0 ? void 0 : _locus$controls$break.sessionType) !== _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT;\n};\nvar _default = exports.default = ControlsUtils;\n//# sourceMappingURL=controlsUtils.js.map\n","\"use strict\";\n\nvar _Object$keys = require(\"@babel/runtime-corejs2/core-js/object/keys\");\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-symbols\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptors\");\nvar _Object$defineProperties = require(\"@babel/runtime-corejs2/core-js/object/define-properties\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../constants\");\nfunction ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar EmbeddedAppsUtils = {};\nvar SLIDO_REGEX = /.sli.do\\//;\n\n/**\n * Parse the relevant values that we care about\n * @param {Object} embeddedApp - raw embedded app object\n * @returns {Object} parsedObject - parsed embedded app object\n */\nEmbeddedAppsUtils.parseApp = function (embeddedApp) {\n var _parsedApp$instanceIn;\n var parsedApp = _objectSpread({}, embeddedApp);\n parsedApp.type = _constants.EMBEDDED_APP_TYPES.OTHER;\n var url = (_parsedApp$instanceIn = parsedApp.instanceInfo) === null || _parsedApp$instanceIn === void 0 ? void 0 : _parsedApp$instanceIn.appInstanceUrl;\n if (url && url.match(SLIDO_REGEX)) {\n parsedApp.type = _constants.EMBEDDED_APP_TYPES.SLIDO;\n }\n return parsedApp;\n};\n\n/**\n * Determines if two embedded apps arrays are similar.\n * NOTE: This is a simple test for performance reasons.\n * @param {any[]} apps1 - an array of apps\n * @param {any[]} apps2 - an array of apps\n * @returns {boolean} true if the arrays are different\n */\nEmbeddedAppsUtils.areSimilar = function (apps1, apps2) {\n if (!apps1 || !apps2) {\n return apps1 === apps2;\n }\n if ((apps1 === null || apps1 === void 0 ? void 0 : apps1.length) !== (apps2 === null || apps2 === void 0 ? void 0 : apps2.length)) {\n return false;\n }\n for (var i = 0; i < apps1.length; i += 1) {\n if (apps1[i].state !== apps2[i].state) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Parse the array of embedded apps\n * @param {array} embeddedApps\n * @returns {array} result - new array of parsed embedded app objects\n */\nEmbeddedAppsUtils.parse = function (embeddedApps) {\n return embeddedApps && embeddedApps.map(EmbeddedAppsUtils.parseApp);\n};\nvar _default = exports.default = EmbeddedAppsUtils;\n//# sourceMappingURL=embeddedAppsUtils.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _constants = require(\"../constants\");\nvar FullState = {};\nFullState.parse = function (fullState) {\n return {\n type: fullState.type || _constants.FULL_STATE.UNKNOWN,\n meetingState: fullState.state,\n locked: fullState.locked,\n attendeeCount: typeof fullState.attendeeCount === 'number' ? fullState.attendeeCount : 0\n };\n};\nFullState.getFullState = function (oldFullState, newFullState) {\n var previous = oldFullState && FullState.parse(oldFullState);\n var current = newFullState && FullState.parse(newFullState);\n return {\n previous: previous,\n current: current,\n updates: {\n isMeetingEnded: FullState.isMeetingEnded(previous, current),\n isMeetingTerminating: FullState.isMeetingTerminating(previous, current),\n meetingTypeChangedTo: FullState.isTypeChanged(previous, current),\n meetingStateChangedTo: FullState.meetingStateChange(previous, current)\n }\n };\n};\nFullState.isMeetingEnded = function (previous, current) {\n if (current.state === _constants.FULL_STATE.INACTIVE && previous && (previous.state === _constants.FULL_STATE.ACTIVE || previous.state === _constants.FULL_STATE.INITIALIZING || previous.state === _constants.FULL_STATE.TERMINATING)) {\n return true;\n }\n return false;\n};\nFullState.isMeetingTerminating = function (previous, current) {\n if (current.state === _constants.FULL_STATE.TERMINATING && previous && (previous.state === _constants.FULL_STATE.ACTIVE || previous.state === _constants.FULL_STATE.INITIALIZING)) {\n return true;\n }\n return false;\n};\nFullState.isTypeChanged = function (previous, current) {\n if (!previous || current.type !== previous.type) {\n return current && current.type;\n }\n return null;\n};\nFullState.meetingStateChange = function (previous, current) {\n if (!previous || current.meetingState !== previous.meetingState) {\n return current && current.meetingState;\n }\n return null;\n};\nvar _default = exports.default = FullState;\n//# sourceMappingURL=fullState.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar HostUtils = {};\n\n/**\n * parse the relevant host values that we care about: id\n * @param {Object} host\n * @returns {Object} parsed host or null if host was undefined\n */\nHostUtils.parse = function (host) {\n if (host) {\n return {\n hostId: HostUtils.getId(host)\n };\n }\n return null;\n};\n\n/**\n * get the previous and current host values parsed, as well as the boolean updates\n * @param {Object} oldHost\n * @param {Object} newHost\n * @returns {Object}\n * previous: {Object} old host, current: {Object} new host, updates: {isNewHost: {boolean}} boolean update values\n */\nHostUtils.getHosts = function (oldHost, newHost) {\n var previous = oldHost && HostUtils.parse(oldHost);\n var current = newHost && HostUtils.parse(newHost);\n return {\n previous: previous,\n current: current,\n updates: {\n isNewHost: previous && current ? HostUtils.isDifferentHosts(previous.hostId, current.hostId) : true\n }\n };\n};\n\n/**\n * determine by id if 2 hosts are different\n * @param {String} previousId\n * @param {String} currentId\n * @returns {Boolean}\n */\nHostUtils.isDifferentHosts = function (previousId, currentId) {\n return previousId !== currentId;\n};\n\n/**\n * Extract the id from the host object\n * @param {Object} host\n * @returns {String}\n */\nHostUtils.getId = function (host) {\n if (!host) {\n return null;\n }\n return host.id;\n};\nvar _default = exports.default = HostUtils;\n//# sourceMappingURL=hostUtils.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _keys = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/keys\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _lodash = require(\"lodash\");\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _eventsScope = _interopRequireDefault(require(\"../common/events/events-scope\"));\nvar _constants = require(\"../constants\");\nvar _infoUtils = _interopRequireDefault(require(\"./infoUtils\"));\nvar _fullState = _interopRequireDefault(require(\"./fullState\"));\nvar _selfUtils = _interopRequireDefault(require(\"./selfUtils\"));\nvar _hostUtils = _interopRequireDefault(require(\"./hostUtils\"));\nvar _controlsUtils = _interopRequireDefault(require(\"./controlsUtils\"));\nvar _embeddedAppsUtils = _interopRequireDefault(require(\"./embeddedAppsUtils\"));\nvar _mediaSharesUtils = _interopRequireDefault(require(\"./mediaSharesUtils\"));\nvar _parser = _interopRequireDefault(require(\"./parser\"));\nvar _metrics = _interopRequireDefault(require(\"../metrics\"));\nvar _constants2 = _interopRequireDefault(require(\"../metrics/constants\"));\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * @description LocusInfo extends ChildEmitter to convert locusInfo info a private emitter to parent object\n * @export\n * @private\n * @class LocusInfo\n */\nvar LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {\n (0, _inherits2.default)(LocusInfo, _EventsScope);\n var _super = _createSuper(LocusInfo);\n /**\n * Constructor\n * @param {function} updateMeeting callback to update the meeting object from an object\n * @param {object} webex\n * @param {string} meetingId\n * @returns {undefined}\n */\n function LocusInfo(updateMeeting, webex, meetingId) {\n var _this;\n (0, _classCallCheck2.default)(this, LocusInfo);\n _this = _super.call(this);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"compareAndUpdateFlags\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"emitChange\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"locusParser\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"meetingId\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"parsedLocus\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"updateMeeting\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"webex\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"aclUrl\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"baseSequence\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"created\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"deltaParticipants\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"identities\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"membership\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"participants\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"participantsUrl\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"replaces\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"scheduledMeeting\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sequence\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"controls\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"conversationUrl\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"embeddedApps\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"fullState\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"host\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"info\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"roles\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"mediaShares\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"replace\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"url\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"services\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"resources\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"mainSessionLocusCache\", void 0);\n _this.parsedLocus = {\n states: []\n };\n _this.webex = webex;\n _this.emitChange = false;\n _this.compareAndUpdateFlags = {};\n _this.meetingId = meetingId;\n _this.updateMeeting = updateMeeting;\n _this.locusParser = new _parser.default();\n return _this;\n }\n\n /**\n * Does a Locus sync. It tries to get the latest delta DTO or if it can't, it falls back to getting the full Locus DTO.\n *\n * @param {Meeting} meeting\n * @returns {undefined}\n */\n (0, _createClass2.default)(LocusInfo, [{\n key: \"doLocusSync\",\n value: function doLocusSync(meeting) {\n var _this2 = this;\n var isDelta;\n var url;\n if (this.locusParser.workingCopy.syncUrl) {\n url = this.locusParser.workingCopy.syncUrl;\n isDelta = true;\n } else {\n url = meeting.locusUrl;\n isDelta = false;\n }\n _loggerProxy.default.logger.info(\"Locus-info:index#doLocusSync --> doing Locus sync (getting \".concat(isDelta ? 'delta' : 'full', \" DTO)\"));\n\n // return value ignored on purpose\n meeting.meetingRequest.getLocusDTO({\n url: url\n }).catch(function (e) {\n if (isDelta) {\n _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> delta sync failed, falling back to full sync');\n _metrics.default.sendBehavioralMetric(_constants2.default.LOCUS_DELTA_SYNC_FAILED, {\n correlationId: meeting.correlationId,\n url: url,\n reason: e.message,\n errorName: e.name,\n stack: e.stack,\n code: e.code\n });\n isDelta = false;\n return meeting.meetingRequest.getLocusDTO({\n url: meeting.locusUrl\n }).catch(function (err) {\n _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');\n _this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);\n throw err;\n });\n }\n _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');\n _this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);\n throw e;\n }).then(function (res) {\n if (isDelta) {\n if (!(0, _lodash.isEmpty)(res.body)) {\n meeting.locusInfo.handleLocusDelta(res.body, meeting);\n } else {\n _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> received empty body from syncUrl, so we already have latest Locus DTO');\n }\n } else {\n meeting.locusInfo.onFullLocus(res.body);\n }\n // Notify parser to resume processing delta events.\n // Any deltas in the queue that have now been superseded by this sync will simply be ignored\n _this2.locusParser.resume();\n });\n }\n\n /**\n * Apply locus delta data to meeting\n * @param {string} action Locus delta action\n * @param {Locus} locus\n * @param {Meeting} meeting\n * @returns {undefined}\n */\n }, {\n key: \"applyLocusDeltaData\",\n value: function applyLocusDeltaData(action, locus, meeting) {\n var _LocusDeltaParser$loc = _parser.default.loci,\n DESYNC = _LocusDeltaParser$loc.DESYNC,\n USE_CURRENT = _LocusDeltaParser$loc.USE_CURRENT,\n USE_INCOMING = _LocusDeltaParser$loc.USE_INCOMING,\n WAIT = _LocusDeltaParser$loc.WAIT,\n LOCUS_URL_CHANGED = _LocusDeltaParser$loc.LOCUS_URL_CHANGED;\n switch (action) {\n case USE_INCOMING:\n meeting.locusInfo.onDeltaLocus(locus);\n break;\n case USE_CURRENT:\n case WAIT:\n // do nothing\n break;\n case DESYNC:\n case LOCUS_URL_CHANGED:\n this.doLocusSync(meeting);\n break;\n default:\n _loggerProxy.default.logger.info(\"Locus-info:index#applyLocusDeltaData --> Unknown locus delta action: \".concat(action));\n }\n }\n\n /**\n * Adds locus delta to parser's queue\n * and registers a function handler\n * to recieve parsed actions from queue.\n * @param {Locus} locus\n * @param {Meeting} meeting\n * @returns {undefined}\n */\n }, {\n key: \"handleLocusDelta\",\n value: function handleLocusDelta(locus, meeting) {\n var _this3 = this;\n // register a function to process delta actions\n if (!this.locusParser.onDeltaAction) {\n // delta action, along with associated loci\n // is passed into the function.\n this.locusParser.onDeltaAction = function (action, parsedLoci) {\n _this3.applyLocusDeltaData(action, parsedLoci, meeting);\n };\n }\n // queue delta event with parser\n this.locusParser.onDeltaEvent(locus);\n }\n\n /**\n * @param {Locus} locus\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"init\",\n value: function init() {\n var _locus$links, _locus$links2;\n var locus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.created = locus.created || null;\n this.scheduledMeeting = locus.meeting || null;\n this.participantsUrl = locus.participantsUrl || null;\n this.replaces = locus.replaces || null;\n this.aclUrl = locus.aclUrl || null;\n this.baseSequence = locus.baseSequence || null;\n this.sequence = locus.sequence || null;\n this.membership = locus.membership || null;\n this.identities = locus.identities || null;\n this.participants = locus.participants || null;\n\n /**\n * Stores the delta values for a changed participant.\n *\n * @typedef {Object} DeltaParticipant\n * @property {Record} delta - Contains changed streams.\n * @property {Object} person - Contains person data.\n */\n\n /**\n * Stored participant changes between the last event and the current event.\n * All previously stored events are overwritten between events.\n *\n * @instance\n * @type {Array}\n * @private\n * @member LocusInfo\n */\n this.deltaParticipants = [];\n this.updateLocusCache(locus);\n // above section only updates the locusInfo object\n // The below section makes sure it updates the locusInfo as well as updates the meeting object\n this.updateParticipants(locus.participants);\n // For 1:1 space meeting the conversation Url does not exist in locus.conversation\n this.updateConversationUrl(locus.conversationUrl, locus.info);\n this.updateControls(locus.controls, locus.self);\n this.updateLocusUrl(locus.url);\n this.updateFullState(locus.fullState);\n this.updateMeetingInfo(locus.info);\n this.updateEmbeddedApps(locus.embeddedApps);\n // self and participants generate sipUrl for 1:1 meeting\n this.updateSelf(locus.self, locus.participants);\n this.updateHostInfo(locus.host);\n this.updateMediaShares(locus.mediaShares);\n this.updateServices((_locus$links = locus.links) === null || _locus$links === void 0 ? void 0 : _locus$links.services);\n this.updateResources((_locus$links2 = locus.links) === null || _locus$links2 === void 0 ? void 0 : _locus$links2.resources);\n }\n\n /**\n * @param {Object} locus\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"initialSetup\",\n value: function initialSetup(locus) {\n this.updateLocusCache(locus);\n this.onFullLocus(locus);\n\n // Change it to true after it receives it first locus object\n this.emitChange = true;\n }\n\n /**\n * @param {Meeting} meeting\n * @param {Object} data\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"parse\",\n value: function parse(meeting, data) {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n var eventType = data.eventType;\n var locus = this.getTheLocusToUpdate(data.locus);\n _loggerProxy.default.logger.info(\"Locus-info:index#parse --> received locus data: \".concat(eventType));\n switch (eventType) {\n case _constants.LOCUSEVENT.PARTICIPANT_JOIN:\n case _constants.LOCUSEVENT.PARTICIPANT_LEFT:\n case _constants.LOCUSEVENT.CONTROLS_UPDATED:\n case _constants.LOCUSEVENT.PARTICIPANT_AUDIO_MUTED:\n case _constants.LOCUSEVENT.PARTICIPANT_AUDIO_UNMUTED:\n case _constants.LOCUSEVENT.PARTICIPANT_VIDEO_MUTED:\n case _constants.LOCUSEVENT.PARTICIPANT_VIDEO_UNMUTED:\n case _constants.LOCUSEVENT.SELF_CHANGED:\n case _constants.LOCUSEVENT.PARTICIPANT_UPDATED:\n case _constants.LOCUSEVENT.PARTICIPANT_CONTROLS_UPDATED:\n case _constants.LOCUSEVENT.PARTICIPANT_ROLES_UPDATED:\n case _constants.LOCUSEVENT.PARTICIPANT_DECLINED:\n case _constants.LOCUSEVENT.FLOOR_GRANTED:\n case _constants.LOCUSEVENT.FLOOR_RELEASED:\n this.onFullLocus(locus, eventType);\n break;\n case _constants.LOCUSEVENT.DIFFERENCE:\n this.handleLocusDelta(locus, meeting);\n break;\n default:\n // Why will there be a event with no eventType ????\n // we may not need this, we can get full locus\n this.handleLocusDelta(locus, meeting);\n }\n }\n\n /**\n * @param {String} scope\n * @param {String} eventName\n * @param {Array} args\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"emitScoped\",\n value: function emitScoped(scope, eventName, args) {\n return this.emit(scope, eventName, args);\n }\n\n /**\n * updates the locus with full locus object\n * @param {object} locus locus object\n * @param {string} eventType particulat locus event\n * @returns {object} null\n * @memberof LocusInfo\n */\n }, {\n key: \"onFullLocus\",\n value: function onFullLocus(locus, eventType) {\n if (!locus) {\n _loggerProxy.default.logger.error('Locus-info:index#onFullLocus --> object passed as argument was invalid, continuing.');\n }\n if (!this.locusParser.isNewFullLocus(locus)) {\n _loggerProxy.default.logger.info(\"Locus-info:index#onFullLocus --> ignoring old full locus DTO, eventType=\".concat(eventType));\n return;\n }\n this.updateParticipantDeltas(locus.participants);\n this.scheduledMeeting = locus.meeting || null;\n this.participants = locus.participants;\n var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);\n this.updateLocusInfo(locus);\n this.updateParticipants(locus.participants, isReplaceMembers);\n this.isMeetingActive();\n this.handleOneOnOneEvent(eventType);\n this.updateEmbeddedApps(locus.embeddedApps);\n // set current (working copy) for parser\n this.locusParser.workingCopy = locus;\n }\n\n // used for ringing stops on one on one\n /**\n * @param {String} eventType\n * @returns {undefined}\n * @memberof LocusInfo\n */\n // eslint-disable-next-line @typescript-eslint/no-shadow\n }, {\n key: \"handleOneOnOneEvent\",\n value: function handleOneOnOneEvent(eventType) {\n if (this.parsedLocus.fullState.type === _constants._CALL_ || this.parsedLocus.fullState.type === _constants._SIP_BRIDGE_) {\n // for 1:1 bob calls alice and alice declines, notify the meeting state\n if (eventType === _constants.LOCUSEVENT.PARTICIPANT_DECLINED) {\n // trigger the event for stop ringing\n this.emitScoped({\n file: 'locus-info',\n function: 'handleOneonOneEvent'\n }, _constants.EVENTS.REMOTE_RESPONSE, {\n remoteDeclined: true,\n remoteAnswered: false\n });\n }\n // for 1:1 bob calls alice and alice answers, notify the meeting state\n if (eventType === _constants.LOCUSEVENT.PARTICIPANT_JOIN) {\n // trigger the event for stop ringing\n this.emitScoped({\n file: 'locus-info',\n function: 'handleOneonOneEvent'\n }, _constants.EVENTS.REMOTE_RESPONSE, {\n remoteDeclined: false,\n remoteAnswered: true\n });\n }\n }\n }\n\n /**\n * @param {Object} locus\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"onDeltaLocus\",\n value: function onDeltaLocus(locus) {\n var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);\n this.updateLocusInfo(locus);\n this.updateParticipants(locus.participants, isReplaceMembers);\n this.isMeetingActive();\n }\n\n /**\n * @param {Object} locus\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateLocusInfo\",\n value: function updateLocusInfo(locus) {\n var _locus$self, _locus$self2, _locus$links3, _locus$links4;\n if (((_locus$self = locus.self) === null || _locus$self === void 0 ? void 0 : _locus$self.reason) === 'MOVED' && ((_locus$self2 = locus.self) === null || _locus$self2 === void 0 ? void 0 : _locus$self2.state) === 'LEFT') {\n // When moved to a breakout session locus sends a message for the previous locus\n // indicating that we have been moved. It isn't helpful to continue parsing this\n // as it gets interpreted as if we have left the call\n return;\n }\n this.updateControls(locus.controls, locus.self);\n this.updateConversationUrl(locus.conversationUrl, locus.info);\n this.updateCreated(locus.created);\n this.updateFullState(locus.fullState);\n this.updateHostInfo(locus.host);\n this.updateMeetingInfo(locus.info, locus.self);\n this.updateMediaShares(locus.mediaShares);\n this.updateParticipantsUrl(locus.participantsUrl);\n this.updateReplace(locus.replace);\n this.updateSelf(locus.self, locus.participants);\n this.updateLocusUrl(locus.url);\n this.updateAclUrl(locus.aclUrl);\n this.updateBasequence(locus.baseSequence);\n this.updateSequence(locus.sequence);\n this.updateMemberShip(locus.membership);\n this.updateIdentifiers(locus.identities);\n this.updateEmbeddedApps(locus.embeddedApps);\n this.updateServices((_locus$links3 = locus.links) === null || _locus$links3 === void 0 ? void 0 : _locus$links3.services);\n this.updateResources((_locus$links4 = locus.links) === null || _locus$links4 === void 0 ? void 0 : _locus$links4.resources);\n this.compareAndUpdate();\n // update which required to compare different objects from locus\n }\n\n /**\n * @param {Array} participants\n * @param {Object} self\n * @returns {Array}\n * @memberof LocusInfo\n */\n }, {\n key: \"getLocusPartner\",\n value: function getLocusPartner(participants, self) {\n if (!participants || participants.length === 0) {\n return null;\n }\n return participants.find(function (participant) {\n return self && participant.identity !== self.identity && (participants.length <= 2 || participant.type === _constants._USER_ && !participant.removed);\n }\n // @ts-ignore\n ) || this.partner;\n }\n\n // TODO: all the leave states need to be checked\n /**\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"isMeetingActive\",\n value: function isMeetingActive() {\n if (this.parsedLocus.fullState.type === _constants._CALL_ || this.parsedLocus.fullState.type === _constants._SIP_BRIDGE_) {\n // @ts-ignore\n var partner = this.getLocusPartner(this.participants, this.self);\n this.updateMeeting({\n partner: partner\n });\n\n // Check if guest user needs to be checked here\n\n // 1) when bob declines call from bob, (bob='DECLINED')\n // 2) When alice rejects call to bob , (bob='NOTIFIED')\n\n // When we dont add MEDIA for condition 2. The state of bob='IDLE'\n\n if (this.fullState && this.fullState.state === _constants.LOCUS.STATE.INACTIVE) {\n // TODO: update the meeting state\n _loggerProxy.default.logger.warn('Locus-info:index#isMeetingActive --> Call Ended, locus state is inactive.');\n\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.call.remote-ended',\n options: {\n meetingId: this.meetingId\n }\n });\n this.emitScoped({\n file: 'locus-info',\n function: 'isMeetingActive'\n }, _constants.EVENTS.DESTROY_MEETING, {\n reason: _constants.CALL_REMOVED_REASON.CALL_INACTIVE,\n shouldLeave: false\n });\n } else if (partner.state === _constants.MEETING_STATE.STATES.LEFT && this.parsedLocus.self && (this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.DECLINED || this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.NOTIFIED || this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.JOINED)) {\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.call.remote-ended',\n options: {\n meetingId: this.meetingId\n }\n });\n this.emitScoped({\n file: 'locus-info',\n function: 'isMeetingActive'\n }, _constants.EVENTS.DESTROY_MEETING, {\n reason: _constants.CALL_REMOVED_REASON.PARTNER_LEFT,\n shouldLeave: this.parsedLocus.self.joinedWith && this.parsedLocus.self.joinedWith.state !== _constants._LEFT_\n });\n } else if (this.parsedLocus.self && this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.LEFT && (partner.state === _constants.MEETING_STATE.STATES.LEFT || partner.state === _constants.MEETING_STATE.STATES.DECLINED || partner.state === _constants.MEETING_STATE.STATES.NOTIFIED || partner.state === _constants.MEETING_STATE.STATES.IDLE) // Happens when user just joins and adds no Media\n ) {\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.call.remote-ended',\n options: {\n meetingId: this.meetingId\n }\n });\n this.emitScoped({\n file: 'locus-info',\n function: 'isMeetingActive'\n }, _constants.EVENTS.DESTROY_MEETING, {\n reason: _constants.CALL_REMOVED_REASON.SELF_LEFT,\n shouldLeave: false\n });\n }\n } else if (this.parsedLocus.fullState.type === _constants._MEETING_) {\n if (this.fullState && (this.fullState.state === _constants.LOCUS.STATE.INACTIVE ||\n // @ts-ignore\n this.fullState.state === _constants.LOCUS.STATE.TERMINATING)) {\n _loggerProxy.default.logger.warn('Locus-info:index#isMeetingActive --> Meeting is ending due to inactive or terminating');\n\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.call.remote-ended',\n options: {\n meetingId: this.meetingId\n }\n });\n this.emitScoped({\n file: 'locus-info',\n function: 'isMeetingActive'\n }, _constants.EVENTS.DESTROY_MEETING, {\n reason: _constants.MEETING_REMOVED_REASON.MEETING_INACTIVE_TERMINATING,\n shouldLeave: false\n });\n } else if (this.fullState && this.fullState.removed) {\n // user has been dropped from a meeting\n\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.call.remote-ended',\n options: {\n meetingId: this.meetingId\n }\n });\n this.emitScoped({\n file: 'locus-info',\n function: 'isMeetingActive'\n }, _constants.EVENTS.DESTROY_MEETING, {\n reason: _constants.MEETING_REMOVED_REASON.FULLSTATE_REMOVED,\n shouldLeave: false\n });\n }\n // If you are guest and you are removed from the meeting\n // You wont get any further events\n else if (this.parsedLocus.self && this.parsedLocus.self.removed) {\n // Check if we need to send an event\n this.emitScoped({\n file: 'locus-info',\n function: 'isMeetingActive'\n }, _constants.EVENTS.DESTROY_MEETING, {\n reason: _constants.MEETING_REMOVED_REASON.SELF_REMOVED,\n shouldLeave: false\n });\n }\n } else {\n _loggerProxy.default.logger.warn('Locus-info:index#isMeetingActive --> Meeting Type is unknown.');\n }\n }\n\n /**\n * checks if the host permissions have changed while in the meeting\n * This would be the case if your role as host or moderator has been updated\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"compareAndUpdate\",\n value: function compareAndUpdate() {\n // TODO: check with locus team on host and moderator doc\n // use host as a validator if needed\n if (this.compareAndUpdateFlags.compareSelfAndHost || this.compareAndUpdateFlags.compareHostAndSelf) {\n this.compareSelfAndHost();\n }\n }\n\n /**\n * compared the self object to check if the user has host permissions\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"compareSelfAndHost\",\n value: function compareSelfAndHost() {\n var _this$parsedLocus$hos;\n // In some cases the host info is not present but the moderator values changes from null to false so it triggers an update\n if (this.parsedLocus.self.selfIdentity === ((_this$parsedLocus$hos = this.parsedLocus.host) === null || _this$parsedLocus$hos === void 0 ? void 0 : _this$parsedLocus$hos.hostId) && this.parsedLocus.self.moderator) {\n this.emitScoped({\n file: 'locus-info',\n function: 'compareSelfAndHost'\n }, _constants.EVENTS.LOCUS_INFO_CAN_ASSIGN_HOST, {\n canAssignHost: true\n });\n } else {\n this.emitScoped({\n file: 'locus-info',\n function: 'compareSelfAndHost'\n }, _constants.EVENTS.LOCUS_INFO_CAN_ASSIGN_HOST, {\n canAssignHost: false\n });\n }\n }\n\n /**\n * Update the deltaParticipants property of this object based on a list of\n * provided participants.\n *\n * @param {Array} [participants] - The participants to update against.\n * @returns {void}\n */\n }, {\n key: \"updateParticipantDeltas\",\n value: function updateParticipantDeltas() {\n var _this4 = this;\n var participants = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // Used to find a participant within a participants collection.\n var findParticipant = function findParticipant(participant, collection) {\n return collection.find(function (item) {\n return item.person.id === participant.person.id;\n });\n };\n\n // Generates an object that indicates which state properties have changed.\n var generateDelta = function generateDelta() {\n var prevState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var newState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Setup deltas.\n var deltas = {\n audioStatus: prevState.audioStatus !== newState.audioStatus,\n videoSlidesStatus: prevState.videoSlidesStatus !== newState.videoSlidesStatus,\n videoStatus: prevState.videoStatus !== newState.videoStatus\n };\n\n // Clean the object\n (0, _keys.default)(deltas).forEach(function (key) {\n if (deltas[key] !== true) {\n delete deltas[key];\n }\n });\n return deltas;\n };\n this.deltaParticipants = participants.reduce(function (collection, participant) {\n var existingParticipant = findParticipant(participant, _this4.participants || []) || {};\n var delta = generateDelta(existingParticipant.status, participant.status);\n var changed = (0, _keys.default)(delta).length > 0;\n if (changed) {\n collection.push({\n person: participant.person,\n delta: delta\n });\n }\n return collection;\n }, []);\n }\n\n /**\n * update meeting's members\n * @param {Object} participants new participants object\n * @param {Boolean} isReplace is replace the whole members\n * @returns {Array} updatedParticipants\n * @memberof LocusInfo\n */\n }, {\n key: \"updateParticipants\",\n value: function updateParticipants(participants, isReplace) {\n var _this$parsedLocus$con;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateParticipants'\n }, _constants.EVENTS.LOCUS_INFO_UPDATE_PARTICIPANTS, {\n participants: participants,\n recordingId: this.parsedLocus.controls && ((_this$parsedLocus$con = this.parsedLocus.controls.record) === null || _this$parsedLocus$con === void 0 ? void 0 : _this$parsedLocus$con.modifiedBy),\n selfIdentity: this.parsedLocus.self && this.parsedLocus.self.selfIdentity,\n selfId: this.parsedLocus.self && this.parsedLocus.self.selfId,\n hostId: this.parsedLocus.host && this.parsedLocus.host.hostId,\n isReplace: isReplace\n });\n }\n\n /**\n * @param {Object} controls\n * @param {Object} self\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateControls\",\n value: function updateControls(controls, self) {\n if (controls && !(0, _lodash.isEqual)(this.controls, controls)) {\n this.parsedLocus.controls = _controlsUtils.default.parse(controls);\n var _ControlsUtils$getCon = _controlsUtils.default.getControls(this.controls, controls),\n _ControlsUtils$getCon2 = _ControlsUtils$getCon.updates,\n hasRecordingChanged = _ControlsUtils$getCon2.hasRecordingChanged,\n hasRecordingPausedChanged = _ControlsUtils$getCon2.hasRecordingPausedChanged,\n hasMeetingContainerChanged = _ControlsUtils$getCon2.hasMeetingContainerChanged,\n hasTranscribeChanged = _ControlsUtils$getCon2.hasTranscribeChanged,\n hasManualCaptionChanged = _ControlsUtils$getCon2.hasManualCaptionChanged,\n hasEntryExitToneChanged = _ControlsUtils$getCon2.hasEntryExitToneChanged,\n hasBreakoutChanged = _ControlsUtils$getCon2.hasBreakoutChanged,\n hasVideoEnabledChanged = _ControlsUtils$getCon2.hasVideoEnabledChanged,\n hasMuteOnEntryChanged = _ControlsUtils$getCon2.hasMuteOnEntryChanged,\n hasShareControlChanged = _ControlsUtils$getCon2.hasShareControlChanged,\n hasDisallowUnmuteChanged = _ControlsUtils$getCon2.hasDisallowUnmuteChanged,\n hasReactionsChanged = _ControlsUtils$getCon2.hasReactionsChanged,\n hasReactionDisplayNamesChanged = _ControlsUtils$getCon2.hasReactionDisplayNamesChanged,\n hasViewTheParticipantListChanged = _ControlsUtils$getCon2.hasViewTheParticipantListChanged,\n hasRaiseHandChanged = _ControlsUtils$getCon2.hasRaiseHandChanged,\n hasVideoChanged = _ControlsUtils$getCon2.hasVideoChanged,\n hasInterpretationChanged = _ControlsUtils$getCon2.hasInterpretationChanged,\n hasWebcastChanged = _ControlsUtils$getCon2.hasWebcastChanged,\n hasMeetingFullChanged = _ControlsUtils$getCon2.hasMeetingFullChanged,\n hasPracticeSessionEnabledChanged = _ControlsUtils$getCon2.hasPracticeSessionEnabledChanged,\n hasStageViewChanged = _ControlsUtils$getCon2.hasStageViewChanged,\n current = _ControlsUtils$getCon.current;\n if (hasMuteOnEntryChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, {\n state: current.muteOnEntry\n });\n }\n if (hasShareControlChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, {\n state: current.shareControl\n });\n }\n if (hasDisallowUnmuteChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, {\n state: current.disallowUnmute\n });\n }\n if (hasReactionsChanged || hasReactionDisplayNamesChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, {\n state: current.reactions\n });\n }\n if (hasViewTheParticipantListChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, {\n state: current.viewTheParticipantList\n });\n }\n if (hasRaiseHandChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, {\n state: current.raiseHand\n });\n }\n if (hasVideoChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, {\n state: current.video\n });\n }\n if (hasRecordingChanged || hasRecordingPausedChanged) {\n var state = null;\n if (hasRecordingPausedChanged) {\n if (current.record.paused) {\n state = _constants.RECORDING_STATE.PAUSED;\n } else {\n // state will be `IDLE` if the recording is not active, even when there is a `pause` status change.\n state = current.record.recording ? _constants.RECORDING_STATE.RESUMED : _constants.RECORDING_STATE.IDLE;\n }\n } else if (hasRecordingChanged) {\n state = current.record.recording ? _constants.RECORDING_STATE.RECORDING : _constants.RECORDING_STATE.IDLE;\n }\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_RECORDING_UPDATED, {\n state: state,\n modifiedBy: current.record.modifiedBy,\n lastModified: current.record.lastModified\n });\n }\n if (hasMeetingContainerChanged) {\n var meetingContainerUrl = current.meetingContainer.meetingContainerUrl;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_CONTAINER_UPDATED, {\n meetingContainerUrl: meetingContainerUrl\n });\n }\n if (hasTranscribeChanged) {\n var _current$transcribe = current.transcribe,\n transcribing = _current$transcribe.transcribing,\n caption = _current$transcribe.caption;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_TRANSCRIBE_UPDATED, {\n transcribing: transcribing,\n caption: caption\n });\n }\n if (hasManualCaptionChanged) {\n var enabled = current.manualCaptionControl.enabled;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_MANUAL_CAPTION_UPDATED, {\n enabled: enabled\n });\n }\n if (hasBreakoutChanged) {\n var breakout = current.breakout;\n breakout.breakoutMoveId = _selfUtils.default.getReplacedBreakoutMoveId(self, this.webex.internal.device.url);\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, {\n breakout: breakout\n });\n }\n if (hasInterpretationChanged) {\n var interpretation = current.interpretation;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, {\n interpretation: interpretation\n });\n }\n if (hasEntryExitToneChanged) {\n var entryExitTone = current.entryExitTone;\n this.updateMeeting({\n entryExitTone: entryExitTone\n });\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, {\n entryExitTone: entryExitTone\n });\n }\n\n // videoEnabled is handled differently than other controls,\n // to fit with audio mute status logic\n if (hasVideoEnabledChanged) {\n var videoEnabled = current.videoEnabled;\n this.updateMeeting({\n unmuteVideoAllowed: videoEnabled\n });\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED, {\n // muted: not part of locus.controls\n unmuteAllowed: videoEnabled\n });\n }\n if (hasWebcastChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED, {\n state: current.webcastControl\n });\n }\n if (hasMeetingFullChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_FULL_CHANGED, {\n state: current.meetingFull\n });\n }\n if (hasPracticeSessionEnabledChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED, {\n state: current.practiceSession\n });\n }\n if (hasStageViewChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateControls'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_STAGE_VIEW_UPDATED, {\n state: current.videoLayout\n });\n }\n this.controls = controls;\n }\n }\n\n /**\n * @param {String} conversationUrl\n * @param {Object} info\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateConversationUrl\",\n value: function updateConversationUrl(conversationUrl, info) {\n if (conversationUrl && !(0, _lodash.isEqual)(this.conversationUrl, conversationUrl)) {\n this.conversationUrl = conversationUrl;\n this.updateMeeting({\n conversationUrl: conversationUrl\n });\n } else if (info && info.conversationUrl && !(0, _lodash.isEqual)(this.conversationUrl, info.conversationUrl)) {\n this.conversationUrl = info.conversationUrl;\n this.updateMeeting({\n conversationUrl: info.conversationUrl\n });\n }\n }\n\n /**\n * @param {Object} created\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateCreated\",\n value: function updateCreated(created) {\n if (created && !(0, _lodash.isEqual)(this.created, created)) {\n this.created = created;\n }\n }\n\n /**\n * @param {Object} services\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateServices\",\n value: function updateServices(services) {\n if (services && !(0, _lodash.isEqual)(this.services, services)) {\n this.services = services;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateServices'\n }, _constants.LOCUSINFO.EVENTS.LINKS_SERVICES, {\n services: services\n });\n }\n }\n\n /**\n * @param {Object} resources\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateResources\",\n value: function updateResources(resources) {\n if (resources && !(0, _lodash.isEqual)(this.resources, resources)) {\n this.resources = resources;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateResources'\n }, _constants.LOCUSINFO.EVENTS.LINKS_RESOURCES, {\n resources: resources\n });\n }\n }\n\n /**\n * @param {Object} fullState\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateFullState\",\n value: function updateFullState(fullState) {\n if (fullState && !(0, _lodash.isEqual)(this.fullState, fullState)) {\n var result = _fullState.default.getFullState(this.fullState, fullState);\n this.updateMeeting(result.current);\n if (result.updates.meetingStateChangedTo) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateFullState'\n }, _constants.LOCUSINFO.EVENTS.FULL_STATE_MEETING_STATE_CHANGE, {\n previousState: result.previous && result.previous.meetingState,\n currentState: result.current.meetingState\n });\n }\n if (result.updates.meetingTypeChangedTo) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateFullState'\n }, _constants.LOCUSINFO.EVENTS.FULL_STATE_TYPE_UPDATE, {\n type: result.current.type\n });\n }\n this.parsedLocus.fullState = result.current;\n this.fullState = fullState;\n }\n }\n\n /**\n * handles when the locus.host is updated\n * @param {Object} host the locus.host property\n * @returns {undefined}\n * @memberof LocusInfo\n * emits internal event locus_info_update_host\n */\n }, {\n key: \"updateHostInfo\",\n value: function updateHostInfo(host) {\n if (host && !(0, _lodash.isEqual)(this.host, host)) {\n var parsedHosts = _hostUtils.default.getHosts(this.host, host);\n this.updateMeeting(parsedHosts.current);\n this.parsedLocus.host = parsedHosts.current;\n if (parsedHosts.updates.isNewHost) {\n this.compareAndUpdateFlags.compareSelfAndHost = true;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateHostInfo'\n }, _constants.EVENTS.LOCUS_INFO_UPDATE_HOST, {\n newHost: parsedHosts.current,\n oldHost: parsedHosts.previous\n });\n }\n this.host = host;\n } else {\n this.compareAndUpdateFlags.compareSelfAndHost = false;\n }\n }\n\n /**\n * @param {Object} info\n * @param {Object} self\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateMeetingInfo\",\n value: function updateMeetingInfo(info, self) {\n var _this$parsedLocus$sel;\n var roles = self ? _selfUtils.default.getRoles(self) : ((_this$parsedLocus$sel = this.parsedLocus.self) === null || _this$parsedLocus$sel === void 0 ? void 0 : _this$parsedLocus$sel.roles) || [];\n if (info && !(0, _lodash.isEqual)(this.info, info) || roles.length && !(0, _lodash.isEqual)(this.roles, roles) && info) {\n var isJoined = _selfUtils.default.isJoined(self || this.parsedLocus.self);\n var parsedInfo = _infoUtils.default.getInfos(this.parsedLocus.info, info, roles, isJoined);\n if (parsedInfo.updates.isLocked) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateMeetingInfo'\n }, _constants.LOCUSINFO.EVENTS.MEETING_LOCKED, info);\n }\n if (parsedInfo.updates.isUnlocked) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateMeetingInfo'\n }, _constants.LOCUSINFO.EVENTS.MEETING_UNLOCKED, info);\n }\n this.info = info;\n this.parsedLocus.info = parsedInfo.current;\n // Parses the info and adds necessary values\n this.updateMeeting(parsedInfo.current);\n this.emitScoped({\n file: 'locus-info',\n function: 'updateMeetingInfo'\n }, _constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, {\n isInitializing: !self // if self is undefined, then the update is caused by locus init\n });\n }\n\n this.roles = roles;\n }\n\n /**\n * @param {Object} embeddedApps\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateEmbeddedApps\",\n value: function updateEmbeddedApps(embeddedApps) {\n // don't do anything if the arrays of apps haven't changed significantly\n if (_embeddedAppsUtils.default.areSimilar(this.embeddedApps, embeddedApps)) {\n return;\n }\n var parsedEmbeddedApps = _embeddedAppsUtils.default.parse(embeddedApps);\n this.updateMeeting({\n embeddedApps: parsedEmbeddedApps\n });\n this.emitScoped({\n file: 'locus-info',\n function: 'updateEmbeddedApps'\n }, _constants.LOCUSINFO.EVENTS.EMBEDDED_APPS_UPDATED, parsedEmbeddedApps);\n this.embeddedApps = embeddedApps;\n }\n\n /**\n * handles when the locus.mediaShares is updated\n * @param {Object} mediaShares the locus.mediaShares property\n * @param {boolean} forceUpdate force to update the mediaShares\n * @returns {undefined}\n * @memberof LocusInfo\n * emits internal event locus_info_update_media_shares\n */\n }, {\n key: \"updateMediaShares\",\n value: function updateMediaShares(mediaShares) {\n var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (mediaShares && (!(0, _lodash.isEqual)(this.mediaShares, mediaShares) || forceUpdate)) {\n var parsedMediaShares = _mediaSharesUtils.default.getMediaShares(this.mediaShares, mediaShares);\n this.updateMeeting(parsedMediaShares.current);\n this.parsedLocus.mediaShares = parsedMediaShares.current;\n this.mediaShares = mediaShares;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateMediaShares'\n }, _constants.EVENTS.LOCUS_INFO_UPDATE_MEDIA_SHARES, {\n current: parsedMediaShares.current,\n previous: parsedMediaShares.previous,\n forceUpdate: forceUpdate\n });\n }\n }\n\n /**\n * @param {String} participantsUrl\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateParticipantsUrl\",\n value: function updateParticipantsUrl(participantsUrl) {\n if (participantsUrl && !(0, _lodash.isEqual)(this.participantsUrl, participantsUrl)) {\n this.participantsUrl = participantsUrl;\n }\n }\n\n /**\n * @param {Object} replace\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateReplace\",\n value: function updateReplace(replace) {\n if (replace && !(0, _lodash.isEqual)(this.replace, replace)) {\n this.replace = replace;\n }\n }\n\n /**\n * handles when the locus.self is updated\n * @param {Object} self the locus.mediaShares property\n * @param {Array} participants the locus.participants property\n * @returns {undefined}\n * @memberof LocusInfo\n * emits internal events self_admitted_guest, self_unadmitted_guest, locus_info_update_self\n */\n }, {\n key: \"updateSelf\",\n value: function updateSelf(self, participants) {\n // @ts-ignore - check where this.self come from\n if (self && !(0, _lodash.isEqual)(this.self, self)) {\n // @ts-ignore\n var parsedSelves = _selfUtils.default.getSelves(this.self, self, this.webex.internal.device.url);\n this.updateMeeting(parsedSelves.current);\n this.parsedLocus.self = parsedSelves.current;\n var element = this.parsedLocus.states[this.parsedLocus.states.length - 1];\n if (element !== parsedSelves.current.state) {\n this.parsedLocus.states.push(parsedSelves.current.state);\n }\n\n // TODO: check if we need to save the sipUri here as well\n // this.emit(LOCUSINFO.EVENTS.MEETING_UPDATE, SelfUtils.getSipUrl(this.getLocusPartner(participants, self), this.parsedLocus.fullState.type, this.parsedLocus.info.sipUri));\n var result = _selfUtils.default.getSipUrl(this.getLocusPartner(participants, self), this.parsedLocus.fullState.type, this.parsedLocus.info.sipUri);\n if (result.sipUri) {\n this.updateMeeting(result);\n }\n if (parsedSelves.updates.moderatorChanged) {\n this.compareAndUpdateFlags.compareHostAndSelf = true;\n } else {\n this.compareAndUpdateFlags.compareHostAndSelf = false;\n }\n if (parsedSelves.updates.layoutChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, {\n layout: parsedSelves.current.layout\n });\n }\n if (parsedSelves.updates.breakoutsChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_MEETING_BREAKOUTS_CHANGED, {\n breakoutSessions: parsedSelves.current.breakoutSessions\n });\n }\n if (parsedSelves.updates.brbChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_MEETING_BRB_CHANGED, {\n brb: parsedSelves.current.brb\n });\n }\n if (parsedSelves.updates.interpretationChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_MEETING_INTERPRETATION_CHANGED, {\n interpretation: parsedSelves.current.interpretation,\n selfParticipantId: parsedSelves.current.selfId\n });\n }\n if (parsedSelves.updates.isMediaInactiveOrReleased) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.DISCONNECT_DUE_TO_INACTIVITY, {\n reason: self.reason\n });\n }\n if (parsedSelves.updates.moderatorChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_MODERATOR_CHANGED, self);\n }\n if (parsedSelves.updates.isRolesChanged) {\n var _parsedSelves$previou, _parsedSelves$current;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_ROLES_CHANGED, {\n oldRoles: (_parsedSelves$previou = parsedSelves.previous) === null || _parsedSelves$previou === void 0 ? void 0 : _parsedSelves$previou.roles,\n newRoles: (_parsedSelves$current = parsedSelves.current) === null || _parsedSelves$current === void 0 ? void 0 : _parsedSelves$current.roles\n });\n }\n if (parsedSelves.updates.isVideoMutedByOthersChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED, {\n muted: parsedSelves.current.remoteVideoMuted\n // unmuteAllowed: not part of .self\n });\n }\n\n if (parsedSelves.updates.localAudioUnmuteRequiredByServer) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUIRED, {\n muted: parsedSelves.current.remoteMuted,\n unmuteAllowed: parsedSelves.current.unmuteAllowed\n });\n }\n if (parsedSelves.updates.isMutedByOthersChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_REMOTE_MUTE_STATUS_UPDATED, {\n muted: parsedSelves.current.remoteMuted,\n unmuteAllowed: parsedSelves.current.unmuteAllowed\n });\n }\n if (parsedSelves.updates.localAudioUnmuteRequestedByServer) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUESTED, {});\n }\n if (parsedSelves.updates.isUserUnadmitted) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_UNADMITTED_GUEST, self);\n }\n if (parsedSelves.updates.isUserAdmitted) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, self);\n }\n if (parsedSelves.updates.isMediaInactive) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n },\n // @ts-ignore\n _constants.LOCUSINFO.EVENTS.MEDIA_INACTIVITY, _selfUtils.default.getMediaStatus(self.mediaSessions));\n }\n if (parsedSelves.updates.audioStateChange || parsedSelves.updates.videoStateChange || parsedSelves.updates.shareStateChange) {\n var _parsedSelves$current2, _parsedSelves$current3, _parsedSelves$current4;\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.MEDIA_STATUS_CHANGE, {\n audioStatus: (_parsedSelves$current2 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current2 === void 0 ? void 0 : _parsedSelves$current2.audio,\n videoStatus: (_parsedSelves$current3 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current3 === void 0 ? void 0 : _parsedSelves$current3.video,\n shareStatus: (_parsedSelves$current4 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current4 === void 0 ? void 0 : _parsedSelves$current4.share\n });\n }\n if (parsedSelves.updates.isUserObserving) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_OBSERVING);\n }\n if (parsedSelves.updates.canNotViewTheParticipantListChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE, {\n canNotViewTheParticipantList: parsedSelves.current.canNotViewTheParticipantList\n });\n }\n if (parsedSelves.updates.isSharingBlockedChanged) {\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.LOCUSINFO.EVENTS.SELF_IS_SHARING_BLOCKED_CHANGE, {\n isSharingBlocked: parsedSelves.current.isSharingBlocked\n });\n }\n this.emitScoped({\n file: 'locus-info',\n function: 'updateSelf'\n }, _constants.EVENTS.LOCUS_INFO_UPDATE_SELF, {\n oldSelf: parsedSelves.previous,\n newSelf: parsedSelves.current\n });\n this.parsedLocus.self = parsedSelves.current;\n // @ts-ignore\n this.self = self;\n } else {\n this.compareAndUpdateFlags.compareHostAndSelf = false;\n }\n }\n\n /**\n * handles when the locus.url is updated\n * @param {String} url\n * @returns {undefined}\n * emits internal event locus_info_update_url\n */\n }, {\n key: \"updateLocusUrl\",\n value: function updateLocusUrl(url) {\n if (url && this.url !== url) {\n this.url = url;\n this.updateMeeting({\n locusUrl: url\n });\n this.emitScoped({\n file: 'locus-info',\n function: 'updateLocusUrl'\n }, _constants.EVENTS.LOCUS_INFO_UPDATE_URL, url);\n }\n }\n\n /**\n * @param {String} aclUrl\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateAclUrl\",\n value: function updateAclUrl(aclUrl) {\n if (aclUrl && !(0, _lodash.isEqual)(this.aclUrl, aclUrl)) {\n this.aclUrl = aclUrl;\n }\n }\n\n /**\n * @param {Number} baseSequence\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateBasequence\",\n value: function updateBasequence(baseSequence) {\n if (baseSequence && !(0, _lodash.isEqual)(this.baseSequence, baseSequence)) {\n this.baseSequence = baseSequence;\n }\n }\n\n /**\n * @param {Number} sequence\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateSequence\",\n value: function updateSequence(sequence) {\n if (sequence && !(0, _lodash.isEqual)(this.sequence, sequence)) {\n this.sequence = sequence;\n }\n }\n\n /**\n * @param {Object} membership\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateMemberShip\",\n value: function updateMemberShip(membership) {\n if (membership && !(0, _lodash.isEqual)(this.membership, membership)) {\n this.membership = membership;\n }\n }\n\n /**\n * @param {Array} identities\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateIdentifiers\",\n value: function updateIdentifiers(identities) {\n if (identities && !(0, _lodash.isEqual)(this.identities, identities)) {\n this.identities = identities;\n }\n }\n\n /**\n * check the locus is main session's one or not, if is main session's, update main session cache\n * @param {Object} locus\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateLocusCache\",\n value: function updateLocusCache(locus) {\n var isMainSessionDTO = _controlsUtils.default.isMainSessionDTO(locus);\n if (isMainSessionDTO) {\n this.updateMainSessionLocusCache(locus);\n }\n }\n\n /**\n * if return from breakout to main session, need to use cached main session DTO since locus won't send the full locus (participants)\n * if join breakout from main session, main session is not active for the attendee and remove main session locus cache\n * @param {Object} newLocus\n * @returns {Object}\n * @memberof LocusInfo\n */\n }, {\n key: \"getTheLocusToUpdate\",\n value: function getTheLocusToUpdate(newLocus) {\n var switchStatus = _controlsUtils.default.getSessionSwitchStatus(this.controls, newLocus === null || newLocus === void 0 ? void 0 : newLocus.controls);\n if (switchStatus.isReturnToMain && this.mainSessionLocusCache) {\n return (0, _lodash.cloneDeep)(this.mainSessionLocusCache);\n }\n var isMainSessionDTO = this.mainSessionLocusCache && _controlsUtils.default.isMainSessionDTO(this.mainSessionLocusCache);\n if (isMainSessionDTO) {\n var _this$fullState, _this$mainSessionLocu, _this$mainSessionLocu2;\n var isActive = [_constants.LOCUS.STATE.ACTIVE, _constants.LOCUS.STATE.INITIALIZING, _constants.LOCUS.STATE.TERMINATING].includes((_this$fullState = this.fullState) === null || _this$fullState === void 0 ? void 0 : _this$fullState.state) && !((_this$mainSessionLocu = this.mainSessionLocusCache) !== null && _this$mainSessionLocu !== void 0 && (_this$mainSessionLocu2 = _this$mainSessionLocu.self) !== null && _this$mainSessionLocu2 !== void 0 && _this$mainSessionLocu2.removed);\n if (!isActive) {\n this.clearMainSessionLocusCache();\n }\n }\n return newLocus;\n }\n\n /**\n * merge participants by participant id\n * @param {Array} participants\n * @param {Array} sourceParticipants\n * @returns {Array} merged participants\n * @memberof LocusInfo\n */\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"mergeParticipants\",\n value: function mergeParticipants(participants, sourceParticipants) {\n if (!sourceParticipants || !sourceParticipants.length) return participants;\n if (!participants || !participants.length) {\n return sourceParticipants;\n }\n sourceParticipants.forEach(function (participant) {\n var existIndex = participants.findIndex(function (p) {\n return p.id === participant.id;\n });\n if (existIndex > -1) {\n participants.splice(existIndex, 1, participant);\n } else {\n participants.push(participant);\n }\n });\n return participants;\n }\n\n /**\n * need cache main sessions' participants since locus will not send the full list when cohost/host leave breakout\n * @param {Object} mainLocus\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"updateMainSessionLocusCache\",\n value: function updateMainSessionLocusCache(mainLocus) {\n var _this5 = this;\n if (!mainLocus) {\n return;\n }\n var locusClone = (0, _lodash.cloneDeep)(mainLocus);\n if (this.mainSessionLocusCache) {\n // shallow merge and do special merge for participants\n (0, _lodash.assignWith)(this.mainSessionLocusCache, locusClone, function (objValue, srcValue, key) {\n if (key === 'participants') {\n return _this5.mergeParticipants(objValue, srcValue);\n }\n return srcValue || objValue;\n });\n } else {\n this.mainSessionLocusCache = locusClone;\n }\n }\n\n /**\n * clear main session cache\n * @returns {undefined}\n * @memberof LocusInfo\n */\n }, {\n key: \"clearMainSessionLocusCache\",\n value: function clearMainSessionLocusCache() {\n this.mainSessionLocusCache = null;\n }\n }]);\n return LocusInfo;\n}(_eventsScope.default);\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nvar _Object$keys2 = require(\"@babel/runtime-corejs2/core-js/object/keys\");\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-symbols\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptors\");\nvar _Object$defineProperties = require(\"@babel/runtime-corejs2/core-js/object/define-properties\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _entries = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/entries\"));\nvar _keys = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/keys\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/slicedToArray\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../constants\");\nfunction ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar InfoUtils = {};\nInfoUtils.parse = function (info, roles) {\n var isJoined = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var parsed = {\n policy: InfoUtils.parsePolicy(info),\n moderator: InfoUtils.parseModerator(info),\n coHost: InfoUtils.parseCoHost(info)\n };\n var userDisplayHints = isJoined ? _objectSpread({}, parsed.policy) : _objectSpread({}, Object.fromEntries((0, _entries.default)(parsed.policy).filter(function (_ref) {\n var _ref2 = (0, _slicedToArray2.default)(_ref, 1),\n hint = _ref2[0];\n return _constants.INTERSTITIAL_DISPLAY_HINTS.includes(hint);\n })));\n if (roles.includes(_constants.SELF_ROLES.COHOST)) {\n userDisplayHints = _objectSpread(_objectSpread({}, userDisplayHints), parsed.coHost);\n }\n if (roles.includes(_constants.SELF_ROLES.MODERATOR)) {\n userDisplayHints = _objectSpread(_objectSpread({}, userDisplayHints), parsed.moderator);\n }\n parsed.userDisplayHints = (0, _keys.default)(userDisplayHints);\n if (info.sipUri) {\n parsed.sipUri = info.sipUri;\n }\n if (info.meetingId) {\n parsed.meetingNumber = info.meetingId;\n }\n if (info.datachannelUrl) {\n parsed.datachannelUrl = info.datachannelUrl;\n }\n return parsed;\n};\nInfoUtils.parseDisplayHintSection = function (info, displayHintKey) {\n var displayHints = {};\n if (info && info.displayHints && info.displayHints[displayHintKey] && info.displayHints[displayHintKey].length > 0) {\n info.displayHints[displayHintKey].forEach(function (key) {\n displayHints[key] = true;\n });\n }\n return displayHints;\n};\nInfoUtils.parsePolicy = function (info) {\n return InfoUtils.parseDisplayHintSection(info, 'joined');\n};\nInfoUtils.parseModerator = function (info) {\n var displayHints = InfoUtils.parseDisplayHintSection(info, 'moderator');\n return _objectSpread(_objectSpread({}, displayHints), {}, (0, _defineProperty2.default)({}, _constants.DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND, true));\n};\nInfoUtils.parseCoHost = function (info) {\n var displayHints = InfoUtils.parseDisplayHintSection(info, 'coHost');\n return _objectSpread(_objectSpread({}, displayHints), {}, (0, _defineProperty2.default)({}, _constants.DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND, true));\n};\nInfoUtils.isLocked = function (policy) {\n return policy.LOCK_STATUS_LOCKED || false;\n};\nInfoUtils.isUnlocked = function (policy) {\n return policy.LOCK_STATUS_UNLOCKED || false;\n};\nInfoUtils.getInfos = function (oldInfo, newInfo, roles, isJoined) {\n var previous = null;\n if (oldInfo) {\n previous = oldInfo;\n }\n var current = newInfo && InfoUtils.parse(newInfo, roles, isJoined);\n var updates = {};\n if (current) {\n current.isLocked = InfoUtils.isLocked(current.policy);\n current.isUnlocked = InfoUtils.isUnlocked(current.policy);\n if (previous && previous.isUnlocked && current.isLocked || !previous && current.isLocked) {\n updates.isLocked = current.isLocked;\n }\n if (previous && previous.isLocked && current.isUnlocked || !previous && current.isUnlocked) {\n updates.isUnlocked = current.isUnlocked;\n }\n }\n return {\n previous: previous,\n current: current,\n updates: updates\n };\n};\nvar _default = exports.default = InfoUtils;\n//# sourceMappingURL=infoUtils.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _constants = require(\"../constants\");\nvar MediaSharesUtils = {};\n\n/**\n * parses the relevant values for mediaShares: contentId, disposition\n * @param {Object} mediaShares\n * @returns {undefined}\n */\nMediaSharesUtils.parse = function (mediaShares) {\n if (mediaShares) {\n return {\n content: {\n beneficiaryId: MediaSharesUtils.getContentBeneficiaryId(mediaShares),\n disposition: MediaSharesUtils.getContentDisposition(mediaShares),\n annotation: MediaSharesUtils.getContentAnnotation(mediaShares),\n url: MediaSharesUtils.getContentUrl(mediaShares),\n shareInstanceId: MediaSharesUtils.getShareInstanceId(mediaShares),\n deviceUrlSharing: MediaSharesUtils.getContentBeneficiaryDeviceUrl(mediaShares),\n resourceType: MediaSharesUtils.getContentResourceType(mediaShares)\n },\n whiteboard: {\n beneficiaryId: MediaSharesUtils.getWhiteboardBeneficiaryId(mediaShares),\n disposition: MediaSharesUtils.getWhiteboardDisposition(mediaShares),\n resourceUrl: MediaSharesUtils.getWhiteboardResourceUrl(mediaShares)\n }\n };\n }\n return null;\n};\n\n/**\n * get the previous and current mediaShares values parsed, as well as the boolean updates\n * @param {Object} oldShare\n * @param {Object} newShare\n * @returns {Object}\n * previous: {Object} old share, current: {Object} new share,\n */\nMediaSharesUtils.getMediaShares = function (oldShare, newShare) {\n var previous = oldShare && MediaSharesUtils.parse(oldShare);\n var current = newShare && MediaSharesUtils.parse(newShare);\n return {\n previous: previous,\n current: current\n };\n};\n\n/**\n * get the content floor disposition (released, granted)\n * @param {Object} mediaShares\n * @returns {Boolean} disposition\n */\nMediaSharesUtils.getContentDisposition = function (mediaShares) {\n var contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);\n return contentFloor ? contentFloor.disposition : null;\n};\n\n/**\n * get the whiteboard floor disposition (released, granted)\n * @param {Object} mediaShares\n * @returns {Boolean} disposition\n */\nMediaSharesUtils.getWhiteboardDisposition = function (mediaShares) {\n var whiteboardFloor = MediaSharesUtils.extractWhiteboardFloor(mediaShares);\n return whiteboardFloor ? whiteboardFloor.disposition : null;\n};\n\n/**\n * extract the content property from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractContent = function (mediaShares) {\n if (!mediaShares || !mediaShares.length) {\n return null;\n }\n return mediaShares.find(function (share) {\n return share.name === _constants.CONTENT;\n }) || null;\n};\n\n/**\n * extract the whiteboard property from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractWhiteboard = function (mediaShares) {\n if (!mediaShares || !mediaShares.length) {\n return null;\n }\n return mediaShares.find(function (share) {\n return share.name === _constants.WHITEBOARD;\n }) || null;\n};\n\n/**\n * extract the media stream floor property from content object\n * @param {Object} mediaStream\n * @returns {Object}\n */\nMediaSharesUtils.extractFloor = function (mediaStream) {\n if (!mediaStream) {\n return null;\n }\n return mediaStream.floor;\n};\n\n/**\n * extract the content's floor from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractContentFloor = function (mediaShares) {\n var content = MediaSharesUtils.extractContent(mediaShares);\n return MediaSharesUtils.extractFloor(content);\n};\n\n/**\n * extract the whiteboard's floor from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractWhiteboardFloor = function (mediaShares) {\n var whiteboard = MediaSharesUtils.extractWhiteboard(mediaShares);\n return MediaSharesUtils.extractFloor(whiteboard);\n};\n\n/**\n * get who is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentBeneficiaryId = function (mediaShares) {\n var contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);\n if (!contentFloor || !contentFloor.beneficiary) {\n return null;\n }\n return contentFloor.beneficiary.id;\n};\n\n/**\n * get live annotation is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentAnnotation = function (mediaShares) {\n var extractContent = MediaSharesUtils.extractContent(mediaShares);\n if (!extractContent || !extractContent.annotation) {\n return undefined;\n }\n return extractContent.annotation;\n};\n\n/**\n * get live resourceType is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentResourceType = function (mediaShares) {\n var extractContent = MediaSharesUtils.extractContent(mediaShares);\n if (!extractContent || !extractContent.resourceType) {\n return undefined;\n }\n return extractContent.resourceType;\n};\n\n/**\n * get url is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentUrl = function (mediaShares) {\n var extractContent = MediaSharesUtils.extractContent(mediaShares);\n if (!extractContent || !extractContent.url) {\n return undefined;\n }\n return extractContent.url;\n};\n\n/**\n * get shareInstanceId is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getShareInstanceId = function (mediaShares) {\n var extractContent = MediaSharesUtils.extractContent(mediaShares);\n if (!extractContent || !extractContent.floor || !extractContent.floor.shareInstanceId) {\n return undefined;\n }\n return extractContent.floor.shareInstanceId;\n};\n\n/**\n * get deviceUrl that is requesting the floor for media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentBeneficiaryDeviceUrl = function (mediaShares) {\n var contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);\n if (!contentFloor || !contentFloor.beneficiary || !contentFloor.beneficiary.deviceUrl) {\n return null;\n }\n return contentFloor.beneficiary.deviceUrl;\n};\n\n/**\n * get who is sharing from media shares (whiteboard)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getWhiteboardBeneficiaryId = function (mediaShares) {\n var whiteboardFloor = MediaSharesUtils.extractWhiteboardFloor(mediaShares);\n if (!whiteboardFloor || !whiteboardFloor.beneficiary) {\n return null;\n }\n return whiteboardFloor.beneficiary.id;\n};\n\n/**\n * get the which whiteboard is being shared via resource url\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getWhiteboardResourceUrl = function (mediaShares) {\n var whiteboard = MediaSharesUtils.extractWhiteboard(mediaShares);\n if (!whiteboard || !whiteboard.resourceUrl) {\n return null;\n }\n return whiteboard.resourceUrl;\n};\nvar _default = exports.default = MediaSharesUtils;\n//# sourceMappingURL=mediaSharesUtils.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _taggedTemplateLiteral2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/taggedTemplateLiteral\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _lodash = require(\"lodash\");\nvar _queue = _interopRequireDefault(require(\"../common/queue\"));\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _metrics = _interopRequireDefault(require(\"../metrics\"));\nvar _constants = _interopRequireDefault(require(\"../metrics/constants\"));\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;\nvar MAX_OOO_DELTA_COUNT = 5; // when we receive an out-of-order delta and the queue builds up to MAX_OOO_DELTA_COUNT, we do a sync with Locus\nvar OOO_DELTA_WAIT_TIME = 10000; // [ms] minimum wait time before we do a sync if we get out-of-order deltas\nvar OOO_DELTA_WAIT_TIME_RANDOM_DELAY = 5000; // [ms] max random delay added to OOO_DELTA_WAIT_TIME\n/**\n * Locus Delta Parser\n * @private\n * https://sqbu-github.cisco.com/WebExSquared/cloud-apps/wiki/Locus-Delta-Events\n */\nvar Parser = exports.default = /*#__PURE__*/function () {\n /**\n * @constructs Parser\n */\n function Parser() {\n (0, _classCallCheck2.default)(this, Parser);\n // processing status\n (0, _defineProperty2.default)(this, \"status\", void 0);\n (0, _defineProperty2.default)(this, \"queue\", void 0);\n (0, _defineProperty2.default)(this, \"workingCopy\", void 0);\n (0, _defineProperty2.default)(this, \"syncTimer\", void 0);\n var deltaCompareFunc = function deltaCompareFunc(left, right) {\n var _Parser$loci = Parser.loci,\n LT = _Parser$loci.LT,\n GT = _Parser$loci.GT;\n var extract = Parser.extractComparisonState;\n if (Parser.isSequenceEmpty(left)) {\n return -1;\n }\n if (Parser.isSequenceEmpty(right)) {\n return 1;\n }\n var result = extract(Parser.compareSequence(left.baseSequence, right.baseSequence));\n if (result === LT) {\n return -1;\n }\n if (result === GT) {\n return 1;\n }\n return 0;\n };\n this.queue = new _queue.default(deltaCompareFunc);\n this.status = 'IDLE';\n this.onDeltaAction = null;\n this.workingCopy = null;\n this.syncTimer = undefined;\n }\n\n /**\n * Returns a debug string representing a locus delta - useful for logging\n *\n * @param {LocusDeltaDto} locus Locus delta\n * @returns {string}\n */\n (0, _createClass2.default)(Parser, [{\n key: \"isNewFullLocus\",\n value:\n /**\n * Returns true if the incoming full locus DTO is newer than the current working copy\n *\n * @param {Types~Locus} incomingFullDto New Full Locus DTO\n * @returns {string} either Parser.loci.USE_INCOMING or Parser.loci.USE_CURRENT\n */\n function isNewFullLocus(incomingFullDto) {\n if (!Parser.isLoci(incomingFullDto)) {\n _loggerProxy.default.logger.info('Locus-info:parser#isNewFullLocus --> Ignoring non-locus object.');\n return false;\n }\n if (!this.workingCopy) {\n // we don't have a working copy yet, so any full locus is better than nothing\n return true;\n }\n var comparisonResult = Parser.compareFullDtoSequence(this.workingCopy, incomingFullDto);\n return comparisonResult === Parser.loci.USE_INCOMING;\n }\n\n /**\n * Compares Locus sequences\n * @param {Types~Locus} current Current working copy\n * @param {Types~Locus} incoming New Locus delta\n * @returns {string}\n */\n }, {\n key: \"isValidLocus\",\n value:\n /**\n * Checks if newLoci or workingCopy is invalid.\n * @param {Types~Locus} newLoci\n * @returns {boolean}\n */\n function isValidLocus(newLoci) {\n var isValid = false;\n var isLoci = Parser.isLoci;\n\n // one or both objects are not locus delta events\n if (!isLoci(this.workingCopy) || !isLoci(newLoci)) {\n _loggerProxy.default.logger.info('Locus-info:parser#processDeltaEvent --> Ignoring non-locus object. workingCopy:', this.workingCopy, 'newLoci:', newLoci);\n } else {\n isValid = true;\n }\n return isValid;\n }\n\n /**\n * Determines if a paricular locus's sequence is empty\n * @param {Types~Locus} locus\n * @returns {bool}\n */\n }, {\n key: \"nextEvent\",\n value:\n /**\n * Processes next event in queue,\n * if queue is empty sets status to idle.\n * @returns {undefined}\n */\n function nextEvent() {\n if (this.status === 'PAUSED') {\n _loggerProxy.default.logger.info('Locus-info:parser#nextEvent --> Locus parser paused.');\n return;\n }\n if (this.status === 'BLOCKED') {\n _loggerProxy.default.logger.info('Locus-info:parser#nextEvent --> Locus parser blocked by out-of-order delta.');\n return;\n }\n\n // continue processing until queue is empty\n if (this.queue.size() > 0) {\n this.processDeltaEvent();\n } else {\n this.status = 'IDLE';\n }\n }\n\n /**\n * Function handler for delta actions,\n * is set by instance callee.\n * @param {string} action Locus delta action\n * @param {Types~Locus} locus Locus delta\n * @returns {undefined}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n }, {\n key: \"onDeltaAction\",\n value: function onDeltaAction(action, locus) {}\n\n /**\n * Event handler for locus delta events\n * @param {Types~Locus} loci Locus Delta\n * @returns {undefined}\n */\n }, {\n key: \"onDeltaEvent\",\n value: function onDeltaEvent(loci) {\n // enqueue the new loci\n this.queue.enqueue(loci);\n if (this.onDeltaAction) {\n if (this.status === 'BLOCKED') {\n if (this.queue.size() > MAX_OOO_DELTA_COUNT) {\n this.triggerSync('queue too big, blocked on out-of-order delta');\n } else {\n this.processDeltaEvent();\n }\n } else if (this.status === 'IDLE') {\n // Update status, ensure we only process one event at a time.\n this.status = 'WORKING';\n this.processDeltaEvent();\n }\n }\n }\n\n /**\n * Appends new data onto a string of existing data.\n * @param {string} newData\n * @param {string} oldData\n * @returns {string}\n */\n }, {\n key: \"pause\",\n value:\n /**\n * Pause locus processing\n * @returns {undefined}\n */\n function pause() {\n this.status = 'PAUSED';\n _loggerProxy.default.logger.info('Locus-info:parser#pause --> Locus parser paused.');\n }\n\n /**\n * Triggers a sync with Locus\n *\n * @param {string} reason used just for logging\n * @returns {undefined}\n */\n }, {\n key: \"triggerSync\",\n value: function triggerSync(reason) {\n _loggerProxy.default.logger.info(\"Locus-info:parser#triggerSync --> doing sync, reason: \".concat(reason));\n this.stopSyncTimer();\n this.pause();\n this.onDeltaAction(Parser.loci.DESYNC, this.workingCopy);\n }\n\n /**\n * Starts a timer with a random delay. When that timer expires we will do a sync.\n *\n * The main purpose of this timer is to handle a case when we get some out-of-order deltas,\n * so we start waiting to receive the missing delta. If that delta never arrives, this timer\n * will trigger a sync with Locus.\n *\n * @returns {undefined}\n */\n }, {\n key: \"startSyncTimer\",\n value: function startSyncTimer() {\n var _this = this;\n if (this.syncTimer === undefined) {\n var timeout = OOO_DELTA_WAIT_TIME + Math.random() * OOO_DELTA_WAIT_TIME_RANDOM_DELAY;\n this.syncTimer = setTimeout(function () {\n _this.syncTimer = undefined;\n _this.triggerSync('timer expired, blocked on out-of-order delta');\n }, timeout);\n }\n }\n\n /**\n * Stops the timer for triggering a sync\n *\n * @returns {undefined}\n */\n }, {\n key: \"stopSyncTimer\",\n value: function stopSyncTimer() {\n if (this.syncTimer !== undefined) {\n clearTimeout(this.syncTimer);\n this.syncTimer = undefined;\n }\n }\n\n /**\n * Processes next locus delta in the queue,\n * continues until the queue is empty\n * or cleared.\n * @returns {undefined}\n */\n }, {\n key: \"processDeltaEvent\",\n value: function processDeltaEvent() {\n var _Parser$loci2 = Parser.loci,\n DESYNC = _Parser$loci2.DESYNC,\n USE_INCOMING = _Parser$loci2.USE_INCOMING,\n WAIT = _Parser$loci2.WAIT,\n LOCUS_URL_CHANGED = _Parser$loci2.LOCUS_URL_CHANGED;\n var extract = Parser.extractComparisonState;\n var newLoci = this.queue.dequeue();\n if (!this.isValidLocus(newLoci)) {\n this.nextEvent();\n return;\n }\n var result = Parser.compare(this.workingCopy, newLoci);\n var lociComparison = extract(result);\n\n // limited debugging, use chrome extension\n // for full debugging.\n _loggerProxy.default.logger.debug(\"Locus-info:parser#processDeltaEvent --> Locus Debug: \".concat(result));\n var needToWait = false;\n switch (lociComparison) {\n case DESYNC:\n // wait for desync response\n this.pause();\n break;\n case USE_INCOMING:\n case LOCUS_URL_CHANGED:\n // update working copy for future comparisons.\n // Note: The working copy of parser gets updated in .onFullLocus()\n // and here when USE_INCOMING or LOCUS_URL_CHANGED locus.\n this.workingCopy = newLoci;\n break;\n case WAIT:\n // we've taken newLoci from the front of the queue, so put it back there as we have to wait\n // for the one that should be in front of it, before we can process it\n this.queue.enqueue(newLoci);\n needToWait = true;\n break;\n default:\n break;\n }\n if (needToWait) {\n this.status = 'BLOCKED';\n this.startSyncTimer();\n } else {\n this.stopSyncTimer();\n if (this.status === 'BLOCKED') {\n // we are not blocked anymore\n this.status = 'WORKING';\n _loggerProxy.default.logger.info(\"Locus-info:parser#processDeltaEvent --> received delta that we were waiting for \".concat(Parser.locus2string(newLoci), \", not blocked anymore\"));\n }\n }\n if (this.onDeltaAction) {\n _loggerProxy.default.logger.info(\"Locus-info:parser#processDeltaEvent --> Locus Delta \".concat(Parser.locus2string(newLoci), \", Action: \").concat(lociComparison));\n try {\n this.onDeltaAction(lociComparison, newLoci);\n } catch (error) {\n _loggerProxy.default.logger.error('Locus-info:parser#processDeltaEvent --> Error in onDeltaAction', error);\n }\n }\n this.nextEvent();\n }\n\n /**\n * Resume from a paused state\n * @returns {undefined}\n */\n }, {\n key: \"resume\",\n value: function resume() {\n _loggerProxy.default.logger.info('Locus-info:parser#resume --> Locus parser resumed.');\n this.status = 'WORKING';\n this.nextEvent();\n }\n\n /**\n * Gets related debug info for given error code\n * @param {string} debugCode Debug code\n * @param {string} comparison Locus comparison string\n * @returns {object} Debug message\n */\n }], [{\n key: \"locus2string\",\n value: function locus2string(locus) {\n var _locus$sequence;\n if (!((_locus$sequence = locus.sequence) !== null && _locus$sequence !== void 0 && _locus$sequence.entries)) {\n return 'invalid';\n }\n return locus.sequence.entries.length ? \"seq=\".concat(locus.sequence.entries.at(-1)) : 'empty';\n }\n\n /**\n * Checks if two sequences overlap in time,\n * the sequence with the higher minimum value is greater.\n * Chooses sequence with most recent data.\n * @param {Types~Locus} current\n * @param {Types~Locus} incoming\n * @returns {string} loci comparison state\n */\n }, {\n key: \"checkSequenceOverlap\",\n value: function checkSequenceOverlap(current, incoming) {\n var comparison = null;\n\n // if earliest working copy sequence is more recent than last incoming sequence\n if (current.min > incoming.max) {\n // choose left side (current)\n comparison = \"\".concat(Parser.loci.GT, \":SO001\");\n }\n // if last working copy sequence is before the earliest incoming sequence\n else if (current.max < incoming.min) {\n // choose right side (incoming)\n comparison = \"\".concat(Parser.loci.LT, \":SO002\");\n }\n\n // if no match above, defaults to null\n return comparison;\n }\n\n /**\n * Checks if two sequences have unequal ranges.\n * Chooses sequence with most larger range.\n * @param {Types~Locus} current\n * @param {Types~Locus} incoming\n * @returns {object} loci comparison\n */\n }, {\n key: \"checkUnequalRanges\",\n value: function checkUnequalRanges(current, incoming) {\n var comparison = null;\n var currentIsNotUnique = current.unique.length === 0;\n var incomingIsNotUnique = incoming.unique.length === 0;\n var currentTotalRange = current.end - current.min;\n var incomingTotalRange = incoming.end - incoming.min;\n\n // no unique values for both loci\n if (currentIsNotUnique && incomingIsNotUnique) {\n // current working copy loci has a larger range\n if (currentTotalRange > incomingTotalRange) {\n // choose left side (current)\n comparison = \"\".concat(Parser.loci.GT, \":UR001\");\n }\n // incoming delta loci has a larger range\n else if (currentTotalRange < incomingTotalRange) {\n // choose right side (incoming)\n comparison = \"\".concat(Parser.loci.LT, \":UR002\");\n } else {\n // with no unique entries and with ranges either absent or\n // of the same size, the sequences are considered equal.\n comparison = \"\".concat(Parser.loci.EQ, \":UR003\");\n }\n }\n return comparison;\n }\n\n /**\n * Checks if either sequences has unique entries.\n * Entries are considered unique if they do not overlap\n * with other Loci sequences or range values.\n * Chooses sequence with the unique entries.\n * @param {Types~Locus} current\n * @param {Types~Locus} incoming\n * @returns {string} loci comparison state\n */\n }, {\n key: \"checkForUniqueEntries\",\n value: function checkForUniqueEntries(current, incoming) {\n var comparison = null;\n var currentIsUnique = current.unique.length > 0;\n var incomingIsUnique = incoming.unique.length > 0;\n\n // current has unique entries and incoming does not\n if (currentIsUnique && !incomingIsUnique) {\n // choose left side (current)\n comparison = \"\".concat(Parser.loci.GT, \":UE001\");\n }\n // current has no unique entries but incoming does\n else if (!currentIsUnique && incomingIsUnique) {\n // choose right side (incoming)\n comparison = \"\".concat(Parser.loci.LT, \":UE002\");\n }\n return comparison;\n }\n\n /**\n * Checks both Locus Delta objects to see if they are\n * out of sync with one another. If so sends a DESYNC\n * request to the server.\n * @param {Types~Locus} current\n * @param {Types~Locus} incoming\n * @returns {string} loci comparison state\n */\n }, {\n key: \"checkIfOutOfSync\",\n value: function checkIfOutOfSync(current, incoming) {\n var comparison = null;\n var currentUniqueMin = current.unique[0];\n var incomingUniqueMin = incoming.unique[0];\n var currentHasNoRange = !current.start && !current.end;\n var incomingHasNoRange = !incoming.start && !incoming.end;\n var neitherSeqHasRange = currentHasNoRange && incomingHasNoRange;\n var hasUniqOverlap = function hasUniqOverlap(list, min, max) {\n return list.some(function (seq) {\n return min < seq && seq < max;\n });\n };\n // current unique entries overlap the total range of incoming\n var currentUniqOverlap = hasUniqOverlap(current.unique, incoming.min, incoming.max);\n // vice-versa, incoming unique entries overlap the total range of current\n var incomingUniqOverlap = hasUniqOverlap(incoming.unique, current.min, current.max);\n if (neitherSeqHasRange || currentUniqOverlap || incomingUniqOverlap) {\n // outputs string indicating which condition occurred. ex: 0,1,0\n var debugInfo = \"\".concat(+neitherSeqHasRange, \",\").concat(+currentUniqOverlap, \",\").concat(+incomingUniqOverlap);\n\n // send DESYNC to server\n comparison = \"\".concat(Parser.loci.DESYNC, \":OOS001:\").concat(debugInfo);\n } else if (currentUniqueMin > incomingUniqueMin) {\n // choose left side (current)\n comparison = \"\".concat(Parser.loci.GT, \":OOS002\");\n } else {\n // choose right side (incoming)\n comparison = \"\".concat(Parser.loci.LT, \":OOS003\");\n }\n return comparison;\n }\n\n /**\n * Compares two loci to determine which one contains the most recent state\n * @instance\n * @memberof Locus\n * @param {Types~Locus} current\n * @param {Types~Locus} incoming\n * @returns {string} loci comparison state\n */\n }, {\n key: \"compare\",\n value: function compare(current, incoming) {\n var isSequenceEmpty = Parser.isSequenceEmpty;\n var extract = Parser.extractComparisonState;\n var pack = Parser.packComparisonResult;\n if (isSequenceEmpty(current) || isSequenceEmpty(incoming)) {\n return pack(Parser.loci.USE_INCOMING, 'C001');\n }\n if (incoming.baseSequence) {\n return pack(Parser.compareDelta(current, incoming), 'C002');\n }\n var result = Parser.compareSequence(current.sequence, incoming.sequence);\n var action = Parser.compareToAction(extract(result));\n return pack(action, result);\n }\n\n /**\n * Compares two loci sequences (with delta params) and indicates what action\n * to take.\n * @instance\n * @memberof Locus\n * @param {Types~Locus} current\n * @param {Types~Locus} incoming\n * @private\n * @returns {string} loci comparison state\n */\n }, {\n key: \"compareDelta\",\n value: function compareDelta(current, incoming) {\n var _Parser$loci3 = Parser.loci,\n LT = _Parser$loci3.LT,\n GT = _Parser$loci3.GT,\n EQ = _Parser$loci3.EQ,\n DESYNC = _Parser$loci3.DESYNC,\n USE_INCOMING = _Parser$loci3.USE_INCOMING,\n WAIT = _Parser$loci3.WAIT,\n LOCUS_URL_CHANGED = _Parser$loci3.LOCUS_URL_CHANGED;\n var extract = Parser.extractComparisonState;\n var pack = Parser.packComparisonResult;\n var result = Parser.compareSequence(current.sequence, incoming.sequence);\n var comparison = extract(result);\n if (comparison !== LT) {\n return pack(Parser.compareToAction(comparison), result);\n }\n if (incoming.url !== current.url) {\n // when moving to/from a breakout session, the locus URL will change and also\n // the baseSequence, making incoming and current incomparable, so use a\n // unique comparison state\n return pack(LOCUS_URL_CHANGED, result);\n }\n comparison = Parser.compareSequence(current.sequence, incoming.baseSequence);\n switch (extract(comparison)) {\n case GT:\n case EQ:\n comparison = USE_INCOMING;\n break;\n case LT:\n if (extract(Parser.compareSequence(incoming.baseSequence, incoming.sequence)) === EQ) {\n // special case where Locus sends a delta with baseSequence === sequence to trigger a sync,\n // because the delta event is too large to be sent over mercury connection\n comparison = DESYNC;\n } else {\n // the incoming locus has baseSequence from the future, so it is out-of-order,\n // we are missing 1 or more locus that should be in front of it, we need to wait for it\n comparison = WAIT;\n _metrics.default.sendBehavioralMetric(_constants.default.LOCUS_DELTA_OUT_OF_ORDER, {\n stack: new Error().stack\n });\n }\n break;\n default:\n comparison = DESYNC;\n }\n return pack(comparison, result);\n }\n\n /**\n * Compares Locus sequences - it should be called only for full Locus DTOs, not deltas\n *\n * @param {Types~Locus} current Current working copy\n * @param {Types~Locus} incomingFullDto New Full Locus DTO\n * @returns {string} either Parser.loci.USE_INCOMING or Parser.loci.USE_CURRENT\n */\n }, {\n key: \"compareFullDtoSequence\",\n value: function compareFullDtoSequence(current, incomingFullDto) {\n if (Parser.isSequenceEmpty(current) || Parser.isSequenceEmpty(incomingFullDto)) {\n return Parser.loci.USE_INCOMING;\n }\n\n // the sequence.entries list will always contain at least 1 entry\n // https://sqbu-github.cisco.com/WebExSquared/cloud-apps/wiki/Locus-Sequence-Comparison-Algorithm\n\n return incomingFullDto.sequence.entries.slice(-1)[0] > current.sequence.entries.slice(-1)[0] ? Parser.loci.USE_INCOMING : Parser.loci.USE_CURRENT;\n }\n }, {\n key: \"compareSequence\",\n value: function compareSequence(current, incoming) {\n // Locus sequence comparison rules in order of priority.\n // https://sqbu-github.cisco.com/WebExSquared/cloud-apps/wiki/Locus-Sequence-Comparison-Algorithm\n\n var local = Parser.getMetaData(current);\n var delta = Parser.getMetaData(incoming);\n\n // update loci metadata\n local.unique = Parser.getUniqueSequences(local, delta);\n delta.unique = Parser.getUniqueSequences(delta, local);\n\n // Locus sequence comparison rules\n // order matters\n var rules = [Parser.checkSequenceOverlap, Parser.checkUnequalRanges, Parser.checkForUniqueEntries, Parser.checkIfOutOfSync];\n for (var _i = 0, _rules = rules; _i < _rules.length; _i++) {\n var rule = _rules[_i];\n // Rule only returns a value if the rule applies,\n // otherwise returns null.\n var result = rule(local, delta);\n if (result) {\n return result;\n }\n }\n\n // error, none of rules above applied\n // should never get here as last rule\n // should be catch all.\n return Parser.loci.ERROR;\n }\n\n /**\n * Transates the result of a sequence comparison into an intended behavior\n * @param {string} result\n * @returns {string} Locus comparison action\n */\n }, {\n key: \"compareToAction\",\n value: function compareToAction(result) {\n var _Parser$loci4 = Parser.loci,\n DESYNC = _Parser$loci4.DESYNC,\n EQ = _Parser$loci4.EQ,\n ERROR = _Parser$loci4.ERROR,\n GT = _Parser$loci4.GT,\n LT = _Parser$loci4.LT,\n USE_CURRENT = _Parser$loci4.USE_CURRENT,\n USE_INCOMING = _Parser$loci4.USE_INCOMING;\n var action = ERROR;\n switch (result) {\n case EQ:\n case GT:\n action = USE_CURRENT;\n break;\n case LT:\n action = USE_INCOMING;\n break;\n case DESYNC:\n action = DESYNC;\n break;\n default:\n _loggerProxy.default.logger.info(\"Locus-info:parser#compareToAction --> Error: \".concat(result, \" is not a recognized sequence comparison result.\"));\n }\n return action;\n }\n\n /**\n * Extracts a loci comparison from a string of data.\n * @param {string} lociComparisonResult Comparison result with extra data\n * @returns {string} Comparison of EQ, LT, GT, or DESYNC.\n */\n }, {\n key: \"extractComparisonState\",\n value: function extractComparisonState(lociComparisonResult) {\n return lociComparisonResult.split(':')[0];\n }\n\n /**\n * @typedef {object} LociMetadata\n * @property {number} start - Starting sequence number\n * @property {number} end - Ending sequence number\n * @property {number} first - First sequence number\n * @property {number} last - Last sequence number\n * @property {number} min - Minimum sequence number\n * @property {number} max - Maximum sequence number\n * @property {number} entries - Loci sequence entries\n */\n\n /**\n * Metadata for Locus delta\n * @param {Array.} sequence Locus delta sequence\n * @returns {LociMetadata} Locus Delta Metadata\n */\n }, {\n key: \"getMetaData\",\n value: function getMetaData(sequence) {\n var entries = sequence.entries;\n var first = entries[0];\n var last = entries.slice(-1)[0];\n\n // rangeStart or rangeEnd is 0 if a range doesn't exist\n var start = sequence.rangeStart;\n var end = sequence.rangeEnd;\n\n // sequence data\n return {\n start: start,\n end: end,\n first: first,\n last: last,\n // Rule is: rangeStart <= rangeEnd <= min(entries)\n min: start || first,\n // Grab last entry if exist else default to rangeEnd\n max: last || end,\n // keep reference to actual sequence entries\n entries: entries\n };\n }\n\n /**\n * Compares two Locus delta objects and notes unique\n * values contained within baseLoci.\n * @param {LociMetadata} baseLoci\n * @param {LociMetadata} otherLoci\n * @returns {Array.} List of unique sequences\n */\n }, {\n key: \"getUniqueSequences\",\n value: function getUniqueSequences(baseLoci, otherLoci) {\n var diff = (0, _lodash.difference)(baseLoci.entries, otherLoci.entries);\n var start = otherLoci.start,\n end = otherLoci.end;\n return Parser.getNumbersOutOfRange(diff, start, end);\n }\n\n /**\n * Returns an array of numbers outside of a given range.\n * @param {Array.} list Array to filter\n * @param {number} rangeStart Start of range\n * @param {number} rangeEnd End of range\n * @returns {Array.} Array of numbers sorted ASC\n */\n }, {\n key: \"getNumbersOutOfRange\",\n value: function getNumbersOutOfRange(list, rangeStart, rangeEnd) {\n // Collect all numbers if number is outside of specified range\n var output = list.filter(function (num) {\n return num < rangeStart || num > rangeEnd;\n });\n\n // sort ascending\n return output.sort(function (a, b) {\n return a - b;\n });\n }\n }, {\n key: \"isSequenceEmpty\",\n value: function isSequenceEmpty(locus) {\n var _sequence$entries;\n var sequence = locus.sequence;\n var hasEmptyEntries = !((_sequence$entries = sequence.entries) !== null && _sequence$entries !== void 0 && _sequence$entries.length);\n var hasEmptyRange = sequence.rangeStart === 0 && sequence.rangeEnd === 0;\n return hasEmptyEntries && hasEmptyRange;\n }\n\n /**\n * Determines if an object has basic\n * structure of a locus object.\n * @param {Types~Locus} loci\n * @returns {boolean}\n */\n }, {\n key: \"isLoci\",\n value: function isLoci(loci) {\n if (!loci || !loci.sequence) {\n return false;\n }\n var hasProp = function hasProp(prop) {\n return Object.prototype.hasOwnProperty.call(loci.sequence, prop);\n };\n if (hasProp('rangeStart') && hasProp('rangeEnd')) {\n return true;\n }\n return false;\n }\n }, {\n key: \"packComparisonResult\",\n value: function packComparisonResult(newData, oldData) {\n return \"\".concat(newData, \":\").concat(oldData);\n }\n }, {\n key: \"getDebugMessage\",\n value: function getDebugMessage(debugCode, comparison) {\n // removes extra spaces from multiline string\n var mStr = function mStr(strings) {\n return strings.join('').replace(/\\s{2,}/g, ' ');\n };\n var resolutionMap = {\n EQ: \"\".concat(Parser.loci.LT, \": is equal (current == incoming).\"),\n LT: \"\".concat(Parser.loci.LT, \": choose right side (incoming).\"),\n GT: \"\".concat(Parser.loci.GT, \": choose left side (current).\")\n };\n var debugMap = {\n SO001: {\n title: 'checkSequenceOverlap-001',\n description: mStr(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)([\"Occurs if earliest working copy sequence is more recent than last incoming sequence.\"], [\"Occurs if earliest working copy sequence is more \\\\\\n recent than last incoming sequence.\"]))),\n logic: 'current.min > incoming.max'\n },\n SO002: {\n title: 'checkSequenceOverlap-002',\n description: mStr(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)([\"Occurs if last working copy sequence is before the earliest incoming sequence.\"], [\"Occurs if last working copy sequence is before the \\\\\\n earliest incoming sequence.\"]))),\n logic: 'current.max < incoming.min'\n },\n UR001: {\n title: 'checkUnequalRanges-001',\n description: mStr(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)([\"Occurs if there are no unique values for both loci, and the current working copy loci has a larger range.\"], [\"Occurs if there are no unique values for both loci, \\\\\\n and the current working copy loci has a larger range.\"]))),\n logic: 'currentTotalRange > incomingTotalRange'\n },\n UR002: {\n title: 'checkUnequalRanges-002',\n description: mStr(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)([\"Occurs if there are no unique values for both loci, and the incoming delta loci has a larger range.\"], [\"Occurs if there are no unique values for both loci, \\\\\\n and the incoming delta loci has a larger range.\"]))),\n logic: 'currentTotalRange < incomingTotalRange'\n },\n UR003: {\n title: 'checkUnequalRanges-003',\n description: mStr(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)([\"Occurs if there are no unique values for both loci, and with ranges either absent or of the same size, the sequences are considered equal.\"], [\"Occurs if there are no unique values for both loci, \\\\\\n and with ranges either absent or of the same size, the sequences \\\\\\n are considered equal.\"]))),\n logic: 'currentTotalRange == incomingTotalRange'\n },\n UE001: {\n title: 'checkForUniqueEntries-001',\n description: mStr(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)([\"Occurs if current loci has unique entries and incoming does not. Entries are considered unique if they do not overlap with other Loci sequences or range values.\"], [\"Occurs if current loci has unique entries and \\\\\\n incoming does not. Entries are considered unique if they \\\\\\n do not overlap with other Loci sequences or range values.\"]))),\n logic: 'currentIsUnique && !incomingIsUnique'\n },\n UE002: {\n title: 'checkForUniqueEntries-002',\n description: mStr(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)([\"Occurs if current has no unique entries but incoming does. Entries are considered unique if they do not overlap with other Loci sequences or range values.\"], [\"Occurs if current has no unique entries but \\\\\\n incoming does. Entries are considered unique if they \\\\\\n do not overlap with other Loci sequences or range values.\"]))),\n logic: '!currentIsUnique && incomingIsUnique'\n },\n OOS001: {\n title: 'checkIfOutOfSync-001',\n description: mStr(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)([\"Occurs if neither sequence has a range, or if the current loci unique entries overlap the total range of the incoming sequence, or if the incoming unique entries overlap the total range of current sequence.\"], [\"Occurs if neither sequence has a range, or \\\\\\n if the current loci unique entries overlap the total range of the \\\\\\n incoming sequence, or if the incoming unique entries overlap \\\\\\n the total range of current sequence.\"]))),\n logic: 'neitherSeqHasRange || currentUniqOverlap || incomingUniqOverlap'\n },\n OOS002: {\n title: 'checkIfOutOfSync-002',\n description: mStr(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)([\"Occurs if the minimum value from sequences that are unique to the current loci is greater than the minimum value from sequences that are unique to the incoming loci.\"], [\"Occurs if the minimum value from sequences that are \\\\\\n unique to the current loci is greater than the minimum value from \\\\\\n sequences that are unique to the incoming loci.\"]))),\n logic: 'currentUniqueMin > incomingUniqueMin'\n },\n OOS003: {\n title: 'checkIfOutOfSync-003',\n description: mStr(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)([\"Occurs if none of the comparison rules applied. It is a catch all.\"], [\"Occurs if none of the comparison rules applied. \\\\\\n It is a catch all.\"]))),\n logic: 'else (catch all)'\n }\n };\n var debugObj = debugMap[debugCode];\n debugObj.title = \"Debug: \".concat(debugObj.title);\n debugObj.resolution = resolutionMap[comparison];\n return debugObj;\n }\n }]);\n return Parser;\n}();\n// received an out-of-order delta, so waiting for the missing one\n// loci comparison states\n(0, _defineProperty2.default)(Parser, \"loci\", {\n EQ: 'EQUAL',\n GT: 'GREATER_THAN',\n LT: 'LESS_THAN',\n DESYNC: 'DESYNC',\n USE_INCOMING: 'USE_INCOMING',\n USE_CURRENT: 'USE_CURRENT',\n WAIT: 'WAIT',\n ERROR: 'ERROR',\n LOCUS_URL_CHANGED: 'LOCUS_URL_CHANGED'\n});\n//# sourceMappingURL=parser.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _isArray = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/array/is-array\"));\nvar _lodash = require(\"lodash\");\nvar _constants = require(\"../constants\");\nvar _parameter = _interopRequireDefault(require(\"../common/errors/parameter\"));\n/* eslint-disable default-param-last */\n\nvar SelfUtils = {};\nvar PSTN_DEVICE_TYPE = 'PROVISIONAL';\n\n/**\n * parses the relevant values for self: muted, guest, moderator, mediaStatus, state, joinedWith, pstnDevices, creator, id\n * @param {Object} self\n * @param {String} deviceId\n * @returns {undefined}\n */\nSelfUtils.parse = function (self, deviceId) {\n if (self) {\n var _joinedWith$intent;\n var joinedWith = self.devices.find(function (device) {\n return deviceId === device.url;\n });\n var pstnDevices = self.devices.filter(function (device) {\n return PSTN_DEVICE_TYPE === device.deviceType;\n });\n return {\n remoteVideoMuted: SelfUtils.getRemoteVideoMuted(self),\n remoteMuted: SelfUtils.getRemoteMuted(self),\n unmuteAllowed: SelfUtils.getUnmuteAllowed(self),\n localAudioUnmuteRequested: SelfUtils.getLocalAudioUnmuteRequested(self),\n localAudioUnmuteRequestedTimeStamp: SelfUtils.getLocalAudioUnmuteRequestedTimeStamp(self),\n localAudioUnmuteRequired: SelfUtils.getLocalAudioUnmuteRequired(self),\n lastModified: SelfUtils.getLastModified(self),\n modifiedBy: SelfUtils.getModifiedBy(self),\n guest: self.guest,\n moderator: self.moderator,\n // cumulative media stats\n mediaStatus: SelfUtils.getStatus(self.status),\n // TODO: what should be the status if user has refreshed the page,\n // check the joinedWith parameter and communicate to the user\n state: self.state,\n // TODO: give a proper name . With same device as login or different login`\n // Some times we might have joined with both mobile and web\n joinedWith: joinedWith,\n pstnDevices: pstnDevices,\n // current media stats is for the current device who has joined\n currentMediaStatus: SelfUtils.getMediaStatus(joinedWith === null || joinedWith === void 0 ? void 0 : joinedWith.mediaSessions),\n creator: self.isCreator,\n // check if its used,\n selfId: self.id,\n selfIdentity: SelfUtils.getSelfIdentity(self),\n selfUrl: self.url,\n removed: self.removed,\n roles: SelfUtils.getRoles(self),\n isUserUnadmitted: self.state === _constants._IDLE_ && (joinedWith === null || joinedWith === void 0 ? void 0 : (_joinedWith$intent = joinedWith.intent) === null || _joinedWith$intent === void 0 ? void 0 : _joinedWith$intent.type) === _constants._WAIT_,\n layout: SelfUtils.getLayout(self),\n canNotViewTheParticipantList: SelfUtils.canNotViewTheParticipantList(self),\n isSharingBlocked: SelfUtils.isSharingBlocked(self),\n breakoutSessions: SelfUtils.getBreakoutSessions(self),\n breakout: SelfUtils.getBreakout(self),\n interpretation: SelfUtils.getInterpretation(self),\n brb: SelfUtils.getBrb(self)\n };\n }\n return null;\n};\nSelfUtils.getBreakoutSessions = function (self) {\n var _self$controls, _self$controls$breako;\n return self === null || self === void 0 ? void 0 : (_self$controls = self.controls) === null || _self$controls === void 0 ? void 0 : (_self$controls$breako = _self$controls.breakout) === null || _self$controls$breako === void 0 ? void 0 : _self$controls$breako.sessions;\n};\nSelfUtils.getBreakout = function (self) {\n var _self$controls2;\n return self === null || self === void 0 ? void 0 : (_self$controls2 = self.controls) === null || _self$controls2 === void 0 ? void 0 : _self$controls2.breakout;\n};\nSelfUtils.getInterpretation = function (self) {\n var _self$controls3;\n return self === null || self === void 0 ? void 0 : (_self$controls3 = self.controls) === null || _self$controls3 === void 0 ? void 0 : _self$controls3.interpretation;\n};\nSelfUtils.getBrb = function (self) {\n var _self$controls4;\n return self === null || self === void 0 ? void 0 : (_self$controls4 = self.controls) === null || _self$controls4 === void 0 ? void 0 : _self$controls4.brb;\n};\nSelfUtils.getLayout = function (self) {\n var _self$controls5;\n return (0, _isArray.default)(self === null || self === void 0 ? void 0 : (_self$controls5 = self.controls) === null || _self$controls5 === void 0 ? void 0 : _self$controls5.layouts) ? self.controls.layouts[0].type : undefined;\n};\nSelfUtils.getRoles = function (self) {\n var _self$controls6, _self$controls6$role;\n return ((self === null || self === void 0 ? void 0 : (_self$controls6 = self.controls) === null || _self$controls6 === void 0 ? void 0 : (_self$controls6$role = _self$controls6.role) === null || _self$controls6$role === void 0 ? void 0 : _self$controls6$role.roles) || []).reduce(function (roles, role) {\n if (role.hasRole) {\n roles.push(role.type);\n }\n return roles;\n }, []);\n};\nSelfUtils.canNotViewTheParticipantList = function (self) {\n return !!(self !== null && self !== void 0 && self.canNotViewTheParticipantList);\n};\nSelfUtils.isSharingBlocked = function (self) {\n return !!(self !== null && self !== void 0 && self.isSharingBlocked);\n};\nSelfUtils.getSelves = function (oldSelf, newSelf, deviceId) {\n var previous = oldSelf && SelfUtils.parse(oldSelf, deviceId);\n var current = newSelf && SelfUtils.parse(newSelf, deviceId);\n var updates = {};\n updates.isUserUnadmitted = SelfUtils.isUserUnadmitted(previous, current);\n updates.isUserAdmitted = SelfUtils.isUserAdmitted(previous, current);\n updates.isVideoMutedByOthersChanged = SelfUtils.videoMutedByOthersChanged(previous, current);\n updates.isMutedByOthersChanged = SelfUtils.mutedByOthersChanged(previous, current);\n updates.localAudioUnmuteRequestedByServer = SelfUtils.localAudioUnmuteRequestedByServer(previous, current);\n updates.localAudioUnmuteRequiredByServer = SelfUtils.localAudioUnmuteRequiredByServer(previous, current);\n updates.moderatorChanged = SelfUtils.moderatorChanged(previous, current);\n updates.isRolesChanged = SelfUtils.isRolesChanged(previous, current);\n updates.isMediaInactiveOrReleased = SelfUtils.wasMediaInactiveOrReleased(previous, current);\n updates.isUserObserving = SelfUtils.isDeviceObserving(previous, current);\n updates.layoutChanged = SelfUtils.layoutChanged(previous, current);\n updates.isMediaInactive = SelfUtils.isMediaInactive(previous, current);\n updates.audioStateChange = (previous === null || previous === void 0 ? void 0 : previous.currentMediaStatus.audio) !== current.currentMediaStatus.audio;\n updates.videoStateChange = (previous === null || previous === void 0 ? void 0 : previous.currentMediaStatus.video) !== current.currentMediaStatus.video;\n updates.shareStateChange = (previous === null || previous === void 0 ? void 0 : previous.currentMediaStatus.share) !== current.currentMediaStatus.share;\n updates.canNotViewTheParticipantListChanged = (previous === null || previous === void 0 ? void 0 : previous.canNotViewTheParticipantList) !== current.canNotViewTheParticipantList;\n updates.isSharingBlockedChanged = (previous === null || previous === void 0 ? void 0 : previous.isSharingBlocked) !== current.isSharingBlocked;\n updates.breakoutsChanged = SelfUtils.breakoutsChanged(previous, current);\n updates.interpretationChanged = SelfUtils.interpretationChanged(previous, current);\n updates.brbChanged = SelfUtils.brbChanged(previous, current);\n return {\n previous: previous,\n current: current,\n updates: updates\n };\n};\n\n/**\n * Checks if user has joined the meeting\n * @param {Object} self\n * @returns {boolean} isJoined\n */\nSelfUtils.isJoined = function (self) {\n return (self === null || self === void 0 ? void 0 : self.state) === _constants._JOINED_;\n};\n\n/**\n * Validate if the Meeting Layout Controls Layout has changed.\n *\n * @param {Self} previous - Previous self state\n * @param {Self} current - Current self state [per event]\n * @returns {boolean} - If the Meeting Layout Controls Layout has changed.\n */\nSelfUtils.layoutChanged = function (previous, current) {\n return (current === null || current === void 0 ? void 0 : current.layout) && (previous === null || previous === void 0 ? void 0 : previous.layout) !== (current === null || current === void 0 ? void 0 : current.layout);\n};\nSelfUtils.breakoutsChanged = function (previous, current) {\n return !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.breakoutSessions, current === null || current === void 0 ? void 0 : current.breakoutSessions) && !!(current !== null && current !== void 0 && current.breakout);\n};\nSelfUtils.interpretationChanged = function (previous, current) {\n return !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.interpretation, current === null || current === void 0 ? void 0 : current.interpretation) && !!(current !== null && current !== void 0 && current.interpretation);\n};\nSelfUtils.brbChanged = function (previous, current) {\n return !(0, _lodash.isEqual)(previous === null || previous === void 0 ? void 0 : previous.brb, current === null || current === void 0 ? void 0 : current.brb) && (current === null || current === void 0 ? void 0 : current.brb) !== undefined;\n};\nSelfUtils.isMediaInactive = function (previous, current) {\n if (previous && previous.joinedWith && previous.joinedWith.mediaSessions && current && current.joinedWith && current.joinedWith.mediaSessions) {\n var previousMediaStatus = SelfUtils.getMediaStatus(previous.joinedWith.mediaSessions);\n var currentMediaStatus = SelfUtils.getMediaStatus(current.joinedWith.mediaSessions);\n if (previousMediaStatus.audio && currentMediaStatus.audio && previousMediaStatus.audio.state !== _constants.MEDIA_STATE.inactive && currentMediaStatus.audio.state === _constants.MEDIA_STATE.inactive && currentMediaStatus.audio.direction !== _constants.MEDIA_STATE.inactive) {\n return true;\n }\n if (previousMediaStatus.video && currentMediaStatus.video && previousMediaStatus.video.state !== _constants.MEDIA_STATE.inactive && currentMediaStatus.video.state === _constants.MEDIA_STATE.inactive && currentMediaStatus.video.direction !== _constants.MEDIA_STATE.inactive) {\n return true;\n }\n if (previousMediaStatus.share && currentMediaStatus.share && previousMediaStatus.share.state !== _constants.MEDIA_STATE.inactive && currentMediaStatus.share.state === _constants.MEDIA_STATE.inactive && currentMediaStatus.share.direction !== _constants.MEDIA_STATE.inactive) {\n return true;\n }\n return false;\n }\n return false;\n};\nSelfUtils.getLastModified = function (self) {\n if (!self || !self.controls || !self.controls.audio || !self.controls.audio.meta || !self.controls.audio.meta.lastModified) {\n return null;\n }\n return self.controls.audio.meta.lastModified;\n};\nSelfUtils.getModifiedBy = function (self) {\n if (!self || !self.controls || !self.controls.audio || !self.controls.audio.meta || !self.controls.audio.meta.modifiedBy) {\n return null;\n }\n return self.controls.audio.meta.modifiedBy;\n};\n\n/**\n * get the id from the self object\n * @param {Object} self\n * @returns {String}\n */\nSelfUtils.getSelfIdentity = function (self) {\n if (!self && !self.person) {\n return null;\n }\n return self.person.id;\n};\n\n/**\n * get the \"remote video mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteVideoMuted = function (self) {\n if (!self || !self.controls || !self.controls.video) {\n return null;\n }\n return self.controls.video.muted;\n};\n\n/**\n * get the \"remote mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteMuted = function (self) {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n return self.controls.audio.muted;\n};\nSelfUtils.getLocalAudioUnmuteRequested = function (self) {\n var _self$controls7, _self$controls7$audio;\n return !!(self !== null && self !== void 0 && (_self$controls7 = self.controls) !== null && _self$controls7 !== void 0 && (_self$controls7$audio = _self$controls7.audio) !== null && _self$controls7$audio !== void 0 && _self$controls7$audio.requestedToUnmute);\n};\n\n// requestedToUnmute timestamp\nSelfUtils.getLocalAudioUnmuteRequestedTimeStamp = function (self) {\n var _self$controls8, _self$controls8$audio;\n return Date.parse(self === null || self === void 0 ? void 0 : (_self$controls8 = self.controls) === null || _self$controls8 === void 0 ? void 0 : (_self$controls8$audio = _self$controls8.audio) === null || _self$controls8$audio === void 0 ? void 0 : _self$controls8$audio.lastModifiedRequestedToUnmute) || 0;\n};\nSelfUtils.getUnmuteAllowed = function (self) {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n return !self.controls.audio.disallowUnmute;\n};\nSelfUtils.getLocalAudioUnmuteRequired = function (self) {\n var _self$controls9, _self$controls9$audio;\n return !!(self !== null && self !== void 0 && (_self$controls9 = self.controls) !== null && _self$controls9 !== void 0 && (_self$controls9$audio = _self$controls9.audio) !== null && _self$controls9$audio !== void 0 && _self$controls9$audio.localAudioUnmuteRequired);\n};\nSelfUtils.getStatus = function (status) {\n return {\n audio: status.audioStatus,\n video: status.videoStatus,\n slides: status.videoSlidesStatus\n };\n};\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.wasMediaInactiveOrReleased = function () {\n var oldSelf = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var changedSelf = arguments.length > 1 ? arguments[1] : undefined;\n return oldSelf.joinedWith && oldSelf.joinedWith.state === _constants._JOINED_ && changedSelf.joinedWith && changedSelf.joinedWith.state === _constants._LEFT_ && (changedSelf.joinedWith.reason === _constants.MEETING_END_REASON.INACTIVE || changedSelf.joinedWith.reason === _constants.MEETING_END_REASON.MEDIA_RELEASED);\n};\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserUnadmitted = function (check) {\n var _check$joinedWith, _check$joinedWith$int;\n return check && ((_check$joinedWith = check.joinedWith) === null || _check$joinedWith === void 0 ? void 0 : (_check$joinedWith$int = _check$joinedWith.intent) === null || _check$joinedWith$int === void 0 ? void 0 : _check$joinedWith$int.type) === _constants._WAIT_ && check.state === _constants._IDLE_;\n};\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserAdmitted = function (check) {\n var _check$joinedWith2, _check$joinedWith2$in;\n return check && ((_check$joinedWith2 = check.joinedWith) === null || _check$joinedWith2 === void 0 ? void 0 : (_check$joinedWith2$in = _check$joinedWith2.intent) === null || _check$joinedWith2$in === void 0 ? void 0 : _check$joinedWith2$in.type) !== _constants._WAIT_ && check.state === _constants._JOINED_;\n};\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} when self is undefined\n */\nSelfUtils.isUserUnadmitted = function (oldSelf, changedSelf) {\n if (!changedSelf) {\n throw new _parameter.default('changedSelf must be defined to determine if self is unadmitted as guest.');\n }\n if (SelfUtils.isLocusUserUnadmitted(oldSelf)) {\n return false;\n }\n return SelfUtils.isLocusUserUnadmitted(changedSelf);\n};\nSelfUtils.moderatorChanged = function (oldSelf, changedSelf) {\n if (!oldSelf) {\n return true;\n }\n if (!changedSelf) {\n throw new _parameter.default('New self must be defined to determine if self transitioned moderator status.');\n }\n return oldSelf.moderator !== changedSelf.moderator;\n};\n\n/**\n * determine whether the roles of self is changed or not\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.isRolesChanged = function (oldSelf, changedSelf) {\n if (!changedSelf) {\n // no new self means no change\n return false;\n }\n return !(0, _lodash.isEqual)(oldSelf === null || oldSelf === void 0 ? void 0 : oldSelf.roles, changedSelf === null || changedSelf === void 0 ? void 0 : changedSelf.roles);\n};\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isDeviceObserving = function (oldSelf, changedSelf) {\n var _oldSelf$joinedWith, _oldSelf$joinedWith$i, _changedSelf$joinedWi, _changedSelf$joinedWi2;\n return oldSelf && ((_oldSelf$joinedWith = oldSelf.joinedWith) === null || _oldSelf$joinedWith === void 0 ? void 0 : (_oldSelf$joinedWith$i = _oldSelf$joinedWith.intent) === null || _oldSelf$joinedWith$i === void 0 ? void 0 : _oldSelf$joinedWith$i.type) === _constants._MOVE_MEDIA_ && changedSelf && ((_changedSelf$joinedWi = changedSelf.joinedWith) === null || _changedSelf$joinedWi === void 0 ? void 0 : (_changedSelf$joinedWi2 = _changedSelf$joinedWi.intent) === null || _changedSelf$joinedWi2 === void 0 ? void 0 : _changedSelf$joinedWi2.type) === _constants._OBSERVE_;\n};\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isUserAdmitted = function (oldSelf, changedSelf) {\n if (!oldSelf) {\n // if there was no previous locus, it couldn't have been admitted yet\n return false;\n }\n if (!changedSelf) {\n throw new _parameter.default('New self must be defined to determine if self transitioned to admitted as guest.');\n }\n return SelfUtils.isLocusUserUnadmitted(oldSelf) && SelfUtils.isLocusUserAdmitted(changedSelf);\n};\nSelfUtils.videoMutedByOthersChanged = function (oldSelf, changedSelf) {\n if (!changedSelf) {\n throw new _parameter.default('New self must be defined to determine if self was video muted by others.');\n }\n if (!oldSelf || oldSelf.remoteVideoMuted === null) {\n if (changedSelf.remoteVideoMuted) {\n return true; // this happens when host disables \"Allow start video\"\n }\n\n // we don't want to be sending the 'meeting:self:videoUnmutedByOthers' notification on meeting join\n return false;\n }\n return oldSelf.remoteVideoMuted !== changedSelf.remoteVideoMuted;\n};\nSelfUtils.mutedByOthersChanged = function (oldSelf, changedSelf) {\n if (!changedSelf) {\n throw new _parameter.default('New self must be defined to determine if self was muted by others.');\n }\n if (!oldSelf || oldSelf.remoteMuted === null) {\n if (changedSelf.remoteMuted) {\n return true; // this happens when mute on-entry is enabled\n }\n\n // we don't want to be sending the 'meeting:self:unmutedByOthers' notification on meeting join\n return false;\n }\n return changedSelf.remoteMuted !== null && (oldSelf.remoteMuted !== changedSelf.remoteMuted || changedSelf.remoteMuted && oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed);\n};\nSelfUtils.localAudioUnmuteRequestedByServer = function () {\n var oldSelf = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var changedSelf = arguments.length > 1 ? arguments[1] : undefined;\n if (!changedSelf) {\n throw new _parameter.default('New self must be defined to determine if self received request to unmute.');\n }\n return changedSelf.localAudioUnmuteRequested && changedSelf.localAudioUnmuteRequestedTimeStamp > oldSelf.localAudioUnmuteRequestedTimeStamp;\n};\nSelfUtils.localAudioUnmuteRequiredByServer = function () {\n var oldSelf = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var changedSelf = arguments.length > 1 ? arguments[1] : undefined;\n if (!changedSelf) {\n throw new _parameter.default('New self must be defined to determine if localAudioUnmuteRequired changed.');\n }\n return !changedSelf.remoteMuted && changedSelf.localAudioUnmuteRequired && oldSelf.localAudioUnmuteRequired !== changedSelf.localAudioUnmuteRequired;\n};\n\n/**\n * extract the sipUrl from the partner\n * @param {Object} partner\n * @param {Object} info\n * @returns {Object}\n */\n\nSelfUtils.getSipUrl = function (partner, type, sipUri) {\n // For webex meeting the sipUrl gets updated in info parser\n if (partner && type === _constants._CALL_) {\n return {\n sipUri: partner.person.sipUrl || partner.person.id\n };\n }\n return {\n sipUri: sipUri\n };\n};\nSelfUtils.getMediaStatus = function () {\n var mediaSessions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var mediaStatus = {\n audio: {},\n video: {},\n share: {}\n };\n mediaStatus.audio = mediaSessions.find(function (media) {\n return media.mediaType === _constants.AUDIO && media.mediaContent === _constants.MediaContent.main;\n });\n mediaStatus.video = mediaSessions.find(function (media) {\n return media.mediaType === _constants.VIDEO && media.mediaContent === _constants.MediaContent.main;\n });\n mediaStatus.share = mediaSessions.find(function (media) {\n return media.mediaType === _constants.VIDEO && media.mediaContent === _constants.MediaContent.slides;\n });\n return mediaStatus;\n};\nSelfUtils.getReplacedBreakoutMoveId = function (self, deviceId) {\n if (self && (0, _isArray.default)(self.devices)) {\n var joinedDevice = self.devices.find(function (device) {\n return deviceId === device.url;\n });\n if ((0, _isArray.default)(joinedDevice === null || joinedDevice === void 0 ? void 0 : joinedDevice.replaces)) {\n var _joinedDevice$replace;\n return (_joinedDevice$replace = joinedDevice.replaces[0]) === null || _joinedDevice$replace === void 0 ? void 0 : _joinedDevice$replace.breakoutMoveId;\n }\n }\n return null;\n};\nvar _default = exports.default = SelfUtils;\n//# sourceMappingURL=selfUtils.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _common = require(\"@webex/common\");\nvar _internalMediaCore = require(\"@webex/internal-media-core\");\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _constants = require(\"../constants\");\n/**\n * @class MediaConnectionAwaiter\n */\nvar MediaConnectionAwaiter = exports.default = /*#__PURE__*/function () {\n /**\n * @param {MediaConnectionAwaiterProps} mediaConnectionAwaiterProps\n */\n function MediaConnectionAwaiter(_ref) {\n var webrtcMediaConnection = _ref.webrtcMediaConnection;\n (0, _classCallCheck2.default)(this, MediaConnectionAwaiter);\n (0, _defineProperty2.default)(this, \"webrtcMediaConnection\", void 0);\n (0, _defineProperty2.default)(this, \"timer\", void 0);\n (0, _defineProperty2.default)(this, \"defer\", void 0);\n (0, _defineProperty2.default)(this, \"retried\", void 0);\n (0, _defineProperty2.default)(this, \"iceConnected\", void 0);\n (0, _defineProperty2.default)(this, \"onTimeoutCallback\", void 0);\n (0, _defineProperty2.default)(this, \"peerConnectionStateCallback\", void 0);\n (0, _defineProperty2.default)(this, \"iceConnectionStateCallback\", void 0);\n (0, _defineProperty2.default)(this, \"iceGatheringStateCallback\", void 0);\n this.webrtcMediaConnection = webrtcMediaConnection;\n this.defer = new _common.Defer();\n this.retried = false;\n this.iceConnected = false;\n this.onTimeoutCallback = this.onTimeout.bind(this);\n this.peerConnectionStateCallback = this.peerConnectionStateHandler.bind(this);\n this.iceConnectionStateCallback = this.iceConnectionStateHandler.bind(this);\n this.iceGatheringStateCallback = this.iceGatheringStateHandler.bind(this);\n }\n\n /**\n * Returns true if the connection is connected, false otherwise.\n *\n * @returns {boolean}\n */\n (0, _createClass2.default)(MediaConnectionAwaiter, [{\n key: \"isConnected\",\n value: function isConnected() {\n return this.webrtcMediaConnection.getConnectionState() === _internalMediaCore.ConnectionState.Connected;\n }\n\n /**\n * Returns true if the connection is in an unrecoverable \"failed\" state\n *\n * @returns {boolean}\n */\n }, {\n key: \"isFailed\",\n value: function isFailed() {\n return this.webrtcMediaConnection.getConnectionState() === _internalMediaCore.ConnectionState.Failed;\n }\n\n /**\n * Returns true if the ICE Gathering is completed, false otherwise.\n *\n * @returns {boolean}\n */\n }, {\n key: \"isIceGatheringCompleted\",\n value: function isIceGatheringCompleted() {\n return this.webrtcMediaConnection.getIceGatheringState() === 'complete';\n }\n\n /**\n * Clears the callbacks.\n *\n * @returns {void}\n */\n }, {\n key: \"clearCallbacks\",\n value: function clearCallbacks() {\n this.webrtcMediaConnection.off(_internalMediaCore.MediaConnectionEventNames.ICE_GATHERING_STATE_CHANGED, this.iceGatheringStateCallback);\n this.webrtcMediaConnection.off(_internalMediaCore.MediaConnectionEventNames.PEER_CONNECTION_STATE_CHANGED, this.peerConnectionStateCallback);\n this.webrtcMediaConnection.off(_internalMediaCore.MediaConnectionEventNames.ICE_CONNECTION_STATE_CHANGED, this.iceConnectionStateCallback);\n }\n\n /**\n * On connection state change.\n *\n * @returns {void}\n */\n }, {\n key: \"connectionStateChange\",\n value: function connectionStateChange() {\n _loggerProxy.default.logger.log(\"Media:MediaConnectionAwaiter#connectionStateChange --> connection state: \".concat(this.webrtcMediaConnection.getConnectionState()));\n if (this.isFailed()) {\n _loggerProxy.default.logger.warn('Media:MediaConnectionAwaiter#connectionStateChange --> ICE failed, rejecting');\n this.clearCallbacks();\n this.defer.reject({\n iceConnected: this.iceConnected\n });\n }\n if (!this.isConnected()) {\n return;\n }\n clearTimeout(this.timer);\n this.clearCallbacks();\n this.defer.resolve();\n }\n\n /**\n * Listener for peer connection state change.\n *\n * @returns {void}\n */\n }, {\n key: \"peerConnectionStateHandler\",\n value: function peerConnectionStateHandler() {\n var peerConnectionState = this.webrtcMediaConnection.getPeerConnectionState();\n _loggerProxy.default.logger.log(\"Media:MediaConnectionAwaiter#peerConnectionStateHandler --> Peer connection state change -> \".concat(peerConnectionState));\n this.connectionStateChange();\n }\n\n /**\n * Listener for ICE connection state change.\n *\n * @returns {void}\n */\n }, {\n key: \"iceConnectionStateHandler\",\n value: function iceConnectionStateHandler() {\n var iceConnectionState = this.webrtcMediaConnection.getIceConnectionState();\n _loggerProxy.default.logger.log(\"Media:MediaConnectionAwaiter#iceConnectionStateHandler --> ICE connection state change -> \".concat(iceConnectionState));\n if (iceConnectionState === 'connected' && !this.iceConnected) {\n this.iceConnected = true;\n }\n this.connectionStateChange();\n }\n\n /**\n * Listener for ICE gathering state change.\n *\n * @returns {void}\n */\n }, {\n key: \"iceGatheringStateHandler\",\n value: function iceGatheringStateHandler() {\n var iceGatheringState = this.webrtcMediaConnection.getIceGatheringState();\n _loggerProxy.default.logger.log(\"Media:MediaConnectionAwaiter#iceGatheringStateHandler --> ICE gathering state change -> \".concat(iceGatheringState));\n if (!this.isIceGatheringCompleted()) {\n return;\n }\n if (this.isConnected()) {\n return;\n }\n clearTimeout(this.timer);\n this.timer = setTimeout(this.onTimeoutCallback, _constants.ICE_AND_DTLS_CONNECTION_TIMEOUT);\n }\n\n /**\n * Function called when the timeout is reached.\n *\n * @returns {void}\n */\n }, {\n key: \"onTimeout\",\n value: function onTimeout() {\n if (this.isConnected()) {\n this.clearCallbacks();\n this.defer.resolve();\n return;\n }\n if (!this.isIceGatheringCompleted()) {\n if (!this.retried) {\n _loggerProxy.default.logger.warn('Media:MediaConnectionAwaiter#onTimeout --> ICE gathering did not complete within the timeout for the first time, retrying once');\n\n // retry once if ICE gathering is not completed\n this.retried = true;\n clearTimeout(this.timer);\n this.timer = setTimeout(this.onTimeoutCallback, _constants.ICE_AND_DTLS_CONNECTION_TIMEOUT);\n return;\n }\n _loggerProxy.default.logger.warn('Media:MediaConnectionAwaiter#onTimeout --> ICE gathering did not complete within the timeout for the second time, rejecting');\n } else {\n _loggerProxy.default.logger.warn('Media:MediaConnectionAwaiter#onTimeout --> ICE gathering completed, but connection state is not connected, rejecting');\n }\n this.clearCallbacks();\n this.defer.reject({\n iceConnected: this.iceConnected\n });\n }\n\n /**\n * Waits for the webrtc media connection to be connected.\n *\n * @returns {Promise}\n */\n }, {\n key: \"waitForMediaConnectionConnected\",\n value: function waitForMediaConnectionConnected() {\n if (this.isConnected()) {\n return _promise.default.resolve();\n }\n this.webrtcMediaConnection.on(_internalMediaCore.MediaConnectionEventNames.PEER_CONNECTION_STATE_CHANGED, this.peerConnectionStateCallback);\n this.webrtcMediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ICE_CONNECTION_STATE_CHANGED, this.iceConnectionStateCallback);\n this.webrtcMediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ICE_GATHERING_STATE_CHANGED, this.iceGatheringStateCallback);\n this.timer = setTimeout(this.onTimeoutCallback, _constants.ICE_AND_DTLS_CONNECTION_TIMEOUT);\n return this.defer.promise;\n }\n }]);\n return MediaConnectionAwaiter;\n}();\n//# sourceMappingURL=MediaConnectionAwaiter.js.map\n","\"use strict\";\n\nvar _Object$keys = require(\"@babel/runtime-corejs2/core-js/object/keys\");\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-symbols\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptors\");\nvar _Object$defineProperties = require(\"@babel/runtime-corejs2/core-js/object/define-properties\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\nvar _internalMediaCore = require(\"@webex/internal-media-core\");\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _constants = require(\"../constants\");\nvar _config = _interopRequireDefault(require(\"../config\"));\nvar _config2 = _interopRequireDefault(require(\"../common/config\"));\nvar _browserDetection = _interopRequireDefault(require(\"../common/browser-detection\"));\nfunction ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */ /* globals navigator */\nvar _BrowserDetection = (0, _browserDetection.default)(),\n isBrowser = _BrowserDetection.isBrowser;\n/**\n * MediaDirection\n * @typedef {Object} MediaDirection\n * @property {boolean} sendAudio\n * @property {boolean} receiveAudio\n * @property {boolean} sendVideo\n * @property {boolean} receiveVideo\n * @property {boolean} sendShare\n * @property {boolean} receiveShare\n */\n\n/**\n * SendOptions\n * @typedef {Object} SendOptions\n * @property sendAudio\n * @property sendVideo\n * @property sendShare\n * @property isSharing\n * @property {Object} sharePreferences\n */\n/**\n *\n * @public\n * @export\n * Mimic browser APIs as \"the ultimate browser\".\n * Handles the quirks of each browser.\n * Extends and enhances adapter.js, i.e., the \"media\" file from the web client.\n */\nvar Media = {};\n\n/**\n * make a browser call to get the media\n * @param {SendOptions} options\n * @param {Object} config SDK Configuration for meetings plugin\n * @returns {Promise}\n */\nMedia.getLocalMedia = function (options, config) {\n var sendAudio = options.sendAudio,\n sendVideo = options.sendVideo,\n sendShare = options.sendShare,\n sharePreferences = options.sharePreferences,\n isSharing = options.isSharing;\n if (sendAudio || sendVideo) {\n return Media.getMedia(sendAudio, sendVideo, config);\n }\n if (sendShare && !isSharing) {\n return Media.getDisplayMedia({\n sendAudio: false,\n sendShare: true,\n sharePreferences: sharePreferences\n }, config);\n }\n return _promise.default.resolve(undefined);\n};\nMedia.getDirection = function (forceSendRecv, receive, send) {\n if (!receive && !send) {\n return 'inactive';\n }\n if (forceSendRecv || receive && send) {\n return 'sendrecv';\n }\n if (receive) {\n return 'recvonly';\n }\n return 'sendonly';\n};\n\n/**\n * creates a webrtc media connection with provided tracks and mediaDirection configuration\n *\n * @param {boolean} isMultistream\n * @param {string} debugId string useful for debugging (will appear in media connection logs)\n * @param {string} meetingId id for the meeting using this connection\n * @param {Object} options\n * @param {Object} [options.mediaProperties] contains mediaDirection and local tracks:\n * audioTrack, videoTrack, shareVideoTrack, and shareAudioTrack\n * @param {string} [options.remoteQualityLevel] LOW|MEDIUM|HIGH applicable only to non-multistream connections\n * @param {boolean} [options.enableRtx] applicable only to non-multistream connections\n * @param {boolean} [options.enableExtmap] applicable only to non-multistream connections\n * @param {Object} [options.turnServerInfo]\n * @param {BundlePolicy} [options.bundlePolicy]\n * @returns {RoapMediaConnection | MultistreamRoapMediaConnection}\n */\nMedia.createMediaConnection = function (isMultistream, debugId, meetingId, options) {\n var _audioStream$outputSt, _videoStream$outputSt, _shareVideoStream$out, _shareAudioStream$out;\n var rtcMetrics = options.rtcMetrics,\n mediaProperties = options.mediaProperties,\n remoteQualityLevel = options.remoteQualityLevel,\n enableRtx = options.enableRtx,\n enableExtmap = options.enableExtmap,\n turnServerInfo = options.turnServerInfo,\n bundlePolicy = options.bundlePolicy,\n iceCandidatesTimeout = options.iceCandidatesTimeout;\n var iceServers = [];\n\n // we might not have any TURN server if TURN discovery failed or wasn't done or\n // we might get an empty TURN url if we land on a video mesh node\n if (turnServerInfo !== null && turnServerInfo !== void 0 && turnServerInfo.url) {\n if (!isBrowser('firefox')) {\n var bareTurnServer = turnServerInfo.url;\n bareTurnServer = bareTurnServer.replace('turns:', 'turn:');\n bareTurnServer = bareTurnServer.replace('443', '5004');\n iceServers.push({\n urls: bareTurnServer,\n username: turnServerInfo.username || '',\n credential: turnServerInfo.password || ''\n });\n }\n\n // TURN-TLS server\n iceServers.push({\n urls: turnServerInfo.url,\n username: turnServerInfo.username || '',\n credential: turnServerInfo.password || ''\n });\n }\n if (isMultistream) {\n var config = {\n iceServers: iceServers\n };\n if (bundlePolicy) {\n config.bundlePolicy = bundlePolicy;\n }\n return new _internalMediaCore.MultistreamRoapMediaConnection(config, meetingId, /* the rtc metrics objects callbacks */\n function (data) {\n return rtcMetrics === null || rtcMetrics === void 0 ? void 0 : rtcMetrics.addMetrics(data);\n }, function () {\n return rtcMetrics === null || rtcMetrics === void 0 ? void 0 : rtcMetrics.closeMetrics();\n }, function () {\n return rtcMetrics === null || rtcMetrics === void 0 ? void 0 : rtcMetrics.sendMetricsInQueue();\n });\n }\n if (!mediaProperties) {\n throw new Error('mediaProperties have to be provided for non-multistream media connections');\n }\n var mediaDirection = mediaProperties.mediaDirection,\n audioStream = mediaProperties.audioStream,\n videoStream = mediaProperties.videoStream,\n shareVideoStream = mediaProperties.shareVideoStream,\n shareAudioStream = mediaProperties.shareAudioStream;\n return new _internalMediaCore.RoapMediaConnection({\n iceServers: iceServers,\n iceCandidatesTimeout: iceCandidatesTimeout,\n skipInactiveTransceivers: false,\n requireH264: true,\n sdpMunging: {\n convertPort9to0: false,\n addContentSlides: true,\n bandwidthLimits: {\n audio: _config2.default.meetings.bandwidth.audio,\n video: _config2.default.meetings.bandwidth.video\n },\n startBitrate: _config2.default.meetings.bandwidth.startBitrate,\n periodicKeyframes: 20,\n // it's always been hardcoded in SDK so for now keeping it that way\n disableExtmap: !enableExtmap,\n disableRtx: !enableRtx // see https://bugs.chromium.org/p/chromium/issues/detail?id=1020642 why we might want to remove RTX from SDP\n }\n }, {\n // TODO: RoapMediaConnection is not ready to use stream classes yet, so we pass the raw MediaStreamTrack for now SPARK-460530\n localTracks: {\n audio: audioStream === null || audioStream === void 0 ? void 0 : (_audioStream$outputSt = audioStream.outputStream) === null || _audioStream$outputSt === void 0 ? void 0 : _audioStream$outputSt.getTracks()[0],\n video: videoStream === null || videoStream === void 0 ? void 0 : (_videoStream$outputSt = videoStream.outputStream) === null || _videoStream$outputSt === void 0 ? void 0 : _videoStream$outputSt.getTracks()[0],\n screenShareVideo: shareVideoStream === null || shareVideoStream === void 0 ? void 0 : (_shareVideoStream$out = shareVideoStream.outputStream) === null || _shareVideoStream$out === void 0 ? void 0 : _shareVideoStream$out.getTracks()[0],\n screenShareAudio: shareAudioStream === null || shareAudioStream === void 0 ? void 0 : (_shareAudioStream$out = shareAudioStream.outputStream) === null || _shareAudioStream$out === void 0 ? void 0 : _shareAudioStream$out.getTracks()[0] // TODO: add type for screenShareAudio in internal-media-core SPARK-446923\n },\n\n direction: {\n audio: Media.getDirection(true, mediaDirection.receiveAudio, mediaDirection.sendAudio),\n video: Media.getDirection(true, mediaDirection.receiveVideo, mediaDirection.sendVideo),\n screenShareVideo: Media.getDirection(false, mediaDirection.receiveShare, mediaDirection.sendShare)\n },\n remoteQualityLevel: remoteQualityLevel\n }, debugId);\n};\n\n/**\n * generates share streams\n * @param {Object} options parameter\n * @param {Boolean} options.sendAudio send audio from the display share\n * @param {Boolean} options.sendShare send video from the display share\n * @param {Object} options.sharePreferences\n * @param {MediaTrackConstraints} options.sharePreferences.shareConstraints constraints to apply to video\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints}\n * @param {Boolean} options.sharePreferences.highFrameRate if shareConstraints isn't provided, set default values based off of this boolean\n * @param {Object} config SDK Configuration for meetings plugin\n * @returns {Promise.}\n */\nMedia.getDisplayMedia = function (options) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // SDK screen share resolution settings from Webex.init\n var customResolution = config.screenResolution || {};\n // user defined screen share frame rate\n var customShareFrameRate = config.screenFrameRate || null;\n // user defined share preferences\n var hasSharePreferences = options.sharePreferences;\n var hasCustomConstraints = hasSharePreferences && hasSharePreferences.shareConstraints;\n var hasHighFrameRate = hasSharePreferences && hasSharePreferences.highFrameRate;\n var _Config$meetings = _config.default.meetings,\n screenResolution = _Config$meetings.screenResolution,\n resolution = _Config$meetings.resolution,\n videoShareFrameRate = _Config$meetings.videoShareFrameRate,\n screenFrameRate = _Config$meetings.screenFrameRate,\n aspectRatio = _Config$meetings.aspectRatio;\n var shareConstraints = {\n cursor: _constants.MEDIA_TRACK_CONSTRAINT.CURSOR.AWLAYS,\n aspectRatio: aspectRatio\n };\n if (hasCustomConstraints) {\n shareConstraints = hasSharePreferences.shareConstraints;\n } else if (hasHighFrameRate) {\n shareConstraints = _objectSpread(_objectSpread({}, shareConstraints), {}, {\n frameRate: videoShareFrameRate,\n height: resolution.idealHeight,\n width: resolution.idealWidth\n }, config.resolution);\n } else {\n shareConstraints = _objectSpread(_objectSpread({}, shareConstraints), {}, {\n frameRate: customShareFrameRate || screenFrameRate,\n height: customResolution.idealHeight || screenResolution.idealHeight,\n width: customResolution.idealWidth || screenResolution.idealWidth\n }, config.screenResolution);\n }\n\n // chrome and webkit based browsers (edge, safari) automatically adjust everything\n // and we have noticed higher quality with those browser types\n // firefox specifically has some issues with resolution and frame rate decision making\n // so we are making it optional and configurable (with defaults) for firefox\n // to have higher quality, and for developers to control the values\n // eventually we may have to add the same functionality to chrome, OR conversely, get to with firefox\n\n if (isBrowser('firefox')) {\n var mediaConfig = {\n audio: options.sendAudio,\n video: options.sendShare\n };\n return navigator.mediaDevices.getDisplayMedia({\n audio: options.sendAudio,\n video: mediaConfig\n }).then(function (stream) {\n if (options.sendShare && stream.getVideoTracks().length > 0) {\n // Firefox has a bug with the spec where changing in the height and width only happens\n // after we get the inital tracks\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1321221\n stream.getVideoTracks()[0].applyConstraints(shareConstraints);\n }\n return stream;\n });\n }\n var getDisplayMediaParams = {\n video: options.sendShare ? shareConstraints : false\n };\n\n // safari doesn't support sending screen share audio\n // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n if (options.sendAudio && isBrowser('safari')) {\n getDisplayMediaParams.audio = options.sendAudio;\n }\n return navigator.mediaDevices.getDisplayMedia(getDisplayMediaParams);\n};\n\n/**\n * generates audio and video using constraints (often called after getSupportedDevices)\n * @param {Object|Boolean} audio gum constraints\n * @param {Object|Boolean} video gum constraints\n * @param {Object} config SDK Configuration for meetings plugin\n * @returns {Object} {streams}\n */\nMedia.getMedia = function (audio, video, config) {\n var defaultWidth = {\n ideal: config.resolution.idealWidth,\n max: config.resolution.maxWidth\n };\n var defaultHeight = {\n ideal: config.resolution.idealHeight,\n max: config.resolution.maxHeight\n };\n var mediaConfig = {\n audio: audio,\n // TODO: Remove temporary workaround once Firefox fixes low constraint issues\n // eslint-disable-next-line no-nested-ternary\n video: video ? isBrowser('firefox') && video.width && video.width.max === 320 ? {\n deviceId: video.deviceId ? video.deviceId : undefined,\n width: 320,\n height: 180,\n frameRate: video.frameRate ? video.frameRate : undefined,\n facingMode: video.facingMode ? video.facingMode : undefined\n } : {\n deviceId: video.deviceId ? video.deviceId : undefined,\n width: video.width ? video.width : defaultWidth,\n height: video.height ? video.height : defaultHeight,\n frameRate: video.frameRate ? video.frameRate : undefined,\n facingMode: video.facingMode ? video.facingMode : undefined\n } : false,\n fake: process.env.NODE_ENV === 'test' // Special case to get fake media for Firefox browser for testing\n };\n\n return navigator.mediaDevices.getUserMedia(mediaConfig).catch(function (err) {\n var logPath = 'Media:index#getMedia --> navigator.mediaDevices.getUserMedia';\n _loggerProxy.default.logger.error(\"\".concat(logPath, \" failed - \").concat(err, \" (\").concat(err.constraint, \")\"));\n throw err;\n });\n};\n\n/**\n *\n * Toggle a specific stream\n * noop as of now, does nothing\n * @returns {null}\n */\nMedia.toggleStream = function () {};\n\n/**\n * Stop input stream\n * @param {LocalStream} stream A local stream\n * @returns {null}\n */\nMedia.stopStream = function (stream) {\n if (!stream) {\n return _promise.default.resolve();\n }\n return _promise.default.resolve().then(function () {\n try {\n stream.stop();\n } catch (e) {\n _loggerProxy.default.logger.error(\"Media:index#stopStream --> Unable to stop the stream with ready state => \".concat(stream.readyState, \", error: \").concat(e));\n }\n });\n};\n\n/**\n * generates streams for audio video and share\n * @param {object} mediaSetting parameter\n * @param {Object} mediaSetting.sendAudio sendAudio: {Boolean} sendAudio constraints\n * @param {Object} mediaSetting.sendVideo sendVideo: {Boolean} sendVideo constraints\n * @param {Object} mediaSetting.sendShare sendShare: {Boolean} sendShare constraints\n * @param {Object} mediaSetting.isSharing isSharing: {Boolean} isSharing constraints\n * @param {Object} audioVideo parameter\n * @param {Object} audioVideo.audio {deviceId: {String}}\n * @param {Object} audioVideo.video {deviceId: {String}}\n * @param {Object} sharePreferences parameter\n * @param {Object} sharePreferences.shareConstraints parameter\n * @param {Boolean} sharePreferences.highFrameRate parameter\n * @param {Object} config SDK Config\n * @returns {Array} [localStream, shareStream]\n */\nMedia.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, config) {\n return Media.getLocalMedia({\n sendAudio: mediaSetting.sendAudio ? audioVideo.audio || mediaSetting.sendAudio : false,\n sendVideo: mediaSetting.sendVideo ? audioVideo.video || mediaSetting.sendVideo : false\n }, config).then(function (localStream) {\n return Media.getLocalMedia({\n sendShare: mediaSetting.sendShare,\n isSharing: mediaSetting.isSharing,\n sharePreferences: sharePreferences\n }, config).then(function (shareStream) {\n return [localStream, shareStream];\n });\n });\n};\nvar _default = exports.default = Media;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs2/regenerator\"));\nvar _stringify = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/json/stringify\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/asyncToGenerator\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../constants\");\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _MediaConnectionAwaiter = _interopRequireDefault(require(\"./MediaConnectionAwaiter\"));\n/* eslint-disable class-methods-use-this */\n/**\n * @class MediaProperties\n */\nvar MediaProperties = exports.default = /*#__PURE__*/function () {\n /**\n * @param {Object} [options] -- to auto construct\n * @returns {MediaProperties}\n */\n function MediaProperties() {\n (0, _classCallCheck2.default)(this, MediaProperties);\n (0, _defineProperty2.default)(this, \"audioStream\", void 0);\n (0, _defineProperty2.default)(this, \"mediaDirection\", void 0);\n (0, _defineProperty2.default)(this, \"mediaSettings\", void 0);\n (0, _defineProperty2.default)(this, \"webrtcMediaConnection\", void 0);\n (0, _defineProperty2.default)(this, \"remoteAudioStream\", void 0);\n (0, _defineProperty2.default)(this, \"remoteQualityLevel\", void 0);\n (0, _defineProperty2.default)(this, \"remoteShareStream\", void 0);\n (0, _defineProperty2.default)(this, \"remoteVideoStream\", void 0);\n (0, _defineProperty2.default)(this, \"shareVideoStream\", void 0);\n (0, _defineProperty2.default)(this, \"shareAudioStream\", void 0);\n (0, _defineProperty2.default)(this, \"videoDeviceId\", void 0);\n (0, _defineProperty2.default)(this, \"videoStream\", void 0);\n (0, _defineProperty2.default)(this, \"namespace\", _constants.MEETINGS);\n this.webrtcMediaConnection = null;\n this.mediaDirection = {\n receiveAudio: false,\n receiveVideo: false,\n receiveShare: false,\n sendAudio: false,\n sendVideo: false,\n sendShare: false\n };\n this.videoStream = null;\n this.audioStream = null;\n this.shareVideoStream = null;\n this.shareAudioStream = null;\n this.remoteShareStream = undefined;\n this.remoteAudioStream = undefined;\n this.remoteVideoStream = undefined;\n this.remoteQualityLevel = _constants.QUALITY_LEVELS.HIGH;\n this.mediaSettings = {};\n this.videoDeviceId = null;\n }\n\n /**\n * Retrieves the preferred video input device\n * @returns {Object|null}\n */\n (0, _createClass2.default)(MediaProperties, [{\n key: \"getVideoDeviceId\",\n value: function getVideoDeviceId() {\n return this.videoDeviceId || null;\n }\n }, {\n key: \"setMediaDirection\",\n value: function setMediaDirection(mediaDirection) {\n this.mediaDirection = mediaDirection;\n }\n }, {\n key: \"setMediaSettings\",\n value: function setMediaSettings(type, values) {\n this.mediaSettings[type] = values;\n }\n }, {\n key: \"setMediaPeerConnection\",\n value: function setMediaPeerConnection(mediaPeerConnection) {\n this.webrtcMediaConnection = mediaPeerConnection;\n }\n }, {\n key: \"setLocalVideoStream\",\n value: function setLocalVideoStream(videoStream) {\n this.videoStream = videoStream;\n }\n }, {\n key: \"setLocalAudioStream\",\n value: function setLocalAudioStream(audioStream) {\n this.audioStream = audioStream;\n }\n }, {\n key: \"setLocalShareVideoStream\",\n value: function setLocalShareVideoStream(shareVideoStream) {\n this.shareVideoStream = shareVideoStream;\n }\n }, {\n key: \"setLocalShareAudioStream\",\n value: function setLocalShareAudioStream(shareAudioStream) {\n this.shareAudioStream = shareAudioStream;\n }\n }, {\n key: \"setRemoteQualityLevel\",\n value: function setRemoteQualityLevel(remoteQualityLevel) {\n this.remoteQualityLevel = remoteQualityLevel;\n }\n }, {\n key: \"setRemoteShareStream\",\n value: function setRemoteShareStream(remoteShareStream) {\n this.remoteShareStream = remoteShareStream;\n }\n\n /**\n * Sets the remote audio stream\n * @param {RemoteStream} remoteAudioStream RemoteStream to save\n * @returns {void}\n */\n }, {\n key: \"setRemoteAudioStream\",\n value: function setRemoteAudioStream(remoteAudioStream) {\n this.remoteAudioStream = remoteAudioStream;\n }\n\n /**\n * Sets the remote video stream\n * @param {RemoteStream} remoteVideoStream RemoteStream to save\n * @returns {void}\n */\n }, {\n key: \"setRemoteVideoStream\",\n value: function setRemoteVideoStream(remoteVideoStream) {\n this.remoteVideoStream = remoteVideoStream;\n }\n\n /**\n * Stores the preferred video input device\n * @param {string} deviceId Preferred video input device\n * @returns {void}\n */\n }, {\n key: \"setVideoDeviceId\",\n value: function setVideoDeviceId(deviceId) {\n this.videoDeviceId = deviceId;\n }\n }, {\n key: \"unsetPeerConnection\",\n value: function unsetPeerConnection() {\n this.webrtcMediaConnection = null;\n }\n\n /**\n * Removes both remote audio and video from class instance\n * @returns {void}\n */\n }, {\n key: \"unsetRemoteMedia\",\n value: function unsetRemoteMedia() {\n this.remoteAudioStream = null;\n this.remoteVideoStream = null;\n }\n }, {\n key: \"unsetRemoteShareStream\",\n value: function unsetRemoteShareStream() {\n this.remoteShareStream = null;\n }\n\n /**\n * Unsets all remote streams\n * @returns {void}\n */\n }, {\n key: \"unsetRemoteStreams\",\n value: function unsetRemoteStreams() {\n this.unsetRemoteMedia();\n this.unsetRemoteShareStream();\n }\n\n /**\n * Returns if we have at least one local share stream or not.\n * @returns {Boolean}\n */\n }, {\n key: \"hasLocalShareStream\",\n value: function hasLocalShareStream() {\n return !!(this.shareAudioStream || this.shareVideoStream);\n }\n\n /**\n * Waits for the webrtc media connection to be connected.\n *\n * @returns {Promise}\n */\n }, {\n key: \"waitForMediaConnectionConnected\",\n value: function waitForMediaConnectionConnected() {\n var mediaConnectionAwaiter = new _MediaConnectionAwaiter.default({\n webrtcMediaConnection: this.webrtcMediaConnection\n });\n return mediaConnectionAwaiter.waitForMediaConnectionConnected();\n }\n\n /**\n * Returns ICE transport information:\n * - selectedCandidatePairChanges - number of times the selected candidate pair was changed, it should be at least 1 for successful connections\n * it will be -1 if browser doesn't supply this information\n * - numTransports - number of transports (should be 1 if we're using bundle)\n *\n * @param {Array} allStatsReports array of RTC stats reports\n * @returns {Object}\n */\n }, {\n key: \"getTransportInfo\",\n value: function getTransportInfo(allStatsReports) {\n var transports = allStatsReports.filter(function (report) {\n return report.type === 'transport';\n });\n if (transports.length > 1) {\n _loggerProxy.default.logger.warn(\"Media:properties#getSelectedCandidatePairChanges --> found more than 1 transport: \".concat(transports.length));\n }\n return {\n selectedCandidatePairChanges: transports.length > 0 && transports[0].selectedCandidatePairChanges !== undefined ? transports[0].selectedCandidatePairChanges : -1,\n numTransports: transports.length\n };\n }\n\n /**\n * Returns the type of a connection that has been established\n * It should be 'UDP' | 'TCP' | 'TURN-TLS' | 'TURN-TCP' | 'TURN-UDP' | 'unknown'\n *\n * If connection was not established, it returns 'unknown'\n *\n * @param {Array} allStatsReports array of RTC stats reports\n * @returns {string}\n */\n }, {\n key: \"getConnectionType\",\n value: function getConnectionType(allStatsReports) {\n var successfulCandidatePairs = allStatsReports.filter(function (report) {\n var _report$state;\n return report.type === 'candidate-pair' && ((_report$state = report.state) === null || _report$state === void 0 ? void 0 : _report$state.toLowerCase()) === 'succeeded';\n });\n var foundConnectionType = 'unknown';\n\n // all of the successful pairs should have the same connection type, so just return the type for the first one\n successfulCandidatePairs.some(function (pair) {\n var localCandidate = allStatsReports.find(function (report) {\n return report.type === 'local-candidate' && report.id === pair.localCandidateId;\n });\n if (localCandidate === undefined) {\n _loggerProxy.default.logger.warn(\"Media:properties#getConnectionType --> failed to find local candidate \\\"\".concat(pair.localCandidateId, \"\\\" in getStats() results\"));\n return false;\n }\n var connectionType;\n if (localCandidate.relayProtocol) {\n connectionType = \"TURN-\".concat(localCandidate.relayProtocol.toUpperCase());\n } else {\n var _localCandidate$proto;\n connectionType = (_localCandidate$proto = localCandidate.protocol) === null || _localCandidate$proto === void 0 ? void 0 : _localCandidate$proto.toUpperCase(); // it will be UDP or TCP\n }\n\n if (connectionType) {\n foundConnectionType = connectionType;\n return true;\n }\n _loggerProxy.default.logger.warn(\"Media:properties#getConnectionType --> missing localCandidate.protocol, candidateType=\".concat(localCandidate.candidateType));\n return false;\n });\n if (foundConnectionType === 'unknown') {\n var candidatePairStates = allStatsReports.filter(function (report) {\n return report.type === 'candidate-pair';\n }).map(function (report) {\n return report.state;\n });\n _loggerProxy.default.logger.warn(\"Media:properties#getConnectionType --> all candidate pair states: \".concat((0, _stringify.default)(candidatePairStates)));\n }\n return foundConnectionType;\n }\n\n /**\n * Returns information about current webrtc media connection\n *\n * @returns {Promise}\n */\n }, {\n key: \"getCurrentConnectionInfo\",\n value: (function () {\n var _getCurrentConnectionInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var allStatsReports, statsResult, connectionType, _this$getTransportInf, selectedCandidatePairChanges, numTransports;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n allStatsReports = [];\n _context.prev = 1;\n _context.next = 4;\n return this.webrtcMediaConnection.getStats();\n case 4:\n statsResult = _context.sent;\n statsResult.forEach(function (report) {\n return allStatsReports.push(report);\n });\n _context.next = 11;\n break;\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](1);\n _loggerProxy.default.logger.warn(\"Media:properties#getCurrentConnectionInfo --> getStats() failed: \".concat(_context.t0));\n case 11:\n connectionType = this.getConnectionType(allStatsReports);\n _this$getTransportInf = this.getTransportInfo(allStatsReports), selectedCandidatePairChanges = _this$getTransportInf.selectedCandidatePairChanges, numTransports = _this$getTransportInf.numTransports;\n return _context.abrupt(\"return\", {\n connectionType: connectionType,\n selectedCandidatePairChanges: selectedCandidatePairChanges,\n numTransports: numTransports\n });\n case 14:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[1, 8]]);\n }));\n function getCurrentConnectionInfo() {\n return _getCurrentConnectionInfo.apply(this, arguments);\n }\n return getCurrentConnectionInfo;\n }())\n }]);\n return MediaProperties;\n}();\n//# sourceMappingURL=properties.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\n/* globals MediaStream */\n\nvar MediaUtil = {};\nMediaUtil.createMediaStream = function (tracks) {\n if (!tracks) {\n _loggerProxy.default.logger.error(\"Media:util#createMediaStream --> Tracks don't exist\");\n }\n var filtredTracks = tracks.filter(function (element) {\n return !!element;\n });\n return new MediaStream(filtredTracks);\n};\nvar _default = exports.default = MediaUtil;\n//# sourceMappingURL=util.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _lodash = require(\"lodash\");\nvar _collection = _interopRequireDefault(require(\"../common/collection\"));\nvar _constants = require(\"../constants\");\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n/**\n * @class MeetingInfoCollection\n */\nvar MeetingInfoCollection = exports.default = /*#__PURE__*/function (_Collection) {\n (0, _inherits2.default)(MeetingInfoCollection, _Collection);\n var _super = _createSuper(MeetingInfoCollection);\n /**\n * @memberof MeetingInfoCollection\n * @constructor\n * @public\n */\n function MeetingInfoCollection() {\n var _this;\n (0, _classCallCheck2.default)(this, MeetingInfoCollection);\n _this = _super.call(this, 'meetingInfos');\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"namespace\", _constants.MEETINGS);\n return _this;\n }\n\n /**\n * @param {String} id ID of the meeting info you wish to retreive\n * @returns {MeetingInfo} returns a meeting info instance\n * @public\n * @memberof MeetingInfoCollection\n */\n (0, _createClass2.default)(MeetingInfoCollection, [{\n key: \"get\",\n value: function get(id) {\n // @ts-ignore\n if (this.meetingInfos[id]) {\n // @ts-ignore\n return this.meetingInfos[id];\n }\n return (0, _lodash.find)(\n // @ts-ignore\n this.meetingInfos, function (info) {\n return info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id;\n });\n }\n }]);\n return MeetingInfoCollection;\n}(_collection.default);\n//# sourceMappingURL=collection.js.map\n","\"use strict\";\n\nvar _Object$keys = require(\"@babel/runtime-corejs2/core-js/object/keys\");\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-symbols\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptors\");\nvar _Object$defineProperties = require(\"@babel/runtime-corejs2/core-js/object/define-properties\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../constants\");\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _collection = _interopRequireDefault(require(\"./collection\"));\nvar _request = _interopRequireDefault(require(\"./request\"));\nvar _util = _interopRequireDefault(require(\"./util\"));\nfunction ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n/**\n * @class MeetingInfo\n */\nvar MeetingInfo = exports.default = /*#__PURE__*/function () {\n /**\n *\n * @param {WebexSDK} webex\n */\n function MeetingInfo(webex) {\n (0, _classCallCheck2.default)(this, MeetingInfo);\n (0, _defineProperty2.default)(this, \"meetingInfoCollection\", void 0);\n (0, _defineProperty2.default)(this, \"meetingInfoRequest\", void 0);\n (0, _defineProperty2.default)(this, \"webex\", void 0);\n this.webex = webex;\n\n /**\n * The meeting info request server interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoRequest = new _request.default(this.webex);\n /**\n * The meeting information collection interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoCollection = new _collection.default();\n }\n\n /**\n * @param {string} id\n * @returns {object}\n * @public\n * @memberof MeetingInfo\n */\n (0, _createClass2.default)(MeetingInfo, [{\n key: \"getMeetingInfo\",\n value: function getMeetingInfo(id) {\n return this.meetingInfoCollection.get(id);\n }\n\n /**\n * @param {string} id\n * @param {object} info\n * @returns {null}\n * @public\n * @memberof MeetingInfo\n */\n }, {\n key: \"setMeetingInfo\",\n value: function setMeetingInfo(id, info) {\n this.meetingInfoCollection.set(id, info);\n }\n\n /**\n * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject\n * @param {Object} options\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n }, {\n key: \"requestFetchInfo\",\n value: function requestFetchInfo(options) {\n var _this = this;\n var meetingId = options.meetingId,\n sendCAevents = options.sendCAevents;\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request'\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId: meetingId\n }\n });\n }\n return this.meetingInfoRequest.fetchMeetingInfo(options).then(function (info) {\n if (meetingId && sendCAevents) {\n var _info$body, _info$body2, _info$body3;\n _this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response'\n });\n _this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: info === null || info === void 0 ? void 0 : info.url\n }\n },\n options: {\n meetingId: meetingId,\n webexConferenceIdStr: (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.confIdStr) || (info === null || info === void 0 ? void 0 : (_info$body2 = info.body) === null || _info$body2 === void 0 ? void 0 : _info$body2.confID),\n globalMeetingId: info === null || info === void 0 ? void 0 : (_info$body3 = info.body) === null || _info$body3 === void 0 ? void 0 : _info$body3.meetingId\n }\n });\n }\n if (info && info.body) {\n _this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);\n }\n return info;\n }).catch(function (error) {\n _loggerProxy.default.logger.error(\"Meeting-info:index#requestFetchInfo --> \".concat(error, \" fetch meetingInfo\"));\n if (meetingId && sendCAevents) {\n _this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response'\n });\n _this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: error === null || error === void 0 ? void 0 : error.url\n }\n },\n options: {\n meetingId: meetingId,\n rawError: error\n }\n });\n }\n return _promise.default.reject(error);\n });\n }\n\n /**\n * Helper to generate the options for the MeetingInfo request\n * @param {String} destination\n * @param {String} type\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n }, {\n key: \"fetchInfoOptions\",\n value: function fetchInfoOptions(destination, type) {\n return _util.default.generateOptions({\n destination: destination,\n type: type,\n webex: this.webex\n });\n }\n\n // eslint-disable-next-line valid-jsdoc\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {DESTINATION_TYPE} [type] to match up with the destination value\n * @param {String} [password] meeting password\n * @param {Object} [captchaInfo] captcha code and id\n * @param {String} [installedOrgID]\n * @param {String} [locusId]\n * @param {Object} [extraParams]\n * @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n }, {\n key: \"fetchMeetingInfo\",\n value: function fetchMeetingInfo(destination) {\n var _this2 = this;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var password = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var captchaInfo = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var installedOrgID = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var locusId = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n var extraParams = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n var options = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : {};\n if (type === _constants.DESTINATION_TYPE.PERSONAL_ROOM && !destination) {\n destination = this.webex.internal.device.userId;\n }\n return this.fetchInfoOptions(_util.default.extractDestination(destination, type), type).then(function (infoOptions) {\n return (\n // fetch meeting info\n _this2.requestFetchInfo(_objectSpread(_objectSpread({}, infoOptions), options)).catch(function (error) {\n // if it failed the first time as meeting link\n if (infoOptions.type === _constants.DESTINATION_TYPE.MEETING_LINK) {\n // convert the meeting link to sip URI and retry\n return _this2.requestFetchInfo(_objectSpread(_objectSpread({}, _this2.fetchInfoOptions(_util.default.convertLinkToSip(destination), _constants.DESTINATION_TYPE.SIP_URI)), options));\n }\n return _promise.default.reject(error);\n })\n );\n });\n }\n }]);\n return MeetingInfo;\n}();\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$keys2 = require(\"@babel/runtime-corejs2/core-js/object/keys\");\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-symbols\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptors\");\nvar _Object$defineProperties = require(\"@babel/runtime-corejs2/core-js/object/define-properties\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.MeetingInfoV2PolicyError = exports.MeetingInfoV2PasswordError = exports.MeetingInfoV2JoinWebinarError = exports.MeetingInfoV2CaptchaError = exports.MeetingInfoV2AdhocMeetingError = void 0;\nvar _keys = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/keys\"));\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs2/regenerator\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/asyncToGenerator\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/wrapNativeSuper\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _lodash = _interopRequireDefault(require(\"lodash\"));\nvar _constants = require(\"../constants\");\nvar _metrics = _interopRequireDefault(require(\"../metrics\"));\nvar _constants2 = _interopRequireDefault(require(\"../metrics/constants\"));\nvar _utilv = _interopRequireDefault(require(\"./utilv2\"));\nfunction ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar PASSWORD_ERROR_DEFAULT_MESSAGE = 'Password required. Call fetchMeetingInfo() with password argument';\nvar CAPTCHA_ERROR_DEFAULT_MESSAGE = 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';\nvar ADHOC_MEETING_DEFAULT_ERROR = 'Failed starting the adhoc meeting, Please contact support team ';\nvar CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];\nvar POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];\n/**\n * 403021 - Meeting registration is required\n * 403022 - Meeting registration is still pending\n * 403024 - Meeting registration have been rejected\n * 403137 - Registration ID verified failure\n * 423007 - Registration ID input too many time,please input captcha code\n * 403026 - Need to join meeting via webcast\n * 403037 - Meeting join required registration ID\n * 403137 - Registration ID verified failure\n *\n */\nvar JOIN_WEBINAR_ERROR_CODES = [403021, 403022, 403024, 403137, 423007, 403026, 403037, 403137];\n\n/**\n * Error to indicate that wbxappapi requires a password\n */\nvar MeetingInfoV2PasswordError = exports.MeetingInfoV2PasswordError = /*#__PURE__*/function (_Error) {\n (0, _inherits2.default)(MeetingInfoV2PasswordError, _Error);\n var _super = _createSuper(MeetingInfoV2PasswordError);\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n function MeetingInfoV2PasswordError(wbxAppApiErrorCode, meetingInfo) {\n var _this;\n var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : PASSWORD_ERROR_DEFAULT_MESSAGE;\n (0, _classCallCheck2.default)(this, MeetingInfoV2PasswordError);\n _this = _super.call(this, \"\".concat(message, \", code=\").concat(wbxAppApiErrorCode));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"meetingInfo\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"sdkMessage\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"wbxAppApiCode\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"body\", void 0);\n _this.name = 'MeetingInfoV2PasswordError';\n _this.sdkMessage = message;\n _this.stack = new Error().stack;\n _this.wbxAppApiCode = wbxAppApiErrorCode;\n _this.meetingInfo = meetingInfo;\n return _this;\n }\n return (0, _createClass2.default)(MeetingInfoV2PasswordError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n/**\n * Error generating a adhoc space meeting\n */\nvar MeetingInfoV2AdhocMeetingError = exports.MeetingInfoV2AdhocMeetingError = /*#__PURE__*/function (_Error2) {\n (0, _inherits2.default)(MeetingInfoV2AdhocMeetingError, _Error2);\n var _super2 = _createSuper(MeetingInfoV2AdhocMeetingError);\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n function MeetingInfoV2AdhocMeetingError(wbxAppApiErrorCode) {\n var _this2;\n var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ADHOC_MEETING_DEFAULT_ERROR;\n (0, _classCallCheck2.default)(this, MeetingInfoV2AdhocMeetingError);\n _this2 = _super2.call(this, \"\".concat(message, \", code=\").concat(wbxAppApiErrorCode));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), \"sdkMessage\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), \"wbxAppApiCode\", void 0);\n _this2.name = 'MeetingInfoV2AdhocMeetingError';\n _this2.sdkMessage = message;\n _this2.stack = new Error().stack;\n _this2.wbxAppApiCode = wbxAppApiErrorCode;\n return _this2;\n }\n return (0, _createClass2.default)(MeetingInfoV2AdhocMeetingError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n/**\n * Error preventing join because of a meeting policy\n */\nvar MeetingInfoV2PolicyError = exports.MeetingInfoV2PolicyError = /*#__PURE__*/function (_Error3) {\n (0, _inherits2.default)(MeetingInfoV2PolicyError, _Error3);\n var _super3 = _createSuper(MeetingInfoV2PolicyError);\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n function MeetingInfoV2PolicyError(wbxAppApiErrorCode, meetingInfo, message) {\n var _this3;\n (0, _classCallCheck2.default)(this, MeetingInfoV2PolicyError);\n _this3 = _super3.call(this, \"\".concat(message, \", code=\").concat(wbxAppApiErrorCode));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), \"meetingInfo\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), \"sdkMessage\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), \"wbxAppApiCode\", void 0);\n _this3.name = 'MeetingInfoV2AdhocMeetingError';\n _this3.sdkMessage = message;\n _this3.stack = new Error().stack;\n _this3.wbxAppApiCode = wbxAppApiErrorCode;\n _this3.meetingInfo = meetingInfo;\n return _this3;\n }\n return (0, _createClass2.default)(MeetingInfoV2PolicyError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n/**\n * Error to indicate that preferred webex site not present to start adhoc meeting\n */\nvar MeetingInfoV2CaptchaError = exports.MeetingInfoV2CaptchaError = /*#__PURE__*/function (_Error4) {\n (0, _inherits2.default)(MeetingInfoV2CaptchaError, _Error4);\n var _super4 = _createSuper(MeetingInfoV2CaptchaError);\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [captchaInfo]\n * @param {String} [message]\n */\n function MeetingInfoV2CaptchaError(wbxAppApiErrorCode, captchaInfo) {\n var _this4;\n var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : CAPTCHA_ERROR_DEFAULT_MESSAGE;\n (0, _classCallCheck2.default)(this, MeetingInfoV2CaptchaError);\n _this4 = _super4.call(this, \"\".concat(message, \", code=\").concat(wbxAppApiErrorCode));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), \"captchaInfo\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), \"isPasswordRequired\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), \"sdkMessage\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), \"wbxAppApiCode\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), \"body\", void 0);\n _this4.name = 'MeetingInfoV2PasswordError';\n _this4.sdkMessage = message;\n _this4.stack = new Error().stack;\n _this4.wbxAppApiCode = wbxAppApiErrorCode;\n _this4.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);\n _this4.captchaInfo = captchaInfo;\n return _this4;\n }\n return (0, _createClass2.default)(MeetingInfoV2CaptchaError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n/**\n * Error preventing join because of a webinar have some error\n */\nvar MeetingInfoV2JoinWebinarError = exports.MeetingInfoV2JoinWebinarError = /*#__PURE__*/function (_Error5) {\n (0, _inherits2.default)(MeetingInfoV2JoinWebinarError, _Error5);\n var _super5 = _createSuper(MeetingInfoV2JoinWebinarError);\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n function MeetingInfoV2JoinWebinarError(wbxAppApiErrorCode, meetingInfo, message) {\n var _this5;\n (0, _classCallCheck2.default)(this, MeetingInfoV2JoinWebinarError);\n _this5 = _super5.call(this, \"\".concat(message, \", code=\").concat(wbxAppApiErrorCode));\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this5), \"meetingInfo\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this5), \"sdkMessage\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this5), \"wbxAppApiCode\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this5), \"body\", void 0);\n _this5.name = 'MeetingInfoV2JoinWebinarError';\n _this5.sdkMessage = message;\n _this5.stack = new Error().stack;\n _this5.wbxAppApiCode = wbxAppApiErrorCode;\n _this5.meetingInfo = meetingInfo;\n return _this5;\n }\n return (0, _createClass2.default)(MeetingInfoV2JoinWebinarError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n/**\n * @class MeetingInfo\n */\nvar MeetingInfoV2 = exports.default = /*#__PURE__*/function () {\n /**\n *\n * @param {WebexSDK} webex\n */\n function MeetingInfoV2(webex) {\n (0, _classCallCheck2.default)(this, MeetingInfoV2);\n (0, _defineProperty2.default)(this, \"webex\", void 0);\n /**\n * Raises a MeetingInfoV2PolicyError for policy error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n (0, _defineProperty2.default)(this, \"handlePolicyError\", function (err) {\n var _err$body;\n if (!err.body) {\n return;\n }\n if (POLICY_ERROR_CODES.includes((_err$body = err.body) === null || _err$body === void 0 ? void 0 : _err$body.code)) {\n var _err$body2, _err$body3, _err$body4, _err$body4$data, _err$body5;\n _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_INFO_POLICY_ERROR, {\n code: (_err$body2 = err.body) === null || _err$body2 === void 0 ? void 0 : _err$body2.code\n });\n throw new MeetingInfoV2PolicyError((_err$body3 = err.body) === null || _err$body3 === void 0 ? void 0 : _err$body3.code, (_err$body4 = err.body) === null || _err$body4 === void 0 ? void 0 : (_err$body4$data = _err$body4.data) === null || _err$body4$data === void 0 ? void 0 : _err$body4$data.meetingInfo, (_err$body5 = err.body) === null || _err$body5 === void 0 ? void 0 : _err$body5.message);\n }\n });\n /**\n * Raises a handleJoinWebinarError for join webinar error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n (0, _defineProperty2.default)(this, \"handleJoinWebinarError\", function (err) {\n var _err$body6;\n if (!err.body) {\n return;\n }\n if (JOIN_WEBINAR_ERROR_CODES.includes((_err$body6 = err.body) === null || _err$body6 === void 0 ? void 0 : _err$body6.code)) {\n var _err$body7, _err$body8, _err$body9, _err$body9$data, _err$body10;\n _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WEBINAR_ERROR, {\n code: (_err$body7 = err.body) === null || _err$body7 === void 0 ? void 0 : _err$body7.code\n });\n throw new MeetingInfoV2JoinWebinarError((_err$body8 = err.body) === null || _err$body8 === void 0 ? void 0 : _err$body8.code, (_err$body9 = err.body) === null || _err$body9 === void 0 ? void 0 : (_err$body9$data = _err$body9.data) === null || _err$body9$data === void 0 ? void 0 : _err$body9$data.meetingInfo, (_err$body10 = err.body) === null || _err$body10 === void 0 ? void 0 : _err$body10.message);\n }\n });\n this.webex = webex;\n }\n\n /**\n * converts hydra id into conversation url and persons Id\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} destination and type\n * @public\n * @memberof MeetingInfo\n */\n (0, _createClass2.default)(MeetingInfoV2, [{\n key: \"fetchInfoOptions\",\n value: function fetchInfoOptions(destination) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return _utilv.default.getDestinationType({\n destination: destination,\n type: type,\n webex: this.webex\n });\n }\n }, {\n key: \"createAdhocSpaceMeeting\",\n value: (\n /**\n * Creates adhoc space meetings for a space by fetching the conversation infomation\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @param {String} installedOrgID org ID of user's machine\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n function () {\n var _createAdhocSpaceMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(conversationUrl, installedOrgID) {\n var _this6 = this;\n var getInvitees;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (this.webex.meetings.preferredWebexSite) {\n _context.next = 2;\n break;\n }\n throw Error('No preferred webex site found');\n case 2:\n getInvitees = function getInvitees() {\n var particpants = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var invitees = [];\n if (particpants) {\n particpants.forEach(function (participant) {\n invitees.push({\n email: participant.emailAddress,\n ciUserUuid: participant.entryUUID\n });\n });\n }\n return invitees;\n };\n return _context.abrupt(\"return\", this.webex.request({\n uri: conversationUrl,\n qs: {\n includeParticipants: true\n },\n disableTransform: true\n }).then(function (_ref) {\n var _conversation$partici;\n var conversation = _ref.body;\n var body = {\n title: conversation.displayName,\n spaceUrl: conversation.url,\n keyUrl: conversation.encryptionKeyUrl,\n kroUrl: conversation.kmsResourceObjectUrl,\n invitees: getInvitees((_conversation$partici = conversation.participants) === null || _conversation$partici === void 0 ? void 0 : _conversation$partici.items),\n installedOrgID: installedOrgID\n };\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n var uri = _this6.webex.meetings.preferredWebexSite ? \"https://\".concat(_this6.webex.meetings.preferredWebexSite, \"/wbxappapi/v2/meetings/spaceInstant\") : '';\n return _this6.webex.request({\n method: _constants.HTTP_VERBS.POST,\n uri: uri,\n body: body\n });\n }).then(function (requestResult) {\n _metrics.default.sendBehavioralMetric(_constants2.default.ADHOC_MEETING_SUCCESS);\n return requestResult;\n }).catch(function (err) {\n var _err$body11, _err$body12;\n _this6.handlePolicyError(err);\n _this6.handleJoinWebinarError(err);\n _metrics.default.sendBehavioralMetric(_constants2.default.ADHOC_MEETING_FAILURE, {\n reason: err.message,\n stack: err.stack\n });\n throw new MeetingInfoV2AdhocMeetingError((_err$body11 = err.body) === null || _err$body11 === void 0 ? void 0 : _err$body11.code, (_err$body12 = err.body) === null || _err$body12 === void 0 ? void 0 : _err$body12.message);\n }));\n case 4:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function createAdhocSpaceMeeting(_x, _x2) {\n return _createAdhocSpaceMeeting.apply(this, arguments);\n }\n return createAdhocSpaceMeeting;\n }()\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {DESTINATION_TYPE} [type] to match up with the destination value\n * @param {String} password\n * @param {Object} captchaInfo\n * @param {String} captchaInfo.code\n * @param {String} captchaInfo.id\n * @param {String} installedOrgID org ID of user's machine\n * @param {String} locusId\n * @param {Object} extraParams\n * @param {Object} options\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n )\n }, {\n key: \"fetchMeetingInfo\",\n value: (function () {\n var _fetchMeetingInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(destination) {\n var _this7 = this;\n var type,\n password,\n captchaInfo,\n installedOrgID,\n locusId,\n extraParams,\n options,\n meetingId,\n sendCAevents,\n destinationType,\n body,\n _destinationType$info,\n _destinationType$info2,\n err,\n requestOptions,\n directURI,\n _args2 = arguments;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n type = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : null;\n password = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : null;\n captchaInfo = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : null;\n installedOrgID = _args2.length > 4 && _args2[4] !== undefined ? _args2[4] : null;\n locusId = _args2.length > 5 && _args2[5] !== undefined ? _args2[5] : null;\n extraParams = _args2.length > 6 && _args2[6] !== undefined ? _args2[6] : {};\n options = _args2.length > 7 && _args2[7] !== undefined ? _args2[7] : {};\n meetingId = options.meetingId, sendCAevents = options.sendCAevents;\n _context2.next = 10;\n return _utilv.default.getDestinationType({\n destination: destination,\n type: type,\n webex: this.webex\n });\n case 10:\n destinationType = _context2.sent;\n if (!(destinationType.type === _constants.DESTINATION_TYPE.CONVERSATION_URL && this.webex.config.meetings.experimental.enableAdhocMeetings && this.webex.meetings.preferredWebexSite)) {\n _context2.next = 13;\n break;\n }\n return _context2.abrupt(\"return\", this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID));\n case 13:\n _context2.next = 15;\n return _utilv.default.getRequestBody(_objectSpread(_objectSpread({}, destinationType), {}, {\n password: password,\n captchaInfo: captchaInfo,\n installedOrgID: installedOrgID,\n locusId: locusId,\n extraParams: extraParams\n }));\n case 15:\n body = _context2.sent;\n if (_lodash.default.difference((0, _keys.default)(body), (0, _keys.default)(_constants.DEFAULT_MEETING_INFO_REQUEST_BODY)).length) {\n _context2.next = 20;\n break;\n }\n err = new Error('Not enough information to fetch meeting info');\n _metrics.default.sendBehavioralMetric(_constants2.default.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n destinationType: destinationType === null || destinationType === void 0 ? void 0 : destinationType.type,\n webExMeetingId: destinationType === null || destinationType === void 0 ? void 0 : (_destinationType$info = destinationType.info) === null || _destinationType$info === void 0 ? void 0 : _destinationType$info.webExMeetingId,\n sipUri: destinationType === null || destinationType === void 0 ? void 0 : (_destinationType$info2 = destinationType.info) === null || _destinationType$info2 === void 0 ? void 0 : _destinationType$info2.sipUri\n });\n throw err;\n case 20:\n requestOptions = {\n method: _constants.HTTP_VERBS.POST,\n body: body\n };\n _context2.next = 23;\n return _utilv.default.getDirectMeetingInfoURI(destinationType);\n case 23:\n directURI = _context2.sent;\n if (directURI) {\n requestOptions.uri = directURI;\n } else {\n requestOptions.service = _constants.WBXAPPAPI_SERVICE;\n requestOptions.resource = 'meetingInfo';\n }\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request'\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId: meetingId\n }\n });\n }\n return _context2.abrupt(\"return\", this.webex.request(requestOptions).then(function (response) {\n if (meetingId && sendCAevents) {\n var _response$body, _response$body2, _response$body3;\n _this7.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response'\n });\n _this7.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: response === null || response === void 0 ? void 0 : response.url\n }\n },\n options: {\n meetingId: meetingId,\n webexConferenceIdStr: (response === null || response === void 0 ? void 0 : (_response$body = response.body) === null || _response$body === void 0 ? void 0 : _response$body.confIdStr) || (response === null || response === void 0 ? void 0 : (_response$body2 = response.body) === null || _response$body2 === void 0 ? void 0 : _response$body2.confID),\n globalMeetingId: response === null || response === void 0 ? void 0 : (_response$body3 = response.body) === null || _response$body3 === void 0 ? void 0 : _response$body3.meetingId\n }\n });\n }\n _metrics.default.sendBehavioralMetric(_constants2.default.FETCH_MEETING_INFO_V1_SUCCESS);\n return response;\n }).catch(function (err) {\n if (meetingId && sendCAevents) {\n _this7.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response'\n });\n _this7.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: err === null || err === void 0 ? void 0 : err.url\n }\n },\n options: {\n meetingId: meetingId,\n rawError: err\n }\n });\n }\n if ((err === null || err === void 0 ? void 0 : err.statusCode) === 403) {\n var _err$body13, _err$body14, _err$body14$data;\n _this7.handlePolicyError(err);\n _this7.handleJoinWebinarError(err);\n _metrics.default.sendBehavioralMetric(_constants2.default.VERIFY_PASSWORD_ERROR, {\n reason: err.message,\n stack: err.stack\n });\n throw new MeetingInfoV2PasswordError((_err$body13 = err.body) === null || _err$body13 === void 0 ? void 0 : _err$body13.code, (_err$body14 = err.body) === null || _err$body14 === void 0 ? void 0 : (_err$body14$data = _err$body14.data) === null || _err$body14$data === void 0 ? void 0 : _err$body14$data.meetingInfo);\n }\n if ((err === null || err === void 0 ? void 0 : err.statusCode) === 423) {\n var _err$body15;\n _metrics.default.sendBehavioralMetric(_constants2.default.VERIFY_CAPTCHA_ERROR, {\n reason: err.message,\n stack: err.stack\n });\n throw new MeetingInfoV2CaptchaError((_err$body15 = err.body) === null || _err$body15 === void 0 ? void 0 : _err$body15.code, {\n captchaId: err.body.captchaID,\n verificationImageURL: err.body.verificationImageURL,\n verificationAudioURL: err.body.verificationAudioURL,\n refreshURL: err.body.refreshURL\n });\n }\n _metrics.default.sendBehavioralMetric(_constants2.default.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n stack: err.stack\n });\n throw err;\n }));\n case 27:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function fetchMeetingInfo(_x3) {\n return _fetchMeetingInfo.apply(this, arguments);\n }\n return fetchMeetingInfo;\n }())\n }]);\n return MeetingInfoV2;\n}();\n//# sourceMappingURL=meeting-info-v2.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../constants\");\nvar _parameter = _interopRequireDefault(require(\"../common/errors/parameter\"));\nvar _util = _interopRequireDefault(require(\"./util\"));\n/**\n * @class MeetingInfoRequest\n */\nvar MeetingInfoRequest = exports.default = /*#__PURE__*/function () {\n /**\n * Meeting Info Request Constructor\n * @param {WebexSDK} webex\n */\n function MeetingInfoRequest(webex) {\n (0, _classCallCheck2.default)(this, MeetingInfoRequest);\n (0, _defineProperty2.default)(this, \"webex\", void 0);\n this.webex = webex;\n }\n\n /**\n *\n * @param {Object} options with format of {type: String, desintation: String}\n * where type is PERSONAL_ROOM, SIP_URI, CONVERSATION_URL, and destination is userId, sipUri, conversationUrl respectively\n * type can also be specified as an option and be of the list SIP_URI,MEETING_ID,LOCUS_ID,PERSONAL_ROOM,MEETING_LINK,ONE_ON_ONE,MEDIA_SIP_URI,CONVERSATION_URL,TEMP_SIP_URI\n * with the desination matching\n * @returns {Promise} returns a promise that resolves/rejects the result of the request\n * @throws {Error} if the options are not valid and complete\n * @memberof MeetingInfoRequest\n */\n (0, _createClass2.default)(MeetingInfoRequest, [{\n key: \"fetchMeetingInfo\",\n value: function fetchMeetingInfo(options) {\n if (!options || !options.type || !options.destination) {\n throw new _parameter.default('MeetingInfo should be fetched with a type and destination specified, see list of valid types and their corresponding values in constants');\n }\n var resourceUrl = _util.default.getResourceUrl(options.type, options.destination);\n var requestParams = _util.default.getRequestParams(resourceUrl, options.type, options.destination, _constants.API.LOCUS);\n return this.webex.request(requestParams);\n }\n }]);\n return MeetingInfoRequest;\n}();\n//# sourceMappingURL=request.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs2/regenerator\"));\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/asyncToGenerator\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _url = _interopRequireDefault(require(\"url\"));\nvar _btoa = _interopRequireDefault(require(\"btoa\"));\nvar _common = require(\"@webex/common\");\nvar _parameter = _interopRequireDefault(require(\"../common/errors/parameter\"));\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _constants = require(\"../constants\");\n// @ts-ignore\n/**\n * @class MeetingInfoUtil\n */\nvar MeetingInfoUtil = exports.default = /*#__PURE__*/function () {\n function MeetingInfoUtil() {\n (0, _classCallCheck2.default)(this, MeetingInfoUtil);\n }\n (0, _createClass2.default)(MeetingInfoUtil, null, [{\n key: \"extractDestination\",\n value: function extractDestination(destination, type) {\n var dest = destination;\n if (type === _constants.DESTINATION_TYPE.LOCUS_ID) {\n if (!(destination && destination.url)) {\n throw new _parameter.default('You cannot create a meeting by locus without a locus.url defined');\n }\n dest = destination.url;\n }\n return dest;\n }\n }, {\n key: \"getParsedUrl\",\n value: function getParsedUrl(link) {\n try {\n var parsedUrl = _url.default.parse(link);\n if (!parsedUrl) {\n return false;\n }\n // hack for links such as .webex.com/meet/ without a protocol\n if (!parsedUrl.protocol) {\n parsedUrl = _url.default.parse(\"\".concat(_constants.HTTPS_PROTOCOL).concat(link));\n }\n return parsedUrl;\n } catch (error) {\n _loggerProxy.default.logger.warn(\"Meeting-info:util#getParsedUrl --> unable to parse the URL, error: \".concat(error));\n return null;\n }\n }\n\n /**\n * Helper function to check if a string matches a known meeting link pattern\n * @param {String} value string to parse and see if it matches a meeting link\n * @returns {Boolean}\n */\n }, {\n key: \"isMeetingLink\",\n value: function isMeetingLink(value) {\n var parsedUrl = this.getParsedUrl(value);\n var hostNameBool;\n var pathNameBool;\n if (parsedUrl) {\n hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(_constants.WEBEX_DOT_COM);\n pathNameBool = parsedUrl.pathname && (parsedUrl.pathname.includes(\"/\".concat(_constants.MEET)) || parsedUrl.pathname.includes(\"/\".concat(_constants.MEET_M)) || parsedUrl.pathname.includes(\"/\".concat(_constants.JOIN)));\n }\n return hostNameBool && pathNameBool;\n }\n }, {\n key: \"isConversationUrl\",\n value: function isConversationUrl(value, webex) {\n var clusterId = webex.internal.services.getClusterId(value);\n if (clusterId) {\n return clusterId.endsWith(_constants.CONVERSATION_SERVICE);\n }\n return false;\n }\n }, {\n key: \"convertLinkToSip\",\n value: function convertLinkToSip(value) {\n var parsedUrl = this.getParsedUrl(value);\n if (!parsedUrl) {\n return null;\n }\n var user;\n if (parsedUrl.pathname) {\n var userIndex = parsedUrl.pathname.lastIndexOf('/');\n user = parsedUrl.pathname.substring(userIndex + 1);\n }\n if (!user) {\n return null;\n }\n var company;\n if (parsedUrl.hostname) {\n var companyIndex = parsedUrl.hostname.lastIndexOf(\".\".concat(_constants.WEBEX_DOT_COM));\n company = parsedUrl.hostname.substring(0, companyIndex).replace(_constants.WWW_DOT, '');\n }\n if (!company) {\n return null;\n }\n return \"\".concat(user, \"@\").concat(company, \".\").concat(_constants.WEBEX_DOT_COM);\n }\n }, {\n key: \"isSipUri\",\n value: function isSipUri(sipString) {\n // TODO: lets remove regex from this equation and user URI matchers and such\n // have not found a great sip uri parser library as of now\n var sipUri = _constants.DIALER_REGEX.SIP_ADDRESS.exec(sipString);\n return sipUri;\n }\n }, {\n key: \"isPhoneNumber\",\n value: function isPhoneNumber(phoneNumber) {\n var isValidNumber = _constants.DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n return isValidNumber;\n }\n }, {\n key: \"getHydraId\",\n value: function getHydraId(destination) {\n var _deconstructHydraId = (0, _common.deconstructHydraId)(destination),\n type = _deconstructHydraId.type,\n id = _deconstructHydraId.id,\n cluster = _deconstructHydraId.cluster;\n if (id && _constants.UUID_REG.test(id)) {\n if (type === _constants._ROOM_) {\n return {\n room: true,\n destination: id,\n cluster: cluster\n };\n }\n if (type === _constants._PEOPLE_) {\n return {\n people: true,\n destination: id,\n cluster: cluster\n };\n }\n return {};\n }\n return {};\n }\n }, {\n key: \"getSipUriFromHydraPersonId\",\n value: function getSipUriFromHydraPersonId(destination, webex) {\n return webex.people.get(destination).then(function (res) {\n if (res.emails && res.emails.length) {\n return res.emails[0];\n }\n throw new _parameter.default('Hydra Id Lookup was an invalid hydra person id.');\n }).catch(function (err) {\n _loggerProxy.default.logger.error(\"Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId \".concat(err, \" \"));\n throw err;\n });\n }\n }, {\n key: \"generateOptions\",\n value: function () {\n var _generateOptions = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(from) {\n var destination, type, webex, options, hydraId, serviceUrl;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n destination = from.destination, type = from.type, webex = from.webex;\n if (!type) {\n _context.next = 3;\n break;\n }\n return _context.abrupt(\"return\", {\n destination: destination,\n type: type\n });\n case 3:\n options = {};\n hydraId = this.getHydraId(destination);\n if (!this.isMeetingLink(destination)) {\n _context.next = 11;\n break;\n }\n _loggerProxy.default.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');\n options.type = _constants.DESTINATION_TYPE.MEETING_LINK;\n options.destination = destination;\n _context.next = 47;\n break;\n case 11:\n if (!this.isSipUri(destination)) {\n _context.next = 16;\n break;\n }\n options.type = _constants.DESTINATION_TYPE.SIP_URI;\n options.destination = destination;\n _context.next = 47;\n break;\n case 16:\n if (!this.isPhoneNumber(destination)) {\n _context.next = 21;\n break;\n }\n options.type = _constants.DESTINATION_TYPE.SIP_URI;\n options.destination = destination;\n _context.next = 47;\n break;\n case 21:\n if (!this.isConversationUrl(destination, webex)) {\n _context.next = 26;\n break;\n }\n options.type = _constants.DESTINATION_TYPE.CONVERSATION_URL;\n options.destination = destination;\n _context.next = 47;\n break;\n case 26:\n if (!hydraId.people) {\n _context.next = 31;\n break;\n }\n options.type = _constants.DESTINATION_TYPE.SIP_URI;\n return _context.abrupt(\"return\", this.getSipUriFromHydraPersonId(hydraId.destination, webex).then(function (res) {\n options.destination = res;\n\n // Since hydra person ids require a unique case in which they are\n // entirely converted to a SIP URI, we need to set a flag for detecting\n // this type of destination.\n options.wasHydraPerson = true;\n return _promise.default.resolve(options);\n }));\n case 31:\n if (!hydraId.room) {\n _context.next = 46;\n break;\n }\n options.type = _constants.DESTINATION_TYPE.CONVERSATION_URL;\n _context.prev = 33;\n _context.next = 36;\n return webex.internal.services.waitForCatalog('postauth');\n case 36:\n serviceUrl = webex.internal.services.getServiceUrlFromClusterId({\n cluster: hydraId.cluster\n }, webex);\n options.destination = hydraId.destination ? \"\".concat(serviceUrl, \"/conversations/\").concat(hydraId.destination) : serviceUrl;\n _context.next = 44;\n break;\n case 40:\n _context.prev = 40;\n _context.t0 = _context[\"catch\"](33);\n _loggerProxy.default.logger.error(\"Meeting-info:util#generateOptions --> \".concat(_context.t0));\n throw _context.t0;\n case 44:\n _context.next = 47;\n break;\n case 46:\n throw new _parameter.default('MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.');\n case 47:\n return _context.abrupt(\"return\", _promise.default.resolve(options));\n case 48:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[33, 40]]);\n }));\n function generateOptions(_x) {\n return _generateOptions.apply(this, arguments);\n }\n return generateOptions;\n }()\n /**\n * Helper function to build up a correct locus url depending on the value passed\n * @param {DESTINATION_TYPE} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} value ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\n }, {\n key: \"getResourceUrl\",\n value: function getResourceUrl(type, value) {\n var resource = \"/\".concat(_constants.LOCI, \"/\").concat(_constants.MEETINGINFO);\n var method = _constants.HTTP_VERBS.GET;\n var uri = null;\n switch (type) {\n case _constants.DESTINATION_TYPE.SIP_URI:\n case _constants.DESTINATION_TYPE.PERSONAL_ROOM:\n case _constants.DESTINATION_TYPE.MEETING_ID:\n resource = \"/\".concat(_constants.LOCI, \"/\").concat(_constants.MEETINGINFO, \"/\").concat(encodeURIComponent(value), \"?\").concat(_constants.TYPE, \"=\").concat(type, \"&\").concat(_constants.USE_URI_LOOKUP_FALSE);\n break;\n case _constants.DESTINATION_TYPE.CONVERSATION_URL:\n method = _constants.HTTP_VERBS.PUT;\n break;\n case _constants.DESTINATION_TYPE.LOCUS_ID:\n uri = \"\".concat(value, \"/\").concat(_constants.MEETINGINFO);\n method = _constants.HTTP_VERBS.PUT;\n break;\n case _constants.DESTINATION_TYPE.MEETING_LINK:\n resource = \"$/\".concat(_constants.LOCI, \"/\").concat(_constants.MEETINGINFO, \"/\").concat((0, _btoa.default)(value), \"?\").concat(_constants.TYPE, \"=\").concat(_constants.DESTINATION_TYPE.MEETING_LINK, \"&\").concat(_constants.USE_URI_LOOKUP_FALSE);\n break;\n default:\n }\n return {\n uri: uri,\n resource: resource,\n method: method\n };\n }\n }, {\n key: \"getRequestParams\",\n value: function getRequestParams(resourceOptions, type, value, api) {\n var requestParams = {\n method: resourceOptions.method,\n api: api,\n resource: resourceOptions.resource\n };\n if (resourceOptions.method === _constants.HTTP_VERBS.GET) {\n // for handling URL redirections\n requestParams.resource = requestParams.resource.concat(\"&\".concat(_constants.ALTERNATE_REDIRECT_TRUE));\n } else if (type !== _constants.DESTINATION_TYPE.LOCUS_ID) {\n // locus id check is a PUT not sure why\n requestParams.resource = requestParams.resource.concat(\"?\".concat(_constants.ALTERNATE_REDIRECT_TRUE));\n requestParams.body = {\n value: value,\n lookupType: type\n };\n } else if (type === _constants.DESTINATION_TYPE.LOCUS_ID) {\n requestParams = {\n method: resourceOptions.method,\n uri: resourceOptions.uri\n };\n }\n return requestParams;\n }\n }]);\n return MeetingInfoUtil;\n}();\n//# sourceMappingURL=util.js.map\n","\"use strict\";\n\nvar _Object$keys = require(\"@babel/runtime-corejs2/core-js/object/keys\");\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-symbols\");\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptor\");\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs2/core-js/object/get-own-property-descriptors\");\nvar _Object$defineProperties = require(\"@babel/runtime-corejs2/core-js/object/define-properties\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs2/regenerator\"));\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/promise\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/asyncToGenerator\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _url = _interopRequireDefault(require(\"url\"));\nvar _common = require(\"@webex/common\");\nvar _constants = require(\"../constants\");\nvar _parameter = _interopRequireDefault(require(\"../common/errors/parameter\"));\nvar _loggerProxy = _interopRequireDefault(require(\"../common/logs/logger-proxy\"));\nvar _webexErrors = require(\"../common/errors/webex-errors\");\nfunction ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } // @ts-ignore\n/**\n * @class MeetingInfoUtil\n */\nvar MeetingInfoUtil = exports.default = /*#__PURE__*/function () {\n function MeetingInfoUtil() {\n (0, _classCallCheck2.default)(this, MeetingInfoUtil);\n }\n (0, _createClass2.default)(MeetingInfoUtil, null, [{\n key: \"getParsedUrl\",\n value: function getParsedUrl(link) {\n try {\n var parsedUrl = _url.default.parse(link);\n if (!parsedUrl) {\n return false;\n }\n // hack for links such as .webex.com/meet/ without a protocol\n if (!parsedUrl.protocol) {\n parsedUrl = _url.default.parse(\"\".concat(_constants.HTTPS_PROTOCOL).concat(link));\n }\n return parsedUrl;\n } catch (error) {\n _loggerProxy.default.logger.warn(\"Meeting-info:util#getParsedUrl --> unable to parse the URL, error: \".concat(error));\n return null;\n }\n }\n\n /**\n * Helper function to check if a string matches a known meeting link pattern\n * @param {String} value string to parse and see if it matches a meeting link\n * @returns {Boolean}\n */\n }, {\n key: \"isMeetingLink\",\n value: function isMeetingLink(value) {\n var hostNameBool;\n var pathNameBool;\n var parsedUrl = this.getParsedUrl(value);\n if (parsedUrl) {\n hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(_constants.WEBEX_DOT_COM);\n pathNameBool = parsedUrl.pathname && (parsedUrl.pathname.includes(\"/\".concat(_constants.MEET)) || parsedUrl.pathname.includes(\"/\".concat(_constants.MEET_M)) || parsedUrl.pathname.includes(\"/\".concat(_constants.MEET_CISCO)) || parsedUrl.pathname.includes(\"/\".concat(_constants.MEET_CO)) || parsedUrl.pathname.includes(\"/\".concat(_constants.JOIN)));\n }\n return hostNameBool && pathNameBool;\n }\n }, {\n key: \"isConversationUrl\",\n value: function isConversationUrl(value, webex) {\n var clusterId = webex.internal.services.getClusterId(value);\n if (clusterId) {\n return clusterId.endsWith(_constants.CONVERSATION_SERVICE);\n }\n return false;\n }\n }, {\n key: \"isSipUri\",\n value: function isSipUri(sipString) {\n // TODO: lets remove regex from this equation and user URI matchers and such\n // have not found a great sip uri parser library as of now\n var sipUri = _constants.DIALER_REGEX.SIP_ADDRESS.exec(sipString);\n return sipUri;\n }\n }, {\n key: \"isPhoneNumber\",\n value: function isPhoneNumber(phoneNumber) {\n var isValidNumber = _constants.DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n return isValidNumber;\n }\n }, {\n key: \"getHydraId\",\n value: function getHydraId(destination) {\n var _deconstructHydraId = (0, _common.deconstructHydraId)(destination),\n type = _deconstructHydraId.type,\n id = _deconstructHydraId.id,\n cluster = _deconstructHydraId.cluster;\n if (id && _constants.UUID_REG.test(id)) {\n if (type === _constants._ROOM_) {\n return {\n room: true,\n destination: id,\n cluster: cluster\n };\n }\n if (type === _constants._PEOPLE_) {\n return {\n people: true,\n destination: id,\n cluster: cluster\n };\n }\n return {};\n }\n return {};\n }\n }, {\n key: \"getSipUriFromHydraPersonId\",\n value: function getSipUriFromHydraPersonId(destination, webex) {\n return webex.people.get(destination).then(function (res) {\n if (res.emails && res.emails.length) {\n return res.emails[0];\n }\n throw new _parameter.default('Hydra Id Lookup was an invalid hydra person id.');\n }).catch(function (err) {\n _loggerProxy.default.logger.error(\"Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId \".concat(err, \" \"));\n throw err;\n });\n }\n }, {\n key: \"getDestinationType\",\n value: function () {\n var _getDestinationType = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(from) {\n var type, webex, destination, _options, res, _res$items$, orgId, userId, options, hydraId;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n type = from.type, webex = from.webex;\n destination = from.destination;\n if (!(type === _constants.DESTINATION_TYPE.PERSONAL_ROOM)) {\n _context.next = 15;\n break;\n }\n if (destination) {\n _context.next = 7;\n break;\n }\n // if we are not getting anything in desination we fetch org and user ids from webex instance\n destination = {\n userId: webex.internal.device.userId,\n orgId: webex.internal.device.orgId\n };\n _context.next = 15;\n break;\n case 7:\n _options = _constants.VALID_EMAIL_ADDRESS.test(destination) ? {\n email: destination\n } : {\n id: destination\n }; // we are assuming userId as default\n _context.next = 10;\n return webex.people.list(_options);\n case 10:\n res = _context.sent;\n _res$items$ = res.items[0], orgId = _res$items$.orgId, userId = _res$items$.id;\n userId = (0, _common.deconstructHydraId)(userId).id;\n orgId = (0, _common.deconstructHydraId)(orgId).id;\n destination = {\n userId: userId,\n orgId: orgId\n };\n case 15:\n if (!type) {\n _context.next = 17;\n break;\n }\n return _context.abrupt(\"return\", {\n destination: destination,\n type: type\n });\n case 17:\n options = {};\n if (webex && webex.config && webex.config.meetings && webex.config.meetings.disableHydraId) {\n hydraId = null;\n } else {\n hydraId = this.getHydraId(destination);\n }\n if (!this.isMeetingLink(destination)) {\n _context.next = 25;\n break;\n }\n _loggerProxy.default.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');\n options.type = _constants.DESTINATION_TYPE.MEETING_LINK;\n options.destination = destination;\n _context.next = 52;\n break;\n case 25:\n if (!this.isSipUri(destination)) {\n _context.next = 30;\n break;\n }\n options.type = _constants.DESTINATION_TYPE.SIP_URI;\n options.destination = destination;\n _context.next = 52;\n break;\n case 30:\n if (!this.isPhoneNumber(destination)) {\n _context.next = 35;\n break;\n }\n options.type = _constants.DESTINATION_TYPE.SIP_URI;\n options.destination = destination;\n _context.next = 52;\n break;\n case 35:\n if (!this.isConversationUrl(destination, webex)) {\n _context.next = 40;\n break;\n }\n options.type = _constants.DESTINATION_TYPE.CONVERSATION_URL;\n options.destination = destination;\n _context.next = 52;\n break;\n case 40:\n if (!(hydraId && hydraId.people)) {\n _context.next = 45;\n break;\n }\n options.type = _constants.DESTINATION_TYPE.SIP_URI;\n return _context.abrupt(\"return\", this.getSipUriFromHydraPersonId(hydraId && hydraId.destination, webex).then(function (res) {\n options.destination = res;\n\n // Since hydra person ids require a unique case in which they are\n // entirely converted to a SIP URI, we need to set a flag for detecting\n // this type of destination.\n options.wasHydraPerson = true;\n return _promise.default.resolve(options);\n }));\n case 45:\n if (!hydraId.room) {\n _context.next = 50;\n break;\n }\n _loggerProxy.default.logger.error(\"Meeting-info:util#getDestinationType --> Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.\");\n // Error code 30105 added as Space ID deprecated as of beta, Please refer migration guide.\n throw new _webexErrors.SpaceIDDeprecatedError();\n case 50:\n _loggerProxy.default.logger.warn(\"Meeting-info:util#getDestinationType --> \".concat(this.meetingInfoError));\n throw new _parameter.default(\"\".concat(this.meetingInfoError));\n case 52:\n return _context.abrupt(\"return\", _promise.default.resolve(options));\n case 53:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function getDestinationType(_x) {\n return _getDestinationType.apply(this, arguments);\n }\n return getDestinationType;\n }()\n /**\n * Helper function to build up a correct locus url depending on the value passed\n * @param {Object} options type and value to fetch meeting info\n * @param {DESTINATION_TYPE} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {String} options.installedOrgID org ID of user's machine\n * @param {Object} options.destination ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\n }, {\n key: \"getRequestBody\",\n value: function getRequestBody(options) {\n var _destination$info, _destination$info2;\n var type = options.type,\n destination = options.destination,\n password = options.password,\n captchaInfo = options.captchaInfo,\n installedOrgID = options.installedOrgID,\n locusId = options.locusId,\n extraParams = options.extraParams;\n var body = _objectSpread(_objectSpread({}, _constants.DEFAULT_MEETING_INFO_REQUEST_BODY), extraParams);\n switch (type) {\n case _constants.DESTINATION_TYPE.SIP_URI:\n body.sipUrl = destination;\n break;\n case _constants.DESTINATION_TYPE.PERSONAL_ROOM:\n body.userId = destination.userId;\n body.orgId = destination.orgId;\n break;\n case _constants.DESTINATION_TYPE.MEETING_ID:\n body.meetingKey = destination;\n break;\n case _constants.DESTINATION_TYPE.CONVERSATION_URL:\n body.conversationUrl = destination;\n break;\n case _constants.DESTINATION_TYPE.LOCUS_ID:\n // use meetingID for the completer meeting info for the already started meeting\n if ((_destination$info = destination.info) !== null && _destination$info !== void 0 && _destination$info.webExMeetingId) {\n body.meetingKey = destination.info.webExMeetingId;\n } else if ((_destination$info2 = destination.info) !== null && _destination$info2 !== void 0 && _destination$info2.sipUri) {\n body.sipUrl = destination.info.sipUri;\n }\n break;\n case _constants.DESTINATION_TYPE.MEETING_LINK:\n body.meetingUrl = destination;\n break;\n case _constants.DESTINATION_TYPE.MEETING_UUID:\n {\n body.meetingUUID = destination;\n break;\n }\n default:\n }\n if (password) {\n body.password = password;\n }\n if (captchaInfo) {\n body.captchaID = captchaInfo.id;\n body.captchaVerifyCode = captchaInfo.code;\n }\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n if (locusId) {\n body.locusId = locusId;\n }\n return body;\n }\n\n /**\n * Helper function to parse the webex site/host from a URI string.\n * @param {String} uri string (e.g. '10019857020@convergedats.webex.com')\n * @returns {String} the site/host part of the URI string (e.g. 'convergedats.webex.com')\n */\n }, {\n key: \"getWebexSite\",\n value: function getWebexSite(uri) {\n var _uri$match;\n var exceptedDomains = ['meet.webex.com', 'meetup.webex.com', 'ciscospark.com'];\n var site = uri === null || uri === void 0 ? void 0 : (_uri$match = uri.match(/.+@([^.]+\\.[^.]+\\.[^.]+)$/)) === null || _uri$match === void 0 ? void 0 : _uri$match[1];\n var isExceptedDomain = !!site && exceptedDomains.some(function (domain) {\n return site.includes(domain);\n });\n return isExceptedDomain ? null : site;\n }\n\n /**\n * Helper function to return the direct URI for fetching meeting info (to avoid a redirect).\n * @param {Object} options type and value to fetch meeting info\n * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} options.destination ?? value.value\n * @returns {String} returns a URI string or null of there is no direct URI\n */\n }, {\n key: \"getDirectMeetingInfoURI\",\n value: function getDirectMeetingInfoURI(options) {\n var _destination$info3;\n var type = options.type,\n destination = options.destination;\n var preferredWebexSite = null;\n switch (type) {\n case _constants.DESTINATION_TYPE.SIP_URI:\n preferredWebexSite = this.getWebexSite(destination);\n break;\n case _constants.DESTINATION_TYPE.LOCUS_ID:\n preferredWebexSite = (_destination$info3 = destination.info) === null || _destination$info3 === void 0 ? void 0 : _destination$info3.webExSite;\n break;\n default:\n }\n return preferredWebexSite ? \"https://\".concat(preferredWebexSite, \"/wbxappapi/v1/meetingInfo\") : null;\n }\n }]);\n return MeetingInfoUtil;\n}();\n(0, _defineProperty2.default)(MeetingInfoUtil, \"meetingInfoError\", 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.');\n//# sourceMappingURL=utilv2.js.map\n","\"use strict\";\n\nvar _Reflect$construct = require(\"@babel/runtime-corejs2/core-js/reflect/construct\");\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ConnectionStateHandler = exports.ConnectionStateEvent = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _internalMediaCore = require(\"@webex/internal-media-core\");\nvar _eventsScope = _interopRequireDefault(require(\"../common/events/events-scope\"));\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ConnectionStateEvent = exports.ConnectionStateEvent = {\n stateChanged: 'connectionState:changed'\n};\n/**\n * @class ConnectionStateHandler\n */\nvar ConnectionStateHandler = exports.ConnectionStateHandler = /*#__PURE__*/function (_EventsScope) {\n (0, _inherits2.default)(ConnectionStateHandler, _EventsScope);\n var _super = _createSuper(ConnectionStateHandler);\n /**\n * @param {WebRTCMeeting} webrtcMediaConnection\n */\n function ConnectionStateHandler(webrtcMediaConnection) {\n var _this;\n (0, _classCallCheck2.default)(this, ConnectionStateHandler);\n _this = _super.call(this);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"webrtcMediaConnection\", void 0);\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"mediaConnectionState\", void 0);\n _this.webrtcMediaConnection = webrtcMediaConnection;\n _this.webrtcMediaConnection.on(_internalMediaCore.MediaConnectionEventNames.PEER_CONNECTION_STATE_CHANGED, _this.handleConnectionStateChange.bind((0, _assertThisInitialized2.default)(_this)));\n _this.webrtcMediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ICE_CONNECTION_STATE_CHANGED, _this.handleConnectionStateChange.bind((0, _assertThisInitialized2.default)(_this)));\n return _this;\n }\n\n /**\n * Handler for connection state change.\n *\n * @returns {void}\n */\n (0, _createClass2.default)(ConnectionStateHandler, [{\n key: \"handleConnectionStateChange\",\n value: function handleConnectionStateChange() {\n var newConnectionState = this.webrtcMediaConnection.getConnectionState();\n if (newConnectionState !== this.mediaConnectionState) {\n this.mediaConnectionState = newConnectionState;\n this.emit({\n file: 'connectionStateHandler',\n function: 'handleConnectionStateChange'\n }, ConnectionStateEvent.stateChanged, {\n state: this.mediaConnectionState\n });\n }\n }\n }]);\n return ConnectionStateHandler;\n}(_eventsScope.default);\n//# sourceMappingURL=connectionStateHandler.js.map\n","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _keys = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/keys\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/defineProperty\"));\nvar _constants = require(\"../constants\");\n/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n/**\n * IInMeetingActions\n * Type for In-Meeting Actions\n */\n/**\n * @class InMeetingActions\n */\nvar InMeetingActions = exports.default = /*#__PURE__*/(0, _createClass2.default)(function InMeetingActions() {\n var _this = this;\n (0, _classCallCheck2.default)(this, InMeetingActions);\n (0, _defineProperty2.default)(this, \"namespace\", _constants.MEETINGS);\n (0, _defineProperty2.default)(this, \"canInviteNewParticipants\", null);\n (0, _defineProperty2.default)(this, \"canAdmitParticipant\", null);\n (0, _defineProperty2.default)(this, \"canLock\", null);\n (0, _defineProperty2.default)(this, \"canUnlock\", null);\n (0, _defineProperty2.default)(this, \"canAssignHost\", null);\n (0, _defineProperty2.default)(this, \"canStartRecording\", null);\n (0, _defineProperty2.default)(this, \"canPauseRecording\", null);\n (0, _defineProperty2.default)(this, \"canResumeRecording\", null);\n (0, _defineProperty2.default)(this, \"isPremiseRecordingEnabled\", null);\n (0, _defineProperty2.default)(this, \"canStopRecording\", null);\n (0, _defineProperty2.default)(this, \"canSetMuteOnEntry\", null);\n (0, _defineProperty2.default)(this, \"canSetPresenter\", null);\n (0, _defineProperty2.default)(this, \"canUnsetPresenter\", null);\n (0, _defineProperty2.default)(this, \"canUnsetMuteOnEntry\", null);\n (0, _defineProperty2.default)(this, \"canSetDisallowUnmute\", null);\n (0, _defineProperty2.default)(this, \"canUnsetDisallowUnmute\", null);\n (0, _defineProperty2.default)(this, \"canSetMuted\", null);\n (0, _defineProperty2.default)(this, \"canUnsetMuted\", null);\n (0, _defineProperty2.default)(this, \"canRaiseHand\", null);\n (0, _defineProperty2.default)(this, \"canLowerAllHands\", null);\n (0, _defineProperty2.default)(this, \"canLowerSomeoneElsesHand\", null);\n (0, _defineProperty2.default)(this, \"bothLeaveAndEndMeetingAvailable\", null);\n (0, _defineProperty2.default)(this, \"canEnableClosedCaption\", null);\n (0, _defineProperty2.default)(this, \"canStartTranscribing\", null);\n (0, _defineProperty2.default)(this, \"canStopTranscribing\", null);\n (0, _defineProperty2.default)(this, \"isClosedCaptionActive\", null);\n (0, _defineProperty2.default)(this, \"canStartManualCaption\", null);\n (0, _defineProperty2.default)(this, \"canStopManualCaption\", null);\n (0, _defineProperty2.default)(this, \"isManualCaptionActive\", null);\n (0, _defineProperty2.default)(this, \"isSaveTranscriptsEnabled\", null);\n (0, _defineProperty2.default)(this, \"isWebexAssistantActive\", null);\n (0, _defineProperty2.default)(this, \"canViewCaptionPanel\", null);\n (0, _defineProperty2.default)(this, \"isRealTimeTranslationEnabled\", null);\n (0, _defineProperty2.default)(this, \"canSelectSpokenLanguages\", null);\n (0, _defineProperty2.default)(this, \"waitingForOthersToJoin\", null);\n (0, _defineProperty2.default)(this, \"canSendReactions\", null);\n (0, _defineProperty2.default)(this, \"canManageBreakout\", null);\n (0, _defineProperty2.default)(this, \"canBroadcastMessageToBreakout\", null);\n (0, _defineProperty2.default)(this, \"canAdmitLobbyToBreakout\", null);\n (0, _defineProperty2.default)(this, \"isBreakoutPreassignmentsEnabled\", null);\n (0, _defineProperty2.default)(this, \"canUserAskForHelp\", null);\n (0, _defineProperty2.default)(this, \"canUserRenameSelfAndObserved\", null);\n (0, _defineProperty2.default)(this, \"canUserRenameOthers\", null);\n (0, _defineProperty2.default)(this, \"canMuteAll\", null);\n (0, _defineProperty2.default)(this, \"canUnmuteAll\", null);\n (0, _defineProperty2.default)(this, \"canEnableHardMute\", null);\n (0, _defineProperty2.default)(this, \"canDisableHardMute\", null);\n (0, _defineProperty2.default)(this, \"canEnableMuteOnEntry\", null);\n (0, _defineProperty2.default)(this, \"canDisableMuteOnEntry\", null);\n (0, _defineProperty2.default)(this, \"canEnableReactions\", null);\n (0, _defineProperty2.default)(this, \"canDisableReactions\", null);\n (0, _defineProperty2.default)(this, \"canEnableReactionDisplayNames\", null);\n (0, _defineProperty2.default)(this, \"canDisableReactionDisplayNames\", null);\n (0, _defineProperty2.default)(this, \"canUpdateShareControl\", null);\n (0, _defineProperty2.default)(this, \"canEnableViewTheParticipantsList\", null);\n (0, _defineProperty2.default)(this, \"canDisableViewTheParticipantsList\", null);\n (0, _defineProperty2.default)(this, \"canEnableViewTheParticipantsListPanelist\", null);\n (0, _defineProperty2.default)(this, \"canDisableViewTheParticipantsListPanelist\", null);\n (0, _defineProperty2.default)(this, \"canEnableShowAttendeeCount\", null);\n (0, _defineProperty2.default)(this, \"canDisableShowAttendeeCount\", null);\n (0, _defineProperty2.default)(this, \"canEnableRaiseHand\", null);\n (0, _defineProperty2.default)(this, \"canDisableRaiseHand\", null);\n (0, _defineProperty2.default)(this, \"canEnableVideo\", null);\n (0, _defineProperty2.default)(this, \"canDisableVideo\", null);\n (0, _defineProperty2.default)(this, \"canShareFile\", null);\n (0, _defineProperty2.default)(this, \"canShareApplication\", null);\n (0, _defineProperty2.default)(this, \"canShareCamera\", null);\n (0, _defineProperty2.default)(this, \"canShareDesktop\", null);\n (0, _defineProperty2.default)(this, \"canShareContent\", null);\n (0, _defineProperty2.default)(this, \"canTransferFile\", null);\n (0, _defineProperty2.default)(this, \"canChat\", null);\n (0, _defineProperty2.default)(this, \"canDoVideo\", null);\n (0, _defineProperty2.default)(this, \"canAnnotate\", null);\n (0, _defineProperty2.default)(this, \"canUseVoip\", null);\n (0, _defineProperty2.default)(this, \"supportHQV\", null);\n (0, _defineProperty2.default)(this, \"enforceVirtualBackground\", null);\n (0, _defineProperty2.default)(this, \"supportHDV\", null);\n (0, _defineProperty2.default)(this, \"canShareWhiteBoard\", null);\n (0, _defineProperty2.default)(this, \"canPollingAndQA\", null);\n (0, _defineProperty2.default)(this, \"canStartWebcast\", null);\n (0, _defineProperty2.default)(this, \"canStopWebcast\", null);\n (0, _defineProperty2.default)(this, \"canShowStageView\", null);\n (0, _defineProperty2.default)(this, \"canEnableStageView\", null);\n (0, _defineProperty2.default)(this, \"canDisableStageView\", null);\n (0, _defineProperty2.default)(this, \"isPracticeSessionOn\", null);\n (0, _defineProperty2.default)(this, \"isPracticeSessionOff\", null);\n (0, _defineProperty2.default)(this, \"canStartPracticeSession\", null);\n (0, _defineProperty2.default)(this, \"canStopPracticeSession\", null);\n /**\n * Returns all meeting action options\n * @returns {Object}\n */\n (0, _defineProperty2.default)(this, \"get\", function () {\n return {\n canInviteNewParticipants: _this.canInviteNewParticipants,\n canAdmitParticipant: _this.canAdmitParticipant,\n canLock: _this.canLock,\n canUnlock: _this.canUnlock,\n canAssignHost: _this.canAssignHost,\n canSetMuteOnEntry: _this.canSetMuteOnEntry,\n canUnsetMuteOnEntry: _this.canUnsetMuteOnEntry,\n canSetDisallowUnmute: _this.canSetDisallowUnmute,\n canSetMuted: _this.canSetMuted,\n canUnsetMuted: _this.canUnsetMuted,\n canSetPresenter: _this.canSetPresenter,\n canUnsetPresenter: _this.canUnsetPresenter,\n canUnsetDisallowUnmute: _this.canUnsetDisallowUnmute,\n canStartRecording: _this.canStartRecording,\n canPauseRecording: _this.canPauseRecording,\n canResumeRecording: _this.canResumeRecording,\n canStopRecording: _this.canStopRecording,\n isPremiseRecordingEnabled: _this.isPremiseRecordingEnabled,\n canRaiseHand: _this.canRaiseHand,\n canLowerAllHands: _this.canLowerAllHands,\n canLowerSomeoneElsesHand: _this.canLowerSomeoneElsesHand,\n bothLeaveAndEndMeetingAvailable: _this.bothLeaveAndEndMeetingAvailable,\n canEnableClosedCaption: _this.canEnableClosedCaption,\n canStartTranscribing: _this.canStartTranscribing,\n canStopTranscribing: _this.canStopTranscribing,\n isClosedCaptionActive: _this.isClosedCaptionActive,\n canStartManualCaption: _this.canStartManualCaption,\n canStopManualCaption: _this.canStopManualCaption,\n isManualCaptionActive: _this.isManualCaptionActive,\n isSaveTranscriptsEnabled: _this.isSaveTranscriptsEnabled,\n isWebexAssistantActive: _this.isWebexAssistantActive,\n canViewCaptionPanel: _this.canViewCaptionPanel,\n isRealTimeTranslationEnabled: _this.isRealTimeTranslationEnabled,\n canSelectSpokenLanguages: _this.canSelectSpokenLanguages,\n waitingForOthersToJoin: _this.waitingForOthersToJoin,\n canSendReactions: _this.canSendReactions,\n canManageBreakout: _this.canManageBreakout,\n canBroadcastMessageToBreakout: _this.canBroadcastMessageToBreakout,\n canAdmitLobbyToBreakout: _this.canAdmitLobbyToBreakout,\n isBreakoutPreassignmentsEnabled: _this.isBreakoutPreassignmentsEnabled,\n canUserAskForHelp: _this.canUserAskForHelp,\n canUserRenameSelfAndObserved: _this.canUserRenameSelfAndObserved,\n canUserRenameOthers: _this.canUserRenameOthers,\n canMuteAll: _this.canMuteAll,\n canUnmuteAll: _this.canUnmuteAll,\n canEnableHardMute: _this.canEnableHardMute,\n canDisableHardMute: _this.canDisableHardMute,\n canEnableMuteOnEntry: _this.canEnableMuteOnEntry,\n canDisableMuteOnEntry: _this.canDisableMuteOnEntry,\n canEnableReactions: _this.canEnableReactions,\n canDisableReactions: _this.canDisableReactions,\n canEnableReactionDisplayNames: _this.canEnableReactionDisplayNames,\n canDisableReactionDisplayNames: _this.canDisableReactionDisplayNames,\n canUpdateShareControl: _this.canUpdateShareControl,\n canEnableViewTheParticipantsList: _this.canEnableViewTheParticipantsList,\n canDisableViewTheParticipantsList: _this.canDisableViewTheParticipantsList,\n canEnableViewTheParticipantsListPanelist: _this.canEnableViewTheParticipantsListPanelist,\n canDisableViewTheParticipantsListPanelist: _this.canDisableViewTheParticipantsListPanelist,\n canEnableShowAttendeeCount: _this.canEnableShowAttendeeCount,\n canDisableShowAttendeeCount: _this.canDisableShowAttendeeCount,\n canEnableRaiseHand: _this.canEnableRaiseHand,\n canDisableRaiseHand: _this.canDisableRaiseHand,\n canEnableVideo: _this.canEnableVideo,\n canDisableVideo: _this.canDisableVideo,\n canShareFile: _this.canShareFile,\n canShareApplication: _this.canShareApplication,\n canShareCamera: _this.canShareCamera,\n canShareDesktop: _this.canShareDesktop,\n canShareContent: _this.canShareContent,\n canTransferFile: _this.canTransferFile,\n canChat: _this.canChat,\n canDoVideo: _this.canDoVideo,\n canAnnotate: _this.canAnnotate,\n canUseVoip: _this.canUseVoip,\n enforceVirtualBackground: _this.enforceVirtualBackground,\n supportHQV: _this.supportHQV,\n supportHDV: _this.supportHDV,\n canShareWhiteBoard: _this.canShareWhiteBoard,\n canPollingAndQA: _this.canPollingAndQA,\n canStartWebcast: _this.canStartWebcast,\n canStopWebcast: _this.canStopWebcast,\n canShowStageView: _this.canShowStageView,\n canEnableStageView: _this.canEnableStageView,\n canDisableStageView: _this.canDisableStageView,\n isPracticeSessionOn: _this.isPracticeSessionOn,\n isPracticeSessionOff: _this.isPracticeSessionOff,\n canStartPracticeSession: _this.canStartPracticeSession,\n canStopPracticeSession: _this.canStopPracticeSession\n };\n });\n /**\n *\n * @param actions\n * @returns\n */\n (0, _defineProperty2.default)(this, \"set\", function (actions) {\n var old = _this.get();\n var changed = false;\n (0, _keys.default)(old).forEach(function (actionKey) {\n var actionValue = actions[actionKey];\n if (actionValue !== undefined && actionValue !== old[actionKey]) {\n changed = true;\n _this[actionKey] = actionValue;\n }\n });\n return changed;\n });\n});\n//# sourceMappingURL=in-meeting-actions.js.map\n"],"names":[],"sourceRoot":""}